Changeset 1161

Show
Ignore:
Timestamp:
02/21/10 01:09:23 (3 years ago)
Author:
GneX
Message:

reCaptcha wird nun richtig angezeigt

Location:
org.gnex.reCaptcha
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • org.gnex.reCaptcha/files/lib/system/event/listener/ReCaptchaListener.class.php

    r1122 r1161  
    1111 */ 
    1212class ReCaptchaListener implements EventListener { 
    13         public $eventObj; 
     13        public $useCaptcha = null; 
    1414         
    1515        /** 
     
    1717         */ 
    1818        public function execute($eventObj, $className, $eventName) { 
    19     // break 
    20     if(!MODULE_RECAPTCHA || !RECAPTCHA_KEY_PUBLIC || !RECAPTCHA_KEY_PRIVATE || !isset($eventObj->useCaptcha) || !$eventObj->useCaptcha) { 
    21       return; 
     19    if ($this->useCaptcha === null) { 
     20      if (isset($eventObj->useCaptcha)) { 
     21        $this->useCaptcha = $eventObj->useCaptcha; 
     22        $eventObj->useCaptcha = false; 
     23      } else { 
     24        $this->useCaptcha = true; 
     25      } 
    2226    } 
    2327     
    24     // completely disable parent handler 
    25     $eventObj->useCaptcha = false; 
    26      
    27     // bind 
    28     $this->eventObj = $eventObj; 
    29      
    30     // call our handler, if method is implemented 
    31     if(method_exists($this, $eventName)) { 
    32       $this->$eventName(); 
     28    if ($this->useCaptcha) { 
     29      switch ($eventName) { 
     30        case 'validate': 
     31                $eventObj->captcha->validate($eventObj->captchaString); 
     32          $eventObj->captcha = new ReCaptcha($eventObj->captchaID); 
     33          $eventObj->captcha->validate($_SERVER['REMOTE_ADDR'], $_REQUEST['recaptcha_challenge_field'], $_REQUEST['recaptcha_response_field']); 
     34                $this->useCaptcha = false; 
     35        break; 
     36 
     37        case 'assignVariables': 
     38                        $eventObj->captchaID = ReCaptcha::create(); 
     39          $eventObj->captcha = new ReCaptcha($eventObj->captchaID); 
     40          WCF::getTPL()->assign('captcha', $eventObj->captcha->getCode()); 
     41        break; 
     42      } 
    3343    } 
    34   } 
    35    
    36         public function readData() { 
    37           ### 
    38         } 
    39    
    40         public function validate() { 
    41           $this->eventObj->captcha = new ReCaptcha($this->eventObj->captchaID); 
    42     $this->eventObj->captcha->validate($_SERVER['REMOTE_ADDR'], $_REQUEST['recaptcha_challenge_field'], $_REQUEST['recaptcha_response_field']); 
    43         } 
    44    
    45         public function assignVariables() { 
    46     $this->eventObj->captchaID = ReCaptcha::create(); 
    47     $this->eventObj->captcha = new ReCaptcha($this->eventObj->captchaID); 
    48           WCF::getTPL()->assign('captcha', $this->eventObj->captcha->getCode()); 
    4944        } 
    5045} 
  • org.gnex.reCaptcha/package.xml

    r1146 r1161  
    66                <packagedescription><![CDATA[Ersetzt das Sicherheitsbild mit dem bekannten ReCaptcha]]></packagedescription> 
    77                <isunique>1</isunique> 
    8                 <version>1.0.3</version> 
    9                 <date>2009-12-22</date> 
     8                <version>1.0.4</version> 
     9                <date>2010-02-17</date> 
    1010                <plugin>com.woltlab.wcf</plugin> 
    1111                <packageurl><![CDATA[http://GneX.org]]></packageurl> 
     
    4343                <templates>templates.tar</templates> 
    4444        </instructions> 
     45        <instructions type="update" fromversion="1.0.3"> 
     46                <eventlistener>eventlistener.xml</eventlistener> 
     47                <files>files.tar</files> 
     48        </instructions> 
    4549</package>