settingsProvider = $settingsProvider; $this->settingsMetadata = $settingsMetadata; } /** * @internal * @param array $settingValues Format: array('PluginName' => array(array('name' => 'SettingName1', 'value' => 'SettingValue1), ..)) * @throws Exception */ public function setSystemSettings($settingValues) { Piwik::checkUserHasSuperUserAccess(); $pluginsSettings = $this->settingsProvider->getAllSystemSettings(); $this->settingsMetadata->setPluginSettings($pluginsSettings, $settingValues); try { foreach ($pluginsSettings as $pluginSetting) { if (!empty($settingValues[$pluginSetting->getPluginName()])) { $pluginSetting->save(); } } } catch (Exception $e) { throw new Exception(Piwik::translate('CoreAdminHome_PluginSettingsSaveFailed')); } } /** * @internal * @param array $settingValues Format: array('PluginName' => array(array('name' => 'SettingName1', 'value' => 'SettingValue1), ..)) * @throws Exception */ public function setUserSettings($settingValues) { Piwik::checkUserIsNotAnonymous(); $pluginsSettings = $this->settingsProvider->getAllUserSettings(); $this->settingsMetadata->setPluginSettings($pluginsSettings, $settingValues); try { foreach ($pluginsSettings as $pluginSetting) { if (!empty($settingValues[$pluginSetting->getPluginName()])) { $pluginSetting->save(); } } } catch (Exception $e) { throw new Exception(Piwik::translate('CoreAdminHome_PluginSettingsSaveFailed')); } } /** * @internal * @return array * @throws \Piwik\NoAccessException */ public function getSystemSettings() { Piwik::checkUserHasSuperUserAccess(); $systemSettings = $this->settingsProvider->getAllSystemSettings(); return $this->settingsMetadata->formatSettings($systemSettings); } /** * @internal * @return array * @throws \Piwik\NoAccessException */ public function getUserSettings() { Piwik::checkUserIsNotAnonymous(); $userSettings = $this->settingsProvider->getAllUserSettings(); return $this->settingsMetadata->formatSettings($userSettings); } }