private function showResetForm() { if (!$this->getUser()->isAllowed('editmyoptions')) { throw new PermissionsError('editmyoptions'); } $this->getOutput()->addWikiMsg('prefs-reset-intro'); $context = new DerivativeContext($this->getContext()); $context->setTitle($this->getPageTitle('reset')); // Reset subpage $htmlForm = new HTMLForm(array(), $context, 'prefs-restore'); $htmlForm->setSubmitTextMsg('restoreprefs'); $htmlForm->setSubmitDestructive(); $htmlForm->setSubmitCallback(array($this, 'submitReset')); $htmlForm->suppressReset(); $htmlForm->show(); }
/** * Get a form for clearing the watchlist * * @return HTMLForm */ protected function getClearForm() { $context = new DerivativeContext($this->getContext()); $context->setTitle($this->getPageTitle('clear')); // Reset subpage $form = new HTMLForm(array(), $context); $form->setSubmitTextMsg('watchlistedit-clear-submit'); # Used message keys: 'accesskey-watchlistedit-clear-submit', 'tooltip-watchlistedit-clear-submit' $form->setSubmitTooltip('watchlistedit-clear-submit'); $form->setWrapperLegendMsg('watchlistedit-clear-legend'); $form->addHeaderText($this->msg('watchlistedit-clear-explain')->parse()); $form->setSubmitCallback(array($this, 'submitClear')); $form->setSubmitDestructive(); return $form; }
protected function showDeleteTagForm($tag) { $user = $this->getUser(); if (!$user->isAllowed('deletechangetags')) { throw new PermissionsError('deletechangetags'); } $out = $this->getOutput(); $out->setPageTitle($this->msg('tags-delete-title')); $out->addBacklinkSubtitle($this->getPageTitle()); // is the tag actually able to be deleted? $canDeleteResult = ChangeTags::canDeleteTag($tag, $user); if (!$canDeleteResult->isGood()) { $out->addWikiText("<div class=\"error\">\n" . $canDeleteResult->getWikiText() . "\n</div>"); if (!$canDeleteResult->isOK()) { return; } } $preText = $this->msg('tags-delete-explanation-initial', $tag)->parseAsBlock(); $tagUsage = ChangeTags::tagUsageStatistics(); if (isset($tagUsage[$tag]) && $tagUsage[$tag] > 0) { $preText .= $this->msg('tags-delete-explanation-in-use', $tag, $tagUsage[$tag])->parseAsBlock(); } $preText .= $this->msg('tags-delete-explanation-warning', $tag)->parseAsBlock(); // see if the tag is in use $this->extensionActivatedTags = array_fill_keys(ChangeTags::listExtensionActivatedTags(), true); if (isset($this->extensionActivatedTags[$tag])) { $preText .= $this->msg('tags-delete-explanation-active', $tag)->parseAsBlock(); } $fields = []; $fields['Reason'] = ['type' => 'text', 'label' => $this->msg('tags-delete-reason')->plain(), 'size' => 50]; $fields['HiddenTag'] = ['type' => 'hidden', 'name' => 'tag', 'default' => $tag, 'required' => true]; $form = new HTMLForm($fields, $this->getContext()); $form->setAction($this->getPageTitle('delete')->getLocalURL()); $form->tagAction = 'delete'; // custom property on HTMLForm object $form->setSubmitCallback([$this, 'processTagForm']); $form->setSubmitTextMsg('tags-delete-submit'); $form->setSubmitDestructive(); // nasty! $form->addPreText($preText); $form->show(); }
/** * Customizes the HTMLForm a bit * * @param HTMLForm $form */ protected function alterForm(HTMLForm $form) { $form->setWrapperLegendMsg('blockip-legend'); $form->setHeaderText(''); $form->setSubmitDestructive(); $msg = $this->alreadyBlocked ? 'ipb-change-block' : 'ipbsubmit'; $form->setSubmitTextMsg($msg); $this->addHelpLink('Help:Blocking users'); # Don't need to do anything if the form has been posted if (!$this->getRequest()->wasPosted() && $this->preErrors) { $s = $form->formatErrors($this->preErrors); if ($s) { $form->addHeaderText(Html::rawElement('div', array('class' => 'error'), $s)); } } }