diff options
author | robocoder <anthon.pang@gmail.com> | 2012-03-05 02:04:41 +0400 |
---|---|---|
committer | robocoder <anthon.pang@gmail.com> | 2012-03-05 02:04:41 +0400 |
commit | 884e54cf378bffdea2dd5360af8a260b25352746 (patch) | |
tree | 83fe77732234c1c3e858501ab9ab200989732df1 /plugins | |
parent | 775978937e1e393ba764968d5d41f261b488b8a8 (diff) |
refs #1713 - merge dev branch to trunk (config class refactoring)
git-svn-id: http://dev.piwik.org/svn/trunk@5951 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'plugins')
31 files changed, 402 insertions, 392 deletions
diff --git a/plugins/API/API.php b/plugins/API/API.php index 56f000a08c..620357102c 100644 --- a/plugins/API/API.php +++ b/plugins/API/API.php @@ -358,7 +358,7 @@ class Piwik_API_API public function getLogoUrl($pathOnly=false) { $logo = 'themes/default/images/logo.png'; - if(Zend_Registry::get('config')->branding->use_custom_logo == 1 + if(Piwik_Config::getInstance()->branding['use_custom_logo'] == 1 && file_exists(Piwik_Common::getPathToPiwikRoot() .'/themes/logo.png')) { $logo = 'themes/logo.png'; @@ -378,7 +378,7 @@ class Piwik_API_API public function getHeaderLogoUrl($pathOnly=false) { $logo = 'themes/default/images/logo-header.png'; - if(Zend_Registry::get('config')->branding->use_custom_logo == 1 + if(Piwik_Config::getInstance()->branding['use_custom_logo'] == 1 && file_exists(Piwik_Common::getPathToPiwikRoot() .'/themes/logo-header.png')) { $logo = 'themes/logo-header.png'; diff --git a/plugins/API/Controller.php b/plugins/API/Controller.php index 06c9ec6563..163003fa65 100644 --- a/plugins/API/Controller.php +++ b/plugins/API/Controller.php @@ -21,7 +21,7 @@ class Piwik_API_Controller extends Piwik_Controller // when calling the API through http, we limit the number of returned results if(!isset($_GET['filter_limit'])) { - $_GET['filter_limit'] = Zend_Registry::get('config')->General->API_datatable_default_limit; + $_GET['filter_limit'] = Piwik_Config::getInstance()->General['API_datatable_default_limit']; } $request = new Piwik_API_Request('token_auth='.Piwik_Common::getRequestVar('token_auth', 'anonymous', 'string')); echo $request->process(); diff --git a/plugins/Actions/Actions.php b/plugins/Actions/Actions.php index 08d3c942ad..865b28db5d 100644 --- a/plugins/Actions/Actions.php +++ b/plugins/Actions/Actions.php @@ -367,21 +367,21 @@ class Piwik_Actions extends Piwik_Plugin public function __construct() { // for BC, we read the old style delimiter first (see #1067) - $actionDelimiter = Zend_Registry::get('config')->General->action_category_delimiter; + $actionDelimiter = @Piwik_Config::getInstance()->General['action_category_delimiter']; if(empty($actionDelimiter)) { - self::$actionUrlCategoryDelimiter = Zend_Registry::get('config')->General->action_url_category_delimiter; - self::$actionTitleCategoryDelimiter = Zend_Registry::get('config')->General->action_title_category_delimiter; + self::$actionUrlCategoryDelimiter = Piwik_Config::getInstance()->General['action_url_category_delimiter']; + self::$actionTitleCategoryDelimiter = Piwik_Config::getInstance()->General['action_title_category_delimiter']; } else { self::$actionUrlCategoryDelimiter = self::$actionTitleCategoryDelimiter = $actionDelimiter; } - self::$defaultActionName = Zend_Registry::get('config')->General->action_default_name; + self::$defaultActionName = Piwik_Config::getInstance()->General['action_default_name']; $this->columnToSortByBeforeTruncation = Piwik_Archive::INDEX_NB_VISITS; - $this->maximumRowsInDataTableLevelZero = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_actions; - $this->maximumRowsInSubDataTable = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_subtable_actions; + $this->maximumRowsInDataTableLevelZero = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_actions']; + $this->maximumRowsInSubDataTable = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_subtable_actions']; } function archivePeriod( $notification ) diff --git a/plugins/Actions/tests/Actions.test.php b/plugins/Actions/tests/Actions.test.php index 607676a157..8deefaadeb 100644 --- a/plugins/Actions/tests/Actions.test.php +++ b/plugins/Actions/tests/Actions.test.php @@ -6,7 +6,6 @@ if(!defined('PIWIK_CONFIG_TEST_INCLUDED')) require_once 'Actions/Actions.php'; require_once 'Tracker/Action.php'; -require_once 'Tracker/Config.php'; class Test_Piwik_Actions extends UnitTestCase { @@ -15,14 +14,14 @@ class Test_Piwik_Actions extends UnitTestCase { $userFile = PIWIK_INCLUDE_PATH . '/tests/resources/plugins/Actions/Actions.config.ini.php'; Piwik::createConfigObject($userFile); - Piwik_Translate::getInstance()->loadEnglishTranslation(); - Zend_Registry::get('config')->setTestEnvironment(); + Piwik_Translate::getInstance()->loadEnglishTranslation(); + Piwik_Config::getInstance()->setTestEnvironment(); } function tearDown() { Piwik::createConfigObject(); - Zend_Registry::get('config')->setTestEnvironment(); + Piwik_Config::getInstance()->setTestEnvironment(); } function test_getActionExplodedNames() diff --git a/plugins/AnonymizeIP/AnonymizeIP.php b/plugins/AnonymizeIP/AnonymizeIP.php index 821c5efac2..8b0f7c8b9c 100644 --- a/plugins/AnonymizeIP/AnonymizeIP.php +++ b/plugins/AnonymizeIP/AnonymizeIP.php @@ -69,7 +69,6 @@ class Piwik_AnonymizeIP extends Piwik_Plugin function setVisitorIpAddress($notification) { $ip =& $notification->getNotificationObject(); - $ip = self::applyIPMask($ip, Piwik_Tracker_Config::getInstance()->Tracker['ip_address_mask_length']); + $ip = self::applyIPMask($ip, Piwik_Config::getInstance()->Tracker['ip_address_mask_length']); } - } diff --git a/plugins/CoreAdminHome/Controller.php b/plugins/CoreAdminHome/Controller.php index fb48bc8866..b2a354b4a8 100644 --- a/plugins/CoreAdminHome/Controller.php +++ b/plugins/CoreAdminHome/Controller.php @@ -16,9 +16,9 @@ */ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin { - const LOGO_HEIGHT = 300; - const LOGO_SMALL_HEIGHT = 100; - + const LOGO_HEIGHT = 300; + const LOGO_SMALL_HEIGHT = 100; + public function index() { return $this->redirectToIndex('UsersManager', 'userSettings'); @@ -31,32 +31,32 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin if(Piwik::isUserIsSuperUser()) { - $enableBrowserTriggerArchiving = Piwik_ArchiveProcessing::isBrowserTriggerArchivingEnabled(); - $todayArchiveTimeToLive = Piwik_ArchiveProcessing::getTodayArchiveTimeToLive(); - $showWarningCron = false; - if(!$enableBrowserTriggerArchiving - && $todayArchiveTimeToLive < 3600) - { - $showWarningCron = true; - } - $view->showWarningCron = $showWarningCron; - $view->todayArchiveTimeToLive = $todayArchiveTimeToLive; - $view->enableBrowserTriggerArchiving = $enableBrowserTriggerArchiving; - - if(!Zend_Registry::get('config')->isFileWritable()) - { - $view->configFileNotWritable = true; - } - $view->mail = Zend_Registry::get('config')->mail->toArray(); + $enableBrowserTriggerArchiving = Piwik_ArchiveProcessing::isBrowserTriggerArchivingEnabled(); + $todayArchiveTimeToLive = Piwik_ArchiveProcessing::getTodayArchiveTimeToLive(); + $showWarningCron = false; + if(!$enableBrowserTriggerArchiving + && $todayArchiveTimeToLive < 3600) + { + $showWarningCron = true; + } + $view->showWarningCron = $showWarningCron; + $view->todayArchiveTimeToLive = $todayArchiveTimeToLive; + $view->enableBrowserTriggerArchiving = $enableBrowserTriggerArchiving; + + if(!Piwik_Config::getInstance()->isFileWritable()) + { + $view->configFileNotWritable = true; + } + $view->mail = Piwik_Config::getInstance()->mail; - $view->branding = Zend_Registry::get('config')->branding->toArray(); + $view->branding = Piwik_Config::getInstance()->branding; $directoryWritable = is_writable(PIWIK_DOCUMENT_ROOT.'/themes/'); $logoFilesWriteable = is_writeable(PIWIK_DOCUMENT_ROOT.'/themes/logo.png') && is_writeable(PIWIK_DOCUMENT_ROOT.'/themes/logo-header.png'); $view->logosWriteable = ($logoFilesWriteable || $directoryWritable) && ini_get('file_uploads') == 1; } - $view->language = Piwik_LanguagesManager::getLanguageCodeForCurrentUser(); + $view->language = Piwik_LanguagesManager::getLanguageCodeForCurrentUser(); $this->setBasicVariablesView($view); $view->topMenu = Piwik_GetTopMenu(); $view->menu = Piwik_GetAdminMenu(); @@ -68,28 +68,26 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin Piwik::checkUserIsSuperUser(); $response = new Piwik_API_ResponseBuilder(Piwik_Common::getRequestVar('format')); try { - $this->checkTokenInUrl(); - $enableBrowserTriggerArchiving = Piwik_Common::getRequestVar('enableBrowserTriggerArchiving'); - $todayArchiveTimeToLive = Piwik_Common::getRequestVar('todayArchiveTimeToLive'); + $this->checkTokenInUrl(); + $enableBrowserTriggerArchiving = Piwik_Common::getRequestVar('enableBrowserTriggerArchiving'); + $todayArchiveTimeToLive = Piwik_Common::getRequestVar('todayArchiveTimeToLive'); - Piwik_ArchiveProcessing::setBrowserTriggerArchiving((bool)$enableBrowserTriggerArchiving); - Piwik_ArchiveProcessing::setTodayArchiveTimeToLive($todayArchiveTimeToLive); - - // Update email settings - $mail = Zend_Registry::get('config')->mail; - $mail->transport = (Piwik_Common::getRequestVar('mailUseSmtp') == '1') ? 'smtp' : ''; - $mail->port = Piwik_Common::getRequestVar('mailPort', ''); - $mail->host = Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('mailHost', '')); - $mail->type = Piwik_Common::getRequestVar('mailType', ''); - $mail->username = Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('mailUsername', '')); - $mail->password = Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('mailPassword', '')); - $mail->encryption = Piwik_Common::getRequestVar('mailEncryption', ''); - Zend_Registry::get('config')->mail = $mail->toArray(); + Piwik_ArchiveProcessing::setBrowserTriggerArchiving((bool)$enableBrowserTriggerArchiving); + Piwik_ArchiveProcessing::setTodayArchiveTimeToLive($todayArchiveTimeToLive); + + // Update email settings + $mail = array(); + $mail['transport'] = (Piwik_Common::getRequestVar('mailUseSmtp') == '1') ? 'smtp' : ''; + $mail['port'] = Piwik_Common::getRequestVar('mailPort', ''); + $mail['host'] = Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('mailHost', '')); + $mail['type'] = Piwik_Common::getRequestVar('mailType', ''); + $mail['username'] = Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('mailUsername', '')); + $mail['password'] = Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('mailPassword', '')); + $mail['encryption'] = Piwik_Common::getRequestVar('mailEncryption', ''); + Piwik_Config_Writer::getInstance()->mail = $mail; // update branding settings - $branding = Zend_Registry::get('config')->branding; - $branding->use_custom_logo = Piwik_Common::getRequestVar('useCustomLogo', '0'); - Zend_Registry::get('config')->branding = $branding->toArray(); + Piwik_Config_Writer::getInstance()->branding['use_custom_logo'] = Piwik_Common::getRequestVar('useCustomLogo', '0'); $toReturn = $response->getResponse(); } catch(Exception $e ) { @@ -99,10 +97,10 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin } /** - * Shows the "Track Visits" checkbox. - */ - public function optOut() - { + * Shows the "Track Visits" checkbox. + */ + public function optOut() + { $trackVisits = !Piwik_Tracker_IgnoreCookie::isIgnoreCookieFound(); $nonce = Piwik_Common::getRequestVar('nonce', false); diff --git a/plugins/CorePluginsAdmin/Controller.php b/plugins/CorePluginsAdmin/Controller.php index 51f0f657d2..aa85d01570 100644 --- a/plugins/CorePluginsAdmin/Controller.php +++ b/plugins/CorePluginsAdmin/Controller.php @@ -44,7 +44,7 @@ class Piwik_CorePluginsAdmin_Controller extends Piwik_Controller_Admin $view->pluginsName = $plugins; $this->setBasicVariablesView($view); $view->menu = Piwik_GetAdminMenu(); - if(!Zend_Registry::get('config')->isFileWritable()) + if(!Piwik_Config::getInstance()->isFileWritable()) { $view->configFileNotWritable = true; } diff --git a/plugins/CoreUpdater/Controller.php b/plugins/CoreUpdater/Controller.php index eb2f4672a2..4042bdee31 100644 --- a/plugins/CoreUpdater/Controller.php +++ b/plugins/CoreUpdater/Controller.php @@ -32,7 +32,7 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller $view = Piwik_View::factory('update_new_version_available'); $view->piwik_version = Piwik_Version::VERSION; $view->piwik_new_version = $newVersion; - $view->piwik_latest_version_url = Zend_Registry::get('config')->General->latest_version_url; + $view->piwik_latest_version_url = Piwik_Config::getInstance()->General['latest_version_url']; $view->can_auto_update = Piwik::canAutoUpdate(); $view->makeWritableCommands = Piwik::getAutoUpdateMakeWritableMessage(); echo $view->render(); @@ -45,7 +45,7 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller Piwik::setMaxExecutionTime(0); - $url = Zend_Registry::get('config')->General->latest_version_url; + $url = Piwik_Config::getInstance()->General['latest_version_url']; $steps = array( array('oneClick_Download', Piwik_Translate('CoreUpdater_DownloadingUpdateFromX', $url)), array('oneClick_Unpack', Piwik_Translate('CoreUpdater_UnpackingTheUpdate')), @@ -91,7 +91,7 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller 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; + $url = Piwik_Config::getInstance()->General['latest_version_url'] . '?cb=' . $this->newVersion; $fetched = Piwik_Http::fetchRemoteFile($url, $this->pathPiwikZip); } @@ -122,11 +122,11 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller private function oneClick_Verify() { $someExpectedFiles = array( - '/config/global.ini.php', - '/index.php', - '/core/Piwik.php', - '/piwik.php', - '/plugins/API/API.php' + '/config/global.ini.php', + '/index.php', + '/core/Piwik.php', + '/piwik.php', + '/plugins/API/API.php' ); foreach($someExpectedFiles as $file) { @@ -275,7 +275,7 @@ class Piwik_CoreUpdater_Controller extends Piwik_Controller // handle case of existing database with no tables if(!Piwik::isInstalled()) { - $this->errorMessages[] = Piwik_Translate('CoreUpdater_EmptyDatabaseError', Zend_Registry::get('config')->database->dbname); + $this->errorMessages[] = Piwik_Translate('CoreUpdater_EmptyDatabaseError', Piwik_Config::getInstance()->database['dbname']); $this->coreError = true; $currentVersion = 'N/A'; } diff --git a/plugins/CustomVariables/CustomVariables.php b/plugins/CustomVariables/CustomVariables.php index 7b463b81a0..4669f14b05 100644 --- a/plugins/CustomVariables/CustomVariables.php +++ b/plugins/CustomVariables/CustomVariables.php @@ -4,7 +4,7 @@ * * @link http://piwik.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - * @version $Id: CustomVariables.php 5235 2011-09-27 07:20:45Z matt $ + * @version $Id$ * * @category Piwik_Plugins * @package Piwik_CustomVariables @@ -131,8 +131,8 @@ class Piwik_CustomVariables extends Piwik_Plugin function __construct() { - $this->maximumRowsInDataTableLevelZero = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_referers; - $this->maximumRowsInSubDataTable = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_subtable_referers; + $this->maximumRowsInDataTableLevelZero = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_referers']; + $this->maximumRowsInSubDataTable = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_subtable_referers']; } protected $interestByCustomVariables = array(); diff --git a/plugins/DBStats/API.php b/plugins/DBStats/API.php index bdce31c12a..7ba5ab49ed 100644 --- a/plugins/DBStats/API.php +++ b/plugins/DBStats/API.php @@ -33,15 +33,7 @@ class Piwik_DBStats_API if(function_exists('mysql_connect')) { - $configDb = Zend_Registry::get('config')->database->toArray(); - // we decode the password. Password is html encoded because it's enclosed between " double quotes - $configDb['password'] = htmlspecialchars_decode($configDb['password']); - if(!isset($configDb['port'])) - { - // before 0.2.4 there is no port specified in config file - $configDb['port'] = '3306'; - } - + $configDb = Piwik_Config::getInstance()->database; $link = mysql_connect($configDb['host'], $configDb['username'], $configDb['password']); $status = mysql_stat($link); mysql_close($link); diff --git a/plugins/Feedback/Controller.php b/plugins/Feedback/Controller.php index e2f55a8e50..e279429272 100644 --- a/plugins/Feedback/Controller.php +++ b/plugins/Feedback/Controller.php @@ -34,7 +34,7 @@ class Piwik_Feedback_Controller extends Piwik_Controller $nonce = Piwik_Common::getRequestVar('nonce', '', 'string'); $view = Piwik_View::factory('sent'); - $view->feedbackEmailAddress = Zend_Registry::get('config')->General->feedback_email_address; + $view->feedbackEmailAddress = Piwik_Config::getInstance()->General['feedback_email_address']; try { $minimumBodyLength = 40; diff --git a/plugins/ImageGraph/ImageGraph.php b/plugins/ImageGraph/ImageGraph.php index 96a6c368f3..c28e200ed0 100644 --- a/plugins/ImageGraph/ImageGraph.php +++ b/plugins/ImageGraph/ImageGraph.php @@ -77,7 +77,7 @@ class Piwik_ImageGraph extends Piwik_Plugin $piwikSite = new Piwik_Site($idSite); if($periodForSinglePeriodGraph == 'range') { - $periodForMultiplePeriodGraph = Zend_Registry::get('config')->General->graphs_default_period_to_plot_when_period_range; + $periodForMultiplePeriodGraph = Piwik_Config::getInstance()->General['graphs_default_period_to_plot_when_period_range']; $dateForMultiplePeriodGraph = $dateForSinglePeriodGraph; } else diff --git a/plugins/Installation/Controller.php b/plugins/Installation/Controller.php index 58bd600daa..4da8bed3f8 100644 --- a/plugins/Installation/Controller.php +++ b/plugins/Installation/Controller.php @@ -80,7 +80,7 @@ class Piwik_Installation_Controller extends Piwik_Controller $this->getInstallationSteps(), __FUNCTION__ ); - $view->newInstall = !file_exists(Piwik_Config::getDefaultUserConfigPath()); + $view->newInstall = !file_exists(Piwik_Config::getLocalConfigPath()); $view->errorMessage = $message; $this->skipThisStep( __FUNCTION__ ); $view->showNextStep = $view->newInstall; @@ -387,7 +387,7 @@ class Piwik_Installation_Controller extends Piwik_Controller $this->session->superuser_infos = $superUserInfos; - $url = Zend_Registry::get('config')->General->api_service_url; + $url = Piwik_Config::getInstance()->General['api_service_url']; $url .= '/1.0/subscribeNewsletter/'; $params = array( 'email' => $form->getSubmitValue('email'), @@ -519,7 +519,7 @@ class Piwik_Installation_Controller extends Piwik_Controller ); $this->skipThisStep( __FUNCTION__ ); - if(!file_exists(Piwik_Config::getDefaultUserConfigPath())) + if(!file_exists(Piwik_Config::getLocalConfigPath())) { $this->writeConfigFileFromSession(); } @@ -551,8 +551,7 @@ class Piwik_Installation_Controller extends Piwik_Controller protected function createDbFromSessionInformation() { $dbInfos = $this->session->db_infos; - Zend_Registry::get('config')->disableSavingConfigurationFileUpdates(); - Zend_Registry::get('config')->database = $dbInfos; + Piwik_Config::getInstance()->database = $dbInfos; Piwik::createDatabaseObject($dbInfos); } @@ -566,14 +565,21 @@ class Piwik_Installation_Controller extends Piwik_Controller { return; } - $config = Zend_Registry::get('config'); - $config->superuser = $this->session->superuser_infos; - $dbInfos = $this->session->db_infos; - $config->database = $dbInfos; - if(!empty($this->session->general_infos)) - { - $config->General = $this->session->general_infos; + $config = Piwik_Config_Writer::getInstance(); + try { + // expect exception since config.ini.php doesn't exist yet + $config->init(); + } catch(Exception $e) { + $config->superuser = $this->session->superuser_infos; + $config->database = $this->session->db_infos; + + if(!empty($this->session->general_infos)) + { + $config->General = $this->session->general_infos; + } + + $config->forceSave(); } unset($this->session->superuser_infos); @@ -613,7 +619,7 @@ class Piwik_Installation_Controller extends Piwik_Controller } else { - if(file_exists(Piwik_Config::getDefaultUserConfigPath())) + if(file_exists(Piwik_Config::getLocalConfigPath())) { $error = true; } @@ -679,7 +685,7 @@ class Piwik_Installation_Controller extends Piwik_Controller public static function getSystemInformation() { global $piwik_minimumPHPVersion; - $minimumMemoryLimit = Zend_Registry::get('config')->General->minimum_memory_limit; + $minimumMemoryLimit = Piwik_Config::getInstance()->General['minimum_memory_limit']; $infos = array(); diff --git a/plugins/LanguagesManager/LanguagesManager.php b/plugins/LanguagesManager/LanguagesManager.php index 96037c91cb..febbd562f7 100644 --- a/plugins/LanguagesManager/LanguagesManager.php +++ b/plugins/LanguagesManager/LanguagesManager.php @@ -177,7 +177,7 @@ class Piwik_LanguagesManager extends Piwik_Plugin */ static public function getLanguageForSession() { - $cookieName = Zend_Registry::get('config')->General->language_cookie_name; + $cookieName = Piwik_Config::getInstance()->General['language_cookie_name']; $cookie = new Piwik_Cookie($cookieName); if($cookie->isCookieFound()) { @@ -198,7 +198,7 @@ class Piwik_LanguagesManager extends Piwik_Plugin return false; } - $cookieName = Zend_Registry::get('config')->General->language_cookie_name; + $cookieName = Piwik_Config::getInstance()->General['language_cookie_name']; $cookie = new Piwik_Cookie($cookieName, 0); $cookie->set('language', $languageCode); $cookie->save(); diff --git a/plugins/Live/Controller.php b/plugins/Live/Controller.php index c1d6b42f01..e865af2432 100644 --- a/plugins/Live/Controller.php +++ b/plugins/Live/Controller.php @@ -26,7 +26,7 @@ class Piwik_Live_Controller extends Piwik_Controller $view = Piwik_View::factory('index'); $view->idSite = $this->idSite; $view = $this->setCounters($view); - $view->liveRefreshAfterMs = (int)Zend_Registry::get('config')->General->live_widget_refresh_after_seconds * 1000; + $view->liveRefreshAfterMs = (int)Piwik_Config::getInstance()->General['live_widget_refresh_after_seconds'] * 1000; $view->visitors = $this->getLastVisitsStart($fetchPlease = true); $view->liveTokenAuth = Piwik::getCurrentUserTokenAuth(); return $this->render($view, $fetch); diff --git a/plugins/Login/Auth.php b/plugins/Login/Auth.php index bd52367c49..af5bd063ee 100644 --- a/plugins/Login/Auth.php +++ b/plugins/Login/Auth.php @@ -36,8 +36,8 @@ class Piwik_Login_Auth implements Piwik_Auth */ public function authenticate() { - $rootLogin = Zend_Registry::get('config')->superuser->login; - $rootPassword = Zend_Registry::get('config')->superuser->password; + $rootLogin = Piwik_Config::getInstance()->superuser['login']; + $rootPassword = Piwik_Config::getInstance()->superuser['password']; $rootToken = Piwik_UsersManager_API::getInstance()->getTokenAuth($rootLogin, $rootPassword); if(is_null($this->login)) diff --git a/plugins/Login/Controller.php b/plugins/Login/Controller.php index 84dd044484..a727519779 100644 --- a/plugins/Login/Controller.php +++ b/plugins/Login/Controller.php @@ -93,16 +93,16 @@ class Piwik_Login_Controller extends Piwik_Controller */ private function configureView($view) { - $this->setBasicVariablesView($view); - + $this->setBasicVariablesView($view); + $view->linkTitle = Piwik::getRandomTitle(); - $view->forceSslLogin = Zend_Registry::get('config')->General->force_ssl_login; + $view->forceSslLogin = Piwik_Config::getInstance()->General['force_ssl_login']; // crsf token: don't trust the submitted value; generate/fetch it from session data $view->nonce = Piwik_Nonce::getNonce('Piwik_Login.login'); } - + /** * Form-less login * @see how to use it on http://piwik.org/faq/how-to/#faq_30 @@ -120,18 +120,18 @@ class Piwik_Login_Controller extends Piwik_Controller } $login = Piwik_Common::getRequestVar('login', null, 'string'); - if($login == Zend_Registry::get('config')->superuser->login) - { + if($login == Piwik_Config::getInstance()->superuser['login']) + { throw new Exception(Piwik_TranslateException('Login_ExceptionInvalidSuperUserAuthenticationMethod', array("logme"))); } $currentUrl = 'index.php'; - + if(($idSite = Piwik_Common::getRequestVar('idSite', false, 'int')) !== false) - { + { $currentUrl .= '?idSite='.$idSite; } - + $urlToRedirect = Piwik_Common::getRequestVar('url', $currentUrl, 'string'); $urlToRedirect = Piwik_Common::unsanitizeInputValue($urlToRedirect); @@ -196,7 +196,7 @@ class Piwik_Login_Controller extends Piwik_Controller { return Piwik_Translate('Login_InvalidNonceOrHeadersOrReferer', array('<a href="?module=Proxy&action=redirect&url='.urlencode('http://piwik.org/faq/how-to-install/#faq_98').'" target="_blank">', '</a>')); } - + /** * Validate user (by username or email address). * @@ -241,8 +241,8 @@ class Piwik_Login_Controller extends Piwik_Controller $mail->setBodyText($bodyText); - $fromEmailName = Zend_Registry::get('config')->General->login_password_recovery_email_name; - $fromEmailAddress = Zend_Registry::get('config')->General->login_password_recovery_email_address; + $fromEmailName = Piwik_Config::getInstance()->General['login_password_recovery_email_name']; + $fromEmailAddress = Piwik_Config::getInstance()->General['login_password_recovery_email_address']; $mail->setFrom($fromEmailAddress, $fromEmailName); @$mail->send(); } @@ -286,7 +286,7 @@ class Piwik_Login_Controller extends Piwik_Controller $view = Piwik_View::factory('resetPassword'); $view->AccessErrorString = $messageNoAccess; - $view->forceSslLogin = Zend_Registry::get('config')->General->force_ssl_login; + $view->forceSslLogin = Piwik_Config::getInstance()->General['force_ssl_login']; $view->addForm( $form ); $this->configureView($view); echo $view->render(); @@ -318,12 +318,13 @@ class Piwik_Login_Controller extends Piwik_Controller { if( $user['email'] == Piwik::getSuperUserEmail() ) { - if(!Zend_Registry::get('config')->isFileWritable()) - { - throw new Exception(Piwik_Translate('General_ConfigFileIsNotWritable', array("(config/config.ini.php)","<br/>"))); - } + if(!Piwik_Config::getInstance()->isFileWritable()) + { + throw new Exception(Piwik_Translate('General_ConfigFileIsNotWritable', array("(config/config.ini.php)","<br/>"))); + } + $user['password'] = md5($password); - Zend_Registry::get('config')->superuser = $user; + Piwik_Config_Writer::getInstance()->superuser = $user; } else { @@ -352,12 +353,12 @@ class Piwik_Login_Controller extends Piwik_Controller $user = null; if( $loginMail == Piwik::getSuperUserEmail() - || $loginMail == Zend_Registry::get('config')->superuser->login ) + || $loginMail == Piwik_Config::getInstance()->superuser['login'] ) { $user = array( - 'login' => Zend_Registry::get('config')->superuser->login, + 'login' => Piwik_Config::getInstance()->superuser['login'], 'email' => Piwik::getSuperUserEmail(), - 'password' => Zend_Registry::get('config')->superuser->password, + 'password' => Piwik_Config::getInstance()->superuser['password'], ); } else if( Piwik_UsersManager_API::getInstance()->userExists($loginMail) ) @@ -431,7 +432,7 @@ class Piwik_Login_Controller extends Piwik_Controller */ static public function clearSession() { - $authCookieName = Zend_Registry::get('config')->General->login_cookie_name; + $authCookieName = Piwik_Config::getInstance()->General['login_cookie_name']; $cookie = new Piwik_Cookie($authCookieName); $cookie->delete(); @@ -458,7 +459,7 @@ class Piwik_Login_Controller extends Piwik_Controller */ protected function checkForceSslLogin() { - $forceSslLogin = Zend_Registry::get('config')->General->force_ssl_login; + $forceSslLogin = Piwik_Config::getInstance()->General['force_ssl_login']; if($forceSslLogin && !Piwik::isHttps()) { diff --git a/plugins/Login/Login.php b/plugins/Login/Login.php index 92dd6bfb95..1f836e72cb 100644 --- a/plugins/Login/Login.php +++ b/plugins/Login/Login.php @@ -84,9 +84,9 @@ class Piwik_Login extends Piwik_Plugin return; } - $authCookieName = Zend_Registry::get('config')->General->login_cookie_name; + $authCookieName = Piwik_Config::getInstance()->General['login_cookie_name']; $authCookieExpiry = 0; - $authCookiePath = Zend_Registry::get('config')->General->login_cookie_path; + $authCookiePath = Piwik_Config::getInstance()->General['login_cookie_path']; $authCookie = new Piwik_Cookie($authCookieName, $authCookieExpiry, $authCookiePath); $defaultLogin = 'anonymous'; $defaultTokenAuth = 'anonymous'; @@ -119,9 +119,9 @@ class Piwik_Login extends Piwik_Plugin $auth->setTokenAuth($tokenAuth); $authResult = $auth->authenticate(); - $authCookieName = Zend_Registry::get('config')->General->login_cookie_name; - $authCookieExpiry = $rememberMe ? time() + Zend_Registry::get('config')->General->login_cookie_expire : 0; - $authCookiePath = Zend_Registry::get('config')->General->login_cookie_path; + $authCookieName = Piwik_Config::getInstance()->General['login_cookie_name']; + $authCookieExpiry = $rememberMe ? time() + Piwik_Config::getInstance()->General['login_cookie_expire'] : 0; + $authCookiePath = Piwik_Config::getInstance()->General['login_cookie_path']; $cookie = new Piwik_Cookie($authCookieName, $authCookieExpiry, $authCookiePath); if(!$authResult->isValid()) diff --git a/plugins/Login/tests/Login.test.php b/plugins/Login/tests/Login.test.php index 207bf4124e..ef6815ba15 100644 --- a/plugins/Login/tests/Login.test.php +++ b/plugins/Login/tests/Login.test.php @@ -12,12 +12,12 @@ require_once 'Database.test.php'; class Test_Piwik_Login extends Test_Database { - function setUp() - { - parent::setUp(); + function setUp() + { + parent::setUp(); // setup the access layer - $pseudoMockAccess = new FakeAccess; + $pseudoMockAccess = new FakeAccess; FakeAccess::setIdSitesView( array(1,2)); FakeAccess::setIdSitesAdmin( array(3,4)); @@ -26,12 +26,12 @@ class Test_Piwik_Login extends Test_Database Zend_Registry::set('access', $pseudoMockAccess); // we make sure the tests don't depend on the config file content - Zend_Registry::get('config')->superuser = array( + Piwik_Config::getInstance()->superuser = array( 'login'=>'superusertest', 'password'=>md5('passwordsuperusertest'), 'email'=>'superuser@example.com' ); - } + } public function test_authenticate() { @@ -175,7 +175,7 @@ class Test_Piwik_Login extends Test_Database $rc = $auth->authenticate(); $this->assertEqual( $rc->getCode(), Piwik_Auth_Result::SUCCESS ); - $user = Zend_Registry::get('config')->superuser->toArray(); + $user = Piwik_Config::getInstance()->superuser; $password = $user['password']; $tokenAuth = Piwik_UsersManager_API::getInstance()->getTokenAuth($user['login'], $password); diff --git a/plugins/MultiSites/Controller.php b/plugins/MultiSites/Controller.php index fdcd2e5bc9..5ec0c442e0 100644 --- a/plugins/MultiSites/Controller.php +++ b/plugins/MultiSites/Controller.php @@ -28,7 +28,7 @@ class Piwik_MultiSites_Controller extends Piwik_Controller { parent::__construct(); - $this->limit = Zend_Registry::get('config')->General->all_websites_website_per_page; + $this->limit = Piwik_Config::getInstance()->General['all_websites_website_per_page']; } function index() @@ -152,12 +152,12 @@ class Piwik_MultiSites_Controller extends Piwik_Controller Piwik_Date::factory('now', 'UTC+14')->toString('Y-m-d')))) { - $view->autoRefreshTodayReport = Zend_Registry::get('config')->General->multisites_refresh_after_seconds; + $view->autoRefreshTodayReport = Piwik_Config::getInstance()->General['multisites_refresh_after_seconds']; } $this->setGeneralVariablesView($view); $this->setMinDateView($minDate, $view); $this->setMaxDateView($maxDate, $view); - $view->show_sparklines = Zend_Registry::get('config')->General->show_multisites_sparklines; + $view->show_sparklines = Piwik_Config::getInstance()->General['show_multisites_sparklines']; echo $view->render(); } diff --git a/plugins/PDFReports/API.php b/plugins/PDFReports/API.php index b4e54215be..62f511cd0d 100644 --- a/plugins/PDFReports/API.php +++ b/plugins/PDFReports/API.php @@ -461,7 +461,7 @@ class Piwik_PDFReports_API { $emails[] = Piwik::getCurrentUserEmail(); } - elseif($report['login'] == Zend_Registry::get('config')->superuser->login) + elseif($report['login'] == Piwik_Config::getInstance()->superuser['login']) { $emails[] = Piwik::getSuperUserEmail(); } @@ -506,10 +506,10 @@ class Piwik_PDFReports_API $mail = new Piwik_Mail(); $mail->setSubject($subject); - $fromEmailName = Zend_Registry::get('config')->branding->use_custom_logo + $fromEmailName = Piwik_Config::getInstance()->branding['use_custom_logo'] ? Piwik_Translate('CoreHome_WebAnalyticsReports') : Piwik_Translate('PDFReports_PiwikReports'); - $fromEmailAddress = Zend_Registry::get('config')->General->noreply_email_address; + $fromEmailAddress = Piwik_Config::getInstance()->General['noreply_email_address']; $attachmentName = $subject; $mail->setFrom($fromEmailAddress, $fromEmailName); diff --git a/plugins/PDFReports/tests/PDFReports.test.php b/plugins/PDFReports/tests/PDFReports.test.php index 373528570a..6311e60b94 100644 --- a/plugins/PDFReports/tests/PDFReports.test.php +++ b/plugins/PDFReports/tests/PDFReports.test.php @@ -13,219 +13,223 @@ require_once PIWIK_PATH_TEST_TO_ROOT . '/plugins/PDFReports/PDFReports.php'; class Test_Piwik_PDFReports extends Test_Database { protected $idSiteAccess; - function setUp() - { - parent::setUp(); - + + function setUp() + { + parent::setUp(); + // setup the access layer - $pseudoMockAccess = new FakeAccess; + $pseudoMockAccess = new FakeAccess; FakeAccess::$superUser = true; //finally we set the user as a super user by default Zend_Registry::set('access', $pseudoMockAccess); - Piwik_PluginsManager::getInstance()->loadPlugins( array('API', 'UserCountry', 'PDFReports') ); + Piwik_PluginsManager::getInstance()->loadPlugins( array('API', 'UserCountry', 'LanguagesManager', 'PDFReports') ); + $plugin = Piwik_PluginsManager::getInstance()->getLoadedPlugin('LanguagesManager'); + $plugin->install(); + $plugin = Piwik_PluginsManager::getInstance()->getLoadedPlugin('PDFReports'); + $plugin->install(); Piwik_PluginsManager::getInstance()->installLoadedPlugins(); - Piwik_PDFReports_API::$cache = array(); - - $this->idSiteAccess = Piwik_SitesManager_API::getInstance()->addSite("Test",array("http://piwik.net")); - - $idSite = Piwik_SitesManager_API::getInstance()->addSite("Test",array("http://piwik.net")); + Piwik_PDFReports_API::$cache = array(); + + $this->idSiteAccess = Piwik_SitesManager_API::getInstance()->addSite("Test",array("http://piwik.net")); + + $idSite = Piwik_SitesManager_API::getInstance()->addSite("Test",array("http://piwik.net")); FakeAccess::setIdSitesView( array($this->idSiteAccess,2)); - - } - - function tearDown() - { - Piwik_Query('TRUNCATE '.Piwik_Common::prefixTable('pdf')); - Piwik_PDFReports_API::$cache = array(); - } - - function test_addReport_getReports() - { - $data = array( - 'idsite' => $this->idSiteAccess, - 'description' => 'test description"', - 'period' => 'day', - 'format' => 'pdf', - 'aggregate_reports_format' => '1', - 'reports' => 'UserCountry_getCountry', - 'email_me' => 1, - 'additional_emails' => 'test@test.com, t2@test.com', - ); - - $dataWebsiteTwo = $data; - $dataWebsiteTwo['idsite'] = 2; - $dataWebsiteTwo['period'] = 'month'; - - $idReportTwo = $this->_createReport($dataWebsiteTwo); - // Testing getReports without parameters - $tmp = Piwik_PDFReports_API::getInstance()->getReports(); - $report = reset($tmp); - $this->_checkReportsEqual($report, $dataWebsiteTwo); - - $idReport = $this->_createReport($data); - - // Passing 3 parameters - $tmp = Piwik_PDFReports_API::getInstance()->getReports($this->idSiteAccess, $data['period'], $idReport); - $report = reset($tmp); - $this->_checkReportsEqual($report, $data); - - // Passing only idsite - $tmp = Piwik_PDFReports_API::getInstance()->getReports($this->idSiteAccess); - $report = reset($tmp); - $this->_checkReportsEqual($report, $data); - - // Passing only period - $tmp = Piwik_PDFReports_API::getInstance()->getReports($idSite=false, $data['period']); - $report = reset($tmp); - $this->_checkReportsEqual($report, $data); - - // Passing only idreport - $tmp = Piwik_PDFReports_API::getInstance()->getReports($idSite=false,$period=false, $idReport); - $report = reset($tmp); - $this->_checkReportsEqual($report, $data); - - } - - function test_getReports_idReportNotFound() - { - try { - $report = Piwik_PDFReports_API::getInstance()->getReports($idSite=false,$period=false, $idReport = 1); - var_dump($report); - $this->fail(); - } catch(Exception $e) { - $this->pass(); - } - } - - function test_getReports_invalidPermission() - { - $data = $this->_getAddReportData(); - $idReport = $this->_createReport($data); - - try { - $report = Piwik_PDFReports_API::getInstance()->getReports($idSite=44,$period=false, $idReport); - $this->fail(); - } catch(Exception $e){ - $this->pass(); - } - } - - function test_addReport_invalidWebsite() - { - $data = $this->_getAddReportData(); - $data['idsite'] = 33; - try { - $idReport = $this->_createReport($data); - $this->fail(); - } catch(Exception $e){ - $this->pass(); - } - } - - function test_addReport_invalidPeriod() - { - $data = $this->_getAddReportData(); - $data['period'] = 'dx'; - try { - $idReport = $this->_createReport($data); - $this->fail(); - } catch(Exception $e){ - $this->pass(); - } - } - - function test_updateReport() - { - $dataBefore = $this->_getAddReportData(); - $idReport = $this->_createReport($dataBefore); - $dataAfter = $this->_getYetAnotherAddReportData(); - $this->_updateReport($idReport, $dataAfter); - $tmp = Piwik_PDFReports_API::getInstance()->getReports($idSite=false,$period=false, $idReport); - $newReport = reset($tmp); - $this->_checkReportsEqual($newReport, $dataAfter); - } - - function test_deleteReport() - { - // Deletes non existing report throws exception - try { - Piwik_PDFReports_API::getInstance()->deleteReport($idReport = 1); - $this->fail(); - } catch(Exception $e) { - $this->pass(); - } - - $idReport = $this->_createReport($this->_getYetAnotherAddReportData()); - $this->assertEqual(1, count(Piwik_PDFReports_API::getInstance()->getReports())); + + } + + function tearDown() + { + Piwik_Query('TRUNCATE '.Piwik_Common::prefixTable('pdf')); + Piwik_PDFReports_API::$cache = array(); + } + + function test_addReport_getReports() + { + $data = array( + 'idsite' => $this->idSiteAccess, + 'description' => 'test description"', + 'period' => 'day', + 'format' => 'pdf', + 'aggregate_reports_format' => '1', + 'reports' => 'UserCountry_getCountry', + 'email_me' => 1, + 'additional_emails' => 'test@test.com, t2@test.com', + ); + + $dataWebsiteTwo = $data; + $dataWebsiteTwo['idsite'] = 2; + $dataWebsiteTwo['period'] = 'month'; + + $idReportTwo = $this->_createReport($dataWebsiteTwo); + // Testing getReports without parameters + $tmp = Piwik_PDFReports_API::getInstance()->getReports(); + $report = reset($tmp); + $this->_checkReportsEqual($report, $dataWebsiteTwo); + + $idReport = $this->_createReport($data); + + // Passing 3 parameters + $tmp = Piwik_PDFReports_API::getInstance()->getReports($this->idSiteAccess, $data['period'], $idReport); + $report = reset($tmp); + $this->_checkReportsEqual($report, $data); + + // Passing only idsite + $tmp = Piwik_PDFReports_API::getInstance()->getReports($this->idSiteAccess); + $report = reset($tmp); + $this->_checkReportsEqual($report, $data); + + // Passing only period + $tmp = Piwik_PDFReports_API::getInstance()->getReports($idSite=false, $data['period']); + $report = reset($tmp); + $this->_checkReportsEqual($report, $data); + + // Passing only idreport + $tmp = Piwik_PDFReports_API::getInstance()->getReports($idSite=false,$period=false, $idReport); + $report = reset($tmp); + $this->_checkReportsEqual($report, $data); + } + + function test_getReports_idReportNotFound() + { + try { + $report = Piwik_PDFReports_API::getInstance()->getReports($idSite=false,$period=false, $idReport = 1); + var_dump($report); + $this->fail(); + } catch(Exception $e) { + $this->pass(); + } + } + + function test_getReports_invalidPermission() + { + $data = $this->_getAddReportData(); + $idReport = $this->_createReport($data); + + try { + $report = Piwik_PDFReports_API::getInstance()->getReports($idSite=44,$period=false, $idReport); + $this->fail(); + } catch(Exception $e){ + $this->pass(); + } + } + + function test_addReport_invalidWebsite() + { + $data = $this->_getAddReportData(); + $data['idsite'] = 33; + try { + $idReport = $this->_createReport($data); + $this->fail(); + } catch(Exception $e){ + $this->pass(); + } + } + + function test_addReport_invalidPeriod() + { + $data = $this->_getAddReportData(); + $data['period'] = 'dx'; + try { + $idReport = $this->_createReport($data); + $this->fail(); + } catch(Exception $e){ + $this->pass(); + } + } + + function test_updateReport() + { + $dataBefore = $this->_getAddReportData(); + $idReport = $this->_createReport($dataBefore); + $dataAfter = $this->_getYetAnotherAddReportData(); + $this->_updateReport($idReport, $dataAfter); + $tmp = Piwik_PDFReports_API::getInstance()->getReports($idSite=false,$period=false, $idReport); + $newReport = reset($tmp); + $this->_checkReportsEqual($newReport, $dataAfter); + } + + function test_deleteReport() + { + // Deletes non existing report throws exception + try { + Piwik_PDFReports_API::getInstance()->deleteReport($idReport = 1); + $this->fail(); + } catch(Exception $e) { + $this->pass(); + } + + $idReport = $this->_createReport($this->_getYetAnotherAddReportData()); + $this->assertEqual(1, count(Piwik_PDFReports_API::getInstance()->getReports())); Piwik_PDFReports_API::getInstance()->deleteReport($idReport); - $this->assertEqual(0, count(Piwik_PDFReports_API::getInstance()->getReports())); - } - - - function _getAddReportData() - { - return array( - 'idsite' => $this->idSiteAccess, - 'description' => 'test description"', - 'period' => 'day', - 'format' => 'pdf', - 'aggregate_reports_format' => '1', - 'reports' => 'UserCountry_getCountry', - 'email_me' => 1, - 'additional_emails' => 'test@test.com, t2@test.com', - ); - } - - function _getYetAnotherAddReportData() - { - return array( - 'idsite' => $this->idSiteAccess, - 'description' => 'very very long and possibly truncated description. very very long and possibly truncated description. very very long and possibly truncated description. very very long and possibly truncated description. very very long and possibly truncated description. ', - 'period' => 'month', - 'format' => 'pdf', - 'aggregate_reports_format' => '1', - 'reports' => 'UserCountry_getContinent', - 'email_me' => 0, - 'additional_emails' => 'blabla@ec.fr', - ); - } - function _createReport($data) - { - $idReport = Piwik_PDFReports_API::getInstance()->addReport( - $data['idsite'], - $data['description'], - $data['period'], - $data['format'], - $data['aggregate_reports_format'], - $data['reports'], - $data['email_me'], - $data['additional_emails']); - return $idReport; - } - - function _updateReport($idReport, $data) - { - //$idReport, $idSite, $description, $period, $reports, $emailMe = true, $additionalEmails = false) - $idReport = Piwik_PDFReports_API::getInstance()->updateReport( - $idReport, - $data['idsite'], - $data['description'], - $data['period'], - $data['format'], - $data['aggregate_reports_format'], - $data['reports'], - $data['email_me'], - $data['additional_emails']); - return $idReport; - } - function _checkReportsEqual($report, $data) - { - foreach($data as $key => $value) - { - if($key == 'additional_emails') $value = str_replace(' ','', $value); - if($key == 'description') $value = substr($value,0,250); - $this->assertEqual($value, $report[$key], "Error for $key for report ".var_export($report ,true)." and data ".var_export($data,true)." ---> %s "); - } - } - + $this->assertEqual(0, count(Piwik_PDFReports_API::getInstance()->getReports())); + } + + + function _getAddReportData() + { + return array( + 'idsite' => $this->idSiteAccess, + 'description' => 'test description"', + 'period' => 'day', + 'format' => 'pdf', + 'aggregate_reports_format' => '1', + 'reports' => 'UserCountry_getCountry', + 'email_me' => 1, + 'additional_emails' => 'test@test.com, t2@test.com', + ); + } + + function _getYetAnotherAddReportData() + { + return array( + 'idsite' => $this->idSiteAccess, + 'description' => 'very very long and possibly truncated description. very very long and possibly truncated description. very very long and possibly truncated description. very very long and possibly truncated description. very very long and possibly truncated description. ', + 'period' => 'month', + 'format' => 'pdf', + 'aggregate_reports_format' => '1', + 'reports' => 'UserCountry_getContinent', + 'email_me' => 0, + 'additional_emails' => 'blabla@ec.fr', + ); + } + function _createReport($data) + { + $idReport = Piwik_PDFReports_API::getInstance()->addReport( + $data['idsite'], + $data['description'], + $data['period'], + $data['format'], + $data['aggregate_reports_format'], + $data['reports'], + $data['email_me'], + $data['additional_emails']); + return $idReport; + } + + function _updateReport($idReport, $data) + { + //$idReport, $idSite, $description, $period, $reports, $emailMe = true, $additionalEmails = false) + $idReport = Piwik_PDFReports_API::getInstance()->updateReport( + $idReport, + $data['idsite'], + $data['description'], + $data['period'], + $data['format'], + $data['aggregate_reports_format'], + $data['reports'], + $data['email_me'], + $data['additional_emails']); + return $idReport; + } + + function _checkReportsEqual($report, $data) + { + foreach($data as $key => $value) + { + if($key == 'additional_emails') $value = str_replace(' ','', $value); + if($key == 'description') $value = substr($value,0,250); + $this->assertEqual($value, $report[$key], "Error for $key for report ".var_export($report ,true)." and data ".var_export($data,true)." ---> %s "); + } + } } diff --git a/plugins/PrivacyManager/Controller.php b/plugins/PrivacyManager/Controller.php index bdd9bc3e39..172eef809f 100644 --- a/plugins/PrivacyManager/Controller.php +++ b/plugins/PrivacyManager/Controller.php @@ -29,20 +29,20 @@ class Piwik_PrivacyManager_Controller extends Piwik_Controller_Admin { case("formMaskLength"): $this->handlePluginState(Piwik_Common::getRequestVar("anonymizeIPEnable", 0)); - $maskLength = Zend_Registry::get('config')->Tracker; - $maskLength->ip_address_mask_length = Piwik_Common::getRequestVar("maskLength", 1); - Zend_Registry::get('config')->Tracker = $maskLength->toArray(); + $trackerConfig = Piwik_Config_Writer::getInstance()->Tracker; + $trackerConfig['ip_address_mask_length'] = Piwik_Common::getRequestVar("maskLength", 1); + Piwik_Config::getInstance()->Tracker = $trackerConfig; break; case("formDeleteSettings"): - $deleteLogs = Zend_Registry::get('config')->Deletelogs; - $deleteLogs->delete_logs_enable = Piwik_Common::getRequestVar("deleteEnable", 0); - $deleteLogs->delete_logs_schedule_lowest_interval = Piwik_Common::getRequestVar("deleteLowestInterval", 7); - $deleteLogs->delete_logs_older_than = ((int)Piwik_Common::getRequestVar("deleteOlderThan", 180) < 7) ? + $deleteLogs = Piwik_Config_Writer::getInstance()->Deletelogs; + $deleteLogs['delete_logs_enable'] = Piwik_Common::getRequestVar("deleteEnable", 0); + $deleteLogs['delete_logs_schedule_lowest_interval'] = Piwik_Common::getRequestVar("deleteLowestInterval", 7); + $deleteLogs['delete_logs_older_than'] = ((int)Piwik_Common::getRequestVar("deleteOlderThan", 180) < 7) ? 7 : Piwik_Common::getRequestVar("deleteOlderThan", 180); - $deleteLogs->delete_max_rows_per_run = Piwik_Common::getRequestVar("deleteMaxRows", 100); + $deleteLogs['delete_max_rows_per_run'] = Piwik_Common::getRequestVar("deleteMaxRows", 100); - Zend_Registry::get('config')->Deletelogs = $deleteLogs->toArray(); + Piwik_Config::getInstance()->Deletelogs = $deleteLogs; break; default: //do nothing @@ -66,8 +66,8 @@ class Piwik_PrivacyManager_Controller extends Piwik_Controller_Admin } $view->language = Piwik_LanguagesManager::getLanguageCodeForCurrentUser(); - if (!Zend_Registry::get('config')->isFileWritable()) - { + if (!Piwik_Config::getInstance()->isFileWritable()) + { $view->configFileNotWritable = true; } @@ -86,7 +86,7 @@ class Piwik_PrivacyManager_Controller extends Piwik_Controller_Admin $anonymizeIP["name"] = self::ANONYMIZE_IP_PLUGIN_NAME; $anonymizeIP["enabled"] = Piwik_PluginsManager::getInstance()->isPluginActivated(self::ANONYMIZE_IP_PLUGIN_NAME); - $anonymizeIP["maskLength"] = Zend_Registry::get('config')->Tracker->ip_address_mask_length; + $anonymizeIP["maskLength"] = Piwik_Config::getInstance()->Tracker['ip_address_mask_length']; $anonymizeIP["info"] = Piwik_PluginsManager::getInstance()->getLoadedPlugin(self::ANONYMIZE_IP_PLUGIN_NAME)->getInformation(); return $anonymizeIP; @@ -97,7 +97,7 @@ class Piwik_PrivacyManager_Controller extends Piwik_Controller_Admin Piwik::checkUserIsSuperUser(); $deleteLogsInfos = array(); $taskScheduler = new Piwik_TaskScheduler(); - $deleteLogsInfos["config"] = Zend_Registry::get('config')->Deletelogs->toArray(); + $deleteLogsInfos["config"] = Piwik_Config::getInstance()->Deletelogs; $privacyManager = new Piwik_PrivacyManager(); $deleteLogsInfos["deleteTables"] = implode(", ", $privacyManager->getDeleteTableLogTables()); diff --git a/plugins/PrivacyManager/PrivacyManager.php b/plugins/PrivacyManager/PrivacyManager.php index 73965cd6ed..e008922f14 100644 --- a/plugins/PrivacyManager/PrivacyManager.php +++ b/plugins/PrivacyManager/PrivacyManager.php @@ -68,10 +68,10 @@ class Piwik_PrivacyManager extends Piwik_Plugin */ function deleteLogTables() { - $deleteSettings = Zend_Registry::get('config')->Deletelogs; + $deleteSettings = Piwik_Config::getInstance()->Deletelogs; //Make sure, log deletion is enabled - if ($deleteSettings->delete_logs_enable == 0) { + if ($deleteSettings['delete_logs_enable'] == 0) { return; } @@ -84,13 +84,13 @@ class Piwik_PrivacyManager extends Piwik_Plugin //Make sure, log purging is allowed to run now $lastDelete = Piwik_GetOption(self::OPTION_LAST_DELETE_PIWIK_LOGS); - $deleteIntervalSeconds = $this->getDeleteIntervalInSeconds($deleteSettings->delete_logs_schedule_lowest_interval); + $deleteIntervalSeconds = $this->getDeleteIntervalInSeconds($deleteSettings['delete_logs_schedule_lowest_interval']); if ($lastDelete === false || ($lastDelete !== false && ((int)$lastDelete + $deleteIntervalSeconds) <= time()) ) { - $maxIdVisit = $this->getDeleteIdVisitOffset($deleteSettings->delete_logs_older_than); + $maxIdVisit = $this->getDeleteIdVisitOffset($deleteSettings['delete_logs_older_than']); $logTables = $this->getDeleteTableLogTables(); @@ -111,7 +111,7 @@ class Piwik_PrivacyManager extends Piwik_Plugin } foreach ($logTables as $logTable) { - $this->deleteRowsFromTable($logTable, $maxIdVisit, $deleteSettings->delete_max_rows_per_run * self::DELETE_MAX_ROWS_MULTIPLICATOR); + $this->deleteRowsFromTable($logTable, $maxIdVisit, $deleteSettings['delete_max_rows_per_run'] * self::DELETE_MAX_ROWS_MULTIPLICATOR); } //optimize table overhead after deletion diff --git a/plugins/Provider/Provider.php b/plugins/Provider/Provider.php index 139b15e2ec..60214f8268 100644 --- a/plugins/Provider/Provider.php +++ b/plugins/Provider/Provider.php @@ -114,7 +114,7 @@ class Piwik_Provider extends Piwik_Plugin function archivePeriod( $notification ) { - $maximumRowsInDataTable = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_standard; + $maximumRowsInDataTable = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_standard']; $archiveProcessing = $notification->getNotificationObject(); if(!$archiveProcessing->shouldProcessReportsForPlugin($this->getPluginName())) return; @@ -137,7 +137,7 @@ class Piwik_Provider extends Piwik_Plugin $interestByProvider = $archiveProcessing->getArrayInterestForLabel($labelSQL); $tableProvider = $archiveProcessing->getDataTableFromArray($interestByProvider); $columnToSortByBeforeTruncation = Piwik_Archive::INDEX_NB_VISITS; - $maximumRowsInDataTable = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_standard; + $maximumRowsInDataTable = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_standard']; $archiveProcessing->insertBlobRecord($recordName, $tableProvider->getSerialized($maximumRowsInDataTable, null, $columnToSortByBeforeTruncation)); destroy($tableProvider); } diff --git a/plugins/Proxy/tests/Proxy.test.php b/plugins/Proxy/tests/Proxy.test.php index b775f5f7aa..d84e15a4d0 100644 --- a/plugins/Proxy/tests/Proxy.test.php +++ b/plugins/Proxy/tests/Proxy.test.php @@ -9,7 +9,7 @@ class Test_Piwik_Proxy extends UnitTestCase public function test_isAcceptableRemoteUrl() { Piwik::createConfigObject(); - Zend_Registry::get('config')->setTestEnvironment(); + Piwik_Config::getInstance()->setTestEnvironment(); $data = array( // piwik white list (and used in homepage) diff --git a/plugins/Referers/Referers.php b/plugins/Referers/Referers.php index 64c39b71f3..eab4c37a0d 100644 --- a/plugins/Referers/Referers.php +++ b/plugins/Referers/Referers.php @@ -222,8 +222,8 @@ class Piwik_Referers extends Piwik_Plugin function __construct() { $this->columnToSortByBeforeTruncation = Piwik_Archive::INDEX_NB_VISITS; - $this->maximumRowsInDataTableLevelZero = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_referers; - $this->maximumRowsInSubDataTable = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_subtable_referers; + $this->maximumRowsInDataTableLevelZero = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_referers']; + $this->maximumRowsInSubDataTable = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_subtable_referers']; } /** diff --git a/plugins/UserSettings/UserSettings.php b/plugins/UserSettings/UserSettings.php index b49dd75cac..68da147ebc 100644 --- a/plugins/UserSettings/UserSettings.php +++ b/plugins/UserSettings/UserSettings.php @@ -246,7 +246,7 @@ class Piwik_UserSettings extends Piwik_Plugin function archiveDay( $notification ) { require_once PIWIK_INCLUDE_PATH . '/plugins/UserSettings/functions.php'; - $maximumRowsInDataTable = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_standard; + $maximumRowsInDataTable = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_standard']; $columnToSortByBeforeTruncation = Piwik_Archive::INDEX_NB_VISITS; $archiveProcessing = $notification->getNotificationObject(); @@ -313,7 +313,7 @@ class Piwik_UserSettings extends Piwik_Plugin if(!$archiveProcessing->shouldProcessReportsForPlugin($this->getPluginName())) return; - $maximumRowsInDataTable = Zend_Registry::get('config')->General->datatable_archiving_maximum_rows_standard; + $maximumRowsInDataTable = Piwik_Config::getInstance()->General['datatable_archiving_maximum_rows_standard']; $dataTableToSum = array( 'UserSettings_configuration', diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php index c8ac766e19..5b071f468b 100644 --- a/plugins/UsersManager/API.php +++ b/plugins/UsersManager/API.php @@ -622,7 +622,7 @@ class Piwik_UsersManager_API private function checkUserIsNotSuperUser( $userLogin ) { - if($userLogin == Zend_Registry::get('config')->superuser->login) + if($userLogin == Piwik_Config::getInstance()->superuser['login']) { throw new Exception(Piwik_TranslateException("UsersManager_ExceptionSuperUser")); } diff --git a/plugins/UsersManager/Controller.php b/plugins/UsersManager/Controller.php index 63028e8aba..29b29efa96 100644 --- a/plugins/UsersManager/Controller.php +++ b/plugins/UsersManager/Controller.php @@ -108,7 +108,7 @@ class Piwik_UsersManager_Controller extends Piwik_Controller_Admin $userSettingsDate = Piwik_UsersManager_API::getInstance()->getUserPreference($user, Piwik_UsersManager_API::PREFERENCE_DEFAULT_REPORT_DATE); if($userSettingsDate === false) { - return Zend_Registry::get('config')->General->default_day; + return Piwik_Config::getInstance()->General['default_day']; } return $userSettingsDate; } @@ -127,7 +127,7 @@ class Piwik_UsersManager_Controller extends Piwik_Controller_Admin { $view->userAlias = $userLogin; $view->userEmail = Piwik::getSuperUserEmail(); - if(!Zend_Registry::get('config')->isFileWritable()) + if(!Piwik_Config::getInstance()->isFileWritable()) { $view->configFileNotWritable = true; } @@ -277,24 +277,24 @@ class Piwik_UsersManager_Controller extends Piwik_Controller_Admin $userLogin = Piwik::getCurrentUserLogin(); if(Piwik::isUserIsSuperUser()) { - $superUser = Zend_Registry::get('config')->superuser; + $superUser = Piwik_Config_Writer::getInstance()->superuser; $updatedSuperUser = false; if($newPassword !== false) { $newPassword = Piwik_Common::unsanitizeInputValue($newPassword); $md5PasswordSuperUser = md5($newPassword); - $superUser->password = $md5PasswordSuperUser; + $superUser['password'] = $md5PasswordSuperUser; $updatedSuperUser = true; } if($superUser->email != $email) { - $superUser->email = $email; + $superUser['email'] = $email; $updatedSuperUser = true; } if($updatedSuperUser) { - Zend_Registry::get('config')->superuser = $superUser->toArray(); + Piwik_Config::getInstance()->superuser = $superUser; } } else diff --git a/plugins/UsersManager/tests/UsersManager.test.php b/plugins/UsersManager/tests/UsersManager.test.php index 8641c08a79..af3a6e6629 100644 --- a/plugins/UsersManager/tests/UsersManager.test.php +++ b/plugins/UsersManager/tests/UsersManager.test.php @@ -8,26 +8,37 @@ require_once PIWIK_PATH_TEST_TO_ROOT . '/tests/core/Database.test.php'; class Test_Piwik_UsersManager extends Test_Database { - function setUp() - { - parent::setUp(); + function __construct() + { + parent::__construct(); + + Piwik_Config::getInstance()->setTestEnvironment(); + Piwik_PluginsManager::getInstance()->unloadPlugins(); + Piwik_PluginsManager::getInstance()->loadPlugins( array('LanguagesManager') ); + $plugin = Piwik_PluginsManager::getInstance()->getLoadedPlugin('LanguagesManager'); + $plugin->install(); + } + + function setUp() + { + parent::setUp(); // setup the access layer - $pseudoMockAccess = new FakeAccess; + $pseudoMockAccess = new FakeAccess; FakeAccess::setIdSitesView( array(1,2)); FakeAccess::setIdSitesAdmin( array(3,4)); //finally we set the user as a super user by default FakeAccess::$superUser = true; Zend_Registry::set('access', $pseudoMockAccess); - + // we make sure the tests don't depend on the config file content - Zend_Registry::get('config')->superuser = array( + Piwik_Config::getInstance()->superuser = array( 'login'=>'superusertest', 'password'=>'passwordsuperusertest', 'email'=>'superuser@example.com' ); - } + } private function _flatten($sitesAccess) { @@ -65,7 +76,7 @@ class Test_Piwik_UsersManager extends Test_Database function test_all_superUserIncluded() { - Zend_Registry::get('config')->superuser = array( + Piwik_Config::getInstance()->superuser = array( 'login'=>'superusertest', 'password'=>'passwordsuperusertest', 'email'=>'superuser@example.com' |