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:
authorThomas Steur <thomas.steur@gmail.com>2013-10-14 04:50:06 +0400
committerThomas Steur <thomas.steur@gmail.com>2013-10-14 04:50:06 +0400
commitdd44370cd44d6475f4e22f931cdb045c00ffe0ea (patch)
tree2fdb13c110c19e821d0f968a9db33f8198c63e18
parent569150e52464e2f9656e774f1801352c32f3a2a6 (diff)
added interface for dataTable to be able to define the expected type in a function, maybe it makes sense to add/remove some methods from the interface?
-rw-r--r--core/DataTable.php3
-rw-r--r--core/DataTable/DataTableInterface.php34
-rw-r--r--core/DataTable/Map.php11
-rw-r--r--core/ViewDataTable.php1
-rw-r--r--core/ViewDataTable/Graph.php15
-rw-r--r--core/ViewDataTable/Visualization.php12
-rw-r--r--plugins/CoreVisualizations/Visualizations/Cloud.php9
-rw-r--r--plugins/CoreVisualizations/Visualizations/HtmlTable.php9
-rw-r--r--plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php8
-rw-r--r--plugins/CoreVisualizations/Visualizations/JqplotGraph/Pie.php3
-rw-r--r--plugins/ExampleVisualization/SimpleTable.php12
11 files changed, 61 insertions, 56 deletions
diff --git a/core/DataTable.php b/core/DataTable.php
index 00170291d0..3b8bf28faf 100644
--- a/core/DataTable.php
+++ b/core/DataTable.php
@@ -13,6 +13,7 @@ namespace Piwik;
use Closure;
use Exception;
+use Piwik\DataTable\DataTableInterface;
use Piwik\DataTable\Filter;
use Piwik\DataTable\Manager;
use Piwik\DataTable\Renderer\Html;
@@ -146,7 +147,7 @@ require_once PIWIK_INCLUDE_PATH . '/core/Common.php';
*
* @api
*/
-class DataTable
+class DataTable implements DataTableInterface
{
/** Name for metadata that describes when a report was archived. */
const ARCHIVED_DATE_METADATA_NAME = 'archived_date';
diff --git a/core/DataTable/DataTableInterface.php b/core/DataTable/DataTableInterface.php
new file mode 100644
index 0000000000..d4d4330571
--- /dev/null
+++ b/core/DataTable/DataTableInterface.php
@@ -0,0 +1,34 @@
+<?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
+ */
+namespace Piwik\DataTable;
+
+/**
+ * The DataTable Interface
+ *
+ * @package Piwik
+ * @subpackage DataTable
+ */
+interface DataTableInterface
+{
+ public function getRowsCount();
+ public function queueFilter($className, $parameters = array());
+ public function applyQueuedFilters();
+ public function filter($className, $parameters = array());
+ public function getFirstRow();
+ public function __toString();
+ public function enableRecursiveSort();
+ public function renameColumn($oldName, $newName);
+ public function deleteColumns($columns, $deleteRecursiveInSubtables = false);
+ public function deleteRow($id);
+ public function deleteColumn($name);
+ public function getColumn($name);
+ public function getColumns();
+}
diff --git a/core/DataTable/Map.php b/core/DataTable/Map.php
index 2210b3d114..112dc89efd 100644
--- a/core/DataTable/Map.php
+++ b/core/DataTable/Map.php
@@ -22,7 +22,7 @@ use Piwik\DataTable\Renderer\Console;
*
* @api
*/
-class Map
+class Map implements DataTableInterface
{
/**
* Array containing the DataTable withing this Set
@@ -200,8 +200,9 @@ class Map
*
* @see DataTable::deleteColumns
* @param array $columns
+ * @param bool $deleteRecursiveInSubtables This param is currently not used
*/
- public function deleteColumns($columns)
+ public function deleteColumns($columns, $deleteRecursiveInSubtables = false)
{
foreach ($this->getDataTables() as $table) {
$table->deleteColumns($columns);
@@ -219,12 +220,12 @@ class Map
* Deletes the given column
*
* @see DataTable::deleteColumn
- * @param string $column
+ * @param string $name
*/
- public function deleteColumn($column)
+ public function deleteColumn($name)
{
foreach ($this->getDataTables() as $table) {
- $table->deleteColumn($column);
+ $table->deleteColumn($name);
}
}
diff --git a/core/ViewDataTable.php b/core/ViewDataTable.php
index f2a002af9d..d749b7aa92 100644
--- a/core/ViewDataTable.php
+++ b/core/ViewDataTable.php
@@ -47,7 +47,6 @@ use Piwik\Visualization\Request as VizRequest;
* }
* </pre>
*
- * @see \Piwik\ViewDataTable\Properties - for core DataTable display properties.
* @see factory() for all the available output (cloud tags, html table, pie chart, vertical bar chart)
* @package Piwik
* @subpackage ViewDataTable
diff --git a/core/ViewDataTable/Graph.php b/core/ViewDataTable/Graph.php
index 04267a9053..00404f5c05 100644
--- a/core/ViewDataTable/Graph.php
+++ b/core/ViewDataTable/Graph.php
@@ -10,9 +10,9 @@
*/
namespace Piwik\ViewDataTable;
-
use Piwik\DataTable\Row;
use Piwik\DataTable;
+use Piwik\DataTable\DataTableInterface;
use Piwik\Piwik;
use Piwik\Visualization\Config;
use Piwik\Visualization\Request;
@@ -160,12 +160,8 @@ abstract class Graph extends Visualization
/**
* Defaults the selectable_columns property if it has not been set and then transforms
* it into something the SeriesPicker JavaScript class can use.
- *
- * @param DataTable|DataTable\Map $dataTable
- * @param \Piwik\Visualization\Config $properties
- * @param \Piwik\Visualization\Request $request
*/
- public function afterAllFilteresAreApplied($dataTable, Config $properties, Request $request)
+ public function afterAllFilteresAreApplied(DataTableInterface $dataTable, Config $properties, Request $request)
{
$properties->visualization_properties->selectable_rows = array_values($this->selectableRows);
@@ -215,12 +211,7 @@ abstract class Graph extends Visualization
}
}
- /**
- * @param DataTable|DataTable\Map $dataTable
- * @param \Piwik\Visualization\Config $properties
- * @param \Piwik\Visualization\Request $request
- */
- public function beforeGenericFiltersAreAppliedToLoadedDataTable($dataTable, Config $properties, Request $request)
+ public function beforeGenericFiltersAreAppliedToLoadedDataTable(DataTableInterface $dataTable, Config $properties, Request $request)
{
// collect all selectable rows
$self = $this;
diff --git a/core/ViewDataTable/Visualization.php b/core/ViewDataTable/Visualization.php
index 6c681698cb..3af056bd0d 100644
--- a/core/ViewDataTable/Visualization.php
+++ b/core/ViewDataTable/Visualization.php
@@ -12,6 +12,7 @@
namespace Piwik\ViewDataTable;
use Piwik\DataTable;
+use Piwik\DataTable\DataTableInterface;
use Piwik\Piwik;
use Piwik\View;
use Piwik\ViewDataTable;
@@ -70,22 +71,17 @@ abstract class Visualization extends View
// $requestProperties->setFilterColumn();
}
- public function beforeGenericFiltersAreAppliedToLoadedDataTable($dataTable, Config $properties, Request $request)
+ public function beforeGenericFiltersAreAppliedToLoadedDataTable(DataTableInterface $dataTable, Config $properties, Request $request)
{
}
- public function afterGenericFiltersAreAppliedToLoadedDataTable($dataTable, Config $properties, Request $request)
+ public function afterGenericFiltersAreAppliedToLoadedDataTable(DataTableInterface $dataTable, Config $properties, Request $request)
{
}
- /**
- * @param DataTable|DataTable\Map $dataTable
- * @param \Piwik\Visualization\Config $properties
- * @param \Piwik\Visualization\Request $request
- */
- public function afterAllFilteresAreApplied($dataTable, Config $properties, Request $request)
+ public function afterAllFilteresAreApplied(DataTableInterface $dataTable, Config $properties, Request $request)
{
// filter and format requested data here
// $dataTable ...
diff --git a/plugins/CoreVisualizations/Visualizations/Cloud.php b/plugins/CoreVisualizations/Visualizations/Cloud.php
index c2578015c8..8785ee6f1d 100644
--- a/plugins/CoreVisualizations/Visualizations/Cloud.php
+++ b/plugins/CoreVisualizations/Visualizations/Cloud.php
@@ -12,6 +12,7 @@ namespace Piwik\Plugins\CoreVisualizations\Visualizations;
use Piwik\Common;
use Piwik\DataTable;
+use Piwik\DataTable\DataTableInterface;
use Piwik\Log;
use Piwik\View;
use Piwik\ViewDataTable\Visualization;
@@ -48,13 +49,7 @@ class Cloud extends Visualization
protected $wordsArray = array();
public $truncatingLimit = 50;
-
- /**
- * @param DataTable|DataTable\Map $dataTable
- * @param \Piwik\Visualization\Config $properties
- * @param \Piwik\Visualization\Request $request
- */
- public function afterAllFilteresAreApplied($dataTable, Config $properties, Request $request)
+ public function afterAllFilteresAreApplied(DataTableInterface $dataTable, Config $properties, Request $request)
{
if ($dataTable->getRowsCount() == 0) {
return;
diff --git a/plugins/CoreVisualizations/Visualizations/HtmlTable.php b/plugins/CoreVisualizations/Visualizations/HtmlTable.php
index e675e360c8..d67298d2a4 100644
--- a/plugins/CoreVisualizations/Visualizations/HtmlTable.php
+++ b/plugins/CoreVisualizations/Visualizations/HtmlTable.php
@@ -12,7 +12,7 @@ namespace Piwik\Plugins\CoreVisualizations\Visualizations;
use Piwik\Common;
use Piwik\Config;
-use Piwik\DataTable;
+use Piwik\DataTable\DataTableInterface;
use Piwik\DataTable\Filter\AddColumnsProcessedMetricsGoal;
use Piwik\MetricsFormatter;
use Piwik\Piwik;
@@ -219,12 +219,7 @@ class HtmlTable extends Visualization
return $defaults;
}
- /**
- * @param DataTable|DataTable\Map $dataTable
- * @param \Piwik\Visualization\Config $properties
- * @param \Piwik\Visualization\Request $request
- */
- public function beforeGenericFiltersAreAppliedToLoadedDataTable($dataTable, VizConfig $properties, Request $request)
+ public function beforeGenericFiltersAreAppliedToLoadedDataTable(DataTableInterface $dataTable, VizConfig $properties, Request $request)
{
if ($properties->visualization_properties->show_extra_columns) {
$dataTable->filter('AddColumnsProcessedMetrics');
diff --git a/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php b/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php
index 526c4bb36a..75f0786427 100644
--- a/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php
+++ b/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php
@@ -13,6 +13,7 @@ namespace Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph;
use Piwik\Common;
use Piwik\DataTable;
+use Piwik\DataTable\DataTableInterface;
use Piwik\Period\Range;
use Piwik\Plugin\Controller;
use Piwik\Plugins\CoreVisualizations\JqplotDataGenerator;
@@ -61,12 +62,7 @@ class Evolution extends JqplotGraph
}
}
- /**
- * @param DataTable|DataTable\Map $dataTable
- * @param \Piwik\Visualization\Config $properties
- * @param \Piwik\Visualization\Request $request
- */
- public function afterAllFilteresAreApplied($dataTable, Config $properties, Request $request)
+ public function afterAllFilteresAreApplied(DataTableInterface $dataTable, Config $properties, Request $request)
{
parent::afterAllFilteresAreApplied($dataTable, $properties, $request);
diff --git a/plugins/CoreVisualizations/Visualizations/JqplotGraph/Pie.php b/plugins/CoreVisualizations/Visualizations/JqplotGraph/Pie.php
index d4c217c16c..e6db071c9f 100644
--- a/plugins/CoreVisualizations/Visualizations/JqplotGraph/Pie.php
+++ b/plugins/CoreVisualizations/Visualizations/JqplotGraph/Pie.php
@@ -11,6 +11,7 @@
namespace Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph;
+use Piwik\DataTable\DataTableInterface;
use Piwik\Plugins\CoreVisualizations\JqplotDataGenerator;
use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph;
use Piwik\Visualization\Config;
@@ -31,7 +32,7 @@ class Pie extends JqplotGraph
$properties->datatable_js_type = 'JqplotPieGraphDataTable';
}
- public function afterAllFilteresAreApplied($dataTable, Config $properties, Request $request)
+ public function afterAllFilteresAreApplied(DataTableInterface $dataTable, Config $properties, Request $request)
{
parent::afterAllFilteresAreApplied($dataTable, $properties, $request);
diff --git a/plugins/ExampleVisualization/SimpleTable.php b/plugins/ExampleVisualization/SimpleTable.php
index e38debf9c1..c6d40f3ecb 100644
--- a/plugins/ExampleVisualization/SimpleTable.php
+++ b/plugins/ExampleVisualization/SimpleTable.php
@@ -12,6 +12,7 @@
namespace Piwik\Plugins\ExampleVisualization;
use Piwik\DataTable;
+use Piwik\DataTable\DataTableInterface;
use Piwik\ViewDataTable\Visualization;
use Piwik\Visualization\Config;
use Piwik\Visualization\Request;
@@ -45,26 +46,21 @@ class SimpleTable extends Visualization
// $requestProperties->filter_sort_order = 'desc';
}
- public function beforeGenericFiltersAreAppliedToLoadedDataTable($dataTable, Config $properties, Request $request)
+ public function beforeGenericFiltersAreAppliedToLoadedDataTable(DataTableInterface $dataTable, Config $properties, Request $request)
{
// this hook is executed before generic filters like "filter_limit" and "filter_offset" are applied
// Usage:
// $dateTable->filter($nameOrClosure);
}
- public function afterGenericFiltersAreAppliedToLoadedDataTable($dataTable, Config $properties, Request $request)
+ public function afterGenericFiltersAreAppliedToLoadedDataTable(DataTableInterface $dataTable, Config $properties, Request $request)
{
// this hook is executed after generic filters like "filter_limit" and "filter_offset" are applied
// Usage:
// $dateTable->filter($nameOrClosure, $parameters);
}
- /**
- * @param DataTable|DataTable\Map $dataTable
- * @param \Piwik\Visualization\Config $properties
- * @param \Piwik\Visualization\Request $request
- */
- public function afterAllFilteresAreApplied($dataTable, Config $properties, Request $request)
+ public function afterAllFilteresAreApplied(DataTableInterface $dataTable, Config $properties, Request $request)
{
// this hook is executed after the data table is loaded and after all filteres are applied.
// format your data here that you want to pass to the view