update Piwik to version 2.16 (fixes #91)
This commit is contained in:
parent
296343bf3b
commit
d885a4baa9
5833 changed files with 418860 additions and 226988 deletions
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -10,15 +10,16 @@
|
|||
namespace Piwik\Plugins\LanguagesManager;
|
||||
|
||||
use Exception;
|
||||
use Piwik\API\Request;
|
||||
use Piwik\Common;
|
||||
use Piwik\Config;
|
||||
|
||||
use Piwik\Container\StaticContainer;
|
||||
use Piwik\Cookie;
|
||||
use Piwik\Db;
|
||||
use Piwik\DbHelper;
|
||||
use Piwik\Menu\MenuTop;
|
||||
use Piwik\Intl\Locale;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Translate;
|
||||
use Piwik\Translation\Translator;
|
||||
use Piwik\View;
|
||||
|
||||
/**
|
||||
|
|
@ -27,36 +28,33 @@ use Piwik\View;
|
|||
class LanguagesManager extends \Piwik\Plugin
|
||||
{
|
||||
/**
|
||||
* @see Piwik\Plugin::getListHooksRegistered
|
||||
* @see Piwik\Plugin::registerEvents
|
||||
*/
|
||||
public function getListHooksRegistered()
|
||||
public function registerEvents()
|
||||
{
|
||||
return array(
|
||||
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
|
||||
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
|
||||
'Menu.Top.addItems' => 'showLanguagesSelector',
|
||||
'User.getLanguage' => 'getLanguageToLoad',
|
||||
'UsersManager.deleteUser' => 'deleteUserLanguage',
|
||||
'Template.topBar' => 'addLanguagesManagerToOtherTopBar',
|
||||
'Template.jsGlobalVariables' => 'jsGlobalVariables'
|
||||
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
|
||||
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
|
||||
'Config.NoConfigurationFile' => 'initLanguage',
|
||||
'Request.dispatchCoreAndPluginUpdatesScreen' => 'initLanguage',
|
||||
'Request.dispatch' => 'initLanguage',
|
||||
'Platform.initialized' => 'initLanguage',
|
||||
'UsersManager.deleteUser' => 'deleteUserLanguage',
|
||||
'Template.topBar' => 'addLanguagesManagerToOtherTopBar',
|
||||
'Template.jsGlobalVariables' => 'jsGlobalVariables'
|
||||
);
|
||||
}
|
||||
|
||||
public function getStylesheetFiles(&$stylesheets)
|
||||
{
|
||||
$stylesheets[] = "plugins/Zeitgeist/stylesheets/base.less";
|
||||
$stylesheets[] = "plugins/Morpheus/stylesheets/base.less";
|
||||
}
|
||||
|
||||
public function getJsFiles(&$jsFiles)
|
||||
{
|
||||
$jsFiles[] = "plugins/LanguagesManager/javascripts/languageSelector.js";
|
||||
}
|
||||
|
||||
public function showLanguagesSelector()
|
||||
{
|
||||
if (Piwik::isUserIsAnonymous() || !DbHelper::isInstalled()) {
|
||||
MenuTop::addEntry('LanguageSelector', $this->getLanguagesSelector(), true, $order = 30, true);
|
||||
}
|
||||
$jsFiles[] = "plugins/LanguagesManager/angularjs/languageselector/languageselector.directive.js";
|
||||
$jsFiles[] = "plugins/LanguagesManager/angularjs/translationsearch/translationsearch.controller.js";
|
||||
$jsFiles[] = "plugins/LanguagesManager/angularjs/translationsearch/translationsearch.directive.js";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -68,7 +66,8 @@ class LanguagesManager extends \Piwik\Plugin
|
|||
{
|
||||
// piwik object & scripts aren't loaded in 'other' topbars
|
||||
$str .= "<script type='text/javascript'>if (!window.piwik) window.piwik={};</script>";
|
||||
$str .= "<script type='text/javascript' src='plugins/LanguagesManager/javascripts/languageSelector.js'></script>";
|
||||
$str .= "<script type='text/javascript' src='plugins/CoreHome/angularjs/menudropdown/menudropdown.directive.js'></script>";
|
||||
$str .= "<script type='text/javascript' src='plugins/LanguagesManager/angularjs/languageselector/languageselector.directive.js'></script>";
|
||||
$str .= $this->getLanguagesSelector();
|
||||
}
|
||||
|
||||
|
|
@ -88,27 +87,39 @@ class LanguagesManager extends \Piwik\Plugin
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getLanguagesSelector()
|
||||
public function getLanguagesSelector()
|
||||
{
|
||||
$view = new View("@LanguagesManager/getLanguagesSelector");
|
||||
$view->languages = API::getInstance()->getAvailableLanguageNames();
|
||||
$view->currentLanguageCode = self::getLanguageCodeForCurrentUser();
|
||||
$view->currentLanguageName = self::getLanguageNameForCurrentUser();
|
||||
return $view->render();
|
||||
}
|
||||
|
||||
function getLanguageToLoad(&$language)
|
||||
public function initLanguage()
|
||||
{
|
||||
/** @var Translator $translator */
|
||||
$translator = StaticContainer::get('Piwik\Translation\Translator');
|
||||
|
||||
$language = Common::getRequestVar('language', '', 'string');
|
||||
if (empty($language)) {
|
||||
$language = self::getLanguageCodeForCurrentUser();
|
||||
$userLanguage = self::getLanguageCodeForCurrentUser();
|
||||
if (API::getInstance()->isLanguageAvailable($userLanguage)) {
|
||||
$language = $userLanguage;
|
||||
}
|
||||
}
|
||||
if (!API::getInstance()->isLanguageAvailable($language)) {
|
||||
$language = Translate::getLanguageDefault();
|
||||
if (!empty($language) && API::getInstance()->isLanguageAvailable($language)) {
|
||||
$translator->setCurrentLanguage($language);
|
||||
}
|
||||
|
||||
$locale = $translator->translate('General_Locale');
|
||||
Locale::setLocale($locale);
|
||||
}
|
||||
|
||||
public function deleteUserLanguage($userLogin)
|
||||
{
|
||||
Db::query('DELETE FROM ' . Common::prefixTable('user_language') . ' WHERE login = ?', $userLogin);
|
||||
$model = new Model();
|
||||
$model->deleteUserLanguage($userLogin);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -116,10 +127,7 @@ class LanguagesManager extends \Piwik\Plugin
|
|||
*/
|
||||
public function install()
|
||||
{
|
||||
$userLanguage = "login VARCHAR( 100 ) NOT NULL ,
|
||||
language VARCHAR( 10 ) NOT NULL ,
|
||||
PRIMARY KEY ( login )";
|
||||
DbHelper::createTable('user_language', $userLanguage);
|
||||
Model::install();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -127,13 +135,26 @@ class LanguagesManager extends \Piwik\Plugin
|
|||
*/
|
||||
public function uninstall()
|
||||
{
|
||||
Db::dropTables(Common::prefixTable('user_language'));
|
||||
Model::uninstall();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
public static function uses12HourClockForCurrentUser()
|
||||
{
|
||||
try {
|
||||
$currentUser = Piwik::getCurrentUserLogin();
|
||||
return Request::processRequest('LanguagesManager.uses12HourClockForUser', array('login' => $currentUser));
|
||||
} catch (Exception $e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string Two letters language code, eg. "fr"
|
||||
*/
|
||||
static public function getLanguageCodeForCurrentUser()
|
||||
public static function getLanguageCodeForCurrentUser()
|
||||
{
|
||||
$languageCode = self::getLanguageFromPreferences();
|
||||
if (!API::getInstance()->isLanguageAvailable($languageCode)) {
|
||||
|
|
@ -148,7 +169,7 @@ class LanguagesManager extends \Piwik\Plugin
|
|||
/**
|
||||
* @return string Full english language string, eg. "French"
|
||||
*/
|
||||
static public function getLanguageNameForCurrentUser()
|
||||
public static function getLanguageNameForCurrentUser()
|
||||
{
|
||||
$languageCode = self::getLanguageCodeForCurrentUser();
|
||||
$languages = API::getInstance()->getAvailableLanguageNames();
|
||||
|
|
@ -163,7 +184,7 @@ class LanguagesManager extends \Piwik\Plugin
|
|||
/**
|
||||
* @return string|false if language preference could not be loaded
|
||||
*/
|
||||
static protected function getLanguageFromPreferences()
|
||||
protected static function getLanguageFromPreferences()
|
||||
{
|
||||
if (($language = self::getLanguageForSession()) != null) {
|
||||
return $language;
|
||||
|
|
@ -182,7 +203,7 @@ class LanguagesManager extends \Piwik\Plugin
|
|||
*
|
||||
* @return string|null
|
||||
*/
|
||||
static public function getLanguageForSession()
|
||||
public static function getLanguageForSession()
|
||||
{
|
||||
$cookieName = Config::getInstance()->General['language_cookie_name'];
|
||||
$cookie = new Cookie($cookieName);
|
||||
|
|
@ -198,7 +219,7 @@ class LanguagesManager extends \Piwik\Plugin
|
|||
* @param string $languageCode ISO language code
|
||||
* @return bool
|
||||
*/
|
||||
static public function setLanguageForSession($languageCode)
|
||||
public static function setLanguageForSession($languageCode)
|
||||
{
|
||||
if (!API::getInstance()->isLanguageAvailable($languageCode)) {
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue