21 $params += [
'error' => null ];
22 parent::__construct( $params );
24 $this->key = $params[
'key'];
25 $this->error = $params[
'error'];
27 $this->mName =
'g-recaptcha-response';
31 $out = $this->mParent->getOutput();
32 $lang = htmlspecialchars( urlencode( $this->mParent->getLanguage()->getCode() ) );
39 "<script src=\"https://www.google.com/recaptcha/api.js?hl={$lang}\" async defer></script>"
41 $output = Html::element(
'div', [
44 'mw-confirmedit-captcha-fail' => (
bool)$this->error,
46 'data-sitekey' => $this->key,
48 $htmlUrlencoded = htmlspecialchars( urlencode( $this->key ) );
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;">
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;" >