/** * Add new page * * @return void */ public function addAction() { $request = $this->getRequest(); $sourceId = $request->getParam('source_id'); $sourcePage = null == $sourceId ? null : Modules_Page_Services_Page::getById($sourceId); $configs = Gio_Core_Config_Xml::getConfig('web'); $this->view->frontendTemplate = $configs->template; $this->view->frontendSkin = $configs->skin; $this->view->sourcePage = $sourcePage; $this->view->lang = $request->getParam('lang'); if ($request->isPost()) { $user = Gio_Core_Session::getUser(); $pageData = $request->getPost('page'); $pageData = Modules_Page_Services_Page::validate($pageData); if (isset($pageData['messages_error']) && $pageData['messages_error']) { $this->view->errorMessages = $pageData['messages']; $this->view->pageData = $pageData; return; } /** * Check page slug exist */ if (Modules_Page_Services_Page::getBySlug($pageData['slug'])) { $pageData['messages']['slug'] = 'page_slug_exist'; $this->view->errorMessages = $pageData['messages']; $this->view->pageData = $pageData; return; } $page = array('name' => $this->view->STRING->escape($pageData['name']), 'slug' => $this->view->STRING->escape($pageData['slug']), 'description' => $pageData['description'], 'content' => $pageData['content'], 'parent_id' => $pageData['parent_id'], 'num_views' => 0, 'created_date' => date('Y-m-d H:i:s'), 'modified_date' => date('Y-m-d H:i:s'), 'user_id' => $user['user_id'], 'language' => $pageData['language'], 'status' => $pageData['status']); $sourceItem = isset($pageData['source_item']) ? $pageData['source_item'] : null; Modules_Page_Services_Page::add($page, $sourceItem); Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('page_actions_add_success')); $this->redirect($this->view->url('page_page_add')); } }