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(); }
} $tree->addNode(array('id' => $idx, 'parent' => $parent, 'label' => $name, 'expanded' => false, 'params' => $node_params)); } $parent .= '|' . $name; } } break; case 'search': /* Create Form */ $searchForm = new Horde_Form($vars, null, 'search'); $searchForm->setButtons(_("Search")); $searchForm->addHidden('sidebar', 'show', 'text', false); $searchForm->addHidden('', 'module', 'text', false); $searchForm->addHidden('', 'side_show', 'text', false); $searchForm->addVariable(_("Keyword"), 'keyword', 'text', false, false, null, array(null, 20)); $renderer = new Horde_Form_Renderer(); $renderer->setAttrColumnWidth('50%'); Horde::startBuffer(); $searchForm->renderActive($renderer, $vars, $sidebar_url->copy()->setRaw(true), 'post'); $contents = Horde::endBuffer() . '<br />'; $keywords = $vars->get('keyword'); if (!empty($keywords)) { $results = $help->search($keywords); foreach ($results as $id => $title) { if (empty($title)) { continue; } $contents .= Horde::link($base_url->copy()->add(array('show' => 'entry', 'topic' => $id)), null, null, 'help_main') . htmlspecialchars($title) . "</a><br />\n"; } } break;
/** * Attempts to return a reference to a concrete Horde_Form_Renderer * instance based on $renderer. It will only create a new instance if no * Horde_Form_Renderer instance with the same parameters currently exists. * * This should be used if multiple types of form renderers (and, * thus, multiple Horde_Form_Renderer instances) are required. * * This method must be invoked as: $var = &Horde_Form_Renderer::singleton() * * @param mixed $renderer The type of concrete Horde_Form_Renderer * subclass to return. The code is dynamically * included. If $renderer is an array, then we will * look in $renderer[0]/lib/Form/Renderer/ for the * subclass implementation named $renderer[1].php. * @param array $params A hash containing any additional configuration a * form might need. * * @return Horde_Form_Renderer The concrete Horde_Form_Renderer reference, * or false on an error. */ function &singleton($renderer, $params = null) { static $instances = array(); $signature = serialize(array($renderer, $params)); if (!isset($instances[$signature])) { $instances[$signature] = Horde_Form_Renderer::factory($renderer, $params); } return $instances[$signature]; }
$form = new Whups_Form_Query_TextCriterion($vars); break; case 'attribs': $form = new Whups_Form_Query_AttributeCriterion($vars); break; case 'date': $form = new Whups_Form_Query_DateCriterion($vars); break; } $renderer = $form->getRenderer(); $form->open($renderer, $vars, 'index.php', 'post'); $queryRenderer->beginActive(_("Current Query")); $queryRenderer->edit($qops, $form->getName(), 1); $queryRenderer->renderFormActive($whups_query, $vars); $queryRenderer->edit($qops, $form->getName(), 2); $renderer->end(); echo '<br />' . $criteriaTabs->render($session->get('whups', 'query_form')); $renderer->beginActive($form->getTitle()); $renderer->renderFormActive($form, $vars); $renderer->submit($vars->get('edit') ? _("Save Criterion") : _("Add Criterion")); $renderer->end(); $form->close($renderer); } else { // Show query readonly. $renderer = new Horde_Form_Renderer(); $renderer->beginActive(_("Current Query")); $queryRenderer->renderFormInactive($whups_query, $vars); $renderer->end(); } $page_output->footer(); $session->set('whups', 'query', $whups_query);
if ($form->validate($vars)) { $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'));