Пример #1
0
 /**
  * Create new page
  * 
  * 
  * @access public
  * @uses Page
  * @uses PageForm
  * 
  * @return ViewModel
  */
 public function newAction()
 {
     $variables = array();
     $pageModel = $this->getServiceLocator()->get('CMS\\Model\\Page');
     $query = $this->getServiceLocator()->get('wrapperQuery')->setEntity('CMS\\Entity\\Page');
     $pageObj = new Page();
     $options = array();
     $options['query'] = $query;
     $form = new PageForm(null, $options);
     $request = $this->getRequest();
     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, false);
         if ($form->isValid()) {
             $data = $form->getData(FormInterface::VALUES_AS_ARRAY);
             $pageModel->save($pageObj, $data, false);
             $url = $this->getEvent()->getRouter()->assemble(array('action' => 'index'), array('name' => 'cmsPage'));
             $this->redirect()->toUrl($url);
         }
     }
     $formViewHelper = new FormViewHelper();
     $this->setFormViewHelper($formViewHelper);
     $variables['pageForm'] = $this->getFormView($form);
     $variables['pressReleaseType'] = PageTypes::PRESS_RELEASE_TYPE;
     return new ViewModel($variables);
 }