Exemple #1
0
 /**
  * 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'));
     }
 }