Hallo,
ich bin neu hier und hab mir heute mal die nicht kompatible erweiterung recaptcha 0.6.1 stable
installiert und bin darüber gestolptert:
Fatal error: Call to undefined method FormReCaptcha::generateQuestion() in .../system/modules/news/templates/mod_newsreader.tpl on line 42
An sich kein Problem, hier also mein "Quick-n-Dirty" - Hack.
in .../system/modules/recaptcha/FormReCaptcha.php Zeile 176
PHP-Code:
public function generate()...
den ganzen Funktionsblock kopieren und am besten gleich dahinter einfügen
PHP-Code:
public function generate() /* im einfuegten Funktionsblock in */
public function generateQuestion()
umbennen.
Nur umzubennen führt zu einem anderen Fehler:
Fatal error: Class FormReCaptcha contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Widget::generate) in .../system/modules/recaptcha/FormReCaptcha.php on line 208
Das zieht mir zu viele Blasen, also zog ich die schnelle und schmutzige Lösung vor.
Ja, ich weiß...
Alternativ könnte man auch jeden Methodenaufruf
PHP-Code:
<div class="widget">
<?php echo $this->fields['captcha']->generateWithError(); ?>
<label for="ctrl_captcha"><?php echo $this->fields['captcha']->generateQuestion(); ?>
<span class="mandatory">*</span>
</label>
in /system/modules/news/templates/mod_newsreader.tpl bzw. eigenen Templates ändern.
Das erschien mir noch aufwändiger. Bis dahin wird recaptcha sicher geupdatet. Ich empfehle meinen Hack daher nur bastelfreudigen Nutzern.
Grundsätzlich halte ich nicht in den Core rein. Insofern bot sich die Änderung einer Erweiterung geradezu an.
Ciao
Lesezeichen