1
0
Fork 0
mirror of https://github.com/Findus23/plugin-LanguageToogle.git synced 2024-09-19 15:43:46 +02:00

replace multiselect with new multituple

This commit is contained in:
Lukas Winkler 2018-05-07 11:50:37 +02:00
parent f1171b7148
commit 573f6b677b
No known key found for this signature in database
GPG key ID: 94AFBE7C2656A5B5
7 changed files with 25 additions and 12 deletions

View file

@ -1,5 +1,9 @@
## Changelog ## Changelog
0.2.0
- replace multiselect with new multituple (needs Matomo 3.5.0)
0.1.4 0.1.4
- performance improvements - performance improvements

View file

@ -19,14 +19,15 @@ class Menu extends \Piwik\Plugin\Menu
if (Piwik::hasUserSuperUserAccess()) { if (Piwik::hasUserSuperUserAccess()) {
$additionalParams = ["returnModule" => Piwik::getModule(), "returnAction" => Piwik::getAction()]; $additionalParams = ["returnModule" => Piwik::getModule(), "returnAction" => Piwik::getAction()];
$settings = new UserSettings(); $settings = new UserSettings();
if (empty($settings->availableLanguages->getValue())) { if (empty($settings->availableLanguages)) {
return false; return false;
} }
$languages = []; $languages = [];
foreach (API::getInstance()->getAvailableLanguageNames() as $lang) { foreach (API::getInstance()->getAvailableLanguageNames() as $lang) {
$languages[$lang["code"]] = $lang; $languages[$lang["code"]] = $lang;
} }
foreach ($settings->availableLanguages->getValue() as $code) { foreach ($settings->availableLanguages->getValue() as $setting) {
$code=$setting["languageCode"];
if (isset($languages[$code])) { if (isset($languages[$code])) {
$additionalParams["lang"] = $code; $additionalParams["lang"] = $code;
$menu->addItem($languages[$code]["name"], null, $this->urlForDefaultAction($additionalParams), $orderId = 30); $menu->addItem($languages[$code]["name"], null, $this->urlForDefaultAction($additionalParams), $orderId = 30);
@ -34,4 +35,5 @@ class Menu extends \Piwik\Plugin\Menu
} }
} }
} }
} }

View file

@ -8,6 +8,7 @@
namespace Piwik\Plugins\LanguageToogle; namespace Piwik\Plugins\LanguageToogle;
use function PHPSTORM_META\type;
use Piwik\Piwik; use Piwik\Piwik;
use Piwik\Plugins\LanguagesManager\API; use Piwik\Plugins\LanguagesManager\API;
use Piwik\Settings\FieldConfig; use Piwik\Settings\FieldConfig;
@ -20,20 +21,24 @@ class UserSettings extends \Piwik\Settings\Plugin\UserSettings
protected function init() { protected function init() {
$this->availableLanguages = $this->createAvailableLanguagesSetting(); $this->availableLanguages = $this->createAvailableLanguagesSetting();
if (!empty($this->availableLanguages->getValue()) && gettype($this->availableLanguages->getValue()[0]) == "string") {
$this->availableLanguages->setValue([]);
}
} }
private function createAvailableLanguagesSetting() private function createAvailableLanguagesSetting() {
{ return $this->makeSetting('availableLanguages', array(), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) {
return $this->makeSetting('availableLanguages', $default = false, FieldConfig::TYPE_ARRAY, function (FieldConfig $field) {
$languageList = []; $languageList = [];
$languages = API::getInstance()->getAvailableLanguagesInfo(); $languages = API::getInstance()->getAvailableLanguagesInfo();
foreach ($languages as $language) { foreach ($languages as $language) {
$languageList[$language['code']] = $language['name'] . ' (' . $language['english_name'] . ')'; $languageList[$language['code']] = $language['name'] . ' (' . $language['english_name'] . ')';
} }
$field->title = Piwik::translate('LanguageToogle_SettingsTitle'); $field->title = Piwik::translate('LanguageToogle_SettingsTitle');
$field->inlineHelp = Piwik::translate('LanguageToogle_SelectLanguages'); $field->description = Piwik::translate('LanguageToogle_Description');
$field->uiControl = FieldConfig::UI_CONTROL_MULTI_SELECT; $field->uiControl = FieldConfig::UI_CONTROL_MULTI_TUPLE;
$field->availableValues = $languageList; $field1 = new FieldConfig\MultiPair(Piwik::translate('LanguageToogle_Language'), 'languageCode', FieldConfig::UI_CONTROL_SINGLE_SELECT);
$field1->availableValues = $languageList;
$field->uiControlAttributes['field1'] = $field1->toArray();
}); });
} }
} }

View file

@ -1,6 +1,7 @@
{ {
"LanguageToogle": { "LanguageToogle": {
"SettingsTitle": "Persönliche Sprachen", "SettingsTitle": "Persönliche Sprachen",
"SelectLanguages": "Wähle die Sprachen zwischen denen gewechselt werden soll." "Description": "Wähle die Sprachen zwischen denen gewechselt werden soll.",
"Language": "Sprache"
} }
} }

View file

@ -1,6 +1,7 @@
{ {
"LanguageToogle": { "LanguageToogle": {
"SettingsTitle": "Favorite Languages", "SettingsTitle": "Favorite Languages",
"SelectLanguages": "Please choose the languages you would to toogle between." "Description": "Please choose the languages you would to toogle between.",
"Language": "Language"
} }
} }

View file

@ -1,10 +1,10 @@
{ {
"name": "LanguageToogle", "name": "LanguageToogle",
"description": "Quickly change the language of Matomo", "description": "Quickly change the language of Matomo",
"version": "0.1.4", "version": "0.2.0",
"theme": false, "theme": false,
"require": { "require": {
"piwik": ">=3.4.0,<4.0.0-b1" "piwik": ">=3.5.0-rc,<4.0.0-b1"
}, },
"authors": [ "authors": [
{ {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 23 KiB