Esempio n. 1
0
 /**
  * Get the fields needed defines by user
  * 
  * @param string  $module  Module name
  * @return array 
  */
 public static function getValidFields($module = null)
 {
     $options = Setup::getFormConfig();
     $availableFields = self::getAvailableFields($module);
     $remainFields = array('id', 'article', 'uid', 'time_publish', 'time_update', 'time_submit');
     $validFields = array_merge($remainFields, array_intersect($availableFields, $options['elements']));
     return $validFields;
 }
Esempio n. 2
0
 /**
  * Add a config file to initilize draft edit page form type as extended.
  * 
  * @param Event $e 
  */
 public function initDraftEditPageForm(Event $e)
 {
     $module = $this->event->getParam('module');
     $elements = array('mode' => 'extension');
     $filename = Setup::getFilename(false, $module);
     $result = Pi::config()->write($filename, $elements, true);
     return $result;
 }
Esempio n. 3
0
 /**
  * Update a publish article
  * 
  * @return ViewModel 
  */
 public function updateAction()
 {
     // Denied user viewing if no front-end management permission assigned
     if (!$this->config('enable_front_edit') && 'front' == $this->section) {
         return $this->jumpTo404();
     }
     $options = Setup::getFormConfig();
     $form = $this->getDraftForm('save', $options);
     $form->setInputFilter(new DraftEditFilter($options));
     $form->setValidationGroup(DraftModel::getValidFields());
     $form->setData($this->request->getPost());
     if (!$form->isValid()) {
         return array('message' => $form->getMessages());
     }
     $data = $form->getData();
     $validate = $this->validateForm($data, $this->params('article', 0), $options['elements']);
     if (!$validate['status']) {
         $form->setMessages($validate['message']);
         return $validate;
     }
     $id = $this->saveDraft($data);
     if (!$id) {
         return array('message', __('Failed to save draft.'));
     }
     $result = $this->update($id);
     return $result;
 }