getDataTable(__FUNCTION__, $idSite, $period, $date, $segment, false, $idSubtable); } public function getContentPieces($idSite, $period, $date, $segment = false, $idSubtable = false) { return $this->getDataTable(__FUNCTION__, $idSite, $period, $date, $segment, false, $idSubtable); } private function getDataTable($name, $idSite, $period, $date, $segment, $expanded, $idSubtable) { Piwik::checkUserHasViewAccess($idSite); $recordName = Dimensions::getRecordNameForAction($name); $dataTable = Archive::getDataTableFromArchive($recordName, $idSite, $period, $date, $segment, $expanded, $idSubtable); $this->filterDataTable($dataTable); return $dataTable; } /** * @param DataTable $dataTable */ private function filterDataTable($dataTable) { $dataTable->filter('Sort', array(Metrics::INDEX_NB_VISITS)); $dataTable->queueFilter('ReplaceColumnNames'); $dataTable->queueFilter('ReplaceSummaryRowLabel'); $dataTable->filter(function (DataTable $table) { $row = $table->getRowFromLabel(Archiver::CONTENT_PIECE_NOT_SET); if ($row) { $row->setColumn('label', Piwik::translate('General_NotDefined', Piwik::translate('Contents_ContentPiece'))); } foreach ($table->getRows() as $row) { if ($row->getMetadata('contentTarget') === Archiver::CONTENT_TARGET_NOT_SET) { $row->setMetadata('contentTarget', ''); } } }); // Content interaction rate = interactions / impressions $dataTable->queueFilter('ColumnCallbackAddColumnPercentage', array('interaction_rate', 'nb_interactions', 'nb_impressions', $precision = 2)); } }