Example #1
0
 /**
  * Finds the 404 page for a site
  * @param Site $site The site whise 404 page is searched for
  * @return Page The 404 page
  */
 static function Page404(Site $site)
 {
     $sql = Access::SqlBuilder();
     $tblPage = Page::Schema()->Table();
     $where = $sql->Equals($tblPage->Field('Type'), $sql->Value((string) PageType::NotFound()))->And_($sql->Equals($tblPage->Field('Site'), $sql->Value($site->GetID())));
     return Page::Schema()->First($where);
 }
Example #2
0
 private function SaveType()
 {
     $type = PageType::ByValue($this->Value('Type'));
     $this->page->SetType((string) $type);
     $target = $this->page->GetRedirectTarget();
     switch ($type) {
         case PageType::Normal():
         case PageType::NotFound():
             if ($target) {
                 $this->page->SetRedirectTarget(null);
                 $target->Delete();
             }
             break;
         case PageType::RedirectPermanent():
         case PageType::RedirectTemporary():
             $this->page->SetRedirectTarget($this->selector->Save($target));
     }
 }
Example #3
0
 private function PageAllowed(Page $page)
 {
     if ($page->GetType() != (string) PageType::Normal() || $page->GetSitemapRelevance() == 0) {
         return false;
     }
     return $this->guard->Allow(Action::Read(), $page);
 }
Example #4
0
 /**
  * Renders the complete page by requiring the page layout
  * @return string Returns the page contents
  */
 function Render()
 {
     self::$currentPage = $this->page;
     self::$Title = self::$currentPage->GetTitle();
     self::$Description = self::$currentPage->GetDescription();
     self::$Keywords = self::$currentPage->GetKeywords();
     if ($this->page->GetType() == (string) PageType::NotFound()) {
         header('HTTP/1.0 404 Not Found');
     } else {
         if ($this->page->GetType() !== (string) PageType::Normal()) {
             throw new \Exception('Internal phine error: not normal page called');
         }
     }
     ob_start();
     require PathUtil::LayoutTemplate($this->layout);
     $result = ob_get_clean();
     $replacer = new Replacer();
     return $replacer->RealizeVariables($result);
 }