* (bug 32609) API: Move captchaid/captchaword of action=edit from core to Captcha...
[toast/cookiecaptcha.git] / ReCaptcha.php
index 1afaab08712ff0851492fccafe774f4759e021e9..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>
@@ -28,6 +28,13 @@ $wgReCaptchaPrivateKey = '';
 $recaptcha_public_key = '';
 $recaptcha_private_key = '';
 
+/**
+ * Sets the theme for ReCaptcha
+ *
+ * See http://code.google.com/apis/recaptcha/docs/customization.html
+ */
+$wgReCaptchaTheme = 'red';
+
 $wgExtensionFunctions[] = 'efReCaptcha';
 
 /**
@@ -50,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>.");
-       }       
+       }
 }
 
 
@@ -65,10 +72,11 @@ class ReCaptcha extends SimpleCaptcha {
         *
          */
        function getForm() {
-               global $wgReCaptchaPublicKey;
+               global $wgReCaptchaPublicKey, $wgReCaptchaTheme;
                $useHttps = ( isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' );
-               return "<script>var RecaptchaOptions = { tabindex : 1 }; </script> " .
-                       recaptcha_get_html($wgReCaptchaPublicKey, $this->recaptcha_error, $useHttps);
+               $js = 'var RecaptchaOptions = ' . Xml::encodeJsVar( array( 'theme' => $wgReCaptchaTheme, 'tabindex' => 1  ) );
+
+               return Html::inlineScript( $js ) . recaptcha_get_html($wgReCaptchaPublicKey, $this->recaptcha_error, $useHttps);
        }
 
        /**
@@ -134,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;
+       }
 }