Piwik\API\DataTableManipulator\Flattener::flattenRow PHP Метод

flattenRow() приватный Метод

private flattenRow ( Row $row, $rowId, DataTable $dataTable, string $labelPrefix = '', boolean $parentLogo = false )
$row Piwik\DataTable\Row
$dataTable Piwik\DataTable
$labelPrefix string
$parentLogo boolean
    private function flattenRow(Row $row, $rowId, DataTable $dataTable, $labelPrefix = '', $parentLogo = false)
    {
        $label = $row->getColumn('label');
        if ($label !== false) {
            $label = trim($label);
            if ($this->recursiveLabelSeparator == '/') {
                if (substr($label, 0, 1) == '/') {
                    $label = substr($label, 1);
                } elseif ($rowId === DataTable::ID_SUMMARY_ROW && $labelPrefix && $label != DataTable::LABEL_SUMMARY_ROW) {
                    $label = ' - ' . $label;
                }
            }
            $label = $labelPrefix . $label;
            $row->setColumn('label', $label);
        }
        $logo = $row->getMetadata('logo');
        if ($logo === false && $parentLogo !== false) {
            $logo = $parentLogo;
            $row->setMetadata('logo', $logo);
        }
        /** @var DataTable $subTable */
        $subTable = $row->getSubtable();
        if ($subTable) {
            $subTable->applyQueuedFilters();
            $row->deleteMetadata('idsubdatatable_in_db');
        } else {
            $subTable = $this->loadSubtable($dataTable, $row);
        }
        $row->removeSubtable();
        if ($subTable === null) {
            if ($this->includeAggregateRows) {
                $row->setMetadata('is_aggregate', 0);
            }
            $dataTable->addRow($row);
        } else {
            if ($this->includeAggregateRows) {
                $row->setMetadata('is_aggregate', 1);
                $dataTable->addRow($row);
            }
            $prefix = $label . $this->recursiveLabelSeparator;
            $this->flattenDataTableInto($subTable, $dataTable, $prefix, $logo);
        }
    }