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); }
public static function getRightsAsString($value, \stdClass $record, $selector, TableRenderer $tableRenderer) { return CmsUtils::getRightsAsString($value); }