diff options
author | mattab <matthieu.aubry@gmail.com> | 2014-12-10 08:15:44 +0300 |
---|---|---|
committer | mattab <matthieu.aubry@gmail.com> | 2014-12-10 08:15:44 +0300 |
commit | c28f9d6e29fccc0e4d3b0d1c91a28667c620ee1e (patch) | |
tree | 5bb4844beddc73890cbcafd904bc98830046438f /core/DataTable | |
parent | dab1ee71f1ced3abe28064145d39d8ca7f6eb5e9 (diff) |
reuse $row->getSubtable() as much as possible instead of callng Manager::getInstance()->getTable which can throw exception refs #3414
Diffstat (limited to 'core/DataTable')
-rw-r--r-- | core/DataTable/BaseFilter.php | 4 | ||||
-rw-r--r-- | core/DataTable/Filter/PatternRecursive.php | 11 | ||||
-rw-r--r-- | core/DataTable/Filter/ReplaceSummaryRowLabel.php | 4 | ||||
-rw-r--r-- | core/DataTable/Renderer/Console.php | 10 | ||||
-rw-r--r-- | core/DataTable/Renderer/Php.php | 4 | ||||
-rw-r--r-- | core/DataTable/Row/DataTableSummaryRow.php | 5 |
6 files changed, 15 insertions, 23 deletions
diff --git a/core/DataTable/BaseFilter.php b/core/DataTable/BaseFilter.php index fb2dc009f9..dc4756d82e 100644 --- a/core/DataTable/BaseFilter.php +++ b/core/DataTable/BaseFilter.php @@ -73,8 +73,8 @@ abstract class BaseFilter if (!$this->enableRecursive) { return; } - if ($row->isSubtableLoaded()) { - $subTable = Manager::getInstance()->getTable($row->getIdSubDataTable()); + $subTable = $row->getSubtable(); + if ($subTable) { $this->filter($subTable); } } diff --git a/core/DataTable/Filter/PatternRecursive.php b/core/DataTable/Filter/PatternRecursive.php index 697403c2e3..f383a13260 100644 --- a/core/DataTable/Filter/PatternRecursive.php +++ b/core/DataTable/Filter/PatternRecursive.php @@ -62,18 +62,15 @@ class PatternRecursive extends BaseFilter // AND 2 - the label is not found in the children $patternNotFoundInChildren = false; - try { - $idSubTable = $row->getIdSubDataTable(); - $subTable = Manager::getInstance()->getTable($idSubTable); - + $subTable = $row->getSubtable(); + if(!$subTable) { + $patternNotFoundInChildren = true; + } else { // we delete the row if we couldn't find the pattern in any row in the // children hierarchy if ($this->filter($subTable) == 0) { $patternNotFoundInChildren = true; } - } catch (Exception $e) { - // there is no subtable loaded for example - $patternNotFoundInChildren = true; } if ($patternNotFoundInChildren diff --git a/core/DataTable/Filter/ReplaceSummaryRowLabel.php b/core/DataTable/Filter/ReplaceSummaryRowLabel.php index 3c1e31e2d0..1e550f6e3f 100644 --- a/core/DataTable/Filter/ReplaceSummaryRowLabel.php +++ b/core/DataTable/Filter/ReplaceSummaryRowLabel.php @@ -65,8 +65,8 @@ class ReplaceSummaryRowLabel extends BaseFilter // recurse foreach ($rows as $row) { - if ($row->isSubtableLoaded()) { - $subTable = Manager::getInstance()->getTable($row->getIdSubDataTable()); + $subTable = $row->getSubtable(); + if ($subTable) { $this->filter($subTable); } } diff --git a/core/DataTable/Renderer/Console.php b/core/DataTable/Renderer/Console.php index 0e1c127fb1..a4fcbff0c5 100644 --- a/core/DataTable/Renderer/Console.php +++ b/core/DataTable/Renderer/Console.php @@ -120,14 +120,10 @@ class Console extends Renderer . $row->getIdSubDataTable() . "]<br />\n"; if (!is_null($row->getIdSubDataTable())) { - if ($row->isSubtableLoaded()) { + $subTable = $row->getSubtable(); + if ($subTable) { $depth++; - $output .= $this->renderTable( - Manager::getInstance()->getTable( - $row->getIdSubDataTable() - ), - $prefix . ' ' - ); + $output .= $this->renderTable($subTable, $prefix . ' '); $depth--; } else { $output .= "-- Sub DataTable not loaded<br />\n"; diff --git a/core/DataTable/Renderer/Php.php b/core/DataTable/Renderer/Php.php index 56360b939c..a3f3a5c0e5 100644 --- a/core/DataTable/Renderer/Php.php +++ b/core/DataTable/Renderer/Php.php @@ -206,10 +206,10 @@ class Php extends Renderer $newRow['issummaryrow'] = true; } + $subTable = $row->getSubtable(); if ($this->isRenderSubtables() - && $row->isSubtableLoaded() + && $subTable ) { - $subTable = $this->renderTable(Manager::getInstance()->getTable($row->getIdSubDataTable())); $newRow['subtable'] = $subTable; if ($this->hideIdSubDatatable === false && isset($newRow['metadata']['idsubdatatable_in_db']) diff --git a/core/DataTable/Row/DataTableSummaryRow.php b/core/DataTable/Row/DataTableSummaryRow.php index 7d477a304c..2c9eda5e8e 100644 --- a/core/DataTable/Row/DataTableSummaryRow.php +++ b/core/DataTable/Row/DataTableSummaryRow.php @@ -47,9 +47,8 @@ class DataTableSummaryRow extends Row */ public function recalculate() { - $id = $this->getIdSubDataTable(); - if ($id !== null) { - $subTable = Manager::getInstance()->getTable($id); + $subTable = $this->getSubtable(); + if ($subTable) { $this->sumTable($subTable); } } |