/**
  * Insert the captcha prompt into the edit form.
  */
 function getForm()
 {
     $info = $this->pickImage();
     if (!$info) {
         throw new MWException("Ran out of captcha images");
     }
     // Generate a random key for use of this captcha image in this session.
     // This is needed so multiple edits in separate tabs or windows can
     // go through without extra pain.
     $index = $this->storeCaptcha($info);
     wfDebug("Captcha id {$index} using hash {$info['hash']}, salt {$info['salt']}.\n");
     $title = SpecialPage::getTitleFor('Captcha', 'image');
     return "<p>" . Html::element('img', array('src' => $title->getLocalUrl('wpCaptchaId=' . urlencode($index)), 'width' => $info['width'], 'height' => $info['height'], 'alt' => '')) . "</p>\n" . Html::element('input', array('type' => 'hidden', 'name' => 'wpCaptchaId', 'id' => 'wpCaptchaId', 'value' => $index)) . '<p>' . Html::element('label', array('for' => 'wpCaptchaWord'), parent::getMessage('label') . wfMsg('colon-separator')) . Html::element('input', array('name' => 'wpCaptchaWord', 'id' => 'wpCaptchaWord', 'type' => 'text', 'autocorrect' => 'off', 'autocapitalize' => 'off', 'required' => 'required', 'tabindex' => 1)) . "</p>\n";
 }
 /**
  * Insert the captcha prompt into the edit form.
  */
 function getForm()
 {
     global $wgOut, $wgExtensionAssetsPath, $wgEnableAPI;
     // Uses addModuleStyles so it is loaded when JS is disabled.
     $wgOut->addModuleStyles('ext.confirmEdit.fancyCaptcha.styles');
     $title = SpecialPage::getTitleFor('Captcha', 'image');
     $index = $this->getCaptchaIndex();
     if ($wgEnableAPI) {
         // Loaded only if JS is enabled
         $wgOut->addModules('ext.confirmEdit.fancyCaptcha');
         $captchaReload = Html::element('small', array('class' => 'confirmedit-captcha-reload fancycaptcha-reload'), wfMessage('fancycaptcha-reload-text')->text());
     } else {
         $captchaReload = '';
     }
     return "<div class='fancycaptcha-wrapper'><div class='fancycaptcha-image-container'>" . Html::element('img', array('class' => 'fancycaptcha-image', 'src' => $title->getLocalUrl('wpCaptchaId=' . urlencode($index)), 'alt' => '')) . $captchaReload . "</div>\n" . '<p>' . Html::element('label', array('for' => 'wpCaptchaWord'), parent::getMessage('label') . wfMessage('colon-separator')->text()) . Html::element('input', array('name' => 'wpCaptchaWord', 'id' => 'wpCaptchaWord', 'type' => 'text', 'size' => '12', 'autocomplete' => 'off', 'autocorrect' => 'off', 'autocapitalize' => 'off', 'required' => 'required', 'tabindex' => 1)) . Html::element('input', array('type' => 'hidden', 'name' => 'wpCaptchaId', 'id' => 'wpCaptchaId', 'value' => $index)) . "</p>\n" . "</div>\n";
 }
 /**
  * Insert the captcha prompt into the edit form.
  * @param OutputPage $out
  */
 function getForm(OutputPage $out)
 {
     global $wgOut, $wgEnableAPI;
     // Uses addModuleStyles so it is loaded when JS is disabled.
     $out->addModuleStyles('ext.confirmEdit.fancyCaptcha.styles');
     $title = SpecialPage::getTitleFor('Captcha', 'image');
     $index = $this->getCaptchaIndex();
     if ($wgEnableAPI) {
         // Loaded only if JS is enabled
         $out->addModules('ext.confirmEdit.fancyCaptcha');
         $captchaReload = Html::element('small', array('class' => 'confirmedit-captcha-reload fancycaptcha-reload'), wfMessage('fancycaptcha-reload-text')->text());
     } else {
         $captchaReload = '';
     }
     $form = Html::openElement('div') . Html::element('label', array('for' => 'wpCaptchaWord'), parent::getMessage('label') . ' ' . wfMessage('createacct-captcha')->text()) . Html::openElement('div', array('class' => 'mw-createacct-captcha-container')) . Html::openElement('div', array('class' => 'mw-createacct-captcha-and-reload')) . Html::openElement('div', array('class' => 'fancycaptcha-image-container')) . Html::element('img', array('class' => 'fancycaptcha-image', 'src' => $title->getLocalUrl('wpCaptchaId=' . urlencode($index)), 'alt' => '')) . $captchaReload . Html::closeElement('div') . Html::closeElement('div') . "\n" . Html::element('input', array('name' => 'wpCaptchaWord', 'class' => 'mw-ui-input', 'id' => 'wpCaptchaWord', 'type' => 'text', 'size' => '12', 'autocomplete' => 'off', 'autocorrect' => 'off', 'autocapitalize' => 'off', 'required' => 'required', 'tabindex' => 1, 'placeholder' => wfMessage('createacct-imgcaptcha-ph')));
     // tab in before the edit textarea
     if ($this->action == 'usercreate') {
         // use raw element, because the message can contain links or some other html
         $form .= HTML::rawelement('small', array('class' => 'mw-createacct-captcha-assisted'), wfMessage('createacct-imgcaptcha-help')->parse());
     }
     $form .= Html::element('input', array('type' => 'hidden', 'name' => 'wpCaptchaId', 'id' => 'wpCaptchaId', 'value' => $index)) . Html::closeElement('div') . Html::closeElement('div') . "\n";
     return $form;
 }