[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Zend Framework 4 * 5 * LICENSE 6 * 7 * This source file is subject to the new BSD license that is bundled 8 * with this package in the file LICENSE.txt. 9 * It is also available through the world-wide-web at this URL: 10 * http://framework.zend.com/license/new-bsd 11 * If you did not receive a copy of the license and are unable to 12 * obtain it through the world-wide-web, please send an email 13 * to [email protected] so we can send you a copy immediately. 14 * 15 * @category Zend 16 * @package Zend_Gdata 17 * @subpackage Analytics 18 * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) 19 * @license http://framework.zend.com/license/new-bsd New BSD License 20 * @version $Id$ 21 */ 22 23 /** 24 * @see Zend_Gdata_Query 25 */ 26 require_once 'Zend/Gdata/Query.php'; 27 28 /** 29 * @category Zend 30 * @package Zend_Gdata 31 * @subpackage Analytics 32 */ 33 class Zend_Gdata_Analytics_DataQuery extends Zend_Gdata_Query 34 { 35 const ANALYTICS_FEED_URI = 'https://www.googleapis.com/analytics/v2.4/data'; 36 37 /** 38 * The default URI used for feeds. 39 */ 40 protected $_defaultFeedUri = self::ANALYTICS_FEED_URI; 41 42 // D1. Visitor 43 const DIMENSION_BROWSER = 'ga:browser'; 44 const DIMENSION_BROWSER_VERSION = 'ga:browserVersion'; 45 const DIMENSION_CITY = 'ga:city'; 46 const DIMENSION_CONNECTIONSPEED = 'ga:connectionSpeed'; 47 const DIMENSION_CONTINENT = 'ga:continent'; 48 const DIMENSION_COUNTRY = 'ga:country'; 49 const DIMENSION_DATE = 'ga:date'; 50 const DIMENSION_DAY = 'ga:day'; 51 const DIMENSION_DAYS_SINCE_LAST_VISIT= 'ga:daysSinceLastVisit'; 52 const DIMENSION_FLASH_VERSION = 'ga:flashVersion'; 53 const DIMENSION_HOSTNAME = 'ga:hostname'; 54 const DIMENSION_HOUR = 'ga:hour'; 55 const DIMENSION_JAVA_ENABLED= 'ga:javaEnabled'; 56 const DIMENSION_LANGUAGE= 'ga:language'; 57 const DIMENSION_LATITUDE = 'ga:latitude'; 58 const DIMENSION_LONGITUDE = 'ga:longitude'; 59 const DIMENSION_MONTH = 'ga:month'; 60 const DIMENSION_NETWORK_DOMAIN = 'ga:networkDomain'; 61 const DIMENSION_NETWORK_LOCATION = 'ga:networkLocation'; 62 const DIMENSION_OPERATING_SYSTEM = 'ga:operatingSystem'; 63 const DIMENSION_OPERATING_SYSTEM_VERSION = 'ga:operatingSystemVersion'; 64 const DIMENSION_PAGE_DEPTH = 'ga:pageDepth'; 65 const DIMENSION_REGION = 'ga:region'; 66 const DIMENSION_SCREEN_COLORS= 'ga:screenColors'; 67 const DIMENSION_SCREEN_RESOLUTION = 'ga:screenResolution'; 68 const DIMENSION_SUB_CONTINENT = 'ga:subContinent'; 69 const DIMENSION_USER_DEFINED_VALUE = 'ga:userDefinedValue'; 70 const DIMENSION_VISIT_COUNT = 'ga:visitCount'; 71 const DIMENSION_VISIT_LENGTH = 'ga:visitLength'; 72 const DIMENSION_VISITOR_TYPE = 'ga:visitorType'; 73 const DIMENSION_WEEK = 'ga:week'; 74 const DIMENSION_YEAR = 'ga:year'; 75 76 // D2. Campaign 77 const DIMENSION_AD_CONTENT = 'ga:adContent'; 78 const DIMENSION_AD_GROUP = 'ga:adGroup'; 79 const DIMENSION_AD_SLOT = 'ga:adSlot'; 80 const DIMENSION_AD_SLOT_POSITION = 'ga:adSlotPosition'; 81 const DIMENSION_CAMPAIGN = 'ga:campaign'; 82 const DIMENSION_KEYWORD = 'ga:keyword'; 83 const DIMENSION_MEDIUM = 'ga:medium'; 84 const DIMENSION_REFERRAL_PATH = 'ga:referralPath'; 85 const DIMENSION_SOURCE = 'ga:source'; 86 87 // D3. Content 88 const DIMENSION_EXIT_PAGE_PATH = 'ga:exitPagePath'; 89 const DIMENSION_LANDING_PAGE_PATH = 'ga:landingPagePath'; 90 const DIMENSION_PAGE_PATH = 'ga:pagePath'; 91 const DIMENSION_PAGE_TITLE = 'ga:pageTitle'; 92 const DIMENSION_SECOND_PAGE_PATH = 'ga:secondPagePath'; 93 94 // D4. Ecommerce 95 const DIMENSION_AFFILIATION = 'ga:affiliation'; 96 const DIMENSION_DAYS_TO_TRANSACTION = 'ga:daysToTransaction'; 97 const DIMENSION_PRODUCT_CATEGORY = 'ga:productCategory'; 98 const DIMENSION_PRODUCT_NAME = 'ga:productName'; 99 const DIMENSION_PRODUCT_SKU = 'ga:productSku'; 100 const DIMENSION_TRANSACTION_ID = 'ga:transactionId'; 101 const DIMENSION_VISITS_TO_TRANSACTION = 'ga:visitsToTransaction'; 102 103 // D5. Internal Search 104 const DIMENSION_SEARCH_CATEGORY = 'ga:searchCategory'; 105 const DIMENSION_SEARCH_DESTINATION_PAGE = 'ga:searchDestinationPage'; 106 const DIMENSION_SEARCH_KEYWORD = 'ga:searchKeyword'; 107 const DIMENSION_SEARCH_KEYWORD_REFINEMENT = 'ga:searchKeywordRefinement'; 108 const DIMENSION_SEARCH_START_PAGE = 'ga:searchStartPage'; 109 const DIMENSION_SEARCH_USED = 'ga:searchUsed'; 110 111 // D6. Navigation 112 const DIMENSION_NEXT_PAGE_PATH = 'ga:nextPagePath'; 113 const DIMENSION_PREV_PAGE_PATH= 'ga:previousPagePath'; 114 115 // D7. Events 116 const DIMENSION_EVENT_CATEGORY = 'ga:eventCategory'; 117 const DIMENSION_EVENT_ACTION = 'ga:eventAction'; 118 const DIMENSION_EVENT_LABEL = 'ga:eventLabel'; 119 120 // D8. Custon Variables 121 const DIMENSION_CUSTOM_VAR_NAME_1 = 'ga:customVarName1'; 122 const DIMENSION_CUSTOM_VAR_NAME_2 = 'ga:customVarName2'; 123 const DIMENSION_CUSTOM_VAR_NAME_3 = 'ga:customVarName3'; 124 const DIMENSION_CUSTOM_VAR_NAME_4 = 'ga:customVarName4'; 125 const DIMENSION_CUSTOM_VAR_NAME_5 = 'ga:customVarName5'; 126 const DIMENSION_CUSTOM_VAR_VALUE_1 = 'ga:customVarValue1'; 127 const DIMENSION_CUSTOM_VAR_VALUE_2 = 'ga:customVarValue2'; 128 const DIMENSION_CUSTOM_VAR_VALUE_3 = 'ga:customVarValue3'; 129 const DIMENSION_CUSTOM_VAR_VALUE_4 = 'ga:customVarValue4'; 130 const DIMENSION_CUSTOM_VAR_VALUE_5 = 'ga:customVarValue5'; 131 132 // M1. Visitor 133 const METRIC_BOUNCES = 'ga:bounces'; 134 const METRIC_ENTRANCES = 'ga:entrances'; 135 const METRIC_EXITS = 'ga:exits'; 136 const METRIC_NEW_VISITS = 'ga:newVisits'; 137 const METRIC_PAGEVIEWS = 'ga:pageviews'; 138 const METRIC_TIME_ON_PAGE = 'ga:timeOnPage'; 139 const METRIC_TIME_ON_SITE = 'ga:timeOnSite'; 140 const METRIC_VISITORS = 'ga:visitors'; 141 const METRIC_VISITS = 'ga:visits'; 142 143 // M2. Campaign 144 const METRIC_AD_CLICKS = 'ga:adClicks'; 145 const METRIC_AD_COST = 'ga:adCost'; 146 const METRIC_CPC = 'ga:CPC'; 147 const METRIC_CPM = 'ga:CPM'; 148 const METRIC_CTR = 'ga:CTR'; 149 const METRIC_IMPRESSIONS = 'ga:impressions'; 150 151 // M3. Content 152 const METRIC_UNIQUE_PAGEVIEWS = 'ga:uniquePageviews'; 153 154 // M4. Ecommerce 155 const METRIC_ITEM_REVENUE = 'ga:itemRevenue'; 156 const METRIC_ITEM_QUANTITY = 'ga:itemQuantity'; 157 const METRIC_TRANSACTIONS = 'ga:transactions'; 158 const METRIC_TRANSACTION_REVENUE = 'ga:transactionRevenue'; 159 const METRIC_TRANSACTION_SHIPPING = 'ga:transactionShipping'; 160 const METRIC_TRANSACTION_TAX = 'ga:transactionTax'; 161 const METRIC_UNIQUE_PURCHASES = 'ga:uniquePurchases'; 162 163 // M5. Internal Search 164 const METRIC_SEARCH_DEPTH = 'ga:searchDepth'; 165 const METRIC_SEARCH_DURATION = 'ga:searchDuration'; 166 const METRIC_SEARCH_EXITS = 'ga:searchExits'; 167 const METRIC_SEARCH_REFINEMENTS = 'ga:searchRefinements'; 168 const METRIC_SEARCH_UNIQUES = 'ga:searchUniques'; 169 const METRIC_SEARCH_VISIT = 'ga:searchVisits'; 170 171 // M6. Goals 172 const METRIC_GOAL_COMPLETIONS_ALL = 'ga:goalCompletionsAll'; 173 const METRIC_GOAL_STARTS_ALL = 'ga:goalStartsAll'; 174 const METRIC_GOAL_VALUE_ALL = 'ga:goalValueAll'; 175 // TODO goals 1-20 176 const METRIC_GOAL_1_COMPLETION = 'ga:goal1Completions'; 177 const METRIC_GOAL_1_STARTS = 'ga:goal1Starts'; 178 const METRIC_GOAL_1_VALUE = 'ga:goal1Value'; 179 180 // M7. Events 181 const METRIC_TOTAL_EVENTS = 'ga:totalEvents'; 182 const METRIC_UNIQUE_EVENTS = 'ga:uniqueEvents'; 183 const METRIC_EVENT_VALUE = 'ga:eventValue'; 184 185 // suported filter operators 186 const EQUALS = "=="; 187 const EQUALS_NOT = "!="; 188 const GREATER = ">"; 189 const LESS = ">"; 190 const GREATER_EQUAL = ">="; 191 const LESS_EQUAL = "<="; 192 const CONTAINS = "=@"; 193 const CONTAINS_NOT ="!@"; 194 const REGULAR ="=~"; 195 const REGULAR_NOT ="!~"; 196 197 /** 198 * @var string 199 */ 200 protected $_profileId; 201 /** 202 * @var array 203 */ 204 protected $_dimensions = array(); 205 /** 206 * @var array 207 */ 208 protected $_metrics = array(); 209 /** 210 * @var array 211 */ 212 protected $_sort = array(); 213 /** 214 * @var array 215 */ 216 protected $_filters = array(); 217 218 /** 219 * @param string $id 220 * @return Zend_Gdata_Analytics_DataQuery 221 */ 222 public function setProfileId($id) 223 { 224 $this->_profileId = $id; 225 return $this; 226 } 227 228 /** 229 * @return string 230 */ 231 public function getProfileId() 232 { 233 return $this->_profileId; 234 } 235 236 /** 237 * @param string $dimension 238 * @return Zend_Gdata_Analytics_DataQuery 239 */ 240 public function addDimension($dimension) 241 { 242 $this->_dimensions[$dimension] = true; 243 return $this; 244 } 245 246 /** 247 * @param string $metric 248 * @return Zend_Gdata_Analytics_DataQuery 249 */ 250 public function addMetric($metric) 251 { 252 $this->_metrics[$metric] = true; 253 return $this; 254 } 255 256 /** 257 * @return array 258 */ 259 public function getDimensions() 260 { 261 return $this->_dimensions; 262 } 263 264 /** 265 * @return array 266 */ 267 public function getMetrics() 268 { 269 return $this->_metrics; 270 } 271 272 /** 273 * @param string $dimension 274 * @return Zend_Gdata_Analytics_DataQuery 275 */ 276 public function removeDimension($dimension) 277 { 278 unset($this->_dimensions[$dimension]); 279 return $this; 280 } 281 /** 282 * @param string $metric 283 * @return Zend_Gdata_Analytics_DataQuery 284 */ 285 public function removeMetric($metric) 286 { 287 unset($this->_metrics[$metric]); 288 return $this; 289 } 290 /** 291 * @param string $value 292 * @return Zend_Gdata_Analytics_DataQuery 293 */ 294 public function setStartDate($date) 295 { 296 $this->setParam("start-date", $date); 297 return $this; 298 } 299 /** 300 * @param string $value 301 * @return Zend_Gdata_Analytics_DataQuery 302 */ 303 public function setEndDate($date) 304 { 305 $this->setParam("end-date", $date); 306 return $this; 307 } 308 309 /** 310 * @param string $filter 311 * @return Zend_Gdata_Analytics_DataQuery 312 */ 313 public function addFilter($filter) 314 { 315 $this->_filters[] = array($filter, true); 316 return $this; 317 } 318 319 /** 320 * @param string $filter 321 * @return Zend_Gdata_Analytics_DataQuery 322 */ 323 public function addOrFilter($filter) 324 { 325 $this->_filters[] = array($filter, false); 326 return $this; 327 } 328 329 /** 330 * @param string $sort 331 * @param boolean[optional] $descending 332 * @return Zend_Gdata_Analytics_DataQuery 333 */ 334 public function addSort($sort, $descending=false) 335 { 336 // add to sort storage 337 $this->_sort[] = ($descending?'-':'').$sort; 338 return $this; 339 } 340 341 /** 342 * @return Zend_Gdata_Analytics_DataQuery 343 */ 344 public function clearSort() 345 { 346 $this->_sort = array(); 347 return $this; 348 } 349 350 /** 351 * @param string $segment 352 * @return Zend_Gdata_Analytics_DataQuery 353 */ 354 public function setSegment($segment) 355 { 356 $this->setParam('segment', $segment); 357 return $this; 358 } 359 360 /** 361 * @return string url 362 */ 363 public function getQueryUrl() 364 { 365 $uri = $this->_defaultFeedUri; 366 if (isset($this->_url)) { 367 $uri = $this->_url; 368 } 369 370 $dimensions = $this->getDimensions(); 371 if (!empty($dimensions)) { 372 $this->setParam('dimensions', implode(",", array_keys($dimensions))); 373 } 374 375 $metrics = $this->getMetrics(); 376 if (!empty($metrics)) { 377 $this->setParam('metrics', implode(",", array_keys($metrics))); 378 } 379 380 // profile id (ga:tableId) 381 if ($this->getProfileId() != null) { 382 $this->setParam('ids', 'ga:'.ltrim($this->getProfileId(), "ga:")); 383 } 384 385 // sorting 386 if ($this->_sort) { 387 $this->setParam('sort', implode(",", $this->_sort)); 388 } 389 390 // filtering 391 $filters = ""; 392 foreach ($this->_filters as $filter) { 393 $filters.=($filter[1]===true?';':',').$filter[0]; 394 } 395 396 if ($filters!="") { 397 $this->setParam('filters', ltrim($filters, ",;")); 398 } 399 400 $uri .= $this->getQueryString(); 401 return $uri; 402 } 403 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |