本文整理汇总了PHP中Icinga\Web\Form::addElement方法的典型用法代码示例。如果您正苦于以下问题:PHP Form::addElement方法的具体用法?PHP Form::addElement怎么用?PHP Form::addElement使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Icinga\Web\Form
的用法示例。
在下文中一共展示了Form::addElement方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: showAction
/**
* Show a user
*/
public function showAction()
{
$this->assertPermission('config/authentication/users/show');
$userName = $this->params->getRequired('user');
$backend = $this->getUserBackend($this->params->getRequired('backend'));
$user = $backend->select(array('user_name', 'is_active', 'created_at', 'last_modified'))->where('user_name', $userName)->fetchRow();
if ($user === false) {
$this->httpNotFound(sprintf($this->translate('User "%s" not found'), $userName));
}
$memberships = $this->loadMemberships(new User($userName))->select();
$filterEditor = Widget::create('filterEditor')->setQuery($memberships)->setSearchColumns(array('group_name'))->preserveParams('limit', 'sort', 'dir', 'view', 'backend', 'user')->ignoreParams('page')->handleRequest($this->getRequest());
$memberships->applyFilter($filterEditor->getFilter());
$this->setupFilterControl($filterEditor);
$this->setupPaginationControl($memberships);
$this->setupLimitControl();
$this->setupSortControl(array('group_name' => $this->translate('Group')), $memberships);
if ($this->hasPermission('config/authentication/groups/edit')) {
$extensibleBackends = $this->loadUserGroupBackends('Icinga\\Data\\Extensible');
$this->view->showCreateMembershipLink = !empty($extensibleBackends);
} else {
$this->view->showCreateMembershipLink = false;
}
$this->view->user = $user;
$this->view->backend = $backend;
$this->view->memberships = $memberships;
$this->createShowTabs($backend->getName(), $userName)->activate('user/show');
if ($this->hasPermission('config/authentication/groups/edit')) {
$removeForm = new Form();
$removeForm->setUidDisabled();
$removeForm->addElement('hidden', 'user_name', array('isArray' => true, 'value' => $userName, 'decorators' => array('ViewHelper')));
$removeForm->addElement('hidden', 'redirect', array('value' => Url::fromPath('user/show', array('backend' => $backend->getName(), 'user' => $userName)), 'decorators' => array('ViewHelper')));
$removeForm->addElement('button', 'btn_submit', array('escape' => false, 'type' => 'submit', 'class' => 'link-like', 'value' => 'btn_submit', 'decorators' => array('ViewHelper'), 'label' => $this->view->icon('trash'), 'title' => $this->translate('Cancel this membership')));
$this->view->removeForm = $removeForm;
}
}
示例2: removememberAction
/**
* Remove a group member
*/
public function removememberAction()
{
$this->assertPermission('config/authentication/groups/edit');
$this->assertHttpMethod('POST');
$groupName = $this->params->getRequired('group');
$backend = $this->getUserGroupBackend($this->params->getRequired('backend'), 'Icinga\\Data\\Reducible');
$form = new Form(array('onSuccess' => function ($form) use($groupName, $backend) {
foreach ($form->getValue('user_name') as $userName) {
try {
$backend->delete('group_membership', Filter::matchAll(Filter::where('group_name', $groupName), Filter::where('user_name', $userName)));
Notification::success(sprintf(t('User "%s" has been removed from group "%s"'), $userName, $groupName));
} catch (NotFoundError $e) {
throw $e;
} catch (Exception $e) {
Notification::error($e->getMessage());
}
}
$redirect = $form->getValue('redirect');
if (!empty($redirect)) {
$form->setRedirectUrl(htmlspecialchars_decode($redirect));
}
return true;
}));
$form->setUidDisabled();
$form->setSubmitLabel('btn_submit');
// Required to ensure that isSubmitted() is called
$form->addElement('hidden', 'user_name', array('required' => true, 'isArray' => true));
$form->addElement('hidden', 'redirect');
try {
$form->handleRequest();
} catch (NotFoundError $_) {
$this->httpNotFound(sprintf($this->translate('Group "%s" not found'), $groupName));
}
}
示例3: unshareAction
/**
* Unshare a navigation item
*/
public function unshareAction()
{
$this->assertPermission('config/application/navigation');
$this->assertHttpMethod('POST');
// TODO: I'd like these being form fields
$itemType = $this->params->getRequired('type');
$itemOwner = $this->params->getRequired('owner');
$navigationConfigForm = new NavigationConfigForm();
$navigationConfigForm->setUser($this->Auth()->getUser());
$navigationConfigForm->setShareConfig(Config::navigation($itemType));
$navigationConfigForm->setUserConfig(Config::navigation($itemType, $itemOwner));
$form = new Form(array('onSuccess' => function ($form) use($navigationConfigForm) {
$itemName = $form->getValue('name');
try {
$newConfig = $navigationConfigForm->unshare($itemName);
if ($navigationConfigForm->save()) {
if ($newConfig->getSection($itemName)->type === 'menu-item') {
$form->getResponse()->setRerenderLayout();
}
Notification::success(sprintf(t('Navigation item "%s" has been unshared'), $form->getValue('name')));
} else {
// TODO: It failed obviously to write one of the configs, so we're leaving the user in
// a inconsistent state. Luckily, it's nothing lost but possibly duplicated...
Notification::error(sprintf(t('Failed to unshare navigation item "%s"'), $form->getValue('name')));
}
} catch (NotFoundError $e) {
throw $e;
} catch (Exception $e) {
Notification::error($e->getMessage());
}
$redirect = $form->getValue('redirect');
if (!empty($redirect)) {
$form->setRedirectUrl(htmlspecialchars_decode($redirect));
}
return true;
}));
$form->setUidDisabled();
$form->setSubmitLabel('btn_submit');
// Required to ensure that isSubmitted() is called
$form->addElement('hidden', 'name', array('required' => true));
$form->addElement('hidden', 'redirect');
try {
$form->handleRequest();
} catch (NotFoundError $_) {
$this->httpNotFound(sprintf($this->translate('Navigation item "%s" not found'), $form->getValue('name')));
}
}
示例4: render
/**
* Renders this widget and returns the HTML as a string
*
* @return string
*/
public function render()
{
$form = new Form();
$form->setAttrib('class', 'inline');
$form->setMethod('GET');
$form->setUidDisabled();
$form->setTokenDisabled();
$form->setName($this->name);
$form->addElement('select', $this->parameter, array('label' => $this->label, 'multiOptions' => $this->values, 'autosubmit' => true));
if ($this->request) {
$form->populate($this->request->getParams());
}
return $form;
}
示例5: render
/**
* Render this widget
*
* @return string The HTML of the widget as a string
*/
public function render()
{
$view = $this->view();
$form = new Form();
$form->setAttrib('class', 'inline');
$form->setMethod('GET');
$form->setAction(Url::fromPath('/filter'));
$form->setTokenDisabled();
$form->addElement('text', 'query', array('name' => 'query', 'placeholder' => 'Add filter'));
$query = $form->getElement('query')->setDecorators(array('ViewHelper'));
$badges = new FilterBadgeRenderer($this->initialFilter);
return '<div class="pull-right">' . $badges->render($view) . '</div>' . $form;
$html = str_replace('{{FORM}}', $form->render($view), self::$TPL);
$html = '<div class="input-append">' . $html . '</div>';
return str_replace('{{BADGES}}', $badges->render($view), $html);
}
示例6: render
/**
* Render this SortBox as HTML
*
* @return string
*/
public function render()
{
$columnForm = new Form();
$columnForm->setTokenDisabled();
$columnForm->setName($this->name . '-column');
$columnForm->setAttrib('class', 'inline');
$columnForm->addElement('select', 'sort', array('autosubmit' => true, 'label' => $this->view()->translate('Sort by'), 'multiOptions' => $this->sortFields, 'decorators' => array(array('ViewHelper'), array('Label'))));
$orderForm = new Form();
$orderForm->setTokenDisabled();
$orderForm->setName($this->name . '-order');
$orderForm->setAttrib('class', 'inline');
$orderForm->addElement('select', 'dir', array('autosubmit' => true, 'label' => $this->view()->translate('Direction', 'sort direction'), 'multiOptions' => array('asc' => $this->view()->translate('Ascending', 'sort direction'), 'desc' => $this->view()->translate('Descending', 'sort direction')), 'decorators' => array(array('ViewHelper'), array('Label', array('class' => 'no-js')))));
$column = null;
if ($this->request) {
$url = $this->request->getUrl();
if ($url->hasParam('sort')) {
$column = $url->getParam('sort');
if ($url->hasParam('dir')) {
$direction = $url->getParam('dir');
} else {
list($_, $direction) = $this->getSortDefaults($column);
}
} elseif ($url->hasParam('dir')) {
$direction = $url->getParam('dir');
list($column, $_) = $this->getSortDefaults();
}
}
if ($column === null) {
list($column, $direction) = $this->getSortDefaults();
}
$columnForm->populate(array('sort' => $column));
$orderForm->populate(array('dir' => $direction));
return '<div class="sort-control">' . $columnForm . $orderForm . '</div>';
}
示例7: getRemoveForm
/**
* Render the form for removing a dashboard elemetn
*
* @return string The html representation of the form
*/
protected function getRemoveForm()
{
// TODO: temporarily disabled, should point to a form asking for confirmal
return '';
$removeUrl = Url::fromPath('/dashboard/removecomponent', array('pane' => $this->pane->getName(), 'component' => $this->getTitle()));
$form = new Form();
$form->setMethod('POST');
$form->setAttrib('class', 'inline');
$form->setAction($removeUrl);
$form->addElement(new Zend_Form_Element_Button('remove_pane_btn', array('class' => 'link-like pull-right', 'type' => 'submit', 'label' => 'x')));
return $form;
}
示例8: render
/**
* Render this SortBox as HTML
*
* @return string
*/
public function render()
{
$columnForm = new Form();
$columnForm->setTokenDisabled();
$columnForm->setName($this->name . '-column');
$columnForm->setAttrib('class', 'inline');
$columnForm->addElement('select', 'sort', array('autosubmit' => true, 'label' => $this->view()->translate('Sort by'), 'multiOptions' => $this->sortFields, 'decorators' => array(array('ViewHelper'), array('Label'))));
$column = null;
if ($this->request) {
$url = $this->request->getUrl();
if ($url->hasParam('sort')) {
$column = $url->getParam('sort');
if ($url->hasParam('dir')) {
$direction = $url->getParam('dir');
} else {
list($_, $direction) = $this->getSortDefaults($column);
}
} elseif ($url->hasParam('dir')) {
$direction = $url->getParam('dir');
list($column, $_) = $this->getSortDefaults();
}
}
if ($column === null) {
list($column, $direction) = $this->getSortDefaults();
}
// TODO(el): ToggleButton :)
$toggle = array('asc' => 'sort-name-down', 'desc' => 'sort-name-up');
unset($toggle[$direction]);
$newDirection = key($toggle);
$icon = current($toggle);
$orderForm = new Form();
$orderForm->setTokenDisabled();
$orderForm->setName($this->name . '-order');
$orderForm->setAttrib('class', 'inline sort-direction-control');
$orderForm->addElement('hidden', 'dir');
$orderForm->addElement('button', 'btn_submit', array('ignore' => true, 'type' => 'submit', 'label' => $this->view()->icon($icon), 'decorators' => array('ViewHelper'), 'escape' => false, 'class' => 'link-button spinner', 'value' => 'submit', 'title' => t('Change sort direction')));
$columnForm->populate(array('sort' => $column));
$orderForm->populate(array('dir' => $newDirection));
return '<div class="sort-control">' . $columnForm . $orderForm . '</div>';
}
示例9: render
/**
* Renders this widget via the given view and returns the
* HTML as a string
*
* @return string
*/
public function render()
{
$form = new Form();
$form->setAttrib('class', 'inline');
$form->setMethod('GET');
$form->setTokenDisabled();
$form->setName($this->name);
$form->addElement('select', 'sort', array('label' => 'Sort By', 'multiOptions' => $this->sortFields, 'class' => 'autosubmit'));
$form->addElement('select', 'dir', array('multiOptions' => array('desc' => 'Desc', 'asc' => 'Asc'), 'class' => 'autosubmit'));
$sort = $form->getElement('sort')->setDecorators(array('ViewHelper'));
$dir = $form->getElement('dir')->setDecorators(array('ViewHelper'));
// $form->enableAutoSubmit(array('sort', 'dir'));
// $form->addElement($this->createFallbackSubmitButton());
if ($this->request) {
$form->setAction($this->request->getRequestUri());
$form->populate($this->request->getParams());
}
return $form;
}
示例10: render
/**
* Render this SortBox as HTML
*
* @return string
*/
public function render()
{
$form = new Form();
$form->setTokenDisabled();
$form->setName($this->name);
$form->setAttrib('class', 'sort-control inline');
$form->addElement('select', 'sort', array('autosubmit' => true, 'label' => $this->view()->translate('Sort by'), 'multiOptions' => $this->sortFields));
$form->getElement('sort')->setDecorators(array(array('ViewHelper'), array('Label')));
$form->addElement('select', 'dir', array('autosubmit' => true, 'multiOptions' => array('asc' => 'Asc', 'desc' => 'Desc'), 'decorators' => array(array('ViewHelper'))));
if ($this->request) {
$form->populate($this->request->getParams());
}
return $form;
}