Allow several answers in QuestyCaptcha, per request at http://permalink.gmane.org...
authorPlatonides <platonides@users.mediawiki.org>
Tue, 8 Feb 2011 23:39:17 +0000 (23:39 +0000)
committerPlatonides <platonides@users.mediawiki.org>
Tue, 8 Feb 2011 23:39:17 +0000 (23:39 +0000)
QuestyCaptcha.class.php
QuestyCaptcha.php

index 16dff06c99dac8eef04c82cc9f11ff2cf111df1e..478fcf3480729b628c8350f4bffbb7f096d3590f 100644 (file)
@@ -12,7 +12,11 @@ class QuestyCaptcha extends SimpleCaptcha {
 
        /** Validate a captcha response */
        function keyMatch( $answer, $info ) {
-               return strtolower( $answer ) == strtolower( $info['answer'] );
+               if ( is_array( $info['answer'] ) ) {
+                       return in_array( strtolower( $answer ), $info['answer'] );
+               } else {
+                       return strtolower( $answer ) == strtolower( $info['answer'] );
+               }
        }
 
        function addCaptchaAPI( &$resultArr ) {
index 152943e4400ff76d7229fd99ec5d4d3d150c9067..351c3421ec3c0be70832a1fb17cd1d8b188111d1 100644 (file)
@@ -30,10 +30,13 @@ if ( !defined( 'MEDIAWIKI' ) ) {
 
 global $wgCaptchaQuestions;
 $wgCaptchaQuestions = array();
+
+// Add your questions in LocalSettings.php using this format
 // $wgCaptchaQuestions[] = array( 'question' => "A question?", 'answer' => "An answer!" );
 // $wgCaptchaQuestions[] = array( 'question' => 'How much wood would a woodchuck chuck if a woodchuck could chuck wood?', 'answer' => 'as much wood as...' );
 // $wgCaptchaQuestions[] = array( 'question' => "What is this wiki's name?", 'answer' => "$wgSitename" );
-// add your questions in LocalSettings.php using this format
+// You can also provide several acceptable answers to a given question (the answers shall be in lowercase):
+// $wgCaptchaQuestions[] = array( 'question' => "2 + 2 ?", 'answer' => array( '4', 'four' ) );
 
 $wgExtensionMessagesFiles['QuestyCaptcha'] = dirname( __FILE__ ) . '/QuestyCaptcha.i18n.php';
 $wgAutoloadClasses['QuestyCaptcha'] = dirname( __FILE__ ) . '/QuestyCaptcha.class.php';