protected function sendRequest($url, $method = 'GET', $data = null, $force = false) { // if doing a bulk request, store the url if ($this->doBulkRequests && !$force) { $this->storedTrackingActions[] = $url; return true; } if ($method == 'POST') { $requests = array(); foreach ($this->storedTrackingActions as $action) { $requests[] = $this->parseUrl($action); } $testEnvironmentArgs = array(); } else { $testEnvironmentArgs = $this->parseUrl($url); $requests = array($testEnvironmentArgs); } // unset cached values Cache::$trackerCache = null; Tracker::setForceIp(null); Tracker::setForceDateTime(null); // save some values $plugins = Config::getInstance()->Plugins['Plugins']; $oldTrackerConfig = Config::getInstance()->Tracker; \Piwik\Plugin\Manager::getInstance()->unloadPlugins(); // modify config $GLOBALS['PIWIK_TRACKER_MODE'] = true; $GLOBALS['PIWIK_TRACKER_LOCAL_TRACKING'] = true; Tracker::$initTrackerMode = false; Tracker::setTestEnvironment($testEnvironmentArgs, $method); // set language $oldLang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : ''; $_SERVER['HTTP_ACCEPT_LANGUAGE'] = $this->acceptLanguage; // set user agent $oldUserAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $_SERVER['HTTP_USER_AGENT'] = $this->userAgent; // set cookie $oldCookie = $_COOKIE; // parse_str(parse_url($this->requestCookie, PHP_URL_QUERY), $_COOKIE); // do tracking and capture output ob_start(); $localTracker = new Tracker(); $localTracker->main($requests); $output = ob_get_contents(); ob_end_clean(); // restore vars Config::getInstance()->Tracker = $oldTrackerConfig; $_SERVER['HTTP_ACCEPT_LANGUAGE'] = $oldLang; $_SERVER['HTTP_USER_AGENT'] = $oldUserAgent; $_COOKIE = $oldCookie; $GLOBALS['PIWIK_TRACKER_LOCAL_TRACKING'] = false; $GLOBALS['PIWIK_TRACKER_MODE'] = false; unset($_GET['bots']); // reload plugins \Piwik\Plugin\Manager::getInstance()->loadPlugins($plugins); return $output; }
require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Base.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Generic.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Mysql/Generic.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Pgsql/Generic.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Mysql/LogAction.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Pgsql/LogAction.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Mysql/LogVisit.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Pgsql/LogVisit.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Mysql/LogLinkVisitAction.php'; require_once PIWIK_INCLUDE_PATH . '/core/Db/DAO/Pgsql/LogLinkVisitAction.php'; // TODO should move to Tracker application class later. currently needed for environment validation. SettingsServer::setIsTrackerApiRequest(); $environment = new \Piwik\Application\Environment('tracker'); $environment->init(); Tracker::loadTrackerEnvironment(); $tracker = new Tracker(); $requestSet = new RequestSet(); ob_start(); try { $handler = Handler\Factory::make(); $response = $tracker->main($handler, $requestSet); if (!is_null($response)) { echo $response; } } catch (Exception $e) { echo "Error:" . $e->getMessage(); exit(1); } if (ob_get_level() > 1) { ob_end_flush(); }
require_once PIWIK_INCLUDE_PATH . '/core/Filesystem.php'; require_once PIWIK_INCLUDE_PATH . '/core/Cookie.php'; session_cache_limiter('nocache'); @date_default_timezone_set('UTC'); if (!defined('PIWIK_ENABLE_TRACKING') || PIWIK_ENABLE_TRACKING) { ob_start(); } if ($GLOBALS['PIWIK_TRACKER_DEBUG'] === true) { require_once PIWIK_INCLUDE_PATH . '/core/Loader.php'; require_once PIWIK_INCLUDE_PATH . '/core/Error.php'; \Piwik\Error::setErrorHandler(); require_once PIWIK_INCLUDE_PATH . '/core/ExceptionHandler.php'; \Piwik\ExceptionHandler::setUp(); $timer = new Timer(); Common::printDebug("Debug enabled - Input parameters: <br/>" . var_export($_GET, true)); \Piwik\Tracker\Db::enableProfiling(); \Piwik\FrontController::createConfigObject(); } if (!defined('PIWIK_ENABLE_TRACKING') || PIWIK_ENABLE_TRACKING) { $process = new Tracker(); try { $process->main(); } catch (Exception $e) { echo "Error:" . $e->getMessage(); } ob_end_flush(); if ($GLOBALS['PIWIK_TRACKER_DEBUG'] === true) { Common::printDebug($_COOKIE); Common::printDebug($timer); } }