コード例 #1
0
 public function getPageDetails($params)
 {
     $pageID = (int) $params[0];
     $cmsPage = $this->pageModel->getPageByID($pageID);
     if ($cmsPage === null) {
         throw new HttpException('Could not find page', 404);
     }
     $moduleModel = new ElementModel($this->cmsController->getDB());
     $coreModel = new CoreModel($this->cmsController->getDB());
     //$modules = $moduleModel->getModulesByPage($pageData);
     $elements = $moduleModel->getElementTree($cmsPage);
     $rights = array();
     foreach ($cmsPage->getRights() as $r) {
         $rightEntry = new \stdClass();
         $rightEntry->ID = $r->ID;
         $rightEntry->group_name = $r->groupname;
         $rightEntry->rights = CmsUtils::getRightsAsString($r->rights);
         $rightEntry->inherited_page = $r->inherted_page == $pageID ? null : '<a href="/backend/page/' . $r->inherted_page . '">Page #' . $r->inherted_page . '</a>';
         $dtStart = new \DateTime($r->start_date);
         $dtFormat = $this->cmsController->getLocaleHandler()->getDateTimeFormat();
         $rightEntry->duration = $r->end_date === null ? 'since ' . $dtStart->format($dtFormat) : $dtStart->format($dtFormat) . ' - ' . $r->end_date;
         $rights[] = $rightEntry;
     }
     $sqlQueryStr = "SELECT r.ID, r.pattern, m.ID mod_ID, m.name mod_name, r.robots, r.ssl_forbidden, r.ssl_required\n\t\t\tFROM route r\n\t\t\tLEFT JOIN cms_mod_available m ON m.ID = r.mod_IDFK\n\t\t\tWHERE page_IDFK = ?\n\t\t";
     $trRoutes = new TableRenderer('route', $this->cmsController->getDB(), $sqlQueryStr);
     $trRoutes->setColumns(array(new Column('ID', 'ID'), new Column('pattern', 'Path', array(new LinkColumnDecorator())), new Column('mod_name', 'Module', array(new EmptyValueColumnDecorator('<em>none</em>'), new RewriteColumnDecorator('<a href="/backend/module/{mod_name}">{mod_name}</a>'))), new Column('robots', 'Robots', array(new EmptyValueColumnDecorator('<em>default</em>'))), new Column(null, 'SSL', array(new CallbackColumnDecorator(function ($value, $record, $selector, $tableRenderer) {
         $sslAttrs = array();
         if ($record->ssl_forbidden + $record->ssl_required == 0) {
             return 'user\'s choice';
         }
         if ($record->ssl_forbidden == 1) {
             $sslAttrs[] = 'forbidden';
         }
         if ($record->ssl_required == 1) {
             $sslAttrs[] = 'required';
         }
         return implode(' / ', $sslAttrs);
     })))));
     $trRoutes->setOptions(array('edit' => '/backend/route/{ID}/edit', 'delete' => '/backend/route/{ID}/delete'));
     $pageInfo = array();
     $pageInfo['ID'] = $pageID;
     $pageInfo['Title'] = $cmsPage->getTitle();
     if ($cmsPage->getDescription() !== null) {
         $pageInfo['Description'] = $cmsPage->getDescription();
     }
     if (($pagePathAsHtmlStr = $this->getPagePathAsHtmlStr($this->pageModel->getPagePath($pageID))) !== null) {
         $pageInfo['Page inheritance'] = $pagePathAsHtmlStr;
     }
     $roles = $this->getRoleOptions();
     $pageInfo['Role'] = isset($roles[$cmsPage->getRole()]) ? $roles[$cmsPage->getRole()] : $cmsPage->getRole();
     $languages = $coreModel->getLanguages();
     $pageInfo['Language'] = isset($languages[$cmsPage->getLanguage()]) ? $languages[$cmsPage->getLanguage()] : $cmsPage->getLanguage();
     $pageInfo['Inherit rights'] = $cmsPage->getInheritRights() == 1 ? 'yes' : 'no';
     $dtCreated = new \DateTime($cmsPage->getCreated());
     $pageInfo['Created'] = $dtCreated->format($this->cmsController->getLocaleHandler()->getDateTimeFormat()) . ' by <a href="/backend/account/' . $cmsPage->getCreatorID() . '">' . $cmsPage->getCreatorName() . '</a>';
     if ($cmsPage->getLastModified() !== null) {
         $dtLastModified = new \DateTime($cmsPage->getCreated());
         $pageInfo['Last modified'] = $dtLastModified->format($this->cmsController->getLocaleHandler()->getDateTimeFormat()) . ' by <a href="/backend/account/' . $cmsPage->getModifierID() . '">' . $cmsPage->getModifierName() . '</a>';
     }
     $tplVars = array('siteTitle' => 'Page "' . $cmsPage->getTitle() . '"', 'base_link' => $this->baseLink, 'page' => $cmsPage, 'page_info' => $pageInfo, 'rights' => $rights, 'elements_list' => $this->generateElementList($elements, $cmsPage->getID()), 'routes' => $trRoutes->display(array($pageID)));
     return $this->renderModuleContent('mod-pages-page-details', $tplVars);
 }
コード例 #2
0
 public static function getRightsAsString($value, \stdClass $record, $selector, TableRenderer $tableRenderer)
 {
     return CmsUtils::getRightsAsString($value);
 }