diff options
Diffstat (limited to 'plugins/CustomDimensions/DataTable/Filter/AddSegmentMetadata.php')
m--------- | plugins/CustomDimensions | 0 | ||||
-rw-r--r-- | plugins/CustomDimensions/DataTable/Filter/AddSegmentMetadata.php | 54 |
2 files changed, 54 insertions, 0 deletions
diff --git a/plugins/CustomDimensions b/plugins/CustomDimensions deleted file mode 160000 -Subproject 318661a2fb1ef3b3e5d6d999ae8b9628cb5a113 diff --git a/plugins/CustomDimensions/DataTable/Filter/AddSegmentMetadata.php b/plugins/CustomDimensions/DataTable/Filter/AddSegmentMetadata.php new file mode 100644 index 0000000000..759c148c9c --- /dev/null +++ b/plugins/CustomDimensions/DataTable/Filter/AddSegmentMetadata.php @@ -0,0 +1,54 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\CustomDimensions\DataTable\Filter; + +use Piwik\DataTable\BaseFilter; +use Piwik\DataTable\Row; +use Piwik\DataTable; +use Piwik\Plugins\CustomDimensions\Archiver; +use Piwik\Plugins\CustomDimensions\Tracker\CustomDimensionsRequestProcessor; + +class AddSegmentMetadata extends BaseFilter +{ + private $idDimension; + + /** + * Constructor. + * + * @param DataTable $table The table to eventually filter. + */ + public function __construct($table, $idDimension) + { + parent::__construct($table); + $this->idDimension = $idDimension; + } + + /** + * @param DataTable $table + */ + public function filter($table) + { + $dimension = CustomDimensionsRequestProcessor::buildCustomDimensionTrackingApiName($this->idDimension); + + foreach ($table->getRows() as $row) { + $label = $row->getColumn('label'); + if ($label !== false) { + if ($label === Archiver::LABEL_CUSTOM_VALUE_NOT_DEFINED) { + $label = ''; + } + $row->setMetadata('segment', $dimension . '==' . urlencode($label)); + } + + $subTable = $row->getSubtable(); + if ($subTable) { + $subTable->filter('Piwik\Plugins\CustomDimensions\DataTable\Filter\AddSubtableSegmentMetadata', array($this->idDimension, $label)); + } + } + } +}
\ No newline at end of file |