diff options
Diffstat (limited to 'plugins/API')
-rw-r--r-- | plugins/API/API.php | 28 | ||||
-rw-r--r-- | plugins/API/ProcessedReport.php | 46 | ||||
-rw-r--r-- | plugins/API/RowEvolution.php | 28 |
3 files changed, 58 insertions, 44 deletions
diff --git a/plugins/API/API.php b/plugins/API/API.php index b93dae7902..e85974fd8e 100644 --- a/plugins/API/API.php +++ b/plugins/API/API.php @@ -8,17 +8,23 @@ * @category Piwik_Plugins * @package Piwik_API */ +use Piwik\DataTable\Filter\ColumnDelete; +use Piwik\DataTable\Row; use Piwik\Metrics; use Piwik\Piwik; use Piwik\Common; use Piwik\Config; +use Piwik\Date; +use Piwik\DataTable; +use Piwik\Plugin; +use Piwik\Translate; require_once PIWIK_INCLUDE_PATH . '/core/Config.php'; /** * @package Piwik_API */ -class Piwik_API extends Piwik_Plugin +class Piwik_API extends Plugin { /** * @see Piwik_Plugin::getListHooksRegistered @@ -385,7 +391,7 @@ class Piwik_API_API public function getMetadata($idSite, $apiModule, $apiAction, $apiParameters = array(), $language = false, $period = false, $date = false, $hideMetricsDoc = false, $showSubtableReports = false) { - Piwik_Translate::getInstance()->reloadLanguage($language); + Translate::getInstance()->reloadLanguage($language); $reporter = new Piwik_API_ProcessedReport(); $metadata = $reporter->getMetadata($idSite, $apiModule, $apiAction, $apiParameters, $language, $period, $date, $hideMetricsDoc, $showSubtableReports); return $metadata; @@ -397,7 +403,7 @@ class Piwik_API_API * * @param string $idSites Comma separated list of website Ids * @param bool|string $period - * @param bool|Piwik_Date $date + * @param bool|Date $date * @param bool $hideMetricsDoc * @param bool $showSubtableReports * @return array @@ -466,13 +472,13 @@ class Piwik_API_API $params['columns'] = implode(',', $columns); $dataTable = Piwik_API_Proxy::getInstance()->call($className, 'get', $params); // make sure the table has all columns - $array = ($dataTable instanceof Piwik_DataTable_Array ? $dataTable->getArray() : array($dataTable)); + $array = ($dataTable instanceof DataTable\Map ? $dataTable->getArray() : array($dataTable)); foreach ($array as $table) { // we don't support idSites=all&date=DATE1,DATE2 - if ($table instanceof Piwik_DataTable) { + if ($table instanceof DataTable) { $firstRow = $table->getFirstRow(); if (!$firstRow) { - $firstRow = new Piwik_DataTable_Row; + $firstRow = new Row; $table->addRow($firstRow); } foreach ($columns as $column) { @@ -500,7 +506,7 @@ class Piwik_API_API private function mergeDataTables($table1, $table2) { // handle table arrays - if ($table1 instanceof Piwik_DataTable_Array && $table2 instanceof Piwik_DataTable_Array) { + if ($table1 instanceof DataTable\Map && $table2 instanceof DataTable\Map) { $subTables2 = $table2->getArray(); foreach ($table1->getArray() as $index => $subTable1) { $subTable2 = $subTables2[$index]; @@ -511,7 +517,7 @@ class Piwik_API_API $firstRow1 = $table1->getFirstRow(); $firstRow2 = $table2->getFirstRow(); - if ($firstRow2 instanceof Piwik_DataTable_Row) { + if ($firstRow2 instanceof Row) { foreach ($firstRow2->getColumns() as $metric => $value) { $firstRow1->setColumn($metric, $value); } @@ -525,7 +531,7 @@ class Piwik_API_API * * @param int $idSite * @param string $period - * @param Piwik_Date $date + * @param Date $date * @param string $apiModule * @param string $apiAction * @param bool|string $label @@ -591,7 +597,7 @@ class Piwik_API_API throw new Exception("Requested segment not found."); } - $startDate = Piwik_Date::now()->subDay(60)->toString(); + $startDate = Date::now()->subDay(60)->toString(); $requestLastVisits = "method=Live.getLastVisitsDetails &idSite=$idSite &period=range @@ -622,7 +628,7 @@ class Piwik_API_API $values = $table->getColumn($segmentName); // Select also flattened keys (custom variables "page" scope, page URLs for one visit, page titles for one visit) - $valuesBis = $table->getColumnsStartingWith($segmentName . Piwik_DataTable_Filter_ColumnDelete::APPEND_TO_COLUMN_NAME_TO_KEEP); + $valuesBis = $table->getColumnsStartingWith($segmentName . ColumnDelete::APPEND_TO_COLUMN_NAME_TO_KEEP); $values = array_merge($values, $valuesBis); // remove false values (while keeping zeros) diff --git a/plugins/API/ProcessedReport.php b/plugins/API/ProcessedReport.php index db30a13648..a008c82025 100644 --- a/plugins/API/ProcessedReport.php +++ b/plugins/API/ProcessedReport.php @@ -1,8 +1,12 @@ <?php +use Piwik\DataTable\Simple; +use Piwik\DataTable\Row; use Piwik\Metrics; use Piwik\Period; use Piwik\Piwik; use Piwik\Common; +use Piwik\Date; +use Piwik\DataTable; use Piwik\Site; /** @@ -60,7 +64,7 @@ class Piwik_API_ProcessedReport * * @param string $idSites Comma separated list of website Ids * @param bool|string $period - * @param bool|Piwik_Date $date + * @param bool|Date $date * @param bool $hideMetricsDoc * @param bool $showSubtableReports * @return array @@ -272,7 +276,7 @@ class Piwik_API_ProcessedReport $url = Piwik_Url::getQueryStringFromParameters($parameters); $request = new Piwik_API_Request($url); try { - /** @var Piwik_DataTable */ + /** @var DataTable */ $dataTable = $request->process(); } catch (Exception $e) { throw new Exception("API returned an error: " . $e->getMessage() . " at " . basename($e->getFile()) . ":" . $e->getLine() . "\n"); @@ -307,14 +311,14 @@ class Piwik_API_ProcessedReport * - remove metrics based on $reportMetadata['metrics'] * - add 0 valued metrics if $dataTable doesn't provide all $reportMetadata['metrics'] * - format metric values to a 'human readable' format - * - extract row metadata to a separate Piwik_DataTable_Simple|Piwik_DataTable_Array : $rowsMetadata + * - extract row metadata to a separate Simple|Set : $rowsMetadata * - translate metric names to a separate array : $columns * * @param int $idSite enables monetary value formatting based on site currency - * @param Piwik_DataTable|Piwik_DataTable_Array $dataTable + * @param \Piwik\DataTable\Set $dataTable * @param array $reportMetadata * @param bool $showRawMetrics - * @return array Piwik_DataTable_Simple|Piwik_DataTable_Array $newReport with human readable format & array $columns list of translated column names & Piwik_DataTable_Simple|Piwik_DataTable_Array $rowsMetadata + * @return array Simple|Set $newReport with human readable format & array $columns list of translated column names & Simple|Set $rowsMetadata */ private function handleTableReport($idSite, $dataTable, &$reportMetadata, $showRawMetrics = false) { @@ -356,17 +360,17 @@ class Piwik_API_ProcessedReport $columns = $this->hideShowMetrics($columns); - // $dataTable is an instance of Piwik_DataTable_Array when multiple periods requested - if ($dataTable instanceof Piwik_DataTable_Array) { - // Need a new Piwik_DataTable_Array to store the 'human readable' values - $newReport = new Piwik_DataTable_Array(); + // $dataTable is an instance of Set when multiple periods requested + if ($dataTable instanceof DataTable\Map) { + // Need a new Set to store the 'human readable' values + $newReport = new DataTable\Map(); $newReport->setKeyName("prettyDate"); - // Need a new Piwik_DataTable_Array to store report metadata - $rowsMetadata = new Piwik_DataTable_Array(); + // Need a new Set to store report metadata + $rowsMetadata = new DataTable\Map(); $rowsMetadata->setKeyName("prettyDate"); - // Process each Piwik_DataTable_Simple entry + // Process each Simple entry foreach ($dataTable->getArray() as $label => $simpleDataTable) { $this->removeEmptyColumns($columns, $reportMetadata, $simpleDataTable); @@ -395,7 +399,7 @@ class Piwik_API_ProcessedReport */ private function removeEmptyColumns(&$columns, &$reportMetadata, $dataTable) { - $emptyColumns = $dataTable->getMetadata(Piwik_DataTable::EMPTY_COLUMNS_METADATA_NAME); + $emptyColumns = $dataTable->getMetadata(DataTable::EMPTY_COLUMNS_METADATA_NAME); if (!is_array($emptyColumns)) { return; @@ -473,26 +477,26 @@ class Piwik_API_ProcessedReport * - remove metrics based on $reportMetadata['metrics'] * - add 0 valued metrics if $simpleDataTable doesn't provide all $reportMetadata['metrics'] * - format metric values to a 'human readable' format - * - extract row metadata to a separate Piwik_DataTable_Simple $rowsMetadata + * - extract row metadata to a separate Simple $rowsMetadata * * @param int $idSite enables monetary value formatting based on site currency - * @param Piwik_DataTable_Simple $simpleDataTable + * @param Simple $simpleDataTable * @param array $metadataColumns * @param boolean $hasDimension * @param bool $returnRawMetrics If set to true, the original metrics will be returned * - * @return array Piwik_DataTable $enhancedDataTable filtered metrics with human readable format & Piwik_DataTable_Simple $rowsMetadata + * @return array DataTable $enhancedDataTable filtered metrics with human readable format & Simple $rowsMetadata */ private function handleSimpleDataTable($idSite, $simpleDataTable, $metadataColumns, $hasDimension, $returnRawMetrics = false) { // new DataTable to store metadata - $rowsMetadata = new Piwik_DataTable(); + $rowsMetadata = new DataTable(); // new DataTable to store 'human readable' values if ($hasDimension) { - $enhancedDataTable = new Piwik_DataTable(); + $enhancedDataTable = new DataTable(); } else { - $enhancedDataTable = new Piwik_DataTable_Simple(); + $enhancedDataTable = new Simple(); } // add missing metrics @@ -506,7 +510,7 @@ class Piwik_API_ProcessedReport } foreach ($simpleDataTable->getRows() as $row) { - $enhancedRow = new Piwik_DataTable_Row(); + $enhancedRow = new Row(); $enhancedDataTable->addRow($enhancedRow); $rowMetrics = $row->getColumns(); foreach ($rowMetrics as $columnName => $columnValue) { @@ -528,7 +532,7 @@ class Piwik_API_ProcessedReport // Create a row metadata only if there are metadata to insert if (count($rowMetadata) > 0 || !is_null($idSubDataTable)) { - $metadataRow = new Piwik_DataTable_Row(); + $metadataRow = new Row(); $rowsMetadata->addRow($metadataRow); foreach ($rowMetadata as $metadataKey => $metadataValue) { diff --git a/plugins/API/RowEvolution.php b/plugins/API/RowEvolution.php index 13b1250a1c..ec6b3c06fc 100644 --- a/plugins/API/RowEvolution.php +++ b/plugins/API/RowEvolution.php @@ -8,9 +8,13 @@ * @category Piwik_Plugins * @package Piwik_API */ +use Piwik\DataTable\Filter\CalculateEvolutionFilter; +use Piwik\DataTable\Filter\SafeDecodeLabel; +use Piwik\DataTable\Row; use Piwik\Period; use Piwik\Piwik; use Piwik\Common; +use Piwik\DataTable; /** * This class generates a Row evolution dataset, from input request @@ -104,7 +108,7 @@ class Piwik_API_RowEvolution /** * Get row evolution for a single label - * @param Piwik_DataTable $dataTable + * @param DataTable $dataTable * @param array $metadata * @param string $apiModule * @param string $apiAction @@ -119,10 +123,10 @@ class Piwik_API_RowEvolution $logo = $actualLabel = false; $urlFound = false; foreach ($dataTable->getArray() as $date => $subTable) { - /** @var $subTable Piwik_DataTable */ + /** @var $subTable DataTable */ $subTable->applyQueuedFilters(); if ($subTable->getRowsCount() > 0) { - /** @var $row Piwik_DataTable_Row */ + /** @var $row Row */ $row = $subTable->getFirstRow(); if (!$actualLabel) { @@ -155,7 +159,7 @@ class Piwik_API_RowEvolution } $return = array( - 'label' => Piwik_DataTable_Filter_SafeDecodeLabel::safeDecodeLabel($actualLabel), + 'label' => SafeDecodeLabel::safeDecodeLabel($actualLabel), 'reportData' => $dataTable, 'metadata' => $metadata ); @@ -190,7 +194,7 @@ class Piwik_API_RowEvolution * @param $segment * @param $idGoal * @throws Exception - * @return Piwik_DataTable_Array|Piwik_DataTable + * @return DataTable\Map|DataTable */ private function loadRowEvolutionDataFromAPI($idSite, $period, $date, $apiModule, $apiAction, $label = false, $segment = false, $idGoal = false) { @@ -289,7 +293,7 @@ class Piwik_API_RowEvolution * Given the Row evolution dataTable, and the associated metadata, * enriches the metadata with min/max values, and % change between the first period and the last one * @param array $metadata - * @param Piwik_DataTable_Array $dataTable + * @param DataTable\Map $dataTable */ private function enhanceRowEvolutionMetaData(&$metadata, $dataTable) { @@ -345,8 +349,8 @@ class Piwik_API_RowEvolution continue; } - $change = Piwik_DataTable_Filter_CalculateEvolutionFilter::calculate($last, $first, $quotientPrecision = 0); - $change = Piwik_DataTable_Filter_CalculateEvolutionFilter::prependPlusSignToNumber($change); + $change = CalculateEvolutionFilter::calculate($last, $first, $quotientPrecision = 0); + $change = CalculateEvolutionFilter::prependPlusSignToNumber($change); $metricsResult[$metric]['change'] = $change; } @@ -391,7 +395,7 @@ class Piwik_API_RowEvolution // array('label' => $label, 'column' => $value). $dataTableMulti = $dataTable->getEmptyClone(); foreach ($dataTable->getArray() as $tableLabel => $table) { - $newRow = new Piwik_DataTable_Row(); + $newRow = new Row(); foreach ($labels as $labelIdx => $label) { $row = $this->getRowEvolutionRowFromLabelIdx($table, $labelIdx); @@ -429,7 +433,7 @@ class Piwik_API_RowEvolution $label .= ' (' . $metadata['columns'][$column] . ')'; } $metricName = $column . '_' . $labelIndex; - $metadata['metrics'][$metricName] = Piwik_DataTable_Filter_SafeDecodeLabel::safeDecodeLabel($label); + $metadata['metrics'][$metricName] = SafeDecodeLabel::safeDecodeLabel($label); if (!empty($logos[$labelIndex])) { $metadata['logos'][$metricName] = $logos[$labelIndex]; @@ -448,9 +452,9 @@ class Piwik_API_RowEvolution /** * Returns the row in a datatable by its Piwik_API_DataTableManipulator_LabelFilter::FLAG_IS_ROW_EVOLUTION metadata. * - * @param Piwik_DataTable $table + * @param DataTable $table * @param int $labelIdx - * @return Piwik_DataTable_Row|false + * @return Row|false */ private function getRowEvolutionRowFromLabelIdx($table, $labelIdx) { |