protected function showToolbar() { $langSelector = Xml::languageSelector( $this->lang ); $fontSelector = new XmlSelect(); $fontSelector->setAttribute( 'id', 'webfonts-font-chooser' ); $sizeSelector = new XmlSelect(); $sizeSelector->setAttribute( 'id', 'webfonts-size-chooser' ); for ( $size = 8; $size <= 28; $size += 2 ) { $sizeSelector->addOption( $size , $size ); } $sizeSelector->setDefault( 16 ); $bold = Html::Element( 'button', array( 'id' => 'webfonts-preview-bold' ) , 'B' ); $italic = Html::Element( 'button', array( 'id' => 'webfonts-preview-italic' ) , 'I' ); $underline = Html::Element( 'button', array( 'id' => 'webfonts-preview-underline' ) , 'U' ); $download = Html::Element( 'a', array( 'id' => 'webfonts-preview-download', 'href' => '#' ) , wfMsg( 'webfonts-preview-download' ) ); return Html::openElement( 'div', array( 'id' => 'webfonts-preview-toolbar' ) ) . $langSelector[1] . $fontSelector->getHtml() . $sizeSelector->getHtml() . $bold . $italic . $underline . $download . Html::closeElement( 'div' ); }
function execute($params) { global $wgOut, $wgUser, $wgRequest; $wgOut->setPageTitle('WikiFactory Reporter'); $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->setArticleRelated(false); if (!$wgUser->isAllowed('wikifactory')) { $this->displayRestrictionError(); return; } $this->varid = $wgRequest->getInt('varid'); $this->disable_limit = $wgRequest->getBool('nolimit'); /***********************************************/ $vars = WikiFactory::getVariables("cv_name", 0, 0); $select = new XmlSelect('varid', false, $this->varid); if (!empty($this->varid)) { //the cast is because the Xml select uses === to detect the default $select->setDefault((string) $this->varid); //change the name, using the var name $variable = WikiFactory::getVarById($this->varid, 0); $wgOut->setPageTitle('WikiFactory Reporter: ' . $variable->cv_name); } foreach ($vars as $variable) { $select->addOption("{$variable->cv_name} ({$variable->cv_id})", $variable->cv_id); } $action = self::getTitle()->getLocalURL(); $wgOut->addHTML("<form action='{$action}' method='get'>\n"); $wgOut->addHTML($select->getHTML()); $wgOut->addHTML("<input type='submit'>\n"); $wgOut->addHTML("</form>\n"); /***********************************************/ if (!empty($this->varid)) { $wgOut->addHTML($this->getCustomSettings()); } }
/** * Adding default later on should set the correct selection or * raise an exception. * To handle this, we need to render the options in getHtml() * @covers XmlSelect::setDefault */ public function testSetDefaultAfterAddingOptions() { $this->select->addOption('foo1'); $this->select->addOption('bar1'); $this->select->addOption('foo2'); $this->select->setDefault('bar1'); # setting default after adding options $this->assertEquals('<select><option value="foo1">foo1</option>' . "\n" . '<option value="bar1" selected="">bar1</option>' . "\n" . '<option value="foo2">foo2</option></select>', $this->select->getHTML()); }
protected function buildSelect($list, $name, $default = '') { sort($list); $select = new XmlSelect($name); $select->setDefault($default); foreach ($list as $wiki) { $select->addOption($wiki); } return $select->getHTML(); }
/** * Message input fieldset * * @param $title Title (default: null) * @return \string HTML for fieldset. */ function namespaceMessageForm(Title $title = null) { global $wgScript; $namespaces = new XmlSelect('namespace', 'namespace'); $namespaces->setDefault($title->getNamespace()); foreach ($this->getSortedNamespaces() as $text => $index) { $namespaces->addOption($text, $index); } $out = Xml::openElement('div', array('class' => 'namespaceoptions')); $out .= Xml::openElement('form', array('method' => 'get', 'action' => $wgScript)); $out .= Html::hidden('title', $this->getTitle()->getPrefixedText()); $out .= Xml::openElement('fieldset'); $out .= Xml::element('legend', null, wfMsg('translate-translations-fieldset-title')); $out .= Xml::openElement('table', array('id' => 'nsselect', 'class' => 'allpages')); $out .= "<tr>\n\t\t\t\t<td class='mw-label'>" . Xml::label(wfMsg('translate-translations-messagename'), 'message') . "</td>\n\t\t\t\t<td class='mw-input'>" . Xml::input('message', 30, $title->getText(), array('id' => 'message')) . "</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td class='mw-label'>" . Xml::label(wfMsg('translate-translations-project'), 'namespace') . "</td>\n\t\t\t\t<td class='mw-input'>" . $namespaces->getHTML() . ' ' . Xml::submitButton(wfMsg('allpagessubmit')) . "</td>\n\t\t\t\t</tr>"; $out .= Xml::closeElement('table'); $out .= Xml::closeElement('fieldset'); $out .= Xml::closeElement('form'); $out .= Xml::closeElement('div'); return $out; }
function getExistingSelector($warnMsg) { $existingSelector = new XmlSelect('wpFilterWarnMessage', 'mw-abusefilter-warn-message-existing', $warnMsg == 'abusefilter-warning' ? 'abusefilter-warning' : 'other'); // Find other messages. $dbr = wfGetDB(DB_SLAVE); $res = $dbr->select('page', array('page_title'), array('page_namespace' => 8, 'page_title LIKE ' . $dbr->addQuotes('Abusefilter-warning%')), __METHOD__); $existingSelector->addOption('abusefilter-warning'); $lang = $this->getLanguage(); foreach ($res as $row) { if ($lang->lcfirst($row->page_title) == $lang->lcfirst($warnMsg)) { $existingSelector->setDefault($lang->lcfirst($warnMsg)); } if ($row->page_title != 'Abusefilter-warning') { $existingSelector->addOption($lang->lcfirst($row->page_title)); } } $existingSelector->addOption(wfMsg('abusefilter-edit-warn-other'), 'other'); return $existingSelector->getHTML(); }
/** * Drop down menu for selection of actions that can be used to filter the log * @param array $types * @param string $action * @return string * @since 1.27 */ private function getActionSelector($types, $action) { if ($this->allowedActions === null || !count($this->allowedActions)) { return ''; } $html = ''; $html .= Xml::label(wfMessage('log-action-filter-' . $types[0])->text(), 'action-filter-' . $types[0]) . "\n"; $select = new XmlSelect('subtype'); $select->addOption(wfMessage('log-action-filter-all')->text(), ''); foreach ($this->allowedActions as $value) { $msgKey = 'log-action-filter-' . $types[0] . '-' . $value; $select->addOption(wfMessage($msgKey)->text(), $value); } $select->setDefault($action); $html .= $select->getHTML(); return $html; }
protected function limitSelector() { $items = array(100, 1000, 5000); $selector = new XmlSelect('limit', 'limit'); $selector->setDefault($this->options['limit']); foreach ($items as $count) { $selector->addOption($this->msg('translate-page-limit-option')->numParams($count)->text(), $count); } return $selector->getHTML(); }
function constructCreateForm() { global $wgOut, $wgScript; global $wgUserProperties, $wgActivityModes; $wgOut->addHTML(Xml::openElement('form', array('action' => $this->getTitle()->getLocalURL(), 'method' => 'post'))); $wgOut->addHTML(Xml::element('h2', null, wfMsg('nss-create-account-header')) . "\n"); $wgOut->addHTML("<table border=\"1\" id=\"newuser\">\n"); $props = array_merge(array('username', 'email'), $wgUserProperties); foreach ($props as $i) { $msg = 'am-' . $i; $wgOut->addHTML("\t<tr><th>" . (wfEmptyMsg($msg, wfMsg($msg)) ? $i : wfMsgHtml($msg)) . "</th><td>" . Xml::input("am-" . str_replace(' ', '_', $i), 40) . "</td></tr>\n"); } global $wgActivityModes; $select = new XmlSelect("am-active"); $select->setDefault('active'); $select->setAttribute('width', '100%'); foreach ($wgActivityModes as $key) { $select->addOption($key); } $wgOut->addHTML("\t<tr><th>" . wfMsgHtml('am-active') . "</th><td>" . $select->getHTML() . "</td></tr>\n"); $wgOut->addHTML("</table>\n"); $wgOut->addHTML("<div id=\"newaccount-submit\">\n" . Html::Hidden('action', 'create') . Xml::checkLabel(wfMsg('nss-no-mail'), 'nss-no-mail', 'nss-no-mail') . "<br />\n" . Xml::element('input', array('type' => 'submit', 'value' => wfMsg('nss-create-account'))) . "</div>\n</form>\n"); $wgOut->addHTML(Xml::openElement('form', array('action' => $this->getTitle()->getLocalURL(), 'method' => 'post'))); $wgOut->addHTML("<div id=\"newaccount-raw\">\n" . Xml::textarea('nss-create-account-raw', '') . "\n" . Html::Hidden('action', 'create-raw') . Xml::checkLabel(wfMsg('nss-no-mail'), 'nss-no-mail', 'nss-no-mail') . "<br />\n" . Xml::element('input', array('type' => 'submit', 'value' => wfMsg('nss-create-account'))) . "</div>\n</form>\n"); }
function userSelect($name, $tabindex) { $options = array(wfMsg('deletebatch-select-script') => 'script', wfMsg('deletebatch-select-yourself') => 'you'); $select = new XmlSelect($name, $name); $select->setDefault($this->mMode); $select->setAttribute('tabindex', $tabindex); // 'addOptions' method was added in MW 1.15 if (method_exists($select, 'addOptions')) { $select->addOptions($options); } else { foreach ($options as $option) { $select->addOption($option); } } return $select; }
/** * Returns a language selector. * @param $language \string Language code of the language the names should * be localised to. * @param $selectedId \string The language code that is selected by default. * @return string */ public static function languageSelector( $language, $selectedId ) { $languages = self::getLanguageNames( $language ); ksort( $languages ); $selector = new XmlSelect( 'language', 'language' ); $selector->setDefault( $selectedId ); foreach ( $languages as $code => $name ) { $selector->addOption( "$code - $name", $code ); } return $selector->getHTML(); }
/** * Hook: SpecialSearchProfileForm */ public static function searchProfileForm( SpecialSearch $search, &$form, /*string*/ $profile, $term, array $opts ) { if ( $profile !== 'translation' ) { return true; } if ( !$search->getSearchEngine()->supports( 'title-suffix-filter' ) ) { return false; } $hidden = ''; foreach ( $opts as $key => $value ) { $hidden .= Html::hidden( $key, $value ); } $context = $search->getContext(); $code = $context->getLanguage()->getCode(); $selected = $context->getRequest()->getVal( 'languagefilter' ); if ( is_callable( array( 'LanguageNames', 'getNames' ) ) ) { $languages = LanguageNames::getNames( $code, LanguageNames::FALLBACK_NORMAL, LanguageNames::LIST_MW ); } else { $languages = Language::getLanguageNames( false ); } ksort( $languages ); $selector = new XmlSelect( 'languagefilter', 'languagefilter' ); $selector->setDefault( $selected ); $selector->addOption( wfMessage( 'translate-search-nofilter' )->text(), '-' ); foreach ( $languages as $code => $name ) { $selector->addOption( "$code - $name", $code ); } $selector = $selector->getHTML(); $label = Xml::label( wfMessage( 'translate-search-languagefilter' )->text(), 'languagefilter' ) . ' '; $params = array( 'id' => 'mw-searchoptions' ); $form = Xml::fieldset( false, false, $params ) . $hidden . $label . $selector . Html::closeElement( 'fieldset' ); return false; }
protected function showPermissions( $step ) { global $wgLang, $wgRequest; $header = new HtmlTag( 'h2' ); $step_message = 'translate-fs-permissions-title'; $header->content( wfMsg( $step_message ) )->style( 'opacity', 0.4 ); if ( $step ) { $this->out->addHtml( $header ); return $step; } if ( $wgRequest->wasPosted() && $this->user->matchEditToken( $wgRequest->getVal( 'token' ) ) && $wgRequest->getText( 'step' ) === 'permissions' ) { // This is ridiculous global $wgCaptchaTriggers; $captcha = $wgCaptchaTriggers; $wgCaptchaTriggers = null; $language = $wgRequest->getVal( 'primary-language' ); $message = $wgRequest->getText( 'message', '...' ); $params = array( 'action' => 'threadaction', 'threadaction' => 'newthread', 'token' => $this->user->editToken(), 'talkpage' => 'Project:Translator', 'subject' => "{{LanguageHeader|$language}}", 'reason' => 'Using Special:FirstSteps', 'text' => $message, ); $request = new FauxRequest( $params, true, $_SESSION ); $api = new ApiMain( $request, true ); $api->execute(); $result = $api->getResultData(); $wgCaptchaTriggers = $captcha; $page = $result['threadaction']['thread']['thread-title']; $this->user->setOption( 'translate-firststeps-request', $page ); $this->user->saveSettings(); } $page = $this->user->getOption( 'translate-firststeps-request' ); if ( $this->user->isAllowed( 'translate' ) ) { $header->content( $header->content . wfMsg( 'translate-fs-pagetitle-done' ) ); $this->out->addHtml( $header ); return $step; } elseif ( $page ) { $header->content( $header->content . wfMsg( 'translate-fs-pagetitle-pending' ) ); $this->out->addHtml( $header->style( 'opacity', false ) ); $this->out->addWikiMsg( 'translate-fs-permissions-pending', $page ); return $step_message; } $this->out->addHtml( $header->style( 'opacity', false ) ); $this->out->addWikiMsg( 'translate-fs-permissions-help' ); $output = Html::openElement( 'form', array( 'method' => 'post' ) ); $output .= Html::hidden( 'step', 'permissions' ); $output .= Html::hidden( 'token', $this->user->editToken() ); $output .= Html::hidden( 'title', $this->getTitle() ); $name = $id = 'primary-language'; $selector = new XmlSelect(); $selector->addOptions( $this->languages( $wgLang->getCode() ) ); $selector->setAttribute( 'id', $id ); $selector->setAttribute( 'name', $name ); $selector->setDefault( $wgLang->getCode() ); $text = wfMessage( 'translate-fs-permissions-planguage' )->text(); $output .= Xml::label( $text, $id ) . " " . $selector->getHtml() . '<br />'; $output .= Html::element( 'textarea', array( 'rows' => 5, 'name' => 'message' ), '' ); $output .= Xml::submitButton( wfMsg( 'translate-fs-permissions-submit' ) ); $output .= Html::closeElement( 'form' ); $this->out->addHtml( $output ); return $step_message; }
protected function getWorkflowStatus() { global $wgTranslateWorkflowStates, $wgUser; if (!$wgTranslateWorkflowStates) { return false; } if (MessageGroups::isDynamic($this->group)) { return false; } $dbr = wfGetDB(DB_SLAVE); $current = $dbr->selectField('translate_groupreviews', 'tgr_state', array('tgr_group' => $this->options['group'], 'tgr_lang' => $this->options['language']), __METHOD__); if ($wgUser->isAllowed('translate-groupreview')) { $selector = new XmlSelect('workflow'); $selector->setAttribute('class', 'mw-translate-workflowselector'); $selector->setDefault($current); $selector->addOption(wfMessage('translate-workflow-state-')->text(), ''); foreach (array_keys($wgTranslateWorkflowStates) as $state) { $stateMessage = wfMessage("translate-workflow-state-{$state}"); $stateText = $stateMessage->isBlank() ? $state : $stateMessage->text(); $selector->addOption($stateText, $state); } $state = $selector->getHTML(); $attributes = array('type' => 'button', 'id' => 'mw-translate-workflowset', 'data-token' => ApiGroupReview::getToken(0, ''), 'data-group' => $this->options['group'], 'data-language' => $this->options['language'], 'style' => 'visibility: hidden;', 'value' => 'Set'); $state .= Html::element('input', $attributes); } elseif (strval($current) !== '') { $state = $current; } else { $state = wfMessage('translate-workflow-state-')->escaped(); } $message = wfMessage('translate-workflowstatus')->rawParams($state); $box = Html::rawElement('div', array('id' => 'mw-sp-translate-workflow'), $message->escaped()); return $box; }