Hallo!
Wie könnte ich am einfachsten einen Reload-Link für die PictureCaptcha Extension realisieren. D.h. ein Link der das Captcha neu lädt ohne jedoch die Seite neu zu laden.
Danke!
Beste Grüße
Hallo!
Wie könnte ich am einfachsten einen Reload-Link für die PictureCaptcha Extension realisieren. D.h. ein Link der das Captcha neu lädt ohne jedoch die Seite neu zu laden.
Danke!
Beste Grüße
Hi,
einfach ist es nicht. Ich denke man muss dann AJAX benutzen.
Wenn ich Zeit habe schaue ich.
Warum? Verfällt die Captcha bevor man das Formular ausfühlt?
Ja auf jedenfall über Ajax - ich dachte jemand hat das ganze schon auscodiert.
Es geht vielmehr um die Userfreundlichkeit.. sollte der Code nicht lesbar sein, könnte der User einen neuen Laden ohne die Seite neu laden und evtl. auch alle Werte neu eingeben zu müssen.
Wer einen Reload-Button möchte, kann folgendermaßen vorgehen (die Änderungen beziehen sich auf Contao_PictureCaptcha_10000009_17.zip im Extension Repository):
1.
aus html/cp.css den Eintrag .cpimage entfernen
(das Captcha-Image wird nicht länger per css eingebunden)
2.
in templates/form_captchaimage.tpl hinzufügen:
als Zeile 1:
dem Captcha-Bild jeweils eine id verpassen:HTML-Code:<?php $GLOBALS['TL_JAVASCRIPT'][]='system/modules/PictureCaptcha/html/reload.js'; ?>
und jeweils vorCode:<img id="cpcaptcha" alt="captcha" src="system/modules/PictureCaptcha/html/captcha.gif" width="<?php echo $this->imgwidth ?>" height="<?php echo $this->imgheight ?>" />einfügen:HTML-Code:<div class="clear"></div>
3.HTML-Code:<div id="reload"> <img alt="Captcha erneut laden" src="system/modules/PictureCaptcha/html/reload.gif" border="0" /> </div>
ein geeignetes Icon als reload.gif ins Verzeichnis html des Moduls speichern
4.
folgenden Code als reload.js ins Verzeichnis html speichern:
5.Code:window.addEvent('domready',function() { var reload = function () { $('cpcaptcha').src = 'system/modules/PictureCaptcha/captcha.php?pc=' + Math.random(); return false; } $('cpreload').addEvent('click', reload); $('cpreload').fireEvent('click'); });
#cpreload in html/cp.css "stylen"
Hab hier hoffentlich nichts vergessen. Bei mir funktioniert es so.
Vielleicht kann ja der eine oder andere damit etwas anfangen.
Ulrike
P.S.
Es geht auch per AJAX, ist aber m. E. unnötig kompliziert.
P.P.S.
Bitte auch an folgende Änderungen denken (wie an anderer Stelle in diesem Forum angegeben):
in captcha.php:
undCode:// statt: $this->Session->set('imagecaptcha',$captchacode); $_SESSION['imagecaptcha'] = $captchacode;
in PictureCaptcha.php // in function validate()Code://statt: $this->Session->set('imagecaptcha',$result); $_SESSION['imagecaptcha']=$result;
undCode:// statt: $arrCaptcha['sum'] = $this->Session->get('imagecaptcha'); $arrCaptcha['sum']=$_SESSION['imagecaptcha'];
Code://statt: $this->Session->set('imagecaptcha', ''); $_SESSION['imagecaptcha']='';
Geändert von Ulrike (19.11.2010 um 13:04 Uhr)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen