languagesmanager.php
来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 154 行
PHP
154 行
<?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: ExamplePlugin.php 169 2008-01-14 05:41:15Z matt $ * * @package Piwik_LanguageManager */require_once "LanguagesManager/API.php";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.', 'author' => 'Piwik', 'homepage' => 'http://piwik.org/', 'version' => '0.1', ); } public function getListHooksRegistered() { return array( 'template_js_import' => 'js', 'template_css_import' => 'css', 'template_topBar' => 'showLanguagesSelector', 'Translate.getLanguageToLoad' => 'getLanguageToLoad', ); } function js() { echo '<script type="text/javascript" src="plugins/LanguagesManager/templates/fdd2div-modified.js"></script>'; } function css() { echo '<link rel="stylesheet" type="text/css" href="plugins/LanguagesManager/templates/styles.css" />'; } function showLanguagesSelector() { $view = new Piwik_View("LanguagesManager/templates/languages.tpl"); $view->languages = Piwik_LanguagesManager_API::getAvailableLanguageNames(); $view->currentLanguageCode = self::getLanguageCodeForCurrentUser(); $view->currentLanguageName = self::getLanguageNameForCurrentUser(); echo $view ->render(); } function getLanguageToLoad($notification) { $language =& $notification->getNotificationObject(); $language = self::getLanguageCodeForCurrentUser(); } /** * @return void|Exception */ public function install() { // we catch the exception try{ $sql = "CREATE TABLE ". Piwik::prefixTable('user_language')." ( login VARCHAR( 20 ) NOT NULL , language VARCHAR( 10 ) NOT NULL , PRIMARY KEY ( login ) ) " ; Piwik_Query($sql); } catch(Zend_Db_Statement_Exception $e){ // mysql code error 1050:table already exists // see bug #153 http://dev.piwik.org/trac/ticket/153 if(ereg('1050',$e->getMessage())) { return; } else { throw $e; } } } /** * @return void|Exception */ public function uninstall() { $sql = "DROP TABLE ". Piwik::prefixTable('user_language') ; Piwik_Query($sql); } /** * @return string Two letters language code, eg. "fr" */ static public function getLanguageCodeForCurrentUser() { $languageCode = self::getLanguageFromPreferences(); if(!Piwik_LanguagesManager_API::isLanguageAvailable($languageCode)) { $languageCode = Piwik_Common::extractLanguageCodeFromBrowserLanguage(Piwik_Common::getBrowserLanguage(), Piwik_LanguagesManager_API::getAvailableLanguages()); } if(!Piwik_LanguagesManager_API::isLanguageAvailable($languageCode)) { $languageCode = 'en'; } return $languageCode; } /** * @return string Full english language string, eg. "French" */ static public function getLanguageNameForCurrentUser() { $languageCode = self::getLanguageCodeForCurrentUser(); $languages = Piwik_LanguagesManager_API::getAvailableLanguageNames(); foreach($languages as $language) { if($language['code'] === $languageCode) { return $language['name']; } } } /** * @return string|false if language preference could not be loaded */ static protected function getLanguageFromPreferences() { if(isset($_SESSION['language'])) { return $_SESSION['language']; } try { $currentUser = Piwik::getCurrentUserLogin(); return Piwik_LanguagesManager_API::getLanguageForUser($currentUser); } catch(Exception $e) { return false; } } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?