/** * Gets the first child of the item * @param LayoutContent $item The item * @return LayoutContent Returns the first child */ public function FirstChildOf($item) { if ($item) { $sql = Access::SqlBuilder(); $tbl = LayoutContent::Schema()->Table(); $where = $sql->Equals($tbl->Field('Parent'), $sql->Value($item->GetID()))->And_($sql->IsNull($tbl->Field('Previous'))); return LayoutContent::Schema()->First($where); } else { return $this->TopMost(); } }
protected function Init() { $this->area = new Area(Request::GetData('area')); $selectedID = Request::GetData('selected'); $this->selected = $selectedID ? LayoutContent::Schema()->ByID($selectedID) : null; if (!$this->area->Exists()) { Response::Redirect(BackendRouter::ModuleUrl(new LayoutList())); return true; } $this->tree = new LayoutContentTreeProvider($this->area); $this->layoutContent = $this->tree->TopMost(); $this->hasContents = (bool) $this->layoutContent; return parent::Init(); }
protected function TableSchema() { return LayoutContent::Schema(); }
/** * Gets the last area modification log item * @param Area $area The area * @return LogItem Returns the last log item that changed anything related to the area */ static function LastAreaModLog(Area $area, Interfaces\IContainerReferenceResolver $resolver) { $lastLog = $this->LastAreaLog($area); $areaContents = LayoutContent::Schema()->FetchByArea(false, $area); foreach ($areaContents as $areaContent) { $content = $areaContent->GetContent(); $contentLog = self::LastContentModLog($content, $resolver); if (self::IsAfter($contentLog, $lastLog)) { $lastLog = $contentLog; } } return $lastLog; }