New member class for immaterial entities on Xnet
[platal.git] / classes / platalpage.php
index ab83066..d96d415 100644 (file)
@@ -55,6 +55,7 @@ class PlatalPage extends Smarty
 
         $this->register_prefilter('at_to_globals');
         $this->register_prefilter('trimwhitespace');
+        $this->register_prefilter('form_force_encodings');
         $this->addJsLink('xorg.js');
     }
 
@@ -96,6 +97,7 @@ class PlatalPage extends Smarty
         }
         $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);
@@ -262,10 +264,21 @@ function trimwhitespace($source, &$smarty)
 }
 
 // }}}
+// {{{
+
+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>'; 
 }
 
@@ -284,8 +297,8 @@ function hide_emails($source, &$smarty)
     $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);
-    $source = preg_replace("!<[^>]+[\"'][^\"']*[-a-z0-9_.]+@[-a-z0-9_.]+[^\"']*[\"'][^>]*>!is", '&&&misc&&&', $source);
+    preg_match_all("!<[^>]+[-a-z0-9_.]+@[-a-z0-9_.]+[^>]+>!is", $source, $misc);
+    $source = preg_replace("!<[^>]+[-a-z0-9_.]+@[-a-z0-9_.]+[^>]+>!is", '&&&misc&&&', $source);
 
     //catch !
     $source = preg_replace('!([-a-z0-9_.]+@[-a-z0-9_.]+)!ie', '_hide_email("\1")', $source);