Piwik\API\DataTableManipulator\ReportTotalsCalculator::manipulateDataTable PHP Method

manipulateDataTable() protected method

Adds ratio metrics if possible.
protected manipulateDataTable ( DataTable $dataTable ) : DataTable
$dataTable Piwik\DataTable
return Piwik\DataTable
    protected function manipulateDataTable($dataTable)
    {
        if (!empty($this->report) && !$this->report->getDimension() && !$this->isAllMetricsReport()) {
            // we currently do not calculate the total value for reports having no dimension
            return $dataTable;
        }
        $this->totals = array();
        $firstLevelTable = $this->makeSureToWorkOnFirstLevelDataTable($dataTable);
        $metricsToCalculate = Metrics::getMetricIdsToProcessReportTotal();
        $metricNames = array();
        foreach ($metricsToCalculate as $metricId) {
            $metricNames[$metricId] = Metrics::getReadableColumnName($metricId);
        }
        foreach ($firstLevelTable->getRows() as $row) {
            $columns = $row->getColumns();
            foreach ($metricNames as $metricId => $metricName) {
                $this->sumColumnValueToTotal($columns, $metricId, $metricName);
            }
        }
        $dataTable->setMetadata('totals', $this->totals);
        return $dataTable;
    }