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')
-rw-r--r--core/DataTable/DataTableInterface.php1
-rw-r--r--core/DataTable/Map.php14
-rw-r--r--core/DataTable/Renderer/Csv.php2
-rw-r--r--core/DataTable/Renderer/Xml.php4
-rw-r--r--core/DataTable/Row.php7
5 files changed, 22 insertions, 6 deletions
diff --git a/core/DataTable/DataTableInterface.php b/core/DataTable/DataTableInterface.php
index 84440dfa24..7009be7285 100644
--- a/core/DataTable/DataTableInterface.php
+++ b/core/DataTable/DataTableInterface.php
@@ -27,4 +27,5 @@ interface DataTableInterface
public function deleteColumn($name);
public function getColumn($name);
public function getColumns();
+ public function deleteRowsMetadata($name, $deleteRecursiveInSubtables = false);
}
diff --git a/core/DataTable/Map.php b/core/DataTable/Map.php
index 9169a36128..351cb4d058 100644
--- a/core/DataTable/Map.php
+++ b/core/DataTable/Map.php
@@ -11,7 +11,6 @@ namespace Piwik\DataTable;
use Closure;
use Piwik\Common;
use Piwik\DataTable;
-use Piwik\DataTable\Renderer\Console;
use Piwik\DataTable\Renderer\Html;
/**
@@ -514,6 +513,19 @@ class Map implements DataTableInterface
}
/**
+ * Delete row metadata by name in every row.
+ *
+ * @param $name
+ * @param bool $deleteRecursiveInSubtables
+ */
+ public function deleteRowsMetadata($name, $deleteRecursiveInSubtables = false)
+ {
+ foreach ($this->getDataTables() as $table) {
+ $table->deleteRowsMetadata($name, $deleteRecursiveInSubtables);
+ }
+ }
+
+ /**
* See {@link DataTable::getColumns()}.
*
* @return array
diff --git a/core/DataTable/Renderer/Csv.php b/core/DataTable/Renderer/Csv.php
index bf864238e5..b67150d2fd 100644
--- a/core/DataTable/Renderer/Csv.php
+++ b/core/DataTable/Renderer/Csv.php
@@ -489,7 +489,7 @@ class Csv extends Renderer
protected function removeFirstPercentSign($value)
{
$needle = '%';
- $posPercent = strpos($value, $needle);
+ $posPercent = strpos($value ?? '', $needle);
if ($posPercent !== false) {
return substr_replace($value, '', $posPercent, strlen($needle));
}
diff --git a/core/DataTable/Renderer/Xml.php b/core/DataTable/Renderer/Xml.php
index 1fd09f938e..daac728652 100644
--- a/core/DataTable/Renderer/Xml.php
+++ b/core/DataTable/Renderer/Xml.php
@@ -179,7 +179,7 @@ class Xml extends Renderer
} else {
$xmlValue = self::formatValueXml($value);
- if (strlen($xmlValue) != 0) {
+ if (strlen(strval($xmlValue)) !== 0) {
$result .= $prefixLines . $prefix . $xmlValue . $suffix . "\n";
} else {
$result .= $prefixLines . $emptyNode . "\n";
@@ -381,7 +381,7 @@ class Xml extends Renderer
list($tagStart, $tagEnd) = $this->getTagStartAndEndFor($name, $columnsHaveInvalidChars);
- if (strlen($value) == 0) {
+ if (strlen((string) $value) == 0) {
$out .= $prefixLine . "\t\t<$tagStart />\n";
} else {
$out .= $prefixLine . "\t\t<$tagStart>" . $value . "</$tagEnd>\n";
diff --git a/core/DataTable/Row.php b/core/DataTable/Row.php
index bfa1a49667..878c1a61cf 100644
--- a/core/DataTable/Row.php
+++ b/core/DataTable/Row.php
@@ -12,7 +12,6 @@ use Exception;
use Piwik\Container\StaticContainer;
use Piwik\DataTable;
use Piwik\Date;
-use Piwik\Log;
use Piwik\Metrics;
use Piwik\Period;
use Psr\Log\LoggerInterface;
@@ -36,7 +35,8 @@ class Row extends \ArrayObject
*/
private static $unsummableColumns = array(
'label' => true,
- 'full_url' => true // column used w/ old Piwik versions,
+ 'full_url' => true, // column used w/ old Piwik versions,
+ 'ts_archived' => true // date column used in metadata for proportional tooltips
);
// @see sumRow - implementation detail
@@ -677,6 +677,9 @@ class Row extends \ArrayObject
if (is_array($columnToSumValue)) {
$newValue = $thisColumnValue;
foreach ($columnToSumValue as $arrayIndex => $arrayValue) {
+ if (!is_numeric($arrayIndex) && !$this->isSummableColumn($arrayIndex)) {
+ continue;
+ }
if (!isset($newValue[$arrayIndex])) {
$newValue[$arrayIndex] = false;
}