protected function _content() { $vars = Horde_Variables::getDefaultVariables(); $formname = $vars->get('formname'); $done = false; $form = new Horde_Form($vars); $fields = $GLOBALS['injector']->getInstance('Ulaform_Factory_Driver')->create()->getFields($this->_params['form_id']); foreach ($fields as $field) { /* In case of these types get array from stringlist. */ if ($field['field_type'] == 'link' || $field['field_type'] == 'enum' || $field['field_type'] == 'multienum' || $field['field_type'] == 'radio' || $field['field_type'] == 'set' || $field['field_type'] == 'sorter') { $field['field_params']['values'] = Ulaform::getStringlistArray($field['field_params']['values']); } /* Setup the field with all the parameters. */ $form->addVariable($field['field_label'], $field['field_name'], $field['field_type'], $field['field_required'], $field['field_readonly'], $field['field_desc'], $field['field_params']); } if ($formname) { $form->validate($vars); if ($form->isValid() && $formname) { $form->getInfo($vars, $info); $info['form_id'] = $this->_params['form_id']; try { $submit = $GLOBALS['ulaform_driver']->submitForm($info); $GLOBALS['notification']->push(_("Form submitted successfully."), 'horde.success'); $done = true; } catch (Horde_Exception $e) { $GLOBALS['notification']->push(sprintf(_("Error submitting form. %s."), $e->getMessage()), 'horde.error'); } } } /* Render active or inactive, depending if submitted or * not. */ $render_type = $done ? 'renderInactive' : 'renderActive'; /* Render the form. */ $renderer = new Horde_Form_Renderer(); $renderer->showHeader(false); Horde::startBuffer(); $form->{$render_type}($renderer, $vars, Horde::selfUrl(true), 'post'); return Horde::endBuffer(); }
$form->getInfo($vars, $info); try { $submit = $ulaform_driver->submitForm($info); $notification->push(_("Form submitted successfully."), 'horde.success'); $done = true; } catch (Horde_Exception $e) { $notification->push(sprintf(_("Error submitting form. %s."), $e->getMessage()), 'horde.error'); } } /* Render active or inactive, depending if submitted or not. */ $render_type = $done ? 'renderInactive' : 'renderActive'; /* Set target URL, if passed as form url use that, otherwise use selfUrl(). */ $target_url = $form_params['url'] ? $form_params['url'] : Horde::selfUrl(); /* Render the form. */ $renderer = new Horde_Form_Renderer(); $renderer->showHeader(false); Horde::startBuffer(); $form->{$render_type}($renderer, $vars, $target_url, 'post', 'multipart/form-data'); $main = Horde::endBuffer(); $view = new Horde_View(array('templatePath' => ULAFORM_TEMPLATES)); $view->noterror = !$error; $view->title = isset($form_info['form_name']) ? $form_info['form_name'] : false; $view->main = $main; if (!isset($form_params['embed'])) { $form_params['embed'] = false; } switch ($form_params['embed']) { case 'php': /* PHP style embedding, just fetch the form code. */ $notification->notify(array('listeners' => 'status')); echo $view->render('display');