public function bodyCssClass() { $page = WasabiCms::page(); $classes = []; $classes[] = 'layout-' . Inflector::dasherize($page->layout); $classes[] = 'page-' . Inflector::dasherize($page->slug); return implode(' ', $classes); }
public function view($pageId, $languageId, $pageNumber) { Wasabi::loadLanguages($languageId); $this->loadModel('Wasabi/Cms.Pages'); $page = $this->Pages->getForFrontend($pageId); $startPage = $this->Pages->getStartPage(); $titleSuffix = Configure::read('Settings.Core.html_title_suffix'); $instanceName = Configure::read('Settings.Core.instance_name'); WasabiCms::page($page); WasabiCms::startPage($startPage); WasabiCms::titleSuffix($titleSuffix); WasabiCms::instanceName($instanceName); $page->initializeContentAreas(); $this->viewBuilder()->theme($page->getTheme()->getNameForViewBuilder()); $this->viewBuilder()->layout($page->getLayout()->name()); $this->viewBuilder()->className($page->getTheme()->getViewClassNameForViewBuilder()); $this->set(['page' => $page]); }
/** * Get the title for the given $entity. * * @param PublishableEntity $entity The entity, e.g. Page or Post. * @return string */ protected function _getTitle($entity) { $title = $entity->page_title; if ((bool) $entity->display_page_title_suffix) { $title .= WasabiCms::titleSuffix(); } return $title; }
public function isMenuItemActive(Event $event, Request $request) { /** @var MenuItem $menuItem */ $menuItem = $event->subject(); $pageId = $menuItem->get('Pages')['id'] ?? null; if ($menuItem->foreign_model !== 'Wasabi/Cms.Pages' || $pageId === null) { return; } if ((int) $pageId === WasabiCms::page()->id) { $event->result = true; $event->stopPropagation(); } }
/** * Render the Form for this module (in.ctp). * * @return string */ public function renderForm() { $template = $this->path() . DS . 'in.ctp'; if (!file_exists($template)) { user_error(__d('wasabi_cms', 'Template "{0}" for module {1} not found.', $template, $this->name())); } $viewClass = WasabiCms::getTheme()->getClassNameForInitialization(); /** @var View $view */ $view = new $viewClass(); $output = $view->element('Wasabi/Cms.module', ['template' => $template, 'form' => $this]); return $output; }
public function attributes($id) { $layout = $this->request->query['layout']; $layout = WasabiCms::getTheme()->getLayout($layout); $attributes = $layout->attributes(); $page = $this->Pages->get($id, ['contain' => ['Attributes']]); $this->set(['page' => $page, 'attributes' => $attributes]); $this->viewBuilder()->layout(false); }