コード例 #1
0
ファイル: Http.test.php プロジェクト: nnnnathann/piwik
 public function test_fetchRemoteFile()
 {
     Piwik::createConfigObject();
     Piwik_Config::getInstance()->setTestEnvironment();
     $methods = array('curl', 'fopen', 'socket');
     $this->assertTrue(in_array(Piwik_Http::getTransportMethod(), $methods));
     foreach ($methods as $method) {
         $version = '';
         try {
             $version = Piwik_Http::sendHttpRequestBy($method, 'http://api.piwik.org/1.0/getLatestVersion/', 5);
         } catch (Exception $e) {
             var_dump($e->getMessage());
         }
         $this->assertTrue(preg_match('/^([0-9.]+)$/', $version), $method);
     }
     $destinationPath = PIWIK_USER_PATH . '/tmp/latest/LATEST';
     try {
         Piwik_Http::fetchRemoteFile('http://api.piwik.org/1.0/getLatestVersion/', $destinationPath, 3);
     } catch (Exception $e) {
         var_dump($e->getMessage());
     }
     $this->assertTrue(filesize($destinationPath) > 0);
     $destinationPath = PIWIK_USER_PATH . '/tmp/latest/latest.zip';
     try {
         Piwik_Http::fetchRemoteFile('http://piwik.org/latest.zip', $destinationPath, 3);
     } catch (Exception $e) {
         var_dump($e->getMessage());
     }
     $this->assertTrue(filesize($destinationPath) > 0);
 }
コード例 #2
0
	/**
	 * Check for a newer version
	 *
	 * @param bool $force Force check
	 */
	public static function check($force = false)
	{
		$lastTimeChecked = Piwik_GetOption(self::LAST_TIME_CHECKED);
		if($force || $lastTimeChecked === false
			|| time() - self::CHECK_INTERVAL > $lastTimeChecked )
		{
			// set the time checked first, so that parallel Piwik requests don't all trigger the http requests
			Piwik_SetOption(self::LAST_TIME_CHECKED, time(), $autoload = 1);
			$parameters = array(
				'piwik_version' => Piwik_Version::VERSION,
				'php_version' => PHP_VERSION,
				'url' => Piwik_Url::getCurrentUrlWithoutQueryString(),
				'trigger' => Piwik_Common::getRequestVar('module','','string'),
				'timezone' => Piwik_SitesManager_API::getInstance()->getDefaultTimezone(),
			);

			$url = Zend_Registry::get('config')->General->api_service_url;
			$url .= '/1.0/getLatestVersion/';
			$url .= '?' . http_build_query($parameters, '', '&');
			$timeout = self::SOCKET_TIMEOUT;
			try {
				$latestVersion = Piwik_Http::sendHttpRequest($url, $timeout);
				Piwik_SetOption(self::LATEST_VERSION, $latestVersion);
			} catch(Exception $e) {
				// e.g., disable_functions = fsockopen; allow_url_open = Off
				Piwik_SetOption(self::LATEST_VERSION, '');
			}
		}
	}
コード例 #3
0
ファイル: HttpTest.php プロジェクト: nnnnathann/piwik
 /**
  * @group Core
  * @group Http
  */
 public function testFetchLatestZip()
 {
     $destinationPath = PIWIK_USER_PATH . '/tmp/latest/latest.zip';
     Piwik_Http::fetchRemoteFile('http://piwik.org/latest.zip', $destinationPath, 3);
     $this->assertFileExists($destinationPath);
     $this->assertGreaterThan(0, filesize($destinationPath));
 }
コード例 #4
0
ファイル: RankChecker.php プロジェクト: nomoto-ubicast/piwik
 /**
  * Web service proxy that retrieves the content at the specified URL
  *
  * @param string $url
  * @return string
  */
 private function getPage($url)
 {
     try {
         return str_replace(' ', ' ', Piwik_Http::sendHttpRequest($url, $timeout = 10, @$_SERVER['HTTP_USER_AGENT']));
     } catch (Exception $e) {
         return '';
     }
 }
コード例 #5
0
ファイル: Controller.php プロジェクト: Gninety/Microweber
 private function oneClick_Download()
 {
     $this->pathPiwikZip = PIWIK_USER_PATH . self::PATH_TO_EXTRACT_LATEST_VERSION . 'latest.zip';
     Piwik::checkDirectoriesWritableOrDie(array(self::PATH_TO_EXTRACT_LATEST_VERSION));
     // we catch exceptions in the caller (i.e., oneClickUpdate)
     $url = Zend_Registry::get('config')->General->latest_version_url . '?cb=' . $this->newVersion;
     $fetched = Piwik_Http::fetchRemoteFile($url, $this->pathPiwikZip);
 }
コード例 #6
0
ファイル: Clockwork.php プロジェクト: nnnnathann/piwik
 private function issueApiCall($apiKey, $resource, $additionalParameters = array())
 {
     $accountParameters = array('Key' => $apiKey);
     $parameters = array_merge($accountParameters, $additionalParameters);
     $url = self::BASE_API_URL . $resource . '?' . http_build_query($parameters, '', '&');
     $timeout = self::SOCKET_TIMEOUT;
     $result = Piwik_Http::sendHttpRequestBy(Piwik_Http::getTransportMethod(), $url, $timeout, $userAgent = null, $destinationPath = null, $file = null, $followDepth = 0, $acceptLanguage = false, $acceptInvalidSslCertificate = true);
     if (strpos($result, self::ERROR_STRING) !== false) {
         throw new Piwik_MobileMessaging_APIException('Clockwork API returned the following error message : ' . $result);
     }
     return $result;
 }
コード例 #7
0
ファイル: NoVisitTest.php プロジェクト: nnnnathann/piwik
 protected static function trackVisits()
 {
     $dateTime = self::$dateTime;
     $idSite = self::$idSite;
     /*
        // Trigger invalid website
        $trackerInvalidWebsite = self::getTracker($idSiteFake = 0, $dateTime, $defaultInit = true);
        $response = Piwik_Http::fetchRemoteFile($trackerInvalidWebsite->getUrlTrackPageView());
        self::assertTrue(strpos($response, 'Invalid idSite') !== false, 'invalid website ID');
     
        // Trigger wrong website
        $trackerWrongWebsite = self::getTracker($idSiteFake = 33, $dateTime, $defaultInit = true);
        $response = Piwik_Http::fetchRemoteFile($trackerWrongWebsite->getUrlTrackPageView());
        self::assertTrue(strpos($response, 'The requested website id = 33 couldn\'t be found') !== false, 'non-existent website ID');
     */
     // Trigger empty request
     $trackerUrl = self::getTrackerUrl();
     $response = Piwik_Http::fetchRemoteFile($trackerUrl);
     self::assertTrue(strpos($response, 'is a free open source web') !== false, 'Piwik empty request response not correct: ' . $response);
     $t = self::getTracker($idSite, $dateTime, $defaultInit = true);
     // test GoogleBot UA visitor
     $t->setUserAgent('Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)');
     self::checkResponse($t->doTrackPageView('bot visit, please do not record'));
     // Test IP Exclusion works with or without IP exclusion
     foreach (array(false, true) as $enable) {
         // Enable IP Anonymization
         $t->DEBUG_APPEND_URL = '&forceIpAnonymization=' . (int) $enable;
         // test with excluded IP
         $t->setUserAgent('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)');
         // restore normal user agent
         $excludedIp = '154.1.12.34';
         Piwik_SitesManager_API::getInstance()->updateSite($idSite, 'new site name', $url = array('http://site.com'), $ecommerce = 0, $excludedIp . ',1.2.3.4');
         $t->setIp($excludedIp);
         self::checkResponse($t->doTrackPageView('visit from IP excluded'));
         // test with global list of excluded IPs
         $excludedIpBis = '145.5.3.4';
         Piwik_SitesManager_API::getInstance()->setGlobalExcludedIps($excludedIpBis);
         $t->setIp($excludedIpBis);
         self::checkResponse($t->doTrackPageView('visit from IP globally excluded'));
     }
     try {
         @$t->setAttributionInfo(array());
         self::fail();
     } catch (Exception $e) {
     }
     try {
         $t->setAttributionInfo(json_encode('test'));
         self::fail();
     } catch (Exception $e) {
     }
     $t->setAttributionInfo(json_encode(array()));
 }
コード例 #8
0
ファイル: php.php プロジェクト: BackupTheBerlios/oos-svn
	function _retrieveCurrentValue() {
		$this->current_value = PHP_VERSION;

		$url = 'http://php.net/releases/?serialize=1&version=5';
		$timeout = Piwik_UpdateCheck::SOCKET_TIMEOUT;
		try {
			$latestVersion = Piwik_Http::sendHttpRequest($url, $timeout);
			$versionInfo = safe_unserialize($latestVersion);
			$this->recommended_value = $versionInfo['version'];
		} catch(Exception $e) {
			$this->recommended_value = '';
		}
	}
コード例 #9
0
ファイル: UpdateCheck.php プロジェクト: nnnnathann/piwik
 /**
  * Check for a newer version
  *
  * @param bool  $force  Force check
  */
 public static function check($force = false)
 {
     $lastTimeChecked = Piwik_GetOption(self::LAST_TIME_CHECKED);
     if ($force || $lastTimeChecked === false || time() - self::CHECK_INTERVAL > $lastTimeChecked) {
         // set the time checked first, so that parallel Piwik requests don't all trigger the http requests
         Piwik_SetOption(self::LAST_TIME_CHECKED, time(), $autoload = 1);
         $parameters = array('piwik_version' => Piwik_Version::VERSION, 'php_version' => PHP_VERSION, 'url' => Piwik_Url::getCurrentUrlWithoutQueryString(), 'trigger' => Piwik_Common::getRequestVar('module', '', 'string'), 'timezone' => Piwik_SitesManager_API::getInstance()->getDefaultTimezone());
         $url = Piwik_Config::getInstance()->General['api_service_url'] . '/1.0/getLatestVersion/' . '?' . http_build_query($parameters, '', '&');
         $timeout = self::SOCKET_TIMEOUT;
         if (@Piwik_Config::getInstance()->Debug['allow_upgrades_to_beta']) {
             $url = 'http://builds.piwik.org/LATEST_BETA';
         }
         try {
             $latestVersion = Piwik_Http::sendHttpRequest($url, $timeout);
             if (!preg_match('~^[0-9][0-9a-zA-Z_.-]*$~D', $latestVersion)) {
                 $latestVersion = '';
             }
         } catch (Exception $e) {
             // e.g., disable_functions = fsockopen; allow_url_open = Off
             $latestVersion = '';
         }
         Piwik_SetOption(self::LATEST_VERSION, $latestVersion);
     }
 }
コード例 #10
0
	/**
	 * Get system information
	 */
	public static function getSystemInformation()
	{
		global $piwik_minimumPHPVersion;
		$minimumMemoryLimit = Zend_Registry::get('config')->General->minimum_memory_limit;

		$infos = array();

		$infos['general_infos'] = array();
		$infos['directories'] = Piwik::checkDirectoriesWritable();
		$infos['can_auto_update'] = Piwik::canAutoUpdate();
		
		if(Piwik_Common::isIIS())
		{
			Piwik::createWebConfigFiles();
		}
		else
		{
			Piwik::createHtAccessFiles();
		}
		Piwik::createWebRootFiles();

		$infos['phpVersion_minimum'] = $piwik_minimumPHPVersion;
		$infos['phpVersion'] = PHP_VERSION;
		$infos['phpVersion_ok'] = version_compare( $piwik_minimumPHPVersion, $infos['phpVersion']) === -1;

		// critical errors
		$extensions = @get_loaded_extensions();
		$needed_extensions = array(
			'zlib',
			'SPL',
			'iconv',
			'Reflection',
		);
		$infos['needed_extensions'] = $needed_extensions;
		$infos['missing_extensions'] = array();
		foreach($needed_extensions as $needed_extension)
		{
			if(!in_array($needed_extension, $extensions))
			{
				$infos['missing_extensions'][] = $needed_extension;
			}
		}

		$infos['pdo_ok'] = false;
		if(in_array('PDO', $extensions))
		{
			$infos['pdo_ok'] = true;
		}

		$infos['adapters'] = Piwik_Db_Adapter::getAdapters();

		$needed_functions = array(
			'debug_backtrace',
			'create_function',
			'eval',
			'gzcompress',
			'gzuncompress',
			'pack',
		);
		$infos['needed_functions'] = $needed_functions;
		$infos['missing_functions'] = array();
		foreach($needed_functions as $needed_function)
		{
			if(!self::functionExists($needed_function))
			{
				$infos['missing_functions'][] = $needed_function;
			}
		}

		// warnings
		$desired_extensions = array(
			'json',
			'libxml',
			'dom',
			'SimpleXML',
		);
		$infos['desired_extensions'] = $desired_extensions;
		$infos['missing_desired_extensions'] = array();
		foreach($desired_extensions as $desired_extension)
		{
			if(!in_array($desired_extension, $extensions))
			{
				$infos['missing_desired_extensions'][] = $desired_extension;
			}
		}

		$desired_functions = array(
			'set_time_limit',
			'mail',
			'parse_ini_file',
			'glob',
		);
		$infos['desired_functions'] = $desired_functions;
		$infos['missing_desired_functions'] = array();
		foreach($desired_functions as $desired_function)
		{
			if(!self::functionExists($desired_function))
			{
				$infos['missing_desired_functions'][] = $desired_function;
			}
		}

		$infos['openurl'] = Piwik_Http::getTransportMethod();

		$infos['gd_ok'] = false;
		if (in_array('gd', $extensions))
		{
			$gdInfo = gd_info();
			$infos['gd_version'] = $gdInfo['GD Version'];
			preg_match('/([0-9]{1})/', $gdInfo['GD Version'], $gdVersion);
			if($gdVersion[0] >= 2)
			{
				$infos['gd_ok'] = true;
			}
		}

		$infos['hasMbstring'] = false;
		$infos['multibyte_ok'] = true;
		if(function_exists('mb_internal_encoding'))
		{
			$infos['hasMbstring'] = true;
			if (((int) ini_get('mbstring.func_overload')) != 0)
			{
				$infos['multibyte_ok'] = false;
			}
		}

		$serverSoftware = isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : '';
		$infos['serverVersion'] = addslashes($serverSoftware);
		$infos['serverOs'] = @php_uname();
		$infos['serverTime'] = date('H:i:s');

		$infos['registerGlobals_ok'] = ini_get('register_globals') == 0;
		$infos['memoryMinimum'] = $minimumMemoryLimit;

		$infos['memory_ok'] = true;
		$infos['memoryCurrent'] = '';

		$raised = Piwik::raiseMemoryLimitIfNecessary();
		if(($memoryValue = Piwik::getMemoryLimitValue()) > 0)
		{
			$infos['memoryCurrent'] = $memoryValue.'M';
			$infos['memory_ok'] = $memoryValue >= $minimumMemoryLimit;
		}

		$infos['isWindows'] = Piwik_Common::isWindows();

		$integrityInfo = Piwik::getFileIntegrityInformation();
		$infos['integrity'] = $integrityInfo[0];
		
		$infos['integrityErrorMessages'] = array();
		if(isset($integrityInfo[1]))
		{
			if($infos['integrity'] == false)
			{
				$infos['integrityErrorMessages'][] = '<b>'.Piwik_Translate('General_FileIntegrityWarningExplanation').'</b>';
			}
			$infos['integrityErrorMessages'] = array_merge($infos['integrityErrorMessages'], array_slice($integrityInfo, 1));
		}

		$infos['timezone'] = Piwik::isTimezoneSupportEnabled();

		$infos['tracker_status'] = Piwik_Common::getRequestVar('trackerStatus', 0, 'int');

		$infos['protocol'] = Piwik_ProxyHeaders::getProtocolInformation();
		if(Piwik_Url::getCurrentScheme() == 'http' && $infos['protocol'] !== null)
		{
			$infos['general_infos']['secure_protocol'] = '1';
		}
		if(count($headers = Piwik_ProxyHeaders::getProxyClientHeaders()) > 0)
		{
			$infos['general_infos']['proxy_client_headers'] = $headers;
		}
		if(count($headers = Piwik_ProxyHeaders::getProxyHostHeaders()) > 0)
		{
			$infos['general_infos']['proxy_host_headers'] = $headers;
		}

		return $infos;
	}
コード例 #11
0
ファイル: archive.php プロジェクト: nomoto-ubicast/piwik
 /**
  * Issues a request to $url
  */
 protected function request($url)
 {
     $url = $this->piwikUrl . $url . $this->requestPrepend;
     //$this->log($url);
     try {
         $response = Piwik_Http::sendHttpRequestBy('curl', $url, $timeout = 300, $userAgent = null, $destinationPath = null, $file = null, $followDepth = 0, $acceptLanguage = false, $acceptInvalidSSLCertificate = $this->acceptInvalidSSLCertificate);
     } catch (Exception $e) {
         return $this->logNetworkError($url, $e->getMessage());
     }
     if ($this->checkResponse($response, $url)) {
         return $response;
     }
     return false;
 }
コード例 #12
0
ファイル: Controller.php プロジェクト: nnnnathann/piwik
 private function generateVisits($time = false, $idSite = 1)
 {
     $logs = $this->getAccessLog();
     if (empty($time)) {
         $time = time();
     }
     $date = date("Y-m-d", $time);
     $acceptLanguages = array("el,fi;q=0.5", "de-de,de;q=0.8,en-us", "pl,en-us;q=0.7,en;q=", "zh-cn", "fr-ca", "en-us", "en-gb", "fr-be", "fr,de-ch;q=0.5", "fr", "fr-ch", "fr");
     $prefix = Piwik_Url::getCurrentUrlWithoutFileName() . "piwik.php";
     $count = 0;
     foreach ($logs as $log) {
         if (!preg_match('/^(\\S+) \\S+ \\S+ \\[(.*?)\\] "GET (\\S+.*?)" \\d+ \\d+ "(.*?)" "(.*?)"/', $log, $m)) {
             continue;
         }
         $ip = $m[1];
         $time = $m[2];
         $url = $m[3];
         $referrer = $m[4];
         $ua = $m[5];
         $start = strpos($url, 'piwik.php?') + strlen('piwik.php?');
         $url = substr($url, $start, strrpos($url, " ") - $start);
         $datetime = $date . " " . Piwik_Date::factory($time)->toString("H:i:s");
         $ip = strlen($ip) < 10 ? "13.5.111.3" : $ip;
         // Force date/ip & authenticate
         $url .= "&cdt=" . urlencode($datetime);
         if (strpos($url, 'cip') === false) {
             $url .= "&cip=" . $ip;
         }
         $url .= "&token_auth=" . Piwik::getCurrentUserTokenAuth();
         $url = $prefix . "?" . $url;
         // Make order IDs unique per day
         $url = str_replace("ec_id=", "ec_id={$date}-", $url);
         // Disable provider plugin
         $url .= "&dp=1";
         // Replace idsite
         $url = preg_replace("/idsite=[0-9]+/", "idsite={$idSite}", $url);
         $acceptLanguage = $acceptLanguages[$count % count($acceptLanguages)];
         if ($output = Piwik_Http::sendHttpRequest($url, $timeout = 5, $ua, $path = null, $follow = 0, $acceptLanguage)) {
             //				var_dump($output);
             $count++;
         }
         //			echo "IP=". $ip; echo "<br>";
         //			echo "Date=". $datetime; echo "<br>";
         //			echo "URL=". $url; echo "<br>";
         //			echo "Referrer=". $referrer; echo "<br>";
         //			echo "UserAgent=". $ua; echo "<br>";
         //			echo "<hr>";
         //			var_dump($url);
         if ($count == 2) {
             //				return $count;
         }
     }
     return $count;
 }
コード例 #13
0
 /**
  * Returns array of counts and images based on Feedburner URI
  * 
  * @param string $uri
  * @return array()
  */
 protected function getFeedData($uri)
 {
     // Awareness API only supports yesterday and back;
     // we get stats for previous two days;
     // @see http://code.google.com/apis/feedburner/awareness_api.html#dates
     $yesterday = Piwik_Date::factory('-1 day', 'America/Los_Angeles');
     $beforeYesterday = Piwik_Date::factory('-2 day', 'America/Los_Angeles');
     //create url to gather XML feed from
     $url = 'https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=' . $uri . '&dates=' . $beforeYesterday->toString() . ',' . $yesterday->toString();
     $data = '';
     try {
         $data = Piwik_Http::sendHttpRequest($url, 5);
         // Feedburner errors are malformed
         if (strpos($data, 'The server encountered a temporary error') !== false) {
             throw new Exception('Unexpected Feedburner response');
         }
         $xml = new SimpleXMLElement($data);
     } catch (Exception $e) {
         return "Error parsing the data for feed <a href='http://feeds.feedburner.com/{$uri}' target='_blank'>{$uri}</a>. Fetched data was: \n'" . $data . "'";
     }
     if (count($xml->feed->entry) != 2) {
         return "Feedburner stats didn't return as expected. \n" . strip_tags($data);
     }
     $data = array();
     $i = 0;
     foreach ($xml->feed->entry as $feedDay) {
         $data[0][$i] = (int) $feedDay['circulation'];
         $data[1][$i] = (int) $feedDay['hits'];
         $data[2][$i] = (int) $feedDay['reach'];
         $i++;
     }
     foreach ($data as $key => $value) {
         if ($value[0] == $value[1]) {
             $img = 'stop.png';
         } else {
             if ($value[0] < $value[1]) {
                 $img = 'arrow_up.png';
             } else {
                 $img = 'arrow_down.png';
             }
         }
         $prefixImage = '<img alt="" src="./plugins/MultiSites/images/';
         $suffixImage = '" />';
         $data[$key][2] = $prefixImage . $img . $suffixImage;
     }
     return $data;
 }
コード例 #14
0
	/**
	 * "Application" tests should pretty much be always testable, so the default is just to return true
	 * 
	 * @return boolean
	 */
	function isTestable() {
		return Piwik_Http::getTransportMethod() !== null;
	}
コード例 #15
0
 /**
  * Kollektionen werden an Kollektions-idSites weitergeleitet und f�llen ihre eigene Statistik.
  * @param unknown_type $notification
  */
 public function redirectCollections($notification)
 {
     try {
         if ($tmp = Piwik_Common::getRequestVar("colacnt", "false", "string") == "true") {
             return;
         }
         $openedurl = Piwik_Common::getRequestVar("url");
         $collections = $this->getCollectionsForURL($openedurl);
         if ($collections == null || count($collections) < 1) {
             return;
         }
         require_once PIWIK_INCLUDE_PATH . '/core/Loader.php';
         $murl = $this->curPageURL();
         $ua = $_SERVER["HTTP_USER_AGENT"];
         $acceptLanguage = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
         foreach ($collections as $c) {
             $idSite = Piwik_FetchOne("SELECT idSite FROM " . Piwik_Common::prefixTable("site_collections") . " WHERE cID = ?", $c);
             $name = "(Kollektion) " . getCollectionNames($c);
             //Kollektion hat noch keine idSite! -> wird erstellt
             if (!is_numeric($idSite)) {
                 Piwik_Query("INSERT INTO " . Piwik_Common::prefixTable("site") . " (idsite, name, main_url, ts_created, timezone, currency, excluded_ips, excluded_parameters, `group`) " . "VALUES('', ?, ?, NOW(), 'Europe/Berlin', 'EUR', '', '', 'Digitale Kollektionen')", array($name, "slub-dresden.de"));
                 $idSite = Piwik_FetchOne("SELECT LAST_INSERT_ID() FROM " . Piwik_Common::prefixTable("site"));
                 Piwik_Query("INSERT INTO " . Piwik_Common::prefixTable("site_collections") . " (ID, cID, idSite) VALUES ('', ?, ?)", array($c, $idSite));
             }
             //idSite zur Kollektion wurde gel�scht! -> neu erstellen
             if (Piwik_FetchOne("SELECT COUNT(idsite) FROM " . Piwik_Common::prefixTable("site") . " WHERE idsite = ?", $idSite) == 0) {
                 Piwik_Query("INSERT INTO " . Piwik_Common::prefixTable("site") . " (idsite, name, main_url, ts_created, timezone, currency, excluded_ips, excluded_parameters, `group`) " . "VALUES(?, ?, ?, NOW(), 'Europe/Berlin', 'EUR', '', '', 'Digitale Kollektionen')", array($idSite, $name, "slub-dresden.de"));
             }
             $url = preg_replace("/idsite=[0-9]+/", "idsite=" . $idSite, $murl);
             // Erneute Kollektionsweiterleitung verhindern
             $url .= "&colacnt=true";
             // Disable provider plugin
             $url .= "&dp=1";
             Piwik_Http::sendHttpRequest($url, 5, $ua, null, 0, $acceptLanguage);
         }
     } catch (Exception $e) {
         $this->clog("redirectCollections-Error: " . $e->getMessage());
     }
 }