diff options
author | Stefan Giehl <stefan@matomo.org> | 2019-05-09 23:20:27 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-09 23:20:27 +0300 |
commit | a4c8dc92994ccfd5775d080a4f63cb095ab95e19 (patch) | |
tree | 1dc5f537e9cfeaa9c809d183f3565294c57ac455 /plugins/UserCountry | |
parent | 3daba5ce28072930188f8c15c6f8a6eb9bbb46b5 (diff) |
Ensure segment definitions doen't regress (#14372)
Diffstat (limited to 'plugins/UserCountry')
3 files changed, 22 insertions, 25 deletions
diff --git a/plugins/UserCountry/API.php b/plugins/UserCountry/API.php index 72b6c71142..34a00a4add 100644 --- a/plugins/UserCountry/API.php +++ b/plugins/UserCountry/API.php @@ -56,7 +56,7 @@ class API extends \Piwik\Plugin\API } // apply filter on the whole datatable in order the inline search to work (searches are done on "beautiful" label) - $dataTable->filter('AddSegmentByLabel', ['countryCode']); + $dataTable->filter('AddSegmentValue'); $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'code')); $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'logo', __NAMESPACE__ . '\getFlagFromCode')); $dataTable->filter('ColumnCallbackReplace', array('label', __NAMESPACE__ . '\countryTranslate')); diff --git a/plugins/UserCountry/Columns/Country.php b/plugins/UserCountry/Columns/Country.php index 21c40251ee..9ea19844e1 100644 --- a/plugins/UserCountry/Columns/Country.php +++ b/plugins/UserCountry/Columns/Country.php @@ -35,38 +35,35 @@ class Country extends Base protected $category = 'UserCountry_VisitLocation'; protected $nameSingular = 'UserCountry_Country'; protected $namePlural = 'UserCountryMap_Countries'; - protected $segmentName = 'countryName'; - protected $acceptValues = 'Germany, France, Spain, ...'; + protected $segmentName = 'countryCode'; + protected $acceptValues = 'ISO 3166-1 alpha-2 country codes (de, us, fr, in, es, etc.)'; - public function __construct() + protected function configureSegments() { + $segment = new Segment(); + $segment->setName('UserCountry_CountryCode'); + $this->addSegment($segment); + + $segment = new Segment(); + $segment->setSegment('countryName'); + $segment->setName('UserCountry_Country'); + $segment->setAcceptedValues('Germany, France, Spain, ...'); $regionDataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\RegionDataProvider'); $countryList = $regionDataProvider->getCountryList(); array_walk($countryList, function(&$item, $key) { $item = Piwik::translate('Intl_Country_'.strtoupper($key), [], 'en'); }); - $this->sqlFilterValue = function ($val) use ($countryList) { + $segment->setSqlFilterValue(function ($val) use ($countryList) { $result = array_search($val, $countryList); if ($result === false) { $result = 'UNK'; } return $result; - }; - $this->suggestedValuesCallback = function ($idSite, $maxValuesToReturn) use ($countryList) { + }); + $segment->setSuggestedValuesCallback(function ($idSite, $maxValuesToReturn) use ($countryList) { return array_values($countryList + ['Unknown']); - }; - } - - protected function configureSegments() - { - parent::configureSegments(); - $segment = new Segment(); - $segment->setSegment('countryCode'); - $segment->setName('UserCountry_CountryCode'); - $segment->setAcceptedValues('ISO 3166-1 alpha-2 country codes (de, us, fr, in, es, etc.)'); - $this->suggestedValuesCallback = null; - $this->sqlFilterValue = null; + }); $this->addSegment($segment); } diff --git a/plugins/UserCountry/tests/System/expected/test_AttributeHistoricalDataWithLocationsTest_testExecute_ShouldReturnLogAfterWorkingWithSomeData__UserCountry.getCountry_month.xml b/plugins/UserCountry/tests/System/expected/test_AttributeHistoricalDataWithLocationsTest_testExecute_ShouldReturnLogAfterWorkingWithSomeData__UserCountry.getCountry_month.xml index 79c5792f66..ade01286fe 100644 --- a/plugins/UserCountry/tests/System/expected/test_AttributeHistoricalDataWithLocationsTest_testExecute_ShouldReturnLogAfterWorkingWithSomeData__UserCountry.getCountry_month.xml +++ b/plugins/UserCountry/tests/System/expected/test_AttributeHistoricalDataWithLocationsTest_testExecute_ShouldReturnLogAfterWorkingWithSomeData__UserCountry.getCountry_month.xml @@ -22,9 +22,9 @@ <revenue>150</revenue> <sum_daily_nb_uniq_visitors>10</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>0</sum_daily_nb_users> - <segment>countryCode==cn</segment> <code>cn</code> <logo>plugins/Morpheus/icons/dist/flags/cn.png</logo> + <segment>countryCode==cn</segment> <logoHeight>16</logoHeight> </row> <row> @@ -49,9 +49,9 @@ <revenue>45</revenue> <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>0</sum_daily_nb_users> - <segment>countryCode==ca</segment> <code>ca</code> <logo>plugins/Morpheus/icons/dist/flags/ca.png</logo> + <segment>countryCode==ca</segment> <logoHeight>16</logoHeight> </row> <row> @@ -76,9 +76,9 @@ <revenue>20</revenue> <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>1</sum_daily_nb_users> - <segment>countryCode==fr</segment> <code>fr</code> <logo>plugins/Morpheus/icons/dist/flags/fr.png</logo> + <segment>countryCode==fr</segment> <logoHeight>16</logoHeight> </row> <row> @@ -103,9 +103,9 @@ <revenue>15</revenue> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>0</sum_daily_nb_users> - <segment>countryCode==id</segment> <code>id</code> <logo>plugins/Morpheus/icons/dist/flags/id.png</logo> + <segment>countryCode==id</segment> <logoHeight>16</logoHeight> </row> <row> @@ -130,9 +130,9 @@ <revenue>15</revenue> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>0</sum_daily_nb_users> - <segment>countryCode==it</segment> <code>it</code> <logo>plugins/Morpheus/icons/dist/flags/it.png</logo> + <segment>countryCode==it</segment> <logoHeight>16</logoHeight> </row> <row> @@ -157,9 +157,9 @@ <revenue>15</revenue> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>0</sum_daily_nb_users> - <segment>countryCode==us</segment> <code>us</code> <logo>plugins/Morpheus/icons/dist/flags/us.png</logo> + <segment>countryCode==us</segment> <logoHeight>16</logoHeight> </row> </result>
\ No newline at end of file |