]> ToastFreeware Gitweb - toast/cookiecaptcha.git/blobdiff - ConfirmEdit_body.php
Localisation updates for extension messages from translatewiki.net (2009-04-06 18...
[toast/cookiecaptcha.git] / ConfirmEdit_body.php
index cd68f5cb678da9655ca035db04ddbce4c61eaf00..00bea4c32d11dc8d04600a0fdc8d40cf1f4083a6 100644 (file)
@@ -54,7 +54,8 @@ class CaptchaSpecialPage extends UnlistedSpecialPage {
                $instance = ConfirmEditHooks::getInstance();
                switch( $par ) {
                case "image":
-                       return $instance->showImage();
+                       if( method_exists($instance,'showImage') )
+                               return $instance->showImage();
                case "help":
                default:
                        return $instance->showHelp();
@@ -102,12 +103,12 @@ class SimpleCaptcha {
                $index = $this->storeCaptcha( $captcha );
 
                return "<p><label for=\"wpCaptchaWord\">{$captcha['question']}</label> = " .
-                       wfElement( 'input', array(
+                       Xml::element( 'input', array(
                                'name' => 'wpCaptchaWord',
                                'id'   => 'wpCaptchaWord',
                                'tabindex' => 1 ) ) . // tab in before the edit textarea
                        "</p>\n" .
-                       wfElement( 'input', array(
+                       Xml::element( 'input', array(
                                'type'  => 'hidden',
                                'name'  => 'wpCaptchaId',
                                'id'    => 'wpCaptchaId',
@@ -145,8 +146,12 @@ class SimpleCaptcha {
         * @return bool true to keep running callbacks
         */
        function injectUserCreate( &$template ) {
-               global $wgCaptchaTriggers, $wgOut;
+               global $wgCaptchaTriggers, $wgOut, $wgUser;
                if( $wgCaptchaTriggers['createaccount'] ) {
+                       if( $wgUser->isAllowed( 'skipcaptcha' ) ) {
+                               wfDebug( "ConfirmEdit: user group allows skipping captcha on account creation\n" );
+                               return true;
+                       }
                        $template->set( 'header',
                                "<div class='captcha'>" .
                                $wgOut->parse( $this->getMessage( 'createaccount' ) ) .
@@ -314,8 +319,8 @@ class SimpleCaptcha {
                        } else {
                                // Get link changes in the slowest way known to man
                                $oldtext = $this->loadText( $editPage, $section );
-                               $oldLinks = $this->findLinks( $oldtext );
-                               $newLinks = $this->findLinks( $newtext );
+                               $oldLinks = $this->findLinks( $editPage, $oldtext );
+                               $newLinks = $this->findLinks( $editPage, $newtext );
                        }
 
                        $unknownLinks = array_filter( $newLinks, array( &$this, 'filterLink' ) );
@@ -513,8 +518,12 @@ class SimpleCaptcha {
         * @return bool true to continue, false to abort user creation
         */
        function confirmUserCreate( $u, &$message ) {
-               global $wgCaptchaTriggers;
+               global $wgCaptchaTriggers, $wgUser;
                if( $wgCaptchaTriggers['createaccount'] ) {
+                       if( $wgUser->isAllowed( 'skipcaptcha' ) ) {
+                               wfDebug( "ConfirmEdit: user group allows skipping captcha on account creation\n" );
+                               return true;
+                       }
                        $this->trigger = "new account '" . $u->getName() . "'";
                        if( !$this->passCaptcha() ) {
                                $message = wfMsg( 'captcha-createaccount-fail' );
@@ -639,12 +648,12 @@ class SimpleCaptcha {
         * @param string $text
         * @return array of strings
         */
-       function findLinks( $text ) {
-               global $wgParser, $wgTitle, $wgUser;
+       function findLinks( &$editpage, $text ) {
+               global $wgParser, $wgUser;
 
                $options = new ParserOptions();
-               $text = $wgParser->preSaveTransform( $text, $wgTitle, $wgUser, $options );
-               $out = $wgParser->parse( $text, $wgTitle, $options );
+               $text = $wgParser->preSaveTransform( $text, $editpage->mTitle, $wgUser, $options );
+               $out = $wgParser->parse( $text, $editpage->mTitle, $options );
 
                return array_keys( $out->getExternalLinks() );
        }