예제 #1
0
 public function addAction()
 {
     $entityManager = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
     //Vérifie le type de la requête
     $form = new PageForm();
     $request = $this->getRequest();
     //Initialise la liste des categories
     $categories = $this->getEntityManager()->getRepository('Cms\\Entity\\Category')->findAll();
     $options = array("" => "");
     foreach ($categories as $cat) {
         $options[$cat->getCtgrId()] = $cat->getCtgrName();
     }
     $form->setCategories($options);
     $menus = $this->getEntityManager()->getRepository('Cms\\Entity\\Menu')->findAll();
     $articles = $this->getEntityManager()->getRepository('Cms\\Entity\\Article')->findAll();
     $options = array("" => "");
     foreach ($menus as $menu) {
         $options[$menu->getMenuId()] = $menu->getMenuName();
     }
     //        $form->setMenus($options);
     if ($request->isPost()) {
         $form->setInputFilter(new PageFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $data = $form->getData();
             unset($data['submit']);
             $this->getPagesTable()->insert($data);
             return $this->redirect()->toRoute('cms/default', array('controller' => 'page', 'action' => 'index'));
         }
     }
     return array('form' => $form, 'articles' => $articles, 'menus' => $menus);
 }
예제 #2
0
 /**
  * Edit page
  * 
  * 
  * @access public
  * @uses PageForm
  * 
  * @return ViewModel
  */
 public function editAction()
 {
     $variables = array();
     $id = $this->params('id');
     $pageModel = $this->getServiceLocator()->get('CMS\\Model\\Page');
     $query = $this->getServiceLocator()->get('wrapperQuery');
     $pageObj = $query->find('CMS\\Entity\\Page', $id);
     $request = $this->getRequest();
     if (!$request->isPost()) {
         // extract body data to be able to display it in it's natural form
         $pageObj->body = $pageObj->getBody();
     }
     $options = array();
     $options['query'] = $query;
     $form = new PageForm(null, $options);
     // removing unpublish button in case of already unpublished page
     if ($pageObj->getStatus() == \Utilities\Service\Status::STATUS_INACTIVE) {
         $form->remove(FormButtons::UNPUBLISH_BUTTON);
         $form->getInputFilter()->remove(FormButtons::UNPUBLISH_BUTTON);
     }
     $form->bind($pageObj);
     if ($request->isPost()) {
         $data = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray());
         $form->setInputFilter($pageObj->getInputFilter($query));
         $form->setData($data);
         $pageModel->setFormRequiredFields($form, $data, true);
         if ($form->isValid()) {
             $pageModel->save($pageObj, $data, true);
             $url = $this->getEvent()->getRouter()->assemble(array('action' => 'index'), array('name' => 'cmsPage'));
             $this->redirect()->toUrl($url);
         }
     }
     $formViewHelper = new FormViewHelper();
     $this->setFormViewHelper($formViewHelper);
     $variables['id'] = $id;
     $variables['pageForm'] = $this->getFormView($form);
     $variables['pressReleaseType'] = PageTypes::PRESS_RELEASE_TYPE;
     return new ViewModel($variables);
 }