cybergurk
|
|
« am: 01. 02. 2008 15:36 »
|
|
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 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 contact.php
suche nach
(php):
-
defined( '_VALID_MOS' ) or die( 'Restricted access' );
darunter einfügen
(php):
-
//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
(php):
-
HTML_contact::viewcontact( $contact, $params, $count, $list, $menu_params );
ersetzen durch
(php):
-
//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
(php):
-
global $mosConfig_sitename, $mosConfig_live_site, $mosConfig_mailfrom, $mosConfig_fromname, $mosConfig_db;
ersetze durch
(php):
-
global $mosConfig_sitename, $mosConfig_live_site, $mosConfig_mailfrom, $mosConfig_fromname, $mosConfig_db, $my;
suche nach
(php):
-
// check for session cookie
darüber einfügen
(php):
-
//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 contact.html.php
suche nach
(php):
-
function viewcontact( &$contact, &$params, $count, &$list, &$menu_params ) {
ersetze durch
(php):
-
function viewcontact( &$contact, &$params, $count, &$list, &$menu_params, &$captcha ) {
suche nach
(php):
-
<script language="JavaScript" type="text/javascript">
-
<!--
ersetze durch
(php):
-
<script type="text/javascript">
-
<?php
-
//EasyCaptcha Integration - added by EasyJoomla.org Project
-
if($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
-
echo $captcha->getAjax("submitMailForm");
-
}
-
else
-
{
-
?>
-
<!--
suche nach
(php):
-
<script type="text/javascript">
-
<!--
-
function ViewCrossReference( selSelectObject ){
darüber einfügen
(php):
-
<?php
-
}
-
//End EasyCaptcha Integration
-
?>
suche nach
(php):
-
HTML_contact::_writeEmailForm( $contact, $params, $sitename, $menu_params );
ersetze durch
(php):
-
HTML_contact::_writeEmailForm( $contact, $params, $sitename, $menu_params, &$captcha );
suche nach
(php):
-
function _writeEmailForm( &$contact, &$params, $sitename, &$menu_params ) {
ersetze durch
(php):
-
function _writeEmailForm( &$contact, &$params, $sitename, &$menu_params, &$captcha ) {
suche nach
(php):
-
<br />
-
<br />
-
<input type="button" name="send" value="<?php echo(_SEND_BUTTON); ?>" class="button" onclick="validate()" />
darüber einfügen
(php):
-
<?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 --> file contact.php und file contact.html.php per FTP überschreiben!
BACKUP NICHT VERGESSEN !
Viel Erfolg! und ein Danke an David aka Snipersister easy-joomla.org
|