diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ec50ed..c412754 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Changelog +0.2.0 + +- replace multiselect with new multituple (needs Matomo 3.5.0) + 0.1.4 - performance improvements diff --git a/Menu.php b/Menu.php index b141632..d766905 100644 --- a/Menu.php +++ b/Menu.php @@ -19,14 +19,15 @@ class Menu extends \Piwik\Plugin\Menu if (Piwik::hasUserSuperUserAccess()) { $additionalParams = ["returnModule" => Piwik::getModule(), "returnAction" => Piwik::getAction()]; $settings = new UserSettings(); - if (empty($settings->availableLanguages->getValue())) { + if (empty($settings->availableLanguages)) { return false; } $languages = []; foreach (API::getInstance()->getAvailableLanguageNames() as $lang) { $languages[$lang["code"]] = $lang; } - foreach ($settings->availableLanguages->getValue() as $code) { + foreach ($settings->availableLanguages->getValue() as $setting) { + $code=$setting["languageCode"]; if (isset($languages[$code])) { $additionalParams["lang"] = $code; $menu->addItem($languages[$code]["name"], null, $this->urlForDefaultAction($additionalParams), $orderId = 30); @@ -34,4 +35,5 @@ class Menu extends \Piwik\Plugin\Menu } } } + } diff --git a/UserSettings.php b/UserSettings.php index fbbda28..788aa92 100644 --- a/UserSettings.php +++ b/UserSettings.php @@ -8,6 +8,7 @@ namespace Piwik\Plugins\LanguageToogle; +use function PHPSTORM_META\type; use Piwik\Piwik; use Piwik\Plugins\LanguagesManager\API; use Piwik\Settings\FieldConfig; @@ -20,20 +21,24 @@ class UserSettings extends \Piwik\Settings\Plugin\UserSettings protected function init() { $this->availableLanguages = $this->createAvailableLanguagesSetting(); + if (!empty($this->availableLanguages->getValue()) && gettype($this->availableLanguages->getValue()[0]) == "string") { + $this->availableLanguages->setValue([]); + } } - private function createAvailableLanguagesSetting() - { - return $this->makeSetting('availableLanguages', $default = false, FieldConfig::TYPE_ARRAY, function (FieldConfig $field) { + private function createAvailableLanguagesSetting() { + return $this->makeSetting('availableLanguages', array(), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) { $languageList = []; $languages = API::getInstance()->getAvailableLanguagesInfo(); foreach ($languages as $language) { $languageList[$language['code']] = $language['name'] . ' (' . $language['english_name'] . ')'; } $field->title = Piwik::translate('LanguageToogle_SettingsTitle'); - $field->inlineHelp = Piwik::translate('LanguageToogle_SelectLanguages'); - $field->uiControl = FieldConfig::UI_CONTROL_MULTI_SELECT; - $field->availableValues = $languageList; + $field->description = Piwik::translate('LanguageToogle_Description'); + $field->uiControl = FieldConfig::UI_CONTROL_MULTI_TUPLE; + $field1 = new FieldConfig\MultiPair(Piwik::translate('LanguageToogle_Language'), 'languageCode', FieldConfig::UI_CONTROL_SINGLE_SELECT); + $field1->availableValues = $languageList; + $field->uiControlAttributes['field1'] = $field1->toArray(); }); } } diff --git a/lang/de.json b/lang/de.json index a85d064..e8a9251 100644 --- a/lang/de.json +++ b/lang/de.json @@ -1,6 +1,7 @@ { "LanguageToogle": { "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" } } diff --git a/lang/en.json b/lang/en.json index 43a6269..7039e58 100644 --- a/lang/en.json +++ b/lang/en.json @@ -1,6 +1,7 @@ { "LanguageToogle": { "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" } } diff --git a/plugin.json b/plugin.json index 439dd9d..640cc84 100644 --- a/plugin.json +++ b/plugin.json @@ -1,10 +1,10 @@ { "name": "LanguageToogle", "description": "Quickly change the language of Matomo", - "version": "0.1.4", + "version": "0.2.0", "theme": false, "require": { - "piwik": ">=3.4.0,<4.0.0-b1" + "piwik": ">=3.5.0-rc,<4.0.0-b1" }, "authors": [ { diff --git a/screenshots/Settings.png b/screenshots/Settings.png index 31af0ed..1a3ba63 100644 Binary files a/screenshots/Settings.png and b/screenshots/Settings.png differ