From a52df4278af546d2d7afc2acb7517086176aa810 Mon Sep 17 00:00:00 2001 From: mattpiwik Date: Sun, 18 May 2008 17:22:35 +0000 Subject: - remove useless __construct() - renamed empty filter to Null filter - columns are now renamed recursively, fixing bug in not valid XML code when the columns still had a numeric name - added a new parameter in API for Referers module: expanded. If set to true, it will load the data recursively (eg. all keywords + the search engines for each keyword). git-svn-id: http://dev.piwik.org/svn/trunk@482 59fd770c-687e-43c8-a1e3-f5a4ff64c105 --- modules/DataTable/Filter/ReplaceColumnNames.php | 37 +++++++++++++++++-------- 1 file changed, 26 insertions(+), 11 deletions(-) (limited to 'modules/DataTable/Filter/ReplaceColumnNames.php') diff --git a/modules/DataTable/Filter/ReplaceColumnNames.php b/modules/DataTable/Filter/ReplaceColumnNames.php index 4296128511..bbe3a06df3 100644 --- a/modules/DataTable/Filter/ReplaceColumnNames.php +++ b/modules/DataTable/Filter/ReplaceColumnNames.php @@ -37,6 +37,7 @@ class Piwik_DataTable_Filter_ReplaceColumnNames extends Piwik_DataTable_Filter Piwik_Archive::INDEX_SUM_VISIT_LENGTH => 'sum_visit_length', Piwik_Archive::INDEX_BOUNCE_COUNT => 'bounce_count', ); + /** * @param DataTable Table * @param array Mapping to apply. Must have the format @@ -57,22 +58,36 @@ class Piwik_DataTable_Filter_ReplaceColumnNames extends Piwik_DataTable_Filter protected function filter() { - foreach($this->table->getRows() as $key => $row) + $this->filterTable($this->table); + } + + protected function filterTable($table) + { + foreach($table->getRows() as $key => $row) { - $columns = $row->getColumns(); + $this->renameColumns($row); - foreach($this->mappingToApply as $oldName => $newName) + try { + $subTable = Piwik_DataTable_Manager::getInstance()->getTable( $row->getIdSubDataTable() ); + $this->filterTable($subTable); + } catch(Exception $e){ + // case idSubTable == null, or if the table is not loaded in memory + } + } + } + + protected function renameColumns($row) + { + $columns = $row->getColumns(); + foreach($this->mappingToApply as $oldName => $newName) + { + if(isset($columns[$oldName])) { - // if the old column is there - if(isset($columns[$oldName])) - { - $columns[$newName] = $columns[$oldName]; - unset($columns[$oldName]); - } + $columns[$newName] = $columns[$oldName]; + unset($columns[$oldName]); } - - $row->setColumns($columns); } + $row->setColumns($columns); } } -- cgit v1.2.3