mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfirmEdit
synced 2024-11-27 17:40:11 +00:00
Merge "Clear PHP entry point and use extension.json for ReCaptcha"
This commit is contained in:
commit
b2cadc2a93
|
@ -1,63 +1,13 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Captcha class using the reCAPTCHA widget.
|
||||
* Stop Spam. Read Books.
|
||||
*
|
||||
* @addtogroup Extensions
|
||||
* @author Mike Crawford <mike.crawford@gmail.com>
|
||||
* @copyright Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net
|
||||
* @licence MIT/X11
|
||||
*/
|
||||
|
||||
if ( !defined( 'MEDIAWIKI' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once dirname( __DIR__ ) . '/ConfirmEdit.php';
|
||||
$wgCaptchaClass = 'ReCaptcha';
|
||||
|
||||
$wgMessagesDirs['ReCaptcha'] = __DIR__ . '/i18n';
|
||||
|
||||
$wgAutoloadClasses['ReCaptcha'] = __DIR__ . '/ReCaptcha.class.php';
|
||||
|
||||
require_once( 'recaptchalib.php' );
|
||||
|
||||
// Set these in LocalSettings.php
|
||||
$wgReCaptchaPublicKey = '';
|
||||
$wgReCaptchaPrivateKey = '';
|
||||
// For backwards compatibility
|
||||
$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';
|
||||
|
||||
/**
|
||||
* Make sure the keys are defined.
|
||||
*/
|
||||
function efReCaptcha() {
|
||||
global $wgReCaptchaPublicKey, $wgReCaptchaPrivateKey;
|
||||
global $recaptcha_public_key, $recaptcha_private_key;
|
||||
global $wgServerName;
|
||||
|
||||
// Backwards compatibility
|
||||
if ( $wgReCaptchaPublicKey == '' ) {
|
||||
$wgReCaptchaPublicKey = $recaptcha_public_key;
|
||||
}
|
||||
if ( $wgReCaptchaPrivateKey == '' ) {
|
||||
$wgReCaptchaPrivateKey = $recaptcha_private_key;
|
||||
}
|
||||
|
||||
if ( $wgReCaptchaPublicKey == '' || $wgReCaptchaPrivateKey == '' ) {
|
||||
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>." );
|
||||
}
|
||||
if ( function_exists( 'wfLoadExtension' ) ) {
|
||||
wfLoadExtension( 'ConfirmEdit/ReCaptcha' );
|
||||
// Keep i18n globals so mergeMessageFileList.php doesn't break
|
||||
$wgMessagesDirs['ReCaptcha'] = __DIR__ . '/i18n';
|
||||
/* wfWarn(
|
||||
'Deprecated PHP entry point used for ReCaptcha extension. Please use wfLoadExtension instead, ' .
|
||||
'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
|
||||
); */
|
||||
return;
|
||||
} else {
|
||||
die( 'This version of the Re^Captcha extension requires MediaWiki 1.25+' );
|
||||
}
|
||||
|
|
21
ReCaptcha/extension.json
Normal file
21
ReCaptcha/extension.json
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"name": "ReCaptcha",
|
||||
"ExtensionFunctions": [
|
||||
"efReCaptcha"
|
||||
],
|
||||
"MessagesDirs": {
|
||||
"ReCaptcha": [
|
||||
"i18n"
|
||||
]
|
||||
},
|
||||
"AutoloadClasses": {
|
||||
"ReCaptcha": "ReCaptcha.class.php"
|
||||
},
|
||||
"config": {
|
||||
"CaptchaClass": "ReCaptcha",
|
||||
"ReCaptchaPublicKey": "",
|
||||
"ReCaptchaPrivateKey": "",
|
||||
"ReCaptchaTheme": "red"
|
||||
},
|
||||
"callback": "ConfirmEditHooks::onReCaptchaSetup",
|
||||
}
|
|
@ -139,4 +139,11 @@ class ConfirmEditHooks {
|
|||
$wgCaptchaDirectory = "$wgUploadDirectory/captcha";
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Callback for extension.json of ReCaptcha to require the recaptcha library php file.
|
||||
* FIXME: This should be done in a better way, e.g. only load the libraray, if really needed.
|
||||
*/
|
||||
public static function onReCaptchaSetup() {
|
||||
require_once( "ReCaptcha/recaptchalib.php" );
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue