Skip to content
Extraits de code Groupes Projets
Valider d30c78b8 rédigé par Thomas Steur's avatar Thomas Steur
Parcourir les fichiers

this should fix a bug with dbstats since we removed callable columns

parent 287aad82
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -10,6 +10,7 @@ namespace Piwik\DataTable\Filter; ...@@ -10,6 +10,7 @@ namespace Piwik\DataTable\Filter;
use Piwik\DataTable; use Piwik\DataTable;
use Piwik\DataTable\BaseFilter; use Piwik\DataTable\BaseFilter;
use Piwik\Plugins\CoreHome\Columns\Metrics\CallableProcessedMetric;
/** /**
* Adds a new column to every row of a {@link DataTable} based on the result of callback. * Adds a new column to every row of a {@link DataTable} based on the result of callback.
...@@ -83,20 +84,29 @@ class ColumnCallbackAddColumn extends BaseFilter ...@@ -83,20 +84,29 @@ class ColumnCallbackAddColumn extends BaseFilter
$functionParams = $this->functionParameters; $functionParams = $this->functionParameters;
$functionToApply = $this->functionToApply; $functionToApply = $this->functionToApply;
foreach ($table->getRows() as $row) { $extraProcessedMetrics = $table->getMetadata(DataTable::EXTRA_PROCESSED_METRICS_METADATA_NAME);
if (empty($extraProcessedMetrics)) {
$extraProcessedMetrics = array();
}
$row->setColumn($this->columnToAdd, function (DataTable\Row $row) use ($columns, $functionParams, $functionToApply) { $metric = new CallableProcessedMetric($this->columnToAdd, function (DataTable\Row $row) use ($columns, $functionParams, $functionToApply) {
$columnValues = array(); $columnValues = array();
foreach ($columns as $column) { foreach ($columns as $column) {
$columnValues[] = $row->getColumn($column); $columnValues[] = $row->getColumn($column);
} }
$parameters = array_merge($columnValues, $functionParams); $parameters = array_merge($columnValues, $functionParams);
return call_user_func_array($functionToApply, $parameters); return call_user_func_array($functionToApply, $parameters);
}); }, $columns);
$extraProcessedMetrics[] = $metric;
$table->setMetadata(DataTable::EXTRA_PROCESSED_METRICS_METADATA_NAME, $extraProcessedMetrics);
foreach ($table->getRows() as $row) {
$row->setColumn($this->columnToAdd, $metric->compute($row));
$this->filterSubTable($row); $this->filterSubTable($row);
} }
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter