コード例 #1
0
ファイル: Action.php プロジェクト: BackupTheBerlios/oos-svn
	static public function excludeQueryParametersFromUrl($originalUrl, $idSite)
	{
		$website = Piwik_Common::getCacheWebsiteAttributes( $idSite );
		$originalUrl = Piwik_Common::unsanitizeInputValue($originalUrl);
		$originalUrl = self::cleanupString($originalUrl);
		$parsedUrl = @parse_url($originalUrl);
		if(empty($parsedUrl['query']))
		{
			return $originalUrl;
		}
		$campaignTrackingParameters = Piwik_Common::getCampaignParameters();
		
		$campaignTrackingParameters = array_merge(
				$campaignTrackingParameters[0], // campaign name parameters
				$campaignTrackingParameters[1] // campaign keyword parameters
		);	
				
		$excludedParameters = isset($website['excluded_parameters']) 
									? $website['excluded_parameters'] 
									: array();
									
		$parametersToExclude = array_merge( $excludedParameters, 
											self::$queryParametersToExclude,
											$campaignTrackingParameters);
											
		$parametersToExclude = array_map('strtolower', $parametersToExclude);
		$queryParameters = Piwik_Common::getArrayFromQueryString($parsedUrl['query']);
		
		$validQuery = '';
		$separator = '&';
		foreach($queryParameters as $name => $value)
		{
			if(!in_array(strtolower($name), $parametersToExclude))
			{
				if (is_array($value))
				{
					foreach ($value as $param)
					{
						if($param === false)
						{
							$validQuery .= $name.'[]'.$separator;
						}
						else
						{
							$validQuery .= $name.'[]='.$param.$separator;
						}
					}
				}
				else if($value === false)
				{
					$validQuery .= $name.$separator;
				}
				else
				{
					$validQuery .= $name.'='.$value.$separator;
				}
			}
		}
		$parsedUrl['query'] = substr($validQuery,0,-strlen($separator));
		$url = Piwik_Common::getParseUrlReverse($parsedUrl);
		printDebug('Excluding parameters "'.implode(',',$excludedParameters).'" from URL');
		if($originalUrl != $url)
		{
			printDebug(' Before was "'.$originalUrl.'"');
			printDebug(' After is "'.$url.'"');
		}
		return $url;
	}
コード例 #2
0
ファイル: Visit.php プロジェクト: Gninety/Microweber
 protected function detectRefererCampaign()
 {
     if (isset($this->currentUrlParse['query'])) {
         $campaignParameters = Piwik_Common::getCampaignParameters();
         $campaignNames = $campaignParameters[0];
         foreach ($campaignNames as $campaignNameParameter) {
             $campaignName = Piwik_Common::getParameterFromQueryString($this->currentUrlParse['query'], $campaignNameParameter);
             if (!empty($campaignName)) {
                 break;
             }
         }
         if (!empty($campaignName)) {
             $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_CAMPAIGN;
             $this->nameRefererAnalyzed = $campaignName;
             $campaignKeywords = $campaignParameters[1];
             foreach ($campaignKeywords as $campaignKeywordParameter) {
                 $campaignKeyword = Piwik_Common::getParameterFromQueryString($this->currentUrlParse['query'], $campaignKeywordParameter);
                 if (!empty($campaignKeyword)) {
                     $this->keywordRefererAnalyzed = $campaignKeyword;
                     break;
                 }
             }
             return true;
         }
     }
     return false;
 }
コード例 #3
0
ファイル: Visit.php プロジェクト: nnnnathann/piwik
 /**
  * Campaign analysis
  * @return bool
  */
 protected function detectRefererCampaign()
 {
     if (!isset($this->currentUrlParse['query']) && !isset($this->currentUrlParse['fragment'])) {
         return false;
     }
     $campaignParameters = Piwik_Common::getCampaignParameters();
     $this->campaignNames = $campaignParameters[0];
     $this->campaignKeywords = $campaignParameters[1];
     $found = false;
     // 1) Detect campaign from query string
     if (isset($this->currentUrlParse['query'])) {
         $found = $this->detectCampaignFromString($this->currentUrlParse['query']);
     }
     // 2) Detect from fragment #hash
     if (!$found && isset($this->currentUrlParse['fragment'])) {
         $found = $this->detectCampaignFromString($this->currentUrlParse['fragment']);
     }
     return $found;
 }
コード例 #4
0
ファイル: Action.php プロジェクト: nomoto-ubicast/piwik
 /**
  * Returns the array of parameters names that must be excluded from the Query String in all tracked URLs
  * @static
  * @param $idSite
  * @return array
  */
 public static function getQueryParametersToExclude($idSite)
 {
     $campaignTrackingParameters = Piwik_Common::getCampaignParameters();
     $campaignTrackingParameters = array_merge($campaignTrackingParameters[0], $campaignTrackingParameters[1]);
     $website = Piwik_Common::getCacheWebsiteAttributes($idSite);
     $excludedParameters = isset($website['excluded_parameters']) ? $website['excluded_parameters'] : array();
     if (!empty($excludedParameters)) {
         printDebug('Excluding parameters "' . implode(',', $excludedParameters) . '" from URL');
     }
     $parametersToExclude = array_merge($excludedParameters, self::$queryParametersToExclude, $campaignTrackingParameters);
     $parametersToExclude = array_map('strtolower', $parametersToExclude);
     return $parametersToExclude;
 }