diff options
author | Thomas Steur <thomas.steur@gmail.com> | 2013-10-14 04:50:06 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@gmail.com> | 2013-10-14 04:50:06 +0400 |
commit | dd44370cd44d6475f4e22f931cdb045c00ffe0ea (patch) | |
tree | 2fdb13c110c19e821d0f968a9db33f8198c63e18 | |
parent | 569150e52464e2f9656e774f1801352c32f3a2a6 (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.php | 3 | ||||
-rw-r--r-- | core/DataTable/DataTableInterface.php | 34 | ||||
-rw-r--r-- | core/DataTable/Map.php | 11 | ||||
-rw-r--r-- | core/ViewDataTable.php | 1 | ||||
-rw-r--r-- | core/ViewDataTable/Graph.php | 15 | ||||
-rw-r--r-- | core/ViewDataTable/Visualization.php | 12 | ||||
-rw-r--r-- | plugins/CoreVisualizations/Visualizations/Cloud.php | 9 | ||||
-rw-r--r-- | plugins/CoreVisualizations/Visualizations/HtmlTable.php | 9 | ||||
-rw-r--r-- | plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php | 8 | ||||
-rw-r--r-- | plugins/CoreVisualizations/Visualizations/JqplotGraph/Pie.php | 3 | ||||
-rw-r--r-- | plugins/ExampleVisualization/SimpleTable.php | 12 |
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 |