/** * Display form * * @param integer $form_id Form id dispaly * @param string $target_url Target url to link form to */ public function display($form_id, $target_url = null) { /* Get the stored form information from the backend. */ try { $form_info = $GLOBALS['injector']->getInstance('Ulaform_Factory_Driver')->create()->getForm($form_id, Horde_Perms::READ); } catch (Horde_Exception $e) { throw new Ulaform_Exception($e->getMessage()); } if (!empty($form_info['form_params']['language'])) { Horde_Nls::setLanguageEnvironment($form_info['form_params']['language']); } $vars = Horde_Variables::getDefaultVariables(); $vars->set('form_id', $form_id); $form = new Horde_Form($vars); $form->addHidden('', 'form_id', 'int', false); $form->addHidden('', 'user_uid', 'text', false); $form->addHidden('', 'email', 'email', false); $vars->set('user_uid', $GLOBALS['registry']->getAuth()); $vars->set('email', $GLOBALS['prefs']->getValue('from_addr')); try { $fields = $GLOBALS['injector']->getInstance('Ulaform_Factory_Driver')->create()->getFields($form_id); } catch (Ulaform_Exception $e) { throw new Ulaform_Exception($e->getMessage()); } 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'] == 'mlenum' || $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']); } /* Check if submitted and validate. */ $result = array('title' => $form_info['form_name']); if ($form->validate()) { $form->getInfo(null, $info); try { $GLOBALS['ulaform_driver']->submitForm($info); return true; } catch (Horde_Exception $e) { throw new Ulaform_Exception(sprintf(_("Error submitting form. %s."), $e->getMessage())); } } if (is_null($target_url)) { $target_url = Horde::selfUrl(true); } Horde::startBuffer(); $form->renderActive(null, null, $target_url, 'post', 'multipart/form-data'); return array('title' => $form_info['form_name'], 'form' => Horde::endBuffer()); }
/** * Create a permission deleting form. * * @param Horde_Perms_Permission $permission A permissions object. */ public function setupDeleteForm($permission) { /* Initialise form if required. */ $this->_formInit(); $this->_form->setTitle(sprintf(Horde_Core_Translation::t("Delete permissions for \"%s\""), $this->_corePerms->getTitle($permission->getName()))); $this->_form->setButtons(array(array('class' => 'horde-delete', 'value' => Horde_Core_Translation::t("Delete")), array('class' => 'horde-cancel', 'value' => Horde_Core_Translation::t("Do not delete")))); $this->_form->addHidden('', 'perm_id', 'text', false); $this->_form->addVariable(sprintf(Horde_Core_Translation::t("Delete permissions for \"%s\" and any sub-permissions?"), $this->_corePerms->getTitle($permission->getName())), 'prompt', 'description', false); }
/** * Expects: * $vars * $registry * $notification */ public function run() { extract($this->_params, EXTR_REFS); /* Set up the form variables and the form. */ $form_submit = $vars->get('submitbutton'); $channel_id = $vars->get('channel_id'); try { $channel = $GLOBALS['injector']->getInstance('Jonah_Driver')->getChannel($channel_id); } catch (Exception $e) { Horde::log($e, 'ERR'); $notification->push(_("Invalid channel specified for deletion."), 'horde.message'); Horde::url('channels')->redirect(); exit; } /* If not yet submitted set up the form vars from the fetched channel. */ if (empty($form_submit)) { $vars = new Horde_Variables($channel); } /* Check permissions and deny if not allowed. */ if (!Jonah::checkPermissions(Jonah::typeToPermName($channel['channel_type']), Horde_Perms::DELETE, $channel_id)) { $notification->push(_("You are not authorised for this action."), 'horde.warning'); throw new Horde_Exception_AuthenticationFailure(); } $title = sprintf(_("Delete News Channel \"%s\"?"), $vars->get('channel_name')); $form = new Horde_Form($vars, $title); $form->setButtons(array(_("Delete"), _("Do not delete"))); $form->addHidden('', 'channel_id', 'int', true, true); $msg = _("Really delete this News Channel? All stories created in this channel will be lost!"); $form->addVariable($msg, 'confirm', 'description', false); if ($form_submit == _("Delete")) { if ($form->validate($vars)) { $form->getInfo($vars, $info); try { $delete = $GLOBALS['injector']->getInstance('Jonah_Driver')->deleteChannel($info); $notification->push(_("The channel has been deleted."), 'horde.success'); Horde::url('channels')->redirect(); exit; } catch (Exception $e) { $notification->push(sprintf(_("There was an error deleting the channel: %s"), $e->getMessage()), 'horde.error'); } } } elseif (!empty($form_submit)) { $notification->push(_("Channel has not been deleted."), 'horde.message'); Horde::url('channels')->redirect(); exit; } $GLOBALS['page_output']->header(array('title' => $title)); $notification->notify(array('listeners' => 'status')); $form->renderActive(null, $vars, Horde::selfUrl(), 'post'); $GLOBALS['page_output']->footer(); }
function prepareForm($p_variables) { $v_account_name = $p_variables->get('account_name'); $v_form = new Horde_Form($p_variables, $v_account_name . '::Event', 'event'); $v_form->addVariable('Date', 'date', 'date', true); $v_form->addVariable('Description', 'description', 'text', true); $v_form->addHidden('', 'account_id', 'text', false); $v_form->addHidden('', 'account_name', 'text', false); $v_form->addVariable('Is it income?', 'is_income', 'boolean', true); $v_accountsAndCategories = Book::Singleton()->getAccountsAndCategories(); $v_form->addVariable('To/From', 'other_account_id', 'enum', true, false, '', array($v_accountsAndCategories, true)); $v_form->addVariable('Amount', 'amount', 'text', true); $v_form->addVariable('Is it cleared?', 'is_cleared', 'boolean', true); $v_form->addVariable('Statement reference', 'statement_item_id', 'text', false); $v_form->addHidden('', 'event_id', 'text', false); $v_form->addHidden('', 'old_date', 'date', false); $v_form->addHidden('', 'old_description', 'text', false); $v_form->addHidden('', 'old_is_income', 'boolean', false); $v_form->addHidden('', 'old_other_account_id', 'text', false); $v_form->addHidden('', 'old_amount', 'text', false); $v_form->addHidden('', 'old_is_cleared', 'boolean', false); $v_form->addHidden('', 'old_statement_item_id', 'text', false); return $v_form; }
* @author Marko Djukic <*****@*****.**> */ require_once __DIR__ . '/lib/Application.php'; Horde_Registry::appInit('ulaform', array('admin' => true)); $delvars = Horde_Variables::getDefaultVariables(); $form_id = $delvars->get('form_id'); $form_submit = $delvars->get('submitbutton'); /* Set up the forms. */ $ulaform_driver = $injector->getInstance('Ulaform_Factory_Driver')->create(); $viewvars = new Horde_Variables($ulaform_driver->getForm($form_id)); $viewform = new Horde_Form($viewvars, _("Form Details")); $delform = new Horde_Form($delvars, _("Delete this form?")); $viewform->addVariable(_("Name"), 'form_name', 'text', false); $viewform->addVariable(_("Action"), 'form_action', 'email', false); $delform->setButtons(array(_("Delete"), _("Do not delete"))); $delform->addHidden('', 'form_id', 'int', true); if ($form_submit == _("Delete")) { $delform->validate($delvars); if ($delform->isValid()) { $delform->getInfo($delvars, $info); try { $deleteform = $ulaform_driver->deleteForm($info['form_id']); $notification->push(_("Form deleted."), 'horde.success'); Horde::url('forms.php', true)->redirect(); } catch (Ulaform_Exception $e) { $notification->push(sprintf(_("Error deleting form. %s."), $e->getMessage()), 'horde.error'); } } } elseif (!empty($form_submit)) { $notification->push(_("Form has not been deleted."), 'horde.message'); Horde::url('forms.php', true)->redirect();
*/ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('ansel'); $faces = $GLOBALS['injector']->getInstance('Ansel_Faces'); $face_id = Horde_Util::getFormData('face'); try { $face = $faces->getFaceById($face_id); } catch (Ansel_Exception $e) { $notification->push($e->getMessage()); Horde::url('faces/search/all.php')->redirect(); exit; } $title = _("Tell us who is in this photo"); $vars = Horde_Variables::getDefaultVariables(); $form = new Horde_Form($vars, $title); $form->addHidden('', 'face', 'int', true); $form->addVariable(_("Person"), 'person', 'text', true); $form->setButtons($title); if ($form->validate()) { if (Horde_Util::getFormData('submitbutton') == _("Cancel")) { $notification->push(_("Action was cancelled."), 'horde.warning'); } else { $report = Ansel_Report::factory(); $gallery = $GLOBALS['injector']->getInstance('Ansel_Storage')->getGallery($face['gallery_id']); $face_link = Horde::url('faces/custom.php', true)->add(array('name' => $vars->get('person'), 'face' => $face_id, 'image' => $face['image_id']))->setRaw(true); $title = _("I know who is on one of your photos"); $body = _("Gallery Name") . ': ' . $gallery->get('name') . "\n" . _("Gallery Description") . ': ' . $gallery->get('desc') . "\n\n" . $title . "\n" . _("Person") . ': ' . $vars->get('person') . "\n" . _("Face") . ': ' . $face_link; $report->setTitle($title); try { $result = $report->report($body, $gallery->get('owner')); $notification->push(_("The owner of the photo, who will delegate the face name, was notified."), 'horde.success');
$new_name = Horde_Util::getFormData('new_name'); $result = $friends->renameGroup($g, $new_name); if ($result instanceof PEAR_Error) { $notification->push($result); } else { $notification->push(sprintf(_("Group \"%s\" has been renamed to \"%s\"."), $groups[$g], $new_name), 'horde.success'); Horde::url('edit/groups.php')->redirect(); } } break; default: // Manage adding groups $form = new Horde_Form($vars, _("Add group"), 'addgroup'); $translated = Horde::loadConfiguration('groups.php', 'groups', 'folks'); asort($translated); $form->addHidden('action', 'action', 'text', 'add'); $form->addVariable(_("Name"), 'translated_name', 'radio', false, false, null, array($translated, true)); $form->addVariable(_("Name"), 'custom_name', 'text', false, false, _("Enter custom name")); if ($form->validate()) { $form->getInfo(null, $info); if (empty($info['custom_name'])) { $name = $info['translated_name']; } else { $name = $info['custom_name']; } $result = $friends->addGroup($name); if ($result instanceof PEAR_Error) { $notification->push($result); } else { if (empty($info['custom_name'])) { $name = $translated[$info['translated_name']];
Horde::url('view.php?view=List', true)->redirect(); exit; } if (($image_id = Horde_Util::getFormData('image')) !== null) { $title = _("Do you really want to report this photo?"); $return_url = Ansel::getUrlFor('view', array('view' => 'Image', 'image' => $image_id, 'gallery' => $gallery_id), true); } else { $return_url = Ansel::getUrlFor('view', array('gallery' => $gallery_id, 'view' => 'Gallery'), true); } $vars = Horde_Variables::getDefaultVariables(); $form = new Horde_Form($vars, $title); $form->setButtons(array(array('class' => 'horde-default', 'value' => _("Report")), array('class' => 'horde-cancel', 'value' => _("Cancel")))); $enum = array('advertisement' => _("Advertisement content"), 'terms' => _("Terms and conditions infringement"), 'offensive' => _("Offensive content"), 'copyright' => _("Copyright infringement")); $form->addVariable($gallery->get('name'), 'name', 'description', false); $form->addVariable($gallery->get('desc'), 'desc', 'description', false); $form->addHidden('', 'gallery', 'text', true, true); $vars->set('gallery', $gallery_id); $form->addVariable(_("Report type"), 'type', 'radio', true, false, null, array($enum)); $form->addVariable(_("Report reason"), 'reason', 'longtext', true); $gallery_id = Horde_Util::getFormData('id'); if ($vars->get('submitbutton') == _("Cancel")) { Horde::url('', true)->redirect(); } if ($form->validate()) { if (Horde_Util::getFormData('submitbutton') == _("Report")) { $report = Ansel_Report::factory(); $body = _("Gallery Name") . ': ' . $gallery->get('name') . "\n" . _("Gallery Description") . ': ' . $gallery->get('desc') . "\n" . _("Gallery Id") . ': ' . $gallery->id . "\n" . _("Report type") . ': ' . $enum[$vars->get('type')] . "\n" . _("Report reason") . ': ' . $vars->get('reason') . "\n" . $return_url; try { $result = $report->report($body); $notification->push(_("Gallery was reported."), 'horde.success'); } catch (Horde_Exception $e) {
* @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array('authentication' => 'none')); $vars = $injector->getInstance('Horde_Variables'); // Make sure auth backend allows passwords to be reset. $auth = $injector->getInstance('Horde_Core_Factory_Auth')->create(); if (empty($conf['auth']['resetpassword']) || !$auth->hasCapability('resetpassword')) { $notification->push(_("Cannot reset password automatically, contact your administrator."), 'horde.error'); $registry->getServiceLink('login')->add('url', $vars->url)->redirect(); } $title = _("Reset your password"); $form = new Horde_Form($vars, $title); $form->setButtons(_("Continue")); /* Set up the fields for the username and alternate email. */ $form->addHidden('', 'url', 'text', false); $v =& $form->addVariable(_("Username"), 'username', 'text', true); $v->setOption('trackchange', true); $form->addVariable(_("Alternate email address"), 'email', 'email', true); $can_validate = false; /* If a username has been supplied try fetching the prefs stored info. */ if ($username = $vars->get('username')) { $username = $registry->convertUsername($username, true); $prefs = $injector->getInstance('Horde_Core_Factory_Prefs')->create('horde', array('cache' => false, 'user' => $username)); $email = $prefs->getValue('alternate_email'); /* Does the alternate email stored in prefs match the one submitted? */ if ($vars->get('email') == $email) { $can_validate = true; $form->setButtons(_("Reset Password")); $question = $prefs->getValue('security_question'); $form->addVariable($question, 'question', 'description', false);
if (empty($added_nodes[$idx])) { if ($key == $lcount) { $node_params['url'] = $base_url->copy()->setRaw(true)->add(array('show' => 'entry', 'topic' => $id)); $added_nodes[$idx] = true; } $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; }
if (!$conf['sharing']['allow']) { Horde::url('stories/view.php', true)->add(array('story_id' => $story_id, 'channel_id' => $channel_id))->redirect(); exit; } $story = $GLOBALS['injector']->getInstance('Jonah_Driver')->getStory($channel_id, $story_id); if (is_a($story, 'PEAR_Error')) { $notification->push(sprintf(_("Error fetching story: %s"), $story->getMessage()), 'horde.warning'); $story = ''; } $vars->set('subject', $story['title']); /* Set up the form. */ $form = new Horde_Form($vars); $title = _("Share Story"); $form->setTitle($title); $form->setButtons(_("Send")); $form->addHidden('', 'channel_id', 'int', false); $form->addHidden('', 'id', 'int', false); $v =& $form->addVariable(_("From"), 'from', 'email', true, false); if ($GLOBALS['registry']->getAuth()) { $v->setDefault($injector->getInstance('Horde_Core_Factory_Identity')->create()->getValue('from_addr')); } $form->addVariable(_("To"), 'recipients', 'email', true, false, _("Separate multiple email addresses with commas."), true); $form->addVariable(_("Subject"), 'subject', 'text', true); $form->addVariable(_("Include"), 'include', 'enum', true, false, null, array(array(_("A link to the story"), _("The complete text of the story")))); $form->addVariable(_("Message"), 'message', 'longtext', false, false, null, array(4, 40)); if ($form->validate($vars)) { $form->getInfo($vars, $info); $channel = $GLOBALS['injector']->getInstance('Jonah_Driver')->getChannel($channel_id); if (empty($channel['channel_story_url'])) { $story_url = Horde::url('stories/view.php', true)->add(array('channel_id' => '%c', 'id' => '%s')); } else {
/* Get details for this action. */ $actions = Ulaform_Action::getDrivers(); /* Check if user changed action. */ if ($form_action != $old_form_action && $formname) { $changed_action = true; $notification->push(_("Changed action driver."), 'horde.message'); } /* Selected a action so get the info and parameters for this action. */ if ($form_action) { $action_info = Ulaform::getActionInfo($form_action); $action_params = Ulaform::getActionParams($form_action); } /* Set up the form. */ $form = new Horde_Form($vars, _("Form Details")); $form->setButtons(empty($form_id) ? _("Create") : _("Modify"), true); $form->addHidden('', 'form_id', 'int', false); $form->addHidden('', 'old_form_action', 'text', false); $form->addVariable(_("Name"), 'form_name', 'text', true); /* Selectable action drivers and update form based on selection. */ $v = $form->addVariable(_("Action"), 'form_action', 'enum', true, false, null, array(array('' => _("-- select --")) + $actions)); $v->setAction(Horde_Form_Action::factory('submit')); $v->setHelp('form-action'); if (!empty($action_params)) { foreach ($action_params as $id => $param) { $param['required'] = isset($param['required']) ? $param['required'] : true; $param['readonly'] = isset($param['readonly']) ? $param['readonly'] : false; $param['desc'] = isset($param['desc']) ? $param['desc'] : null; $param['params'] = isset($param['params']) ? $param['params'] : null; $form->addVariable($param['label'], 'form_params[' . $id . ']', $param['type'], $param['required'], $param['readonly'], $param['desc'], $param['params']); } }
public function run() { extract($this->_params, EXTR_REFS); $form_submit = $vars->get('submitbutton'); $channel_id = $vars->get('channel_id'); $story_id = $vars->get('id'); /* Driver */ $driver = $GLOBALS['injector']->getInstance('Jonah_Driver'); /* Fetch the channel details, needed for later and to check if valid * channel has been requested. */ try { $channel = $driver->getChannel($channel_id); } catch (Exception $e) { $notification->push(sprintf(_("Story editing failed: %s"), $e->getMessage()), 'horde.error'); Horde::url('channels/index.php', true)->redirect(); exit; } /* Check permissions. */ if (!Jonah::checkPermissions(Jonah::typeToPermName($channel['channel_type']), Horde_Perms::DELETE, $channel_id)) { $notification->push(_("You are not authorised for this action."), 'horde.warning'); throw new Horde_Exception_AuthenticationFailure(); } try { $story = $driver->getStory($channel_id, $story_id); } catch (Exception $e) { $notification->push(_("No valid story requested for deletion."), 'horde.message'); Horde::url('channels/index.php', true)->redirect(); exit; } /* If not yet submitted set up the form vars from the fetched story. */ if (empty($form_submit)) { $vars = new Horde_Variables($story); } $title = sprintf(_("Delete News Story \"%s\"?"), $vars->get('title')); $form = new Horde_Form($vars, $title); $form->setButtons(array(_("Delete"), _("Do not delete"))); $form->addHidden('', 'channel_id', 'int', true, true); $form->addHidden('', 'id', 'int', true, true); $form->addVariable(_("Really delete this News Story?"), 'confirm', 'description', false); if ($form_submit == _("Delete")) { if ($form->validate($vars)) { $form->getInfo($vars, $info); try { $delete = $driver->deleteStory($info['channel_id'], $info['id']); $notification->push(_("The story has been deleted."), 'horde.success'); Horde::url('stories/index.php', true)->add('channel_id', $channel_id)->setRaw(true)->redirect(); exit; } catch (Exception $e) { $notification->push(sprintf(_("There was an error deleting the story: %s"), $e->getMessage()), 'horde.error'); } } } elseif (!empty($form_submit)) { $notification->push(_("Story has not been deleted."), 'horde.message'); $url = Horde::url('stories/index.php', true)->add('channel_id', $channel_id)->setRaw(true); Horde::url('stories/index.php', true)->add('channel_id', $channel_id)->setRaw(true)->redirect(); exit; } $GLOBALS['page_output']->header(array('title' => $title)); $notification->notify(array('listeners' => 'status')); $form->renderActive(null, $vars, Horde::url('stories/delete.php'), 'post'); $GLOBALS['page_output']->footer(); }
$vars = Horde_Variables::getDefaultVariables(); $fax_id = $vars->get('fax_id'); $url = $vars->get('url', 'folder.php'); $fax = $hylax->storage->getFax($fax_id); if (is_a($fax, 'PEAR_Error')) { $notification->push(sprintf(_("Could not open fax ID \"%s\". %s"), $fax_id, $fax->getMessage()), 'horde.error'); Horde::url($url, true)->redirect(); } elseif (!empty($fax['fax_number'])) { $notification->push(sprintf(_("Fax ID \"%s\" already has a fax number set."), $fax_id), 'horde.error'); Horde::url($url, true)->redirect(); } $title = _("Send Fax"); /* Set up the form. */ $form = new Horde_Form($vars, $title); $form->setButtons(_("Send"), true); $form->addHidden('', 'url', 'text', false); $form->addHidden('', 'fax_id', 'int', false); $form->addVariable(_("Fax destination"), 'fax_number', 'text', true, false, null, array('/^\\d+$/')); if ($form->validate($vars)) { $form->getInfo($vars, $info); $send = $hylax->storage->send($info['fax_id'], $info['fax_number']); if (is_a($send, 'PEAR_Error')) { $notification->push(sprintf(_("Could not send fax ID \"%s\". %s"), $info['fax_id'], $send->getMessage()), 'horde.error'); } else { $notification->push(sprintf(_("Fax ID \"%s\" submitted successfully."), $info['fax_id']), 'horde.success'); } Horde::url($url, true)->redirect(); } /* Get the preview pages. */ $pages = Hylax::getPages($fax_id, $fax['fax_pages']); /* Render the form. */
/* Get some variables. */ $vars = Horde_Variables::getDefaultVariables(); $formname = $vars->get('formname'); if (is_null($formname)) { if ($vars->exists('field_id')) { $vars = $ulaform_driver->getField($vars->get('form_id'), $vars->get('field_id')); $vars = new Horde_Variables($vars); } else { $notification->push(_("No field specified."), 'horde.warning'); Horde::url('fields.php', true)->add('form_id', $vars->get('form_id'))->redirect(); } } /* Set up the form. */ $fieldform = new Horde_Form($vars, _("Delete Field")); $fieldform->setButtons(array(_("Delete"), _("Do not delete"))); $fieldform->addHidden('', 'field_id', 'int', true); $fieldform->addHidden('', 'form_id', 'int', true); $fieldform->addHidden('', 'field_name', 'text', false); $fieldform->addVariable(_("Delete this field?"), 'field_name', 'text', false, true); if ($vars->get('submitbutton') == _("Delete")) { $fieldform->validate($vars); if ($fieldform->isValid()) { $fieldform->getInfo($vars, $info); try { $del_field = $injector->getInstance('Ulaform_Factory_Driver')->create()->deleteField($info['field_id']); $notification->push(sprintf(_("Field \"%s\" deleted."), $info['field_name']), 'horde.success'); Horde::url('fields.php', true)->add('form_id', $info['form_id'])->redirect(); } catch (Ulaform_Exception $e) { $notification->push(sprintf(_("Error deleting field. %s."), $e->getMessage()), 'horde.error'); } }
* @author Duck <*****@*****.**> * @package Folks */ require_once __DIR__ . '/lib/base.php'; $user = Horde_Util::getFormData('user'); if (empty($user)) { $notification->push(_("User is not selected"), 'horde.warning'); Folks::getUrlFor('list', 'list')->redirect(); } $title = _("Do you really want to report this user?"); $vars = Horde_Variables::getDefaultVariables(); $form = new Horde_Form($vars, $title); $form->setButtons(array(_("Report"), _("Cancel"))); $enum = array('advertisement' => _("Advertisement content"), 'terms' => _("Terms and conditions infringement"), 'offensive' => _("Offensive content"), 'copyright' => _("Copyright infringement")); $form->addVariable($user, 'name', 'description', false); $form->addHidden('', 'user', 'text', true, true); $form->addVariable(_("Report type"), 'type', 'radio', true, false, null, array($enum)); $form->addVariable(_("Report reason"), 'reason', 'longtext', true); $user_id = Horde_Util::getFormData('id'); if ($form->validate()) { if (Horde_Util::getFormData('submitbutton') == _("Report")) { $body = _("User") . ': ' . $user . "\n" . _("Report type") . ': ' . $enum[$vars->get('type')] . "\n" . _("Report reason") . ': ' . $vars->get('reason') . "\n" . Folks::getUrlFor('user', $user); require FOLKS_BASE . '/lib/Notification.php'; $rn = new Folks_Notification(); $result = $rn->notifyAdmins($title, $body); if ($result instanceof PEAR_Error) { $notification->push(_("User was not reported.") . ' ' . $result->getMessage(), 'horde.error'); } else { $notification->push(_("User was reported."), 'horde.success'); } } else {
$vars = new Horde_Variables($vilma->driver->getVirtual($virtual_id)); $editing = true; } if (empty($domain)) { $domain = Vilma::stripDomain($vars->virtual_destination); } $users = $vilma->driver->getUsers($domain); $user_list = array(); foreach ($users as $user) { $virtual_destination = substr($user['user_name'], 0, strpos($user['user_name'], '@')); $user_list[$user['user_name']] = $virtual_destination; } $form = new Horde_Form($vars, $editing ? _("Edit Virtual Email Address") : _("New Virtual Email Address")); /* Set up the form. */ $form->setButtons(true, true); $form->addHidden('', 'virtual_id', 'int', false); $form->addHidden('', 'domain', 'text', false); $form->addVariable(_("Virtual Email"), 'stripped_email', 'text', true, false, sprintf(_("Enter a virtual email address @%s and then indicate below where mail sent to that address is to be delivered. The address must begin with an alphanumerical character, it must contain only alphanumerical and '._-' characters, and must end with an alphanumerical character."), $domain), array('~^[a-zA-Z0-9]{1,1}[a-zA-Z0-9._-]*[a-zA-Z0-9]$~')); $var =& $form->addVariable(_("Destination type"), 'destination_type', 'enum', true, false, null, array(array('local' => _("Local user"), 'remote' => _("Remote address")))); $var->setAction(Horde_Form_Action::factory('reload')); if ($vars->destination_type == 'remote') { $form->addVariable(_("Remote e-mail address"), 'virtual_destination', 'email', true, false); } else { $form->addVariable(_("Destination"), 'virtual_destination', 'enum', true, false, null, array($user_list, true)); } if ($form->validate($vars)) { $form->getInfo($vars, $info); $info['stripped_email'] = Horde_String::lower($info['stripped_email']); if ($info['destination_type'] == 'remote') { $info['virtual_destination'] = Horde_String::lower($info['virtual_destination']); }
if ($message instanceof PEAR_Error) { $notification->push(sprintf(_("Could not open the message. %s"), $message->getMessage()), 'horde.warning'); Horde::url('forums.php', true)->redirect(); } /* Check delete permissions */ if (!$messages->hasPermission(Horde_Perms::DELETE)) { $notification->push(sprintf(_("You don't have permission to delete messages in forum %s."), $forum_id), 'horde.warning'); $url = Agora::setAgoraId($forum_id, $message_id, Horde::url('messages/index.php', true), $scope); header('Location: ' . $url); exit; } /* Get the form object. */ $vars = Horde_Variables::getDefaultVariables(); $form = new Horde_Form($vars, sprintf(_("Move \"%s\" to another forum"), $message['message_subject'])); $form->setButtons(array(_("Move"), _("Cancel"))); $form->addHidden('', 'agora', 'text', false); $form->addHidden('', 'scope', 'text', false); $forums_list = Agora::formatCategoryTree($messages->getForums(0, false)); $v =& $form->addVariable(_("Forum"), 'new_forum_id', 'enum', true, false, null, array($forums_list)); $v->setDefault($forum_id); /* Validate the form. */ if ($form->validate()) { $form->getInfo($vars, $info); if ($vars->get('submitbutton') == _("Move")) { $move = $messages->moveThread($message_id, $info['new_forum_id']); if ($move instanceof PEAR_Error) { $notification->push($move->getMessage(), 'horde.error'); } else { $notification->push(sprintf(_("Thread %s moved to from forum %s to %s."), $message_id, $forum_id, $info['new_forum_id']), 'horde.success'); header('Location: ' . Agora::setAgoraId($info['new_forum_id'], $message_id, Horde::url('messages/index.php', true), $scope)); exit;
*/ require_once __DIR__ . '/lib/Application.php'; Horde_Registry::appInit('ansel'); $vars = Horde_Variables::getDefaultVariables(); try { $gallery = $GLOBALS['injector']->getInstance('Ansel_Storage')->getGallery($vars->get('gallery')); } catch (Ansel_Exception $e) { $notification->push($e->getMessage()); Horde::url('list.php')->redirect(); exit; } $form = new Horde_Form($vars, _("This gallery is protected by a password. Please enter it below.")); $form->addVariable($gallery->get('name'), 'name', 'description', false); $form->addVariable($gallery->get('desc'), 'desc', 'description', false); $form->addVariable(_("Password"), 'passwd', 'password', true); $form->addHidden('', 'url', 'text', true); $form->addHidden('', 'gallery', 'int', true); if ($form->validate()) { if ($gallery->get('passwd') != $vars->get('passwd')) { $notification->push(_("Incorrect password"), 'horde.warning'); } else { $session->set('ansel', 'passwd/' . $gallery->id, hash('md5', $vars->get('passwd'))); $url = $vars->get('url'); if (empty($url)) { $url = Horde::url('view.php')->add('gallery', $gallery->id); } else { $url = Horde::url($url); } $url->redirect(); exit; }
$form_id = $vars->get('form_id'); $form_params = $vars->get('form_params'); $error = $done = false; /* Get the stored form information from the backend. */ try { $form_info = $injector->getInstance('Ulaform_Factory_Driver')->create()->getForm($form_id, Horde_Perms::READ); if (!empty($form_info['form_params']['language'])) { $registry->setLanguageEnvironment($form_info['form_params']['language']); } } catch (Horde_Exception $e) { $notification->push(sprintf(_("Could not fetch form ID \"%s\". %s"), $form_id, $e->getMessage()), 'horde.error'); $error = true; } /* Add form variables. */ $form = new Horde_Form($vars); $form->addHidden('', 'form_id', 'int', false); $fields = $injector->getInstance('Ulaform_Factory_Driver')->create()->getFields($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'] == 'mlenum' || $field['field_type'] == 'radio' || $field['field_type'] == 'set' || $field['field_type'] == 'sorter') { $field['field_params']['values'] = Ulaform::getStringlistArray($field['field_params']['values']); } if ($field['field_type'] == 'matrix') { $field['field_params']['cols'] = Ulaform::getStringlistArray($field['field_params']['cols']); } /* 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']); } /* Check if submitted and validate. */ if ($form->validate($vars)) { $form->getInfo($vars, $info);
* * @author Jan Schneider <*****@*****.**> * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array('permission' => array('horde:administration:alarms'))); $horde_alarm = $injector->getInstance('Horde_Alarm'); $methods = array(); foreach ($horde_alarm->handlers() as $name => $method) { $methods[$name] = $method->getDescription(); } $vars = $injector->getInstance('Horde_Variables'); $form = new Horde_Form($vars, _("Add new alarm")); $form->addHidden('', 'alarm', 'text', false); $form->addVariable(_("Alarm title"), 'title', 'text', true); $form->addVariable(_("Alarm start"), 'start', 'datetime', true); $form->addVariable(_("Alarm end"), 'end', 'datetime', false); $form->addVariable(_("Alarm text"), 'text', 'longtext', false); $form->addVariable(_("Alarm methods"), 'methods', 'multienum', true, false, null, array($methods, min(5, count($methods)))); foreach ($horde_alarm->handlers() as $name => $method) { $params = $method->getParameters(); if (!count($params)) { continue; } $form->addVariable($method->getDescription(), '', 'header', false); foreach ($params as $param => $param_info) { $form->addVariable($param_info['desc'], $name . '_' . $param, $param_info['type'], false); } }
throw new Horde_Exception_AuthenticationFailure(); } $vars = Horde_Variables::getDefaultVariables(); $virtual_id = $vars->virtual_id; $formname = $vars->formname; $virtual = $vilma->driver->getVirtual($virtual_id); $domain = Vilma::stripDomain($virtual['virtual_email']); $domain = $vilma->driver->getDomainByName($domain); if ($vars->submitbutton == _("Do not delete")) { $notification->push(_("Virtual email not deleted."), 'horde.message'); Horde::url('virtuals/index.php')->add('domain_id', $domain['domain_id'])->redirect(); } $form = new Horde_Form($vars, _("Delete Virtual Email Address")); /* Set up the form. */ $form->setButtons(array(_("Delete"), _("Do not delete"))); $form->addHidden('', 'virtual_id', 'text', false); $form->addVariable(sprintf(_("Delete the virtual email address \"%s\" => \"%s\"?"), $virtual['virtual_email'], $virtual['virtual_destination']), 'description', 'description', false); if ($vars->submitbutton == _("Delete") && $form->validate($vars)) { $form->getInfo($vars, $info); try { $delete = $vilma->driver->deleteVirtual($info['virtual_id']); $notification->push(_("Virtual email deleted."), 'horde.success'); Horde::url('virtuals/index.php', true)->add('domain_id', $domain['domain_id'])->redirect(); } catch (Exception $e) { Horde::log($e); $notification->push(sprintf(_("Error deleting virtual email. %s."), $e->getMessage()), 'horde.error'); } } /* Render the form. */ $renderer = new Horde_Form_Renderer(); $page_output->header();
Horde_Registry::appInit('ulaform', array('admin' => true)); /* Get some variables. */ $vars = Horde_Variables::getDefaultVariables(); $formname = $vars->get('formname'); $field_id = $vars->get('field_id'); $form_id = $vars->get('form_id'); $old_field_type = $vars->get('old_field_type'); /* Check if a field is being edited. */ if ($field_id && !$formname) { $vars = $ulaform_driver->getField($form_id, $vars->get('field_id')); $vars = new Horde_Variables($vars); } /* Set up the form. */ $fieldform = new Horde_Form($vars, _("Field Details")); $fieldform->setButtons(_("Save Field")); $fieldform->addHidden('', 'field_id', 'int', false); $fieldform->addHidden('', 'form_id', 'int', false); $fieldform->addHidden('', 'field_order', 'int', false); $fieldform->addHidden('', 'old_field_type', 'text', false); $fieldform->addVariable(_("Label"), 'field_label', 'text', true); $fieldform->addVariable(_("Internal name"), 'field_name', 'text', false, false, _("Set this name if you have a particular reason to override the automatic internal naming of fields.")); /* Set up the field type selection, with a submit action. */ $fields = Ulaform::getFieldTypes(); $v = $fieldform->addVariable(_("Type"), 'field_type', 'enum', true, false, null, array($fields, true)); $v->setAction(Horde_Form_Action::factory('submit')); $v->setOption('trackchange', true); $fieldform->addVariable(_("Required"), 'field_required', 'boolean', false); $fieldform->addVariable(_("Read only"), 'field_readonly', 'boolean', false); $fieldform->addVariable(_("Description"), 'field_desc', 'longtext', false, false, '', array(3, 40)); /* Check if the submitted field type has extra parameters and set them up. */ $field_type = $vars->get('field_type');
} } $user_name = $address['user_name']; if (empty($user_name)) { $user_name = $address['address']; } $vars->user_name = Vilma::stripUser($user_name); $domain = Vilma::stripDomain($address); $domain = $vilma->driver->getDomainByName($domain); $vars->domain = $domain; $vars->mode = 'edit'; /* Set up the form. */ $form = new Horde_Form($vars, sprintf(_("Delete %s"), $type)); $form->setButtons(array(_("Delete"), _("Do not delete"))); //$form->addHidden($user_id, 'user_id', 'text', false); $form->addHidden($address['address'], 'address', 'text', false); $form->addHidden($section, 'section', 'text', false); if ($aliasesCount + $groupsCount + $forwardsCount) { $desc = _("Delete %s \"%s\" and all dependencies?"); } else { $desc = _("Delete %s \"%s\"?"); } $desc = sprintf($desc, $type, $user_name); if ($aliasesCount) { $desc .= ' ' . sprintf(ngettext("Account has %d alias.", "Account has %d aliases.", $aliasesCount), $aliasesCount); } if ($forwardsCount) { $desc .= ' ' . sprintf(ngettext("Account is the target of %d forward.", "Account is the target of %d forwards.", $forwardsCount), $forwardsCount); } if ($groupsCount) { $desc .= ' ' . sprintf(ngettext("Account belongs to %d group.", "Account belongs to %d groups.", $groupsCount), $groupsCount);
/* Add delete links to moderators */ $url = Horde::url('moderators.php')->add('action', 'delete'); foreach ($forums_list as $key => $forum) { if (!isset($forum['moderators'])) { unset($forums_list[$key]); continue; } foreach ($forum['moderators'] as $id => $moderator) { $delete = $url->add(array('moderator' => $moderator, 'forum_id' => $forum['forum_id'])); $forums_list[$key]['moderators'][$id] = Horde::link($delete, _("Delete")) . $moderator . '</a>'; } } $title = _("Moderators"); $vars = Horde_Variables::getDefaultVariables(); $form = new Horde_Form($vars, $title); $form->addHidden('', 'scope', 'text', false); $form->addHidden('', 'action', 'text', false); $vars->set('action', 'add'); $form->addVariable(_("Moderator"), 'moderator', 'text', true); if ($messages->countForums() > 50) { $form->addVariable(_("Forum"), 'forum_id', 'int', true); } else { $forums_enum = Agora::formatCategoryTree($messages->getForums(0, false, 'forum_name', 0, !$registry->isAdmin())); $form->addVariable(_("Forum"), 'forum_id', 'enum', true, false, false, array($forums_enum)); } /* Set up template data. */ $view = new Agora_View(); Horde::startBuffer(); $form->renderActive(null, null, Horde::url('moderators.php'), 'post'); $view->formbox = Horde::endBuffer(); Horde::startBuffer();
/** * Allows other Horde apps to remove messages. * * The forum name is constructed by just the $forum_name variable * under the data root 'agora.forums.<app>'. It is up to the apps * themselves to make sure that the forum name is unique. * * @access private * * @param string $scope The application which is posting this message. * @param string $forum_name The unique name for the forum. * @param string $callback A callback method of the specified application * that gets called to make sure that posting to * this forum is allowed. * @param array $params Any parameters for the forum message posting. * <pre> * message_id - An existing message to delete * </pre> * @param array $variables A hash with all variables of a submitted form * generated by this method. * * @return mixed Returns either the rendered Horde_Form for posting a message * or PEAR_Error object on error, or true in case of a * successful post. */ public function removeMessage($scope, $forum_name, $callback, $params = array(), $variables = null) { global $registry; /* Check if posting messages is allowed. */ $check = $registry->callByPackage($scope, $callback, array($forum_name)); if ($check instanceof PEAR_Error || !$check) { return ''; } /* Create a separate notification queue. */ $queue = Horde_Notification::singleton('agoraRemoveMessage'); $queue->attach('status'); /* Set up the forums object. */ $forums = $GLOBALS['injector']->getInstance('Agora_Factory_Driver')->create($scope); $params['forum_id'] = $forums->getForumId($forum_name); if (empty($params['forum_id'])) { return PEAR::raiseError(sprintf(_("Forum %s does not exist."), $forum_name)); } /* Set up the messages control object. */ $messages = $GLOBALS['injector']->getInstance('Agora_Factory_Driver')->create($scope, $params['forum_id']); if ($messages instanceof PEAR_Error) { PEAR::raiseError(sprintf(_("Could not delete the message. %s"), $messages->getMessage())); } /* Check delete permissions. */ if (!$messages->hasPermission(Horde_Perms::DELETE)) { return PEAR::raiseError(sprintf(_("You don't have permission to delete messages in forum %s."), $params['forum_id'])); } /* Get the message to be deleted. */ $message = $messages->getMessage($params['message_id']); if ($message instanceof PEAR_Error) { return PEAR::raiseError(sprintf(_("Could not delete the message. %s"), $message->getMessage())); } /* Set up the form. */ $vars = new Horde_Variables($variables); $form = new Horde_Form($vars, sprintf(_("Delete \"%s\" and all replies?"), $message['message_subject']), 'delete_agora_message'); $form->setButtons(array(_("Delete"), _("Cancel"))); $form->addHidden('', 'forum_id', 'int', true); $form->addHidden('', 'message_id', 'int', true); if ($form->validate()) { if ($vars->get('submitbutton') == _("Delete")) { $result = $messages->deleteMessage($params['message_id']); if ($result instanceof PEAR_Error) { $queue->push(sprintf(_("Could not delete the message. %s"), $result->getMessage()), 'horde.error'); } else { $queue->push(_("Message deleted."), 'horde.success'); $count = $messages->countMessages(); $registry->callByPackage($scope, $callback, array($forum_name, 'messages', $count)); } } else { $queue->push(_("Message not deleted."), 'horde.message'); } Horde::startBuffer(); $queue->notify(array('listeners' => 'status')); return Horde::endBuffer(); } Horde::startBuffer(); $form->renderActive(null, null, null, 'post', null, false); return Horde::endBuffer(); }
* * @author Chuck Hagenbuch <*****@*****.**> * @category Horde * @license http://www.horde.org/licenses/lgpl LGPL-2 * @package Horde */ require_once __DIR__ . '/../lib/Application.php'; Horde_Registry::appInit('horde', array('permission' => array('horde:administration:users'))); $auth = $injector->getInstance('Horde_Core_Factory_Auth')->create(); $vars = $injector->getInstance('Horde_Variables'); if ($conf['signup']['allow'] && $conf['signup']['approve']) { $signup = $injector->getInstance('Horde_Core_Auth_Signup'); } $addForm = new Horde_Form($vars, _("Add a new user:"******"Add user"), _("Reset")); $addForm->addHidden('', 'form', 'text', true, true); /* Use hooks get any extra fields for new accounts. */ try { $extra = $injector->getInstance('Horde_Core_Hooks')->callHook('signup_getextra', 'horde'); if (!empty($extra)) { if (!isset($extra['user_name'])) { $addForm->addVariable(_("Username"), 'user_name', 'text', true); } if (!isset($extra['password'])) { $addForm->addVariable(_("Password"), 'password', 'passwordconfirm', false, false, _("type the password twice to confirm")); } foreach ($extra as $field_name => $field) { $readonly = isset($field['readonly']) ? $field['readonly'] : null; $desc = isset($field['desc']) ? $field['desc'] : null; $field_params = isset($field['params']) ? $field['params'] : array(); $addForm->addVariable($field['label'], 'extra[' . $field_name . ']', $field['type'], $field['required'], $readonly, $desc, $field_params);
$form_id = $vars->get('form_id'); $type = $vars->get('type'); $old_type = $vars->get('old_type'); /* Check if type has been changed. */ if ($type != $old_type && $formname) { $changed_type = true; $notification->push(_("Changed embed type."), 'horde.message'); } /* Fetch the form details and set a nice title. */ $form_details = $injector->getInstance('Ulaform_Factory_Driver')->create()->getForm($form_id); $title = sprintf(_("HTML Generation for \"%s\""), $form_details['form_name']); $form = new Horde_Form($vars, $title); $form->useToken(false); /* Set up the form. */ $form->setButtons(_("Generate HTML")); $form->addHidden('', 'form_id', 'int', false); $form->addHidden('', 'old_type', 'text', false); $embed_types = array('php_pear' => _("PHP using PEAR classes"), 'iframe' => _("iframe")); $v =& $form->addVariable(_("Select how you wish to embed the form"), 'type', 'enum', true, false, null, array($embed_types, true)); $v->setAction(Horde_Form_Action::factory('submit')); switch ($type) { case 'php_pear': break; case 'iframe': $form->addVariable(_("Name"), 'params[name]', 'text', true, false); $form->addVariable(_("Height"), 'params[height]', 'int', false, false); $form->addVariable(_("Width"), 'params[width]', 'int', false, false); break; } /* Set up the gateway choice fields. */ $vars->set('old_type', $type);
$notification->push(sprintf(_("You don't have permissions to delete forums in %s"), $registry->get('name', $scope)), 'horde.warning'); Horde::url('forums.php', true)->redirect(); } /* Get forum. */ list($forum_id) = Agora::getAgoraId(); $forum = $forums->getForum($forum_id); if ($forum instanceof PEAR_Error) { $notification->push($forum->message, 'horde.error'); Horde::url('forums.php', true)->redirect(); } /* Prepare forum. */ $vars = Horde_Variables::getDefaultVariables(); $form = new Horde_Form($vars, _("Delete Forum")); // TODO Cancel button doesn't work currently, because it has no condition set $form->setButtons(array(_("Delete"), _("Cancel"))); $form->addHidden('', 'forum_id', 'int', $forum_id); $form->addHidden('', 'scope', 'text', $scope); $form->addVariable(_("This will delete the forum, any subforums and all relative messages."), 'prompt', 'description', false); $form->addVariable(_("Forum name"), 'forum_name', 'text', false, true); $vars->set('forum_name', $forum['forum_name']); $vars->set('forum_id', $forum_id); /* Get a list of available forums. */ $forums_list = Agora::formatCategoryTree($forums->getForums($forum_id, false, null, null)); if (!empty($forums_list)) { $html = implode('<br />', $forums_list); $form->addVariable(_("Subforums"), 'subforums', 'html', false, true); $vars->set('subforums', $html); } /* Process delete. */ if ($form->validate()) { if ($vars->get('submitbutton') == _("Delete")) {
*/ define('FOLKS_BASE', __DIR__); require_once FOLKS_BASE . '/lib/base.php'; if (Horde_Util::getFormData('submitbutton') == _("Close")) { echo '<script type="text/javascript">RedBox.close();</script>'; } elseif (Horde_Util::getFormData('formname') == 'savesearch') { $result = $folks_driver->saveSearch(Horde_Util::getFormData('search_criteria'), Horde_Util::getFormData('search_name')); if ($result instanceof PEAR_Error) { $notification->push($result); } else { $notification->push(_("Search criteria saved successfuly"), 'horde.success'); Horde::url('search.php')->redirect(); } } elseif (Horde_Util::getGet('delete') == 1 && Horde_Util::getGet('query')) { $result = $folks_driver->deleteSavedSearch(Horde_Util::getGet('query')); if ($result instanceof PEAR_Error) { $notification->push($result); } else { $notification->push(_("Search criteria deleted."), 'horde.success'); Horde::url('search.php')->redirect(); } } // Render $vars = Horde_Variables::getDefaultVariables(); $vars->set('search_criteria', $session->get('folks', 'last_search')); $form = new Horde_Form($vars, '', 'savesearch'); $form->addVariable(_("Name"), 'search_name', 'text', true); $form->addHidden('', 'search_criteria', 'text', true); $form->setButtons(array(_("Save"), _("Close"))); $notification->notify(array('listeners' => 'status')); $form->renderActive(null, null, Horde::selfUrl(), 'post');