Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Giehl <stefan@piwik.org>2016-12-16 03:18:04 +0300
committerMatthieu Aubry <mattab@users.noreply.github.com>2016-12-16 03:18:04 +0300
commita2c17ae6f6dfd579c94ee59d7f0c316d2e8f82c2 (patch)
tree3f2a3aa471410d33b03d0a14e8aee96b36af8942 /plugins/WebsiteMeasurable
parent3c61f1244e2cc18b92cec73d3b18eadf8cb6f640 (diff)
Store site search settings correctly (#11022)
* store site search settings correctly * Updated instruction for JS code in https://github.com/piwik/piwik/pull/11011 https://github.com/piwik/piwik/issues/11007 * improve check if default keywords are used * Tests
Diffstat (limited to 'plugins/WebsiteMeasurable')
-rw-r--r--plugins/WebsiteMeasurable/MeasurableSettings.php29
1 files changed, 23 insertions, 6 deletions
diff --git a/plugins/WebsiteMeasurable/MeasurableSettings.php b/plugins/WebsiteMeasurable/MeasurableSettings.php
index bcb3b5f228..0a16d92e92 100644
--- a/plugins/WebsiteMeasurable/MeasurableSettings.php
+++ b/plugins/WebsiteMeasurable/MeasurableSettings.php
@@ -79,6 +79,11 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
*/
private $typeManager;
+ /**
+ * @var bool
+ */
+ private $unsetSiteSearchKeywords = false;
+
public function __construct(SitesManager\API $api, Plugin\Manager $pluginManager, TypeManager $typeManager, $idSite, $idMeasurableType)
{
$this->sitesManagerApi = $api;
@@ -123,7 +128,8 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
$this->siteSearchKeywords = $this->makeSiteSearchKeywords();
$siteSearchKeywords = $this->siteSearchKeywords->getValue();
- $this->useDefaultSiteSearchParams->setDefaultValue(empty($siteSearchKeywords));
+ $areSiteSearchKeywordsEmpty = empty($siteSearchKeywords) || (is_array($siteSearchKeywords) && implode("", $siteSearchKeywords) == "");
+ $this->useDefaultSiteSearchParams->setDefaultValue($areSiteSearchKeywordsEmpty);
$this->siteSearchCategory = $this->makeSiteSearchCategory($this->pluginManager);
/**
@@ -249,7 +255,8 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
private function makeUseDefaultSiteSearchParams(SitesManager\API $sitesManagerApi)
{
- return $this->makeSetting('use_default_site_search_params', $default = true, FieldConfig::TYPE_BOOL, function (FieldConfig $field) use ($sitesManagerApi) {
+ $settings = $this;
+ return $this->makeSetting('use_default_site_search_params', $default = true, FieldConfig::TYPE_BOOL, function (FieldConfig $field) use ($sitesManagerApi, $settings) {
if (Piwik::hasUserSuperUserAccess()) {
$title = Piwik::translate('SitesManager_SearchUseDefault', array("<a href='#globalSettings'>","</a>"));
@@ -276,19 +283,29 @@ class MeasurableSettings extends \Piwik\Settings\Measurable\MeasurableSettings
$field->description .= Piwik::translate('SitesManager_SearchCategoryLabel');
$field->description .= ': ';
$field->description .= $searchCategoryGlobal;
- $field->transform = function () {
- return null;// never actually save a value for this
+ $field->transform = function ($value) use ($settings) {
+ if ($value) {
+ $settings->unsetSiteSearchKeywords = true;
+ }
+ return null; // never actually save a value for this
};
});
}
private function makeSiteSearchKeywords()
{
- return $this->makeProperty('sitesearch_keyword_parameters', $default = array(), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) {
+ $settings = $this;
+ return $this->makeProperty('sitesearch_keyword_parameters', $default = array(), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($settings) {
$field->title = Piwik::translate('SitesManager_SearchKeywordLabel');
$field->uiControl = FieldConfig::UI_CONTROL_TEXT;
$field->inlineHelp = Piwik::translate('SitesManager_SearchKeywordParametersDesc');
- $field->condition = Piwik::translate('sitesearch && !use_default_site_search_params');
+ $field->condition = 'sitesearch && !use_default_site_search_params';
+ $field->transform = function ($value) use ($settings) {
+ if ($settings->unsetSiteSearchKeywords) {
+ return '';
+ }
+ return $value;
+ };
});
}