public static function factory() { $request = Gio_Core_Request::getInstance(); $config = Gio_Core_Module::getConfig('page'); $param = isset($config['url']['param']) ? $config['url']['param'] : 'page_id'; $category = null; switch ($param) { case 'slug': $page = Modules_Page_Services_Page::getBySlug($request->getParam($param)); break; } if (null == $page) { $page = Modules_Page_Services_Page::getById($request->getParam('page_id')); } return $page; }
/** * Edit page * * @return void */ public function editAction() { $request = $this->getRequest(); $pageId = $request->getParam('page_id'); $page = Modules_Page_Services_Page::getById($pageId); if (null == $page) { throw new Exception('Not found page with id of ' . $pageId); } $configs = Gio_Core_Config_Xml::getConfig('web'); $this->view->frontendTemplate = $configs->template; $this->view->frontendSkin = $configs->skin; $sourcePage = Modules_Page_Services_Page::getSource($page); $request->setParam('lang', $page['language']); $this->view->lang = $page['language']; $this->view->pageData = $page; $oldParentId = $page['parent_id']; $this->view->sourcePage = $sourcePage; if ($request->isPost()) { $pageData = $request->getPost('page'); $pageData = Modules_Page_Services_Page::validate($pageData); if (isset($pageData['messages_error']) && $pageData['messages_error']) { $this->view->errorMessages = $pageData['messages']; $pageData['page_id'] = $page['page_id']; $this->view->pageData = $pageData; return; } /** * Check page slug exist */ if (Modules_Page_Services_Page::getBySlug($pageData['slug'], $page['page_id'])) { $pageData['messages']['slug'] = 'page_slug_exist'; $this->view->errorMessages = $pageData['messages']; $pageData['page_id'] = $page['page_id']; $this->view->pageData = $pageData; return; } $page = $page; $page['name'] = $this->view->STRING->escape($pageData['name']); $page['slug'] = $this->view->STRING->escape($pageData['slug']); $page['description'] = $pageData['description']; $page['content'] = $pageData['content']; $page['parent_id'] = $pageData['parent_id']; $page['modified_date'] = date('Y-m-d H:i:s'); $page['status'] = null == $pageData['status'] ? 'inactive' : $pageData['status']; $sourceItem = isset($pageData['source_item']) ? $pageData['source_item'] : null; Modules_Page_Services_Page::update($page, $oldParentId, $sourceItem); Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('page_actions_edit_success')); $this->redirect($this->view->url('page_page_edit', $page)); } }