Skip to content
Extraits de code Groupes Projets
piwik.php 1,34 ko
Newer Older
  • Learn to ignore specific revisions
  • <?php
    /**
     *  Proxy to normal piwik.php, but in testing mode
    
     *  - Use the tests database to record Tracking data
    
     *  - Allows to overwrite the Visitor IP, and Server datetime
     *
    
    mattpiwik's avatar
    mattpiwik a validé
    
    
    // Wrapping the request inside ob_start() calls to ensure that the Test
    // calling us waits for the full request to process before unblocking
    
    use Piwik\Plugins\UserCountry\LocationProvider\GeoIp;
    
    use Piwik\Site;
    
    use Piwik\Tracker\Cache;
    
    mattab's avatar
    mattab a validé
    require "./includes.php";
    
    mattab's avatar
    mattab a validé
    ob_start();
    
    
    // Config files forced to use the test database
    // Note that this also provides security for Piwik installs containing tests files: 
    // this proxy will not record any data in the production database.
    
    Config::getInstance()->setTestEnvironment();
    Config::getInstance()->PluginsInstalled['PluginsInstalled'] = array();
    
    mattab's avatar
    mattab a validé
    try {
    
        $trackerPlugins = Config::getInstance()->Plugins_Tracker['Plugins_Tracker'];
    
    mattab's avatar
    mattab a validé
    }catch(Exception $e) {
        $trackerPlugins = array();
    }
    $trackerPlugins[] = 'DevicesDetection';
    
    Config::getInstance()->Plugins_Tracker['Plugins_Tracker'] = $trackerPlugins;
    
    GeoIp::$geoIPDatabaseDir = 'tests/lib/geoip-files';
    
    Manager::getInstance()->deleteAll();
    
    Site::clearCache();
    
    Cache::deleteTrackerCache();
    
    mattpiwik's avatar
    mattpiwik a validé
    include PIWIK_INCLUDE_PATH . '/piwik.php';
    
    ob_end_flush();