isSubtableLoaded() public method

Returns true if the subtable is currently loaded in memory via {@link Piwik\DataTable\Manager}.
public isSubtableLoaded ( ) : boolean
return boolean
Ejemplo n.º 1
0
 /**
  * Filters a row's subtable, if one exists and is loaded in memory.
  *
  * @param Row $row The row whose subtable should be filter.
  */
 public function filterSubTable(Row $row)
 {
     if (!$this->enableRecursive) {
         return;
     }
     if ($row->isSubtableLoaded()) {
         $subTable = Manager::getInstance()->getTable($row->getIdSubDataTable());
         $this->filter($subTable);
     }
 }
Ejemplo n.º 2
0
 private function loadSubtable(DataTable $table, Row $row)
 {
     $idSubtable = $row->getIdSubDataTable();
     if ($idSubtable === null) {
         return null;
     }
     if ($row->isSubtableLoaded()) {
         $subtable = $row->getSubtable();
     } else {
         $subtable = $this->thisReport->fetchSubtable($idSubtable, $this->getRequestParamOverride($table));
     }
     if ($subtable === null) {
         // sanity check
         throw new Exception("Unexpected error: could not load subtable '{$idSubtable}'.");
     }
     return $subtable;
 }
Ejemplo n.º 3
0
 public function test_isSubtableLoaded_ShouldReturnFalse_WhenRestoringAnExportedRow()
 {
     $testRow = $this->getTestRowWithSubDataTableLoaded();
     // serialize and unserialize is not needed for this test case, the export is the important part.
     // we still do it, to have it more "realistic"
     $serializedTestRow = serialize($testRow->export());
     $unserializedTestRow = unserialize($serializedTestRow);
     /** @var Row $unserializedTestRow */
     $row = new Row($unserializedTestRow);
     $this->assertTrue($row->getIdSubDataTable() > 0);
     $this->assertFalse($row->isSubtableLoaded());
 }