Пример #1
0
 /**
  * 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));
     }
 }