public function addFieldProcessAction() { if (!$this->_request->isXmlHttpRequest() || !$this->_request->isPost()) { $this->_redirect('/admin/forms/'); } $return = array(); $formFieldGateway = new Forms_Model_FormFieldGateway(); $form = $formFieldGateway->getForm('CreateFormField'); if ($form->isValid($this->_request->getPost())) { $form = $formFieldGateway->create($form->getValues()); $fieldId = $form->save(); $formField = $formFieldGateway->fetchFormField($fieldId); $elementClass = 'Zend_Form_Element_' . ucfirst($formField->form_field_type); $element = new $elementClass($formField->form_field_name, $formField->form_field_attribs); if (is_array($formField->form_field_options) && !empty($formField->form_field_options)) { $element->addMultiOptions($formField->form_field_options); } $element->clearDecorators(); $element->addDecorator('Label'); $element->addDecorator('ViewHelper'); $flashMessenger = $this->_helper->getHelper('FlashMessenger'); $flashMessenger->setNamespace('notifications')->addMessage('Field Added!'); $return['notification']['target'] = '.notifications'; $return['notification']['content'] = $this->view->displayMessages(true); $return['append']['target'] = '#formContainer'; $return['append']['content'] = '<li>' . $element->renderLabel() . $element->renderViewHelper() . '<div class="sortHandle"></div></li>'; $return['callback'] = '$("#add-field-dialog").dialog("close");$("#formContainer .message").remove();'; } else { $return['formErrors'] = $form->getMessages(); } $this->_helper->json->sendJson($return); }