/** * Returns columns names to display, in order. * If no columns were specified to be displayed, return all columns found in the first row. * @param array PHP array conversion of the data table * @return array */ public function getColumnsToDisplay() { if (empty($this->columnsToDisplay)) { return array_keys($this->dataTable->getFirstRow()->getColumns()); } $this->columnsToDisplay = array_filter($this->columnsToDisplay); return $this->columnsToDisplay; }
/** * Apply the specified renderer to the DataTable * * @param Piwik_DataTable $dataTable * @return string */ protected function getRenderedDataTable($dataTable) { $format = strtolower($this->outputFormat); // if asked for original dataStructure if ($format == 'original') { // if the original dataStructure is a simpleDataTable // and has only one column, we return the value if ($dataTable instanceof Piwik_DataTable_Simple) { $columns = $dataTable->getFirstRow()->getColumns(); if (count($columns) == 1) { $values = array_values($columns); return $values[0]; } } // by default "original" data is not serialized if ($this->caseRendererPHPSerialize($defaultSerialize = 0)) { $dataTable = serialize($dataTable); } return $dataTable; } $method = Piwik_Common::getRequestVar('method', '', 'string', $this->request); $renderer = Piwik_DataTable_Renderer::factory($format); $renderer->setTable($dataTable); $renderer->setRenderSubTables(Piwik_Common::getRequestVar('expanded', false, 'int', $this->request)); $renderer->setHideIdSubDatableFromResponse(Piwik_Common::getRequestVar('hideIdSubDatable', false, 'int', $this->request)); if ($format == 'php') { $renderer->setSerialize($this->caseRendererPHPSerialize()); $renderer->setPrettyDisplay(Piwik_Common::getRequestVar('prettyDisplay', false, 'int', $this->request)); } else { if ($format == 'html') { $renderer->setTableId($this->request['method']); } else { if ($format == 'csv' || $format == 'tsv') { $renderer->setConvertToUnicode(Piwik_Common::getRequestVar('convertToUnicode', true, 'int', $this->request)); } } } // prepare translation of column names if ($format == 'html' || $format == 'csv' || $format == 'tsv' || ($format = 'rss')) { $renderer->setApiMethod($method); $renderer->setIdSite(Piwik_Common::getRequestVar('idSite', false, 'int', $this->request)); $renderer->setTranslateColumnNames(Piwik_Common::getRequestVar('translateColumnNames', false, 'int', $this->request)); } return $renderer->render(); }