/** * Another example method that returns a data table. * @param int $idSite * @param string $period * @param string $date * @param bool|string $segment * @return DataTable */ public function getBannerstatistics($idSite, $period, $date, $segment = false, $idSubtable = false, $filter_limit = 10, $filter_sort_column = 'impressions', $filter_sort_order = 'desc', $filter_pattern = null) { $params = array('idSite' => $idSite, 'period' => $period, 'date' => $date, 'segment' => $segment, 'filter_limit' => $filter_limit, 'filter_sort_column' => $filter_sort_column, 'filter_sort_order' => $filter_sort_order, 'filter_pattern' => $filter_pattern); if ($idSubtable) { return $this->bannerStats($idSubtable, $params); } $contentNames = \Piwik\API\Request::processRequest('Contents.getContentNames', $params); $bannerTable = new Datatable(); //$period = $dataTable->getMetadata(DataTableFactory::TABLE_METADATA_PERIOD_INDEX); //$bannerTable->setMetadataValues($contentNames->getAllTableMetadata()); foreach ($contentNames->getRows() as $contentName) { $bannerName = $contentName->getColumn('label'); $row = new Row(array(Row::COLUMNS => array('Name' => $bannerName, 'Visits' => $contentName->getColumn('nb_visits'), 'Impressions' => $contentName->getColumn('nb_impressions'), 'Interactions' => $contentName->getColumn('nb_interactions'), 'Conversion rate' => $contentName->getColumn('interaction_rate')), Row::DATATABLE_ASSOCIATED => $bannerName)); $bannerTable->addRow($row); } return $bannerTable; }