Habe diesem Spam-Schutz in einer 4.6.23 MR in der cms/front_content.php eingebaut. In meiner Version nutze ich auch die VPTransformation.
Einfach folgenden Code in der cms/front_content.php der 4.6.23 MR suchen:
Code: Alles auswählen
/*
* That's it! The code of an article will be evaluated.
* The code of an article is basically a PHP script which is cached in the database.
* Layout and Modules are merged depending on the Container definitions of the Template.
*/
// edit by stese - ModRewrite
ob_start();
eval ("?>\n".$code."\n<?php\n");
$strAll = ob_get_contents();
ob_end_clean();
// mod rewrite is activated
if ( $cfg['mod_rewrite']['use'] == 1 ) {
$sseStarttime = getmicrotime();
// edit 060603 - anchor hack
$strAll = preg_replace_callback(
"/<a([^>]*)href\s*=\s*[\"|\'][\/]#(.?|.+?)[\"|\']([^>]*)>/i",
create_function( '$arr_matches' , 'return ModRewrite::rewrite_html_anchor($arr_matches);' ),
$strAll
);
// remove fucking tinymce single quote entities:
$strAll = str_replace("'", "'", $strAll);
// IE hack with wrong base href interpretation
$strAll = preg_replace ( "/([\"|\'|=])upload\/(.?|.+?)([\"|\'|>])/ie", "stripslashes('\\1${str_base_uri}upload/\\2\\3')", $strAll );
// ok let it beginn, start mod rewrite class
$strAll = preg_replace_callback(
"/([\"|\'|=])front_content\.php(.?|.+?)([\"|\'|>])/i",
create_function( '$arr_matches' , 'return $arr_matches[1] . ModRewrite::build_new_url($arr_matches[2]) . $arr_matches[3];' ),
$strAll
);
$sseEndtime = getmicrotime();
} else {
// anchor hack for non modrewrite websites
$strAll = preg_replace_callback(
"/<a([^>]*)href\s*=\s*[\"|\'][\/]#(.?|.+?)[\"|\']([^>]*)>/i",
create_function( '$arr_matches' , 'return ModRewrite::contenido_html_anchor($arr_matches, $GLOBALS["is_XHTML"]);' ),
$strAll
);
}
print ($strAll);
// print "\n\n<!-- modrewrite generation time: " . ($sseEndtime - $sseStarttime) . " seconds -->";
// end edit
}
}
und durch diesen ersetzen:
Code: Alles auswählen
/*
* That's it! The code of an article will be evaluated.
* The code of an article is basically a PHP script which is cached in the database.
* Layout and Modules are merged depending on the Container definitions of the Template.
*/
// MIT VPTRANSFORMATION + EMAIL-SPAM-SCHUTZ
// edit by stese - ModRewrite
ob_start();
eval ("?>\n".$code."\n<?php\n");
$strAll = ob_get_contents();
ob_end_clean();
/* Transformations - IVP - start */
cInclude("includes", "functions.transformations.php");
$strAll = Transform($strAll);
/* Transformations - IVP - ende */
// mod rewrite is activated
if ( $cfg['mod_rewrite']['use'] == 1 )
{
$sseStarttime = getmicrotime();
// edit 060603 - anchor hack
$strAll = preg_replace_callback(
"/<a([^>]*)href\s*=\s*[\"|\'][\/]#(.?|.+?)[\"|\']([^>]*)>/i",
create_function( '$arr_matches' , 'return ModRewrite::rewrite_html_anchor($arr_matches);' ),
$strAll
);
// remove fucking tinymce single quote entities:
$strAll = str_replace("'", "'", $strAll);
// IE hack with wrong base href interpretation
$strAll = preg_replace ( "/([\"|\'|=])upload\/(.?|.+?)([\"|\'|>])/ie", "stripslashes('\\1${str_base_uri}upload/\\2\\3')", $strAll );
// ok let it beginn, start mod rewrite class
$strAll = preg_replace_callback( "/([\"|\'|=])front_content\.php(.?|.+?)([\"|\'|>])/i",
create_function( '$arr_matches' , 'return $arr_matches[1] . ModRewrite::build_new_url($arr_matches[2]) . $arr_matches[3];' ), $strAll);
// EMAIL-SPAM-SCHUTZ - start - edit by rzwei
$pattern = '/[_a-z0-9:]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z0-9]{2,4})/';
preg_match_all ($pattern, $strAll, $mailtext);
foreach($mailtext[0] as $email_now)
{
$strEncodedEmail = "";
for ($i=0; $i < strlen($email_now); $i++)
{
$strEncodedEmail .= "&#".ord(substr($email_now,$i)).";";
}
$strAll = str_replace($email_now, $strEncodedEmail, $strAll);
$sseEndtime = getmicrotime();
}
// EMAIL-SPAM-SCHUTZ - ende - edit by rzwei
// Nachfolgende Zeile liegt in Originaldatei an dieser Stelle (auskommentiert, da schon aufgerufen in der EMAIL-SPAM-SCHUTZ-ERWEITERUNG)
// $sseEndtime = getmicrotime();
} else {
// anchor hack for non modrewrite websites
$strAll = preg_replace_callback( "/<a([^>]*)href\s*=\s*[\"|\'][\/]#(.?|.+?)[\"|\']([^>]*)>/i",
create_function( '$arr_matches' , 'return ModRewrite::contenido_html_anchor($arr_matches, $GLOBALS["is_XHTML"]);' ), $strAll);
}
// EMAIL-SPAM-SCHUTZ fuer NICHT-ModRewrite-SEITEN - start - edit by rzwei
$pattern = '/[_a-z0-9:]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.)+([a-z0-9]{2,4})/';
preg_match_all ($pattern, $strAll, $mailtext);
foreach($mailtext[0] as $email_now)
{
$strEncodedEmail = "";
for ($i=0; $i < strlen($email_now); $i++)
{
$strEncodedEmail .= "&#".ord(substr($email_now,$i)).";";
}
$strAll = str_replace($email_now, $strEncodedEmail, $strAll);
}
// EMAIL-SPAM-SCHUTZ fuer NICHT-ModRewrite-SEITEN - ende - edit by rzwei
print ($strAll);
// print "\n\n<!-- modrewrite generation time: " . ($sseEndtime - $sseStarttime) . " seconds -->";
// end edit
}
}
MfG Steffen