MediaWiki REL1_34
HTMLReCaptchaNoCaptchaField.php
Go to the documentation of this file.
1<?php
2
9 protected $key;
10
12 protected $error;
13
20 public function __construct( array $params ) {
21 $params += [ 'error' => null ];
22 parent::__construct( $params );
23
24 $this->key = $params['key'];
25 $this->error = $params['error'];
26
27 $this->mName = 'g-recaptcha-response';
28 }
29
30 public function getInputHTML( $value ) {
31 $out = $this->mParent->getOutput();
32 $lang = htmlspecialchars( urlencode( $this->mParent->getLanguage()->getCode() ) );
33
34 // Insert reCAPTCHA script, in display language, if available.
35 // Language falls back to the browser's display language.
36 // See https://developers.google.com/recaptcha/docs/faq
37 $out->addHeadItem(
38 'g-recaptchascript',
39 "<script src=\"https://www.google.com/recaptcha/api.js?hl={$lang}\" async defer></script>"
40 );
41 $output = Html::element( 'div', [
42 'class' => [
43 'g-recaptcha',
44 'mw-confirmedit-captcha-fail' => (bool)$this->error,
45 ],
46 'data-sitekey' => $this->key,
47 ] );
48 $htmlUrlencoded = htmlspecialchars( urlencode( $this->key ) );
49 $output .= <<<HTML
50<noscript>
51 <div>
52 <div style="width: 302px; height: 422px; position: relative;">
53 <div style="width: 302px; height: 422px; position: absolute;">
54 <iframe src="https://www.google.com/recaptcha/api/fallback?k={$htmlUrlencoded}&hl={$lang}"
55 frameborder="0" scrolling="no"
56 style="width: 302px; height:422px; border-style: none;">
57 </iframe>
58 </div>
59 </div>
60 <div style="width: 300px; height: 60px; border-style: none;
61 bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px;
62 background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;">
63 <textarea id="g-recaptcha-response" name="g-recaptcha-response"
64 class="g-recaptcha-response"
65 style="width: 250px; height: 40px; border: 1px solid #c1c1c1;
66 margin: 10px 25px; padding: 0px; resize: none;" >
67 </textarea>
68 </div>
69 </div>
70</noscript>
71HTML;
72 return $output;
73 }
74}
The parent class to generate form fields.
Creates a ReCaptcha v2 widget.
string $key
Public key parameter to be passed to ReCaptcha.
string $error
Error returned by ReCaptcha in the previous round.
getInputHTML( $value)
This function must be implemented to return the HTML to generate the input object itself.
if(!isset( $args[0])) $lang