/** * @param string $period * @param string $date * @param string|false $segment */ public function __construct($period, $date, $segment) { $sites = API::getInstance()->getAll($period, $date, $segment, $_restrictSitesToLogin = false, $enhanced = true, $searchTerm = false, $this->displayedMetricColumns); $sites->deleteRow(DataTable::ID_SUMMARY_ROW); /** @var DataTable $pastData */ $pastData = $sites->getMetadata('pastData'); $sites->filter(function (DataTable $table) use($pastData) { $pastRow = null; foreach ($table->getRows() as $row) { $idSite = $row->getColumn('label'); $site = Site::getSite($idSite); // we cannot queue label and group as we might need them for search and sorting! $row->setColumn('label', $site['name']); $row->setMetadata('group', $site['group']); if ($pastData) { // if we do not update the pastData labels, the evolution cannot be calculated correctly. $pastRow = $pastData->getRowFromLabel($idSite); if ($pastRow) { $pastRow->setColumn('label', $site['name']); } } } if ($pastData && $pastRow) { $pastData->setLabelsHaveChanged(); } }); $this->setSitesTable($sites); }
public function load() { if (!empty($this->idSite)) { $site = Site::getSite($this->idSite); $urls = $this->getModel(); $site['urls'] = $urls->getSiteUrlsFromId($this->idSite); foreach ($this->commaSeparatedArrayFields as $field) { if (!empty($site[$field]) && is_string($site[$field])) { $site[$field] = explode(',', $site[$field]); } } return $site; } }
protected function getSite($idSite) { if (!Site::getSite($idSite)) { throw new \InvalidArgumentException('idSite is not a valid, no such site found'); } return Db::get()->fetchRow("SELECT * FROM " . Common::prefixTable("site") . " WHERE idsite = ?", $idSite); }