Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/DataTable/Manager.php')
-rw-r--r--core/DataTable/Manager.php269
1 files changed, 130 insertions, 139 deletions
diff --git a/core/DataTable/Manager.php b/core/DataTable/Manager.php
index c7062ebdaa..3fff1bcc2d 100644
--- a/core/DataTable/Manager.php
+++ b/core/DataTable/Manager.php
@@ -1,158 +1,149 @@
<?php
/**
* Piwik - Open source web analytics
- *
+ *
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- *
+ *
* @category Piwik
* @package Piwik
*/
/**
- * The DataTable_Manager registers all the instanciated DataTable and provides an
+ * The DataTable_Manager registers all the instanciated DataTable and provides an
* easy way to access them. This is used to store all the DataTable during the archiving process.
* At the end of archiving, the ArchiveProcessing will read the stored datatable and record them in the DB.
- *
+ *
* @package Piwik
* @subpackage Piwik_DataTable
*/
class Piwik_DataTable_Manager
{
- static private $instance = null;
- /**
- * Returns instance
- *
- * @return Piwik_DataTable_Manager
- */
- static public function getInstance()
- {
- if (self::$instance == null)
- {
- self::$instance = new self;
- }
- return self::$instance;
- }
-
- /**
- * Array used to store the DataTable
- *
- * @var array
- */
- protected $tables = array();
-
- /**
- * Id of the next inserted table id in the Manager
- * @var int
- */
- protected $nextTableId = 1;
-
- /**
- * Add a DataTable to the registry
- *
- * @param Piwik_DataTable $table
- * @return int Index of the table in the manager array
- */
- public function addTable( $table )
- {
- $this->tables[$this->nextTableId] = $table;
- $this->nextTableId++;
- return $this->nextTableId - 1;
- }
+ static private $instance = null;
- /**
- * Returns the DataTable associated to the ID $idTable.
- * NB: The datatable has to have been instanciated before!
- * This method will not fetch the DataTable from the DB.
- *
- * @param int $idTable
- * @throws Exception If the table can't be found
- * @return Piwik_DataTable The table
- */
- public function getTable( $idTable )
- {
- if(!isset($this->tables[$idTable]))
- {
- throw new Exception(sprintf("This report has been reprocessed since your last click. To see this error less often, please increase the timeout value in seconds in Settings > General Settings. (error: id %s not found).", $idTable));
- }
- return $this->tables[$idTable];
- }
-
- /**
- * Returns the latest used table ID
- *
- * @return int
- */
- public function getMostRecentTableId()
- {
- return $this->nextTableId - 1;
- }
-
- /**
- * Delete all the registered DataTables from the manager
- */
- public function deleteAll( $deleteWhenIdTableGreaterThan = 0)
- {
- foreach($this->tables as $id => $table)
- {
- if($id > $deleteWhenIdTableGreaterThan)
- {
- $this->deleteTable($id);
- }
- }
- if($deleteWhenIdTableGreaterThan == 0)
- {
- $this->tables = array();
- $this->nextTableId = 1;
- }
- }
-
- /**
- * Deletes (unsets) the datatable given its id and removes it from the manager
- * Subsequent get for this table will fail
- *
- * @param int $id
- */
- public function deleteTable( $id )
- {
- if(isset($this->tables[$id]))
- {
- destroy($this->tables[$id]);
- $this->setTableDeleted($id);
- }
- }
-
- /**
- * Remove the table from the manager (table has already been unset)
- *
- * @param int $id
- */
- public function setTableDeleted($id)
- {
- $this->tables[$id] = null;
- }
-
- /**
- * Debug only. Dumps all tables currently registered in the Manager
- */
- public function dumpAllTables()
- {
- echo "<hr />Piwik_DataTable_Manager->dumpAllTables()<br />";
- foreach($this->tables as $id => $table)
- {
- if(!($table instanceof Piwik_DataTable ))
- {
- echo "Error table $id is not instance of datatable<br />";
- var_dump($table);
- }
- else
- {
- echo "<hr />";
- echo "Table (index=$id) TableId = ". $table->getId() . "<br />";
- echo $table;
- echo "<br />";
- }
- }
- echo "<br />-- End Piwik_DataTable_Manager->dumpAllTables()<hr />";
- }
+ /**
+ * Returns instance
+ *
+ * @return Piwik_DataTable_Manager
+ */
+ static public function getInstance()
+ {
+ if (self::$instance == null) {
+ self::$instance = new self;
+ }
+ return self::$instance;
+ }
+
+ /**
+ * Array used to store the DataTable
+ *
+ * @var array
+ */
+ protected $tables = array();
+
+ /**
+ * Id of the next inserted table id in the Manager
+ * @var int
+ */
+ protected $nextTableId = 1;
+
+ /**
+ * Add a DataTable to the registry
+ *
+ * @param Piwik_DataTable $table
+ * @return int Index of the table in the manager array
+ */
+ public function addTable($table)
+ {
+ $this->tables[$this->nextTableId] = $table;
+ $this->nextTableId++;
+ return $this->nextTableId - 1;
+ }
+
+ /**
+ * Returns the DataTable associated to the ID $idTable.
+ * NB: The datatable has to have been instanciated before!
+ * This method will not fetch the DataTable from the DB.
+ *
+ * @param int $idTable
+ * @throws Exception If the table can't be found
+ * @return Piwik_DataTable The table
+ */
+ public function getTable($idTable)
+ {
+ if (!isset($this->tables[$idTable])) {
+ throw new Exception(sprintf("This report has been reprocessed since your last click. To see this error less often, please increase the timeout value in seconds in Settings > General Settings. (error: id %s not found).", $idTable));
+ }
+ return $this->tables[$idTable];
+ }
+
+ /**
+ * Returns the latest used table ID
+ *
+ * @return int
+ */
+ public function getMostRecentTableId()
+ {
+ return $this->nextTableId - 1;
+ }
+
+ /**
+ * Delete all the registered DataTables from the manager
+ */
+ public function deleteAll($deleteWhenIdTableGreaterThan = 0)
+ {
+ foreach ($this->tables as $id => $table) {
+ if ($id > $deleteWhenIdTableGreaterThan) {
+ $this->deleteTable($id);
+ }
+ }
+ if ($deleteWhenIdTableGreaterThan == 0) {
+ $this->tables = array();
+ $this->nextTableId = 1;
+ }
+ }
+
+ /**
+ * Deletes (unsets) the datatable given its id and removes it from the manager
+ * Subsequent get for this table will fail
+ *
+ * @param int $id
+ */
+ public function deleteTable($id)
+ {
+ if (isset($this->tables[$id])) {
+ destroy($this->tables[$id]);
+ $this->setTableDeleted($id);
+ }
+ }
+
+ /**
+ * Remove the table from the manager (table has already been unset)
+ *
+ * @param int $id
+ */
+ public function setTableDeleted($id)
+ {
+ $this->tables[$id] = null;
+ }
+
+ /**
+ * Debug only. Dumps all tables currently registered in the Manager
+ */
+ public function dumpAllTables()
+ {
+ echo "<hr />Piwik_DataTable_Manager->dumpAllTables()<br />";
+ foreach ($this->tables as $id => $table) {
+ if (!($table instanceof Piwik_DataTable)) {
+ echo "Error table $id is not instance of datatable<br />";
+ var_dump($table);
+ } else {
+ echo "<hr />";
+ echo "Table (index=$id) TableId = " . $table->getId() . "<br />";
+ echo $table;
+ echo "<br />";
+ }
+ }
+ echo "<br />-- End Piwik_DataTable_Manager->dumpAllTables()<hr />";
+ }
}