diff options
Diffstat (limited to 'plugins/LanguagesManager/LanguagesManager.php')
-rw-r--r-- | plugins/LanguagesManager/LanguagesManager.php | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/plugins/LanguagesManager/LanguagesManager.php b/plugins/LanguagesManager/LanguagesManager.php index 8db9f2e353..6ee5178910 100644 --- a/plugins/LanguagesManager/LanguagesManager.php +++ b/plugins/LanguagesManager/LanguagesManager.php @@ -20,11 +20,10 @@ class Piwik_LanguagesManager extends Piwik_Plugin public function getInformation() { return array( - 'name' => 'Languages Management', - 'description' => 'This plugin will display a list of the available languages for the Piwik interface. The language selected will be saved in the preferences for each user.', + 'description' => Piwik_Translate('LanguagesManager_PluginDescription'), 'author' => 'Piwik', - 'homepage' => 'http://piwik.org/', - 'version' => '0.1', + 'author_homepage' => 'http://piwik.org/', + 'version' => Piwik_Version::VERSION, ); } @@ -34,6 +33,7 @@ class Piwik_LanguagesManager extends Piwik_Plugin 'template_css_import' => 'css', 'template_topBar' => 'showLanguagesSelector', 'Translate.getLanguageToLoad' => 'getLanguageToLoad', + 'UsersManager.deleteUser' => 'deleteUserLanguage', ); } @@ -49,11 +49,12 @@ class Piwik_LanguagesManager extends Piwik_Plugin */ function showLanguagesSelector() { - $view = Piwik_View::factory("languages"); - $view->languages = Piwik_LanguagesManager_API::getAvailableLanguageNames(); + // don't use Piwik_View::factory() here + $view = new Piwik_View("LanguagesManager/templates/languages.tpl"); + $view->languages = Piwik_LanguagesManager_API::getInstance()->getAvailableLanguageNames(); $view->currentLanguageCode = self::getLanguageCodeForCurrentUser(); $view->currentLanguageName = self::getLanguageNameForCurrentUser(); - echo $view ->render(); + echo $view->render(); } function getLanguageToLoad($notification) @@ -61,21 +62,27 @@ class Piwik_LanguagesManager extends Piwik_Plugin $language =& $notification->getNotificationObject(); $language = self::getLanguageCodeForCurrentUser(); } - + + function deleteUserLanguage($notification) + { + $userLogin = $notification->getNotificationObject(); + Piwik_Query('DELETE FROM ' . Piwik_Common::prefixTable('user_language') . ' WHERE login = ?', $userLogin); + } + /** - * @throws Zend_Db_Statement_Exception if non-recoverable error + * @throws Exception if non-recoverable error */ public function install() { // we catch the exception try{ - $sql = "CREATE TABLE ". Piwik::prefixTable('user_language')." ( + $sql = "CREATE TABLE ". Piwik_Common::prefixTable('user_language')." ( login VARCHAR( 100 ) NOT NULL , language VARCHAR( 10 ) NOT NULL , PRIMARY KEY ( login ) ) DEFAULT CHARSET=utf8 " ; Piwik_Exec($sql); - } catch(Zend_Db_Statement_Exception $e){ + } catch(Exception $e){ // mysql code error 1050:table already exists // see bug #153 http://dev.piwik.org/trac/ticket/153 if(!Zend_Registry::get('db')->isErrNo($e, '1050')) @@ -86,26 +93,25 @@ class Piwik_LanguagesManager extends Piwik_Plugin } /** - * @throws Zend_Db_Statement_Exception if non-recoverable error + * @throws Exception if non-recoverable error */ public function uninstall() { - $sql = "DROP TABLE ". Piwik::prefixTable('user_language') ; + $sql = "DROP TABLE ". Piwik_Common::prefixTable('user_language') ; Piwik_Exec($sql); } - - + /** * @return string Two letters language code, eg. "fr" */ static public function getLanguageCodeForCurrentUser() { $languageCode = self::getLanguageFromPreferences(); - if(!Piwik_LanguagesManager_API::isLanguageAvailable($languageCode)) + if(!Piwik_LanguagesManager_API::getInstance()->isLanguageAvailable($languageCode)) { - $languageCode = Piwik_Common::extractLanguageCodeFromBrowserLanguage(Piwik_Common::getBrowserLanguage(), Piwik_LanguagesManager_API::getAvailableLanguages()); + $languageCode = Piwik_Common::extractLanguageCodeFromBrowserLanguage(Piwik_Common::getBrowserLanguage(), Piwik_LanguagesManager_API::getInstance()->getAvailableLanguages()); } - if(!Piwik_LanguagesManager_API::isLanguageAvailable($languageCode)) + if(!Piwik_LanguagesManager_API::getInstance()->isLanguageAvailable($languageCode)) { $languageCode = 'en'; } @@ -118,7 +124,7 @@ class Piwik_LanguagesManager extends Piwik_Plugin static public function getLanguageNameForCurrentUser() { $languageCode = self::getLanguageCodeForCurrentUser(); - $languages = Piwik_LanguagesManager_API::getAvailableLanguageNames(); + $languages = Piwik_LanguagesManager_API::getInstance()->getAvailableLanguageNames(); foreach($languages as $language) { if($language['code'] === $languageCode) @@ -133,14 +139,14 @@ class Piwik_LanguagesManager extends Piwik_Plugin */ static protected function getLanguageFromPreferences() { - if ($language = Piwik_LanguagesManager_API::getLanguageForSession()) + if ($language = Piwik_LanguagesManager_API::getInstance()->getLanguageForSession()) { return $language; } try { $currentUser = Piwik::getCurrentUserLogin(); - return Piwik_LanguagesManager_API::getLanguageForUser($currentUser); + return Piwik_LanguagesManager_API::getInstance()->getLanguageForUser($currentUser); } catch(Exception $e) { return false; } |