/** * Execute the actions of the form builder validated. * * @access private * @return void * * @author Etienne de Longeaux <*****@*****.**> * @since 2012-09-11 */ private function dispatchAction() { // we get the values of the form builder validated. if ($this->getTypeForm() == "zend") { $this->_data = null; } elseif ($this->getTypeForm() == "symfony") { $this->_data = $this->_form->getData(); } // we only Execute the actions of the form builder validated. if ($this->getName() == $this->_id_form) { // we Execute the pre event action of the form builder validated. $this->preEventActionForm($this->_data); // we create the xml config value if it is defined in the form builder validated. try { $XmlConfigWidget = $this->XmlConfigWidget($this->_data); if (is_array($XmlConfigWidget) && count($XmlConfigWidget) >= 1) { \Sfynx\ToolBundle\Util\PiArrayManager::init('1.0', 'UTF-8'); $this->_xmlconfig = \Sfynx\ToolBundle\Util\PiArrayManager::createXML('config', $XmlConfigWidget['xml'])->saveXML(); } else { $this->_xmlconfig = null; } } catch (\Exception $e) { $this->_xmlconfig = null; } // we create/update a widget if the xml config value is defined. try { if (!is_null($this->_xmlconfig) && $this->_performName == "insert") { $this->insertWidget($XmlConfigWidget['plugin'], $XmlConfigWidget['action']); } elseif (!is_null($this->_xmlconfig) && $this->_performName == "update") { $this->updateWidget($XmlConfigWidget['plugin'], $XmlConfigWidget['action']); } } catch (\Exception $e) { } // we throw the post event action of the form builder validated. $this->postEventActionForm($this->_data); } }
/** * Get all error messages after binding form. * * @param Form $form * @param string $type * @param string $delimiter * * @return array The list of all the errors * @access protected * @author Etienne de Longeaux <*****@*****.**> */ public function getFormErrors(Form $form, $type = 'array', $delimiter = "<br />") { $errors = array(); foreach ($form->getErrors() as $key => $error) { if ($error->getMessagePluralization() !== null) { $errors[$key] = array('id' => $error->getMessage(), 'trans' => $this->get('translator')->transChoice($error->getMessage(), $error->getMessagePluralization(), $error->getMessageParameters())); } else { $errors[$key] = array('id' => $error->getMessage(), 'trans' => $this->get('translator')->trans($error->getMessage())); } } $all = $form->all(); if (is_array($all)) { foreach ($all as $child) { if (!$child->isValid()) { $errors[$child->getName()] = $this->getFormErrors($child, 'array'); } } } if ($type == 'array') { return $errors; } else { return PiArrayManager::convertArrayToString($errors, $this->get('translator'), 'pi.form.label.field.', '', $delimiter); } }