diff options
author | Benaka Moorthi <benaka.moorthi@gmail.com> | 2013-08-07 00:18:59 +0400 |
---|---|---|
committer | Benaka Moorthi <benaka.moorthi@gmail.com> | 2013-08-07 00:18:59 +0400 |
commit | 5ff42da365f64fed1cb60cde94ba12d38f60dd4e (patch) | |
tree | 607b2a0a34354ea48594eb10947f1ed87968f263 /core/Archive.php | |
parent | 5be3fbf225fdaef4a9fa2c438194ab758b901d0f (diff) |
Refs #4041, added parameter to Archive::getDataTableExpanded so entire tree will not be created if not necessary.
Diffstat (limited to 'core/Archive.php')
-rw-r--r-- | core/Archive.php | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/core/Archive.php b/core/Archive.php index 6e060cc2da..2c53a8e665 100644 --- a/core/Archive.php +++ b/core/Archive.php @@ -251,15 +251,17 @@ class Archive * Manager::getTable() function. * * @param string $name The name of the record to get. - * @param int|string|null $idSubtable The subtable ID (if any) or self::ID_SUBTABLE_LOAD_ALL_SUBTABLES if requesting every datatable. + * @param int|string|null $idSubtable The subtable ID (if any) or self::ID_SUBTABLE_LOAD_ALL_SUBTABLES + * if requesting every datatable. + * @param int|null $depth The maximum number of subtable levels to load. If null, all levels are loaded. * @param bool $addMetadataSubtableId Whether to add the DB subtable ID as metadata to each datatable, * or not. * @return DataTable */ - public function getDataTableExpanded($name, $idSubtable = null, $addMetadataSubtableId = true) + public function getDataTableExpanded($name, $idSubtable = null, $depth = null, $addMetadataSubtableId = true) { $data = $this->get($name, 'blob', self::ID_SUBTABLE_LOAD_ALL_SUBTABLES); - return $data->getExpandedDataTable($this->getResultIndices(), $idSubtable, $addMetadataSubtableId); + return $data->getExpandedDataTable($this->getResultIndices(), $idSubtable, $depth, $addMetadataSubtableId); } /** @@ -291,7 +293,8 @@ class Archive * @param int|null $idSubtable * @return DataTable|DataTable\Map */ - public static function getDataTableFromArchive($name, $idSite, $period, $date, $segment, $expanded, $idSubtable = null) + public static function getDataTableFromArchive($name, $idSite, $period, $date, $segment, $expanded, + $idSubtable = null, $depth = null) { Piwik::checkUserHasViewAccess($idSite); $archive = Archive::build($idSite, $period, $date, $segment); @@ -300,7 +303,7 @@ class Archive } if ($expanded) { - $dataTable = $archive->getDataTableExpanded($name, $idSubtable); + $dataTable = $archive->getDataTableExpanded($name, $idSubtable, $depth); } else { $dataTable = $archive->getDataTable($name, $idSubtable); } |