download-1

Workaround - EasyCaptcha auch für das Joomla Kontakt-Formular

Hierbei handelt es sich um ein Hack wie folgt:

Beachtet aber, das nach einem Update auf einer neueren Version dieser Hack verloren gehen kann. Backup nicht vergessen

Diese Hack ermöglicht es die Komponente EasyCaptcha auch für das Joomla!-Kontakt-Formular der Joomla Version 1.0.15 zu benutzen.

Hinweis: Die beiden Dateien aus dem Anhang contact.php und contact.html.php ins Verzeichnis Ordner components/com_contact hochladen/überschreiben, aber bitte dann ein Backup dieser beiden Dateien nicht vergessen!

Solltet Ihr eurer
Kontaktformular schon manuell bearbeitet haben dann könnt ihr es auch manuell also wie folgt ergänzen/ändern, da ansonsten alles überschrieben wird.

Manuell also wie folgt:

In der Datei Datei contact.php

suche nach
defined( '_VALID_MOS' ) or die( 'Restricted access' );

darunter einfügen
//EasyCaptcha Integration - added by EasyJoomla.org Project 
if(file_exists($mosConfig_absolute_path.'/components/com_easycaptcha/class.easycaptcha.php')) {
include_once($mosConfig_absolute_path.'/components/com_easycaptcha/class.easycaptcha.php');
}

suche nach
HTML_contact::viewcontact( $contact, $params, $count, $list, $menu_params );

ersetzen durch

//EasyCaptcha Integration - added by EasyJoomla.org Project
 if( class_exists("EasyCaptcha") AND !$my->gid ) {
 $captcha = new easyCaptcha();
 }
else
 {
 $captcha = null;
 }
HTML_contact::viewcontact( $contact, $params, $count, $list, $menu_params, &$captcha );

suche nach
global $mosConfig_sitename, $mosConfig_live_site, $mosConfig_mailfrom, $mosConfig_fromname, $mosConfig_db;

ersetze durch
global $mosConfig_sitename, $mosConfig_live_site, $mosConfig_mailfrom, $mosConfig_fromname, $mosConfig_db, $my; 

suche nach

// check for session cookie 

darüber einfügen
//EasyCaptcha Integration - added by EasyJoomla.org Project
if(class_exists("EasyCaptcha") AND !$my->gid)
{
$captcha_id = strval( mosGetParam( $_POST, 'captcha_id', '' ) );
$captcha_code = strval( mosGetParam( $_POST, 'captcha_code', '' ) );
$captcha = new EasyCaptcha($captcha_id);
if(!$captcha->checkEnteredCode($captcha_code))
{
mosErrorAlert( "Wrong Code entered" );
}
}

In der Datei contact.html.php

suche nach
function viewcontact( &$contact, &$params, $count, &$list, &$menu_params ) { 

ersetze durch
function viewcontact( &$contact, &$params, $count, &$list, &$menu_params, &$captcha ) { 

suche nach
<script language="JavaScript" type="text/javascript">
<!--

ersetze durch
<script type="text/javascript">
<?php
//EasyCaptcha Integration - added by EasyJoomla.org Project
i
f($captcha->captcha_id)
 {
?>
 /*<[CDATA[*/
function validate(){
if ( ( document.emailForm.text.value == "" ) || ( document.emailForm.email.value.search("@") == -1 ) ||
( document.emailForm.email.value.search("[.*]" ) == -1 ) ) {
alert( "<?php echo addslashes( _CONTACT_FORM_NC ); ?>" );
} else if ( ( document.emailForm.email.value.search(";") != -1 ) ||
( document.emailForm.email.value.search(",") != -1 ) ||
( document.emailForm.email.value.search(" ") != -1 ) ) {
alert( "<?php echo addslashes( _CONTACT_ONE_EMAIL ); ?>" );
} else {
checkEasyCaptcha("contact_captcha");
}
}
function submitMailForm(){
if (http_request.readyState == 4) {
if( http_request.responseText=="true") {
document.emailForm.action = "<?php echo sefRelToAbs("index.php?option=com_contact&Itemid=$Itemid"); ?>"
document.emailForm.submit();
}
else {
alert( "<?php echo addslashes( "Please enter correct Code" ); ?>" );
}
}
}
/*]]>*/
</script>
<?php
ech
o $captcha->getAjax("submitMailForm");
}
else
{
?>
<!--

suche nach
<script type="text/javascript">
<!--
function ViewCrossReference( selSelectObject ){

darüber einfügen
<?php
}
//End EasyCaptcha Integration
?>

suche nach
HTML_contact::_writeEmailForm( $contact, $params, $sitename, $menu_params );

ersetze durch
HTML_contact::_writeEmailForm( $contact, $params, $sitename, $menu_params, &$captcha );

suche nach
function _writeEmailForm( &$contact, &$params, $sitename, &$menu_params ) {

ersetze durch
function _writeEmailForm( &$contact, &$params, $sitename, &$menu_params, &$captcha ) {

suche nach
<br />
<br />
<input type="button" name="send" value="<?php echo(_SEND_BUTTON); ?>" class="button" onclick="validate()" />

darüber einfügen
<?php
//EasyCaptcha Integration - added by EasyJoomla.org Project
if($captcha->captcha_id)
{
?>
<br />
<br />
<input type="hidden" name="captcha_id" value="<?php echo $captcha->getCaptchaId(); ?>" />

Captcha-Code:
<input type='text' name='captcha_code' id="contact_captcha" class='inputbox' /><br /><br />
<img src="/<?php echo $captcha->getImageUrl(); ?>" alt="<?php echo $captcha->getAltText(); ?>" id='code' />
<?php echo $captcha->getReloadButton("code");
echo $captcha->getReloadCode();
}
?>

Oder einfach nur die beiden Dateien aus dem Anhang --> Datei contact.php und Datei contact.html.php per FTP überschreiben, backup bitte nicht vergessen!
patch_for_contact__1.0.15.zip 9.50 Kb
BACKUP NICHT VERGESSEN !
Viel Erfolg! und ein Danke an David aka Snipersister www.easy-joomla.org

Dieser Artikel ist vom Autor zur Verwendung unter www.joomla-tutorials.de freigegeben. Eine Verwendung auf anderen Webseiten ist nur mit Erlaubnis des Autors gestattet!
Autor:cybergurk  Website:www.joomla-tutorials.de
 

Benutzer gerade Online

Wir haben 56 Gäste online

Empfehlungen / Hilfe

video-filme joomla-schweiz
joomla-galerien joomla-downloads
joomla-org-englisch easyjoomla
joomla-deutschland joomla-templates-royal
joomlaportal-de

cybergurk
Joomla und mehr...
xing

Unterstützen

Finden Sie das unsere Seite eine gute Sache darstellt? Helfen Sie mit, dass wir diesen Standard beibehalten können.
Ihre Spende hilft uns!

spenden

Vielen Dank für Ihre Unterstützung!