$this->register_prefilter('at_to_globals');
$this->register_prefilter('trimwhitespace');
+ $this->register_prefilter('form_force_encodings');
$this->addJsLink('xorg.js');
}
}
$this->register_outputfilter('hide_emails');
$this->addJsLink('wiki.js');
+ header("Accept-Charset: iso-8859-15, latin9, us-ascii, ascii");
if (!$globals->debug) {
error_reporting(0);
}
// }}}
+// {{{
+
+function form_force_encodings($source, &$smarty)
+{
+ return preg_replace('/<form[^\w]/',
+ '\0 accept-charset="iso-8859-15 latin9 us-ascii ascii" ',
+ $source);
+}
+
+// }}}
// {{{ function hide_emails
function _hide_email($source)
{
+ $source = str_replace("\n", '', $source);
return '<script type="text/javascript">Nix.decode("' . addslashes(str_rot13($source)) . '");</script>';
}
}
//catch all emails in <a href="mailto:...">
- preg_match_all("!<a[^>]+href=[\"']mailto:[^>]+>.*?</a>!is", $source, $ahref);
- $source = preg_replace("!<a[^>]+href=[\"']mailto:[^>]+>.*?</a>!is", '&&&ahref&&&', $source);
+ preg_match_all("!<a[^>]+href=[\"'][^\"']*[-a-z0-9_.]+@[-a-z0-9_.]+[^\"']*[\"'][^>]*>.*?</a>!is", $source, $ahref);
+ $source = preg_replace("!<a[^>]+href=[\"'][^\"']*[-a-z0-9_.]+@[-a-z0-9_.]+[^\"']*[\"'][^>]*>.*?</a>!is", '&&&ahref&&&', $source);
//prevant replacement in tag attributes
preg_match_all("!<[^>]+[-a-z0-9_.]+@[-a-z0-9_.]+[^>]+>!is", $source, $misc);
//catch !
$source = preg_replace('!([-a-z0-9_.]+@[-a-z0-9_.]+)!ie', '_hide_email("\1")', $source);
$source = preg_replace('!&&&ahref&&&!e', '_hide_email(array_shift($ahref[0]))', $source);
- $source = preg_replace('!&&&misc&&&!e', '_hide_email(array_shift($misc[0]))', $source);
// restore data
+ $source = preg_replace('!&&&misc&&&!e', 'array_shift($misc[0])', $source);
foreach ($tags as $tag) {
$source = preg_replace("!&&&{$tag}&&&!e", 'array_shift(${$tag}[0])', $source);
}