Piwik\Plugins\Referrers\API::buildExpandedTableForFlattenGetSocials PHP Метод

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

private buildExpandedTableForFlattenGetSocials ( integer $idSite, string $period, string $date, string | false $segment, boolean $expanded, DataTable $dataTable )
$idSite integer
$period string
$date string
$segment string | false
$expanded boolean
$dataTable Piwik\DataTable
    private function buildExpandedTableForFlattenGetSocials($idSite, $period, $date, $segment, $expanded, $dataTable)
    {
        $urlsTable = Archive::createDataTableFromArchive(Archiver::WEBSITES_RECORD_NAME, $idSite, $period, $date, $segment, $expanded, $flat = true);
        $urlsTable->filter('ColumnCallbackDeleteRow', array('label', function ($url) {
            return !Social::getInstance()->isSocialUrl($url);
        }));
        $urlsTable = $urlsTable->mergeSubtables();
        foreach ($dataTable->getRows() as $row) {
            $row->removeSubtable();
            $social = $row->getColumn('label');
            $newTable = $urlsTable->getEmptyClone();
            $rows = $urlsTable->getRows();
            foreach ($rows as $id => $urlsTableRow) {
                $url = $urlsTableRow->getColumn('label');
                if (Social::getInstance()->isSocialUrl($url, $social)) {
                    $newTable->addRow($urlsTableRow);
                    $urlsTable->deleteRow($id);
                }
            }
            if ($newTable->getRowsCount()) {
                $newTable->filter('Piwik\\Plugins\\Referrers\\DataTable\\Filter\\UrlsForSocial', array($expanded));
                $row->setSubtable($newTable);
            }
        }
        Common::destroy($urlsTable);
        $urlsTable = null;
    }