/** * Returns the top most area * @return Area */ public function TopMost() { $sql = Access::SqlBuilder(); $tblArea = Area::Schema()->Table(); $where = $sql->Equals($tblArea->Field('Layout'), $sql->Value($this->layout->GetID()))->And_($sql->IsNull($tblArea->Field('Previous'))); return Area::Schema()->First($where); }
/** * Initializes the areas and stores them in a list with area names as keys */ private function InitAreas() { $sql = Access::SqlBuilder(); $tbl = Area::Schema()->Table(); $where = $sql->Equals($tbl->Field('Layout'), $sql->Value($this->layout->GetID()))->And_($sql->IsNull($tbl->Field('Previous'))); $area = Area::Schema()->First($where); while ($area) { $this->areas[$area->GetName()] = $area; $area = Area::Schema()->ByPrevious($area); } }
/** * Gets the last layout modification log item * @param Layout $layout The layout * @return LogItem Returns the last log item that changed anything related to the layout */ static function LastLayoutModLog(Layout $layout) { $lastLog = $this->LastLayoutLog($layout); $areas = Area::Schema()->FetchByLayout(false, $layout); foreach ($areas as $area) { $areaLog = self::LastAreaModLog($area); if (self::IsAfter($areaLog, $lastLog)) { $lastLog = $areaLog; } } return $lastLog; }
private function AreaNameExists($name) { $sql = Access::SqlBuilder(); $tblArea = Area::Schema()->Table(); $where = $sql->Equals($tblArea->Field('Layout'), $sql->Value($this->layout->GetID()))->And_($sql->Equals($tblArea->Field('Name'), $sql->Value($name))); return Area::Schema()->Count(false, $where) > 0; }
protected function TableSchema() { return Area::Schema(); }