* (bug 32609) API: Move captchaid/captchaword of action=edit from core to Captcha...
[toast/cookiecaptcha.git] / ReCaptcha.php
index b7c3d27db74e8df7ed7ceb060cfa2299a4df5f14..7837bb7a66f7683c140643e0dd4379d98094575a 100644 (file)
@@ -1,8 +1,8 @@
 <?php
 
 /**
- * Captcha class using the reCAPTCHA widget. 
- * Stop Spam. Read Books.  
+ * Captcha class using the reCAPTCHA widget.
+ * Stop Spam. Read Books.
  *
  * @addtogroup Extensions
  * @author Mike Crawford <mike.crawford@gmail.com>
@@ -57,7 +57,7 @@ function efReCaptcha() {
                die ('You need to set $wgReCaptchaPrivateKey and $wgReCaptchaPublicKey in LocalSettings.php to ' .
                     "use the reCAPTCHA plugin. You can sign up for a key <a href='" .
                     htmlentities(recaptcha_get_signup_url ($wgServerName, "mediawiki")) . "'>here</a>.");
-       }       
+       }
 }
 
 
@@ -74,10 +74,9 @@ class ReCaptcha extends SimpleCaptcha {
        function getForm() {
                global $wgReCaptchaPublicKey, $wgReCaptchaTheme;
                $useHttps = ( isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' );
-               $escapedTheme = Xml::escapeJsString( $wgReCaptchaTheme );
+               $js = 'var RecaptchaOptions = ' . Xml::encodeJsVar( array( 'theme' => $wgReCaptchaTheme, 'tabindex' => 1  ) );
 
-               return "<script>var RecaptchaOptions = { theme : '$escapedTheme', tabindex : 1 }; </script> " .
-                       recaptcha_get_html($wgReCaptchaPublicKey, $this->recaptcha_error, $useHttps);
+               return Html::inlineScript( $js ) . recaptcha_get_html($wgReCaptchaPublicKey, $this->recaptcha_error, $useHttps);
        }
 
        /**
@@ -143,4 +142,11 @@ class ReCaptcha extends SimpleCaptcha {
                return wfEmptyMsg( $name, $text ) ? wfMsg( 'recaptcha-edit' ) : $text;
        }
 
+       public function APIGetAllowedParams( &$module, &$params ) {
+               return true;
+       }
+
+       public function APIGetParamDescription( &$module, &$desc ) {
+               return true;
+       }
 }