diff options
author | matt <matt@59fd770c-687e-43c8-a1e3-f5a4ff64c105> | 2008-03-19 03:30:40 +0300 |
---|---|---|
committer | matt <matt@59fd770c-687e-43c8-a1e3-f5a4ff64c105> | 2008-03-19 03:30:40 +0300 |
commit | 83ffd7749e726b91f38abc31fb81c20f61054ab2 (patch) | |
tree | d6c74c5aa39651845907c98f8bf9d4f9912f1c55 /modules | |
parent | 55d8a3ad0bcb68a5c0da0c0b81c873d3d317b41e (diff) |
- new login screen design (thanks wordpress 2.5!!)
- misc changes
- plugins can now be loaded by default all the time (ex. Home, AdminHome, PluginsAdmin)
- improved admin design
Diffstat (limited to 'modules')
-rw-r--r-- | modules/FrontController.php | 23 | ||||
-rw-r--r-- | modules/LogStats.php | 1 | ||||
-rw-r--r-- | modules/Menu.php | 9 | ||||
-rwxr-xr-x | modules/Piwik.php | 96 | ||||
-rw-r--r-- | modules/PluginsManager.php | 29 | ||||
-rw-r--r-- | modules/SmartyPlugins/modifier.translate.php | 34 | ||||
-rw-r--r-- | modules/Translate.php | 16 |
7 files changed, 144 insertions, 64 deletions
diff --git a/modules/FrontController.php b/modules/FrontController.php index f77d8ae978..0f7fccc115 100644 --- a/modules/FrontController.php +++ b/modules/FrontController.php @@ -85,6 +85,14 @@ class Piwik_FrontController throw new Exception("Invalid module name '$module'"); } + + // check that the plugin is enabled + if( ! Piwik_PluginsManager::getInstance()->isPluginEnabled( $module )) + { + throw new Exception_PluginDeactivated($module); + } + + $controllerClassName = "Piwik_".$module."_Controller"; if(!class_exists($controllerClassName)) @@ -98,12 +106,6 @@ class Piwik_FrontController require_once $moduleController; } - // check that the plugin is enabled - if( ! Piwik_PluginsManager::getInstance()->isPluginEnabled( $module )) - { - throw new Exception_PluginDeactivated($module); - } - $controller = new $controllerClassName; if($action === false) @@ -282,10 +284,6 @@ class Piwik_FrontController Piwik::prefixTable('log_profiling'), ); - //Piwik::dropTables($doNotDrop); - //Piwik::createTables(); - //Piwik_PluginsManager::getInstance()->installPlugins(); - // Setup the auth object Piwik_PostEvent('FrontController.authSetCredentials'); @@ -293,7 +291,10 @@ class Piwik_FrontController $authAdapter = Zend_Registry::get('auth'); } catch(Exception $e){ - throw new Exception("Object 'auth' cannot be found in the Registry. Maybe the Login plugin is not enabled?"); + throw new Exception("Object 'auth' cannot be found in the Registry. Maybe the Login plugin is not enabled? + <br>You can enable the plugin by adding:<br> + <code>Plugins[] = Login</code><br> + under the <code>[Plugins]</code> section in your config/config.inc.php"); } // Perform the authentication query, saving the result diff --git a/modules/LogStats.php b/modules/LogStats.php index 656a99fea3..8cbadc50e4 100644 --- a/modules/LogStats.php +++ b/modules/LogStats.php @@ -93,6 +93,7 @@ class Piwik_LogStats if(is_array($pluginsLogStats) && count($pluginsLogStats) != 0) { + Piwik_PluginsManager::getInstance()->doNotLoadAlwaysActivatedPlugins(); Piwik_PluginsManager::getInstance()->setPluginsToLoad( $pluginsLogStats['Plugins_LogStats'] ); } } catch(Exception $e) { diff --git a/modules/Menu.php b/modules/Menu.php index a36797f482..84e06b5a70 100644 --- a/modules/Menu.php +++ b/modules/Menu.php @@ -58,7 +58,10 @@ function Piwik_RenameMenuEntry($mainMenuOriginal, $subMenuOriginal, $mainMenuRenamed, $subMenuRenamed) { global $mainMenu; - $save = $mainMenu[$mainMenuOriginal][$subMenuOriginal]; - unset($mainMenu[$mainMenuOriginal][$subMenuOriginal]); - $mainMenu[$mainMenuRenamed][$subMenuRenamed] = $save; + if(isset($mainMenu[$mainMenuOriginal][$subMenuOriginal])) + { + $save = $mainMenu[$mainMenuOriginal][$subMenuOriginal]; + unset($mainMenu[$mainMenuOriginal][$subMenuOriginal]); + $mainMenu[$mainMenuRenamed][$subMenuRenamed] = $save; + } } diff --git a/modules/Piwik.php b/modules/Piwik.php index a3466adc7c..e37b626938 100755 --- a/modules/Piwik.php +++ b/modules/Piwik.php @@ -450,42 +450,42 @@ class Piwik ", 'log_visit' => "CREATE TABLE {$prefixTables}log_visit ( - idvisit INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT, - idsite INTEGER(10) UNSIGNED NOT NULL, - visitor_localtime TIME NOT NULL, - visitor_idcookie CHAR(32) NOT NULL, - visitor_returning TINYINT(1) NOT NULL, - visit_first_action_time DATETIME NOT NULL, - visit_last_action_time DATETIME NOT NULL, - visit_server_date DATE NOT NULL, - visit_exit_idaction INTEGER(11) NOT NULL, - visit_entry_idaction INTEGER(11) NOT NULL, - visit_total_actions SMALLINT(5) UNSIGNED NOT NULL, - visit_total_time SMALLINT(5) UNSIGNED NOT NULL, - referer_type INTEGER UNSIGNED NULL, - referer_name VARCHAR(70) NULL, - referer_url TEXT NOT NULL, - referer_keyword VARCHAR(255) NULL, - config_md5config CHAR(32) NOT NULL, - config_os CHAR(3) NOT NULL, - config_browser_name VARCHAR(10) NOT NULL, - config_browser_version VARCHAR(20) NOT NULL, - config_resolution VARCHAR(9) NOT NULL, - config_color_depth TINYINT(2) UNSIGNED NOT NULL, - config_pdf TINYINT(1) NOT NULL, - config_flash TINYINT(1) NOT NULL, - config_java TINYINT(1) NOT NULL, - config_director TINYINT(1) NOT NULL, - config_quicktime TINYINT(1) NOT NULL, - config_realplayer TINYINT(1) NOT NULL, - config_windowsmedia TINYINT(1) NOT NULL, - config_cookie TINYINT(1) NOT NULL, - location_ip BIGINT(11) NOT NULL, - location_browser_lang VARCHAR(20) NOT NULL, - location_country CHAR(3) NOT NULL, - location_continent CHAR(3) NOT NULL, - PRIMARY KEY(idvisit) -) + idvisit INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT, + idsite INTEGER(10) UNSIGNED NOT NULL, + visitor_localtime TIME NOT NULL, + visitor_idcookie CHAR(32) NOT NULL, + visitor_returning TINYINT(1) NOT NULL, + visit_first_action_time DATETIME NOT NULL, + visit_last_action_time DATETIME NOT NULL, + visit_server_date DATE NOT NULL, + visit_exit_idaction INTEGER(11) NOT NULL, + visit_entry_idaction INTEGER(11) NOT NULL, + visit_total_actions SMALLINT(5) UNSIGNED NOT NULL, + visit_total_time SMALLINT(5) UNSIGNED NOT NULL, + referer_type INTEGER UNSIGNED NULL, + referer_name VARCHAR(70) NULL, + referer_url TEXT NOT NULL, + referer_keyword VARCHAR(255) NULL, + config_md5config CHAR(32) NOT NULL, + config_os CHAR(3) NOT NULL, + config_browser_name VARCHAR(10) NOT NULL, + config_browser_version VARCHAR(20) NOT NULL, + config_resolution VARCHAR(9) NOT NULL, + config_color_depth TINYINT(2) UNSIGNED NOT NULL, + config_pdf TINYINT(1) NOT NULL, + config_flash TINYINT(1) NOT NULL, + config_java TINYINT(1) NOT NULL, + config_director TINYINT(1) NOT NULL, + config_quicktime TINYINT(1) NOT NULL, + config_realplayer TINYINT(1) NOT NULL, + config_windowsmedia TINYINT(1) NOT NULL, + config_cookie TINYINT(1) NOT NULL, + location_ip BIGINT(11) NOT NULL, + location_browser_lang VARCHAR(20) NOT NULL, + location_country CHAR(3) NOT NULL, + location_continent CHAR(3) NOT NULL, + PRIMARY KEY(idvisit) + ) ", 'log_link_visit_action' => "CREATE TABLE {$prefixTables}log_link_visit_action ( @@ -519,16 +519,16 @@ class Piwik ) ", 'archive_blob' => "CREATE TABLE {$prefixTables}archive_blob ( - idarchive INTEGER UNSIGNED NOT NULL, - name VARCHAR(255) NOT NULL, - idsite INTEGER UNSIGNED NULL, - date1 DATE NULL, - date2 DATE NULL, - period TINYINT UNSIGNED NULL, - ts_archived DATETIME NULL, - value BLOB NULL, - PRIMARY KEY(idarchive, name) -) + idarchive INTEGER UNSIGNED NOT NULL, + name VARCHAR(255) NOT NULL, + idsite INTEGER UNSIGNED NULL, + date1 DATE NULL, + date2 DATE NULL, + period TINYINT UNSIGNED NULL, + ts_archived DATETIME NULL, + value BLOB NULL, + PRIMARY KEY(idarchive, name) + ) ", ); return $tables; @@ -898,6 +898,10 @@ class Piwik $db->query( $tableSql ); } } + + $queries = array( + + ); } static public function install() diff --git a/modules/PluginsManager.php b/modules/PluginsManager.php index 87cf165919..0f1a69eca7 100644 --- a/modules/PluginsManager.php +++ b/modules/PluginsManager.php @@ -50,6 +50,12 @@ class Piwik_PluginsManager protected $doLoadPlugins = true; protected $languageToLoad = null; protected $loadedPlugins = array(); + + protected $doLoadAlwaysActivatedPlugins = true; + protected $pluginToAlwaysEnable = array( 'Home', + 'AdminHome', + 'PluginsAdmin' + ); static private $instance = null; @@ -73,9 +79,14 @@ class Piwik_PluginsManager $this->dispatcher = Event_Dispatcher::getInstance(); } + public function isPluginAlwaysActivated( $name ) + { + return in_array( $name, $this->pluginToAlwaysEnable); + } public function isPluginEnabled( $name ) { - return in_array( $name, $this->pluginsToLoad); + return in_array( $name, $this->pluginsToLoad) + || $this->isPluginAlwaysActivated( $name ); } /** @@ -233,7 +244,11 @@ class Piwik_PluginsManager { $this->doLoadPlugins = false; } - + + public function doNotLoadAlwaysActivatedPlugins() + { + $this->doLoadAlwaysActivatedPlugins = false; + } /** * Add a plugin in the loaded plugins array * @@ -278,7 +293,15 @@ class Piwik_PluginsManager public function loadPlugins() { $this->pluginsToLoad = array_unique($this->pluginsToLoad); - foreach($this->pluginsToLoad as $pluginName) + + $pluginsToLoad = $this->pluginsToLoad; + + if($this->doLoadAlwaysActivatedPlugins) + { + $pluginsToLoad = array_merge($this->pluginsToLoad, $this->pluginToAlwaysEnable); + } + + foreach($pluginsToLoad as $pluginName) { $newPlugin = $this->loadPlugin($pluginName); diff --git a/modules/SmartyPlugins/modifier.translate.php b/modules/SmartyPlugins/modifier.translate.php new file mode 100644 index 0000000000..bd0360ee9c --- /dev/null +++ b/modules/SmartyPlugins/modifier.translate.php @@ -0,0 +1,34 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later + * @version $Id: modifier.sumtime.php 168 2008-01-14 05:26:43Z matt $ + * + * @package Piwik_Visualization + */ + +/** + * Translates a string in the currently selected language in Piwik. + * The translations strings are located either in /lang/xx.php or within the plugin lang directory. + * + * Example: + * + * {'General_Unknown'|translate} will be translated as 'Unknown' (see the entry in /lang/en.php) + * + * + * + */ +function smarty_modifier_translate($string, $aValues = null) +{ + if(is_null($aValues)) + { + $aValues = array(); + } + if(!is_array($aValues)) + { + $aValues = array( $aValues); + } + return vsprintf($translations[$string], $aValues); +}
\ No newline at end of file diff --git a/modules/Translate.php b/modules/Translate.php index d44119cbf8..d2156181ad 100644 --- a/modules/Translate.php +++ b/modules/Translate.php @@ -17,6 +17,11 @@ class Piwik_Translate { static private $instance = null; + /** + * Returns singleton + * + * @return Piwik_Translate + */ static public function getInstance() { if (self::$instance == null) @@ -48,7 +53,8 @@ class Piwik_Translate /**
* Enter description here...
*
- * @return unknown
+ * @return string the language filename prefix, eg "en" for english + * @throws exception if the language set in the config file is not a valid filename
*/ public function getLanguageToLoad() { @@ -74,3 +80,11 @@ function Piwik_Translate($index) throw new Exception("Translation string '$index' not available."); } +if(!function_exists('_')) +{ + function _($translationIndex) + { + return Piwik_Translate($translationIndex); + } +} + |