* (bug 32609) API: Move captchaid/captchaword of action=edit from core to Captcha...
[toast/cookiecaptcha.git] / ReCaptcha.php
index 36a74ed7b7df171cdfa457e030e012ecc3ef4102..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>
  * @licence MIT/X11
  */
 
-if( !defined( 'MEDIAWIKI' ) ) {
+if ( !defined( 'MEDIAWIKI' ) ) {
        exit;
 }
 
+require_once dirname( __FILE__ ) . '/ConfirmEdit.php';
+$wgCaptchaClass = 'ReCaptcha';
+
 $wgExtensionMessagesFiles['ReCaptcha'] = dirname( __FILE__ ) . '/ReCaptcha.i18n.php';
 
 require_once( 'recaptchalib.php' );
@@ -25,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';
 
 /**
@@ -47,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>.");
-       }       
+       }
 }
 
 
@@ -62,9 +72,11 @@ class ReCaptcha extends SimpleCaptcha {
         *
          */
        function getForm() {
-               global $wgReCaptchaPublicKey;
-               return "<script>var RecaptchaOptions = { tabindex : 1 }; </script> " .
-               recaptcha_get_html($wgReCaptchaPublicKey, $this->recaptcha_error);
+               global $wgReCaptchaPublicKey, $wgReCaptchaTheme;
+               $useHttps = ( isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' );
+               $js = 'var RecaptchaOptions = ' . Xml::encodeJsVar( array( 'theme' => $wgReCaptchaTheme, 'tabindex' => 1  ) );
+
+               return Html::inlineScript( $js ) . recaptcha_get_html($wgReCaptchaPublicKey, $this->recaptcha_error, $useHttps);
        }
 
        /**
@@ -130,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;
+       }
 }