diff options
author | mattpiwik <matthieu.aubry@gmail.com> | 2008-05-18 21:22:35 +0400 |
---|---|---|
committer | mattpiwik <matthieu.aubry@gmail.com> | 2008-05-18 21:22:35 +0400 |
commit | a52df4278af546d2d7afc2acb7517086176aa810 (patch) | |
tree | 882d420a253e89c432470e90f5c2d0deb0811939 /modules/DataTable/Filter/ReplaceColumnNames.php | |
parent | 4f3ee099d01b555c4667b88525edb4cad6e4db65 (diff) |
- 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
Diffstat (limited to 'modules/DataTable/Filter/ReplaceColumnNames.php')
-rw-r--r-- | modules/DataTable/Filter/ReplaceColumnNames.php | 37 |
1 files changed, 26 insertions, 11 deletions
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); } } |