Fix accent sensitivity in autocompletion
[platal.git] / classes / platalpage.php
index 950f73e..dc9358e 100644 (file)
@@ -92,6 +92,7 @@ abstract class PlatalPage extends Smarty
         $this->register_prefilter('trimwhitespace');
         $this->register_prefilter('form_force_encodings');
         $this->register_prefilter('wiki_include');
+        $this->register_prefilter('if_has_perms');
         $this->assign('xorg_errors', $this->_errors);
         $this->assign('xorg_failure', $this->_failure);
         $this->assign('globals', $globals);
@@ -120,8 +121,8 @@ abstract class PlatalPage extends Smarty
             $this->assign('simple', true);
 
           case SKINNED:
-          $this->register_modifier('escape_html', 'escape_html');
-          $this->default_modifiers = Array('@escape_html');
+            $this->register_modifier('escape_html', 'escape_html');
+            $this->default_modifiers = Array('@escape_html');
         }
         $this->register_outputfilter('hide_emails');
         $this->addJsLink('wiki.js');
@@ -136,20 +137,24 @@ abstract class PlatalPage extends Smarty
             exit;
         }
 
-        if ($globals->debug & DEBUG_BT) {
-            PlBacktrace::clean();
-            $this->assign_by_ref('backtraces', PlBacktrace::$bt);
-        }
-
         $this->assign('validate', true);
         if (!($globals->debug & DEBUG_SMARTY)) {
             error_reporting(0);
         }
+        $START_SMARTY = microtime(true);
         $result = $this->fetch($skin);
-        $ttime  = sprintf('Temps total: %.02fs - Mémoire totale : %dKo<br />', microtime(true) - $TIME_BEGIN
-                                                                                , memory_get_peak_usage(true) / 1024);
-        $replc  = "<span class='erreur'>VALIDATION HTML INACTIVE</span><br />";
+        $ttime  = sprintf('Temps total: %.02fs (Smarty %.02fs) - Mémoire totale : %dKo<br />',
+                          microtime(true) - $TIME_BEGIN, microtime(true) - $START_SMARTY,
+                          memory_get_peak_usage(true) / 1024);
+        if ($globals->debug & DEBUG_BT) {
+            PlBacktrace::clean();
+            $this->assign_by_ref('backtraces', PlBacktrace::$bt);
+            $result = str_replace('@@BACKTRACE@@', $this->fetch('skin/common.backtrace.tpl'), $result);
+        } else {
+            $result = str_replace('@@BACKTRACE@@', '', $result);
+        }
 
+        $replc  = "<span class='erreur'>VALIDATION HTML INACTIVE</span><br />";
         if ($globals->debug & DEBUG_VALID) {
             $fd = fopen($this->compile_dir."/valid.html","w");
             fwrite($fd, $result);
@@ -349,6 +354,19 @@ function wiki_include($source, &$smarty)
 }
 
 // }}}
+//{{{ function hasPerm
+
+function if_has_perms($source, &$smarty)
+{
+    $source = preg_replace('/\{if([^}]*) (\!?)hasPerms\(([^)]+)\)([^}]*)\}/',
+                           '{if\1 \2$smarty.session.perms->hasFlagCombination(\3)\4}',
+                           $source);
+    return preg_replace('/\{if([^}]*) (\!?)hasPerm\(([^)]+)\)([^}]*)\}/',
+                        '{if\1 \2($smarty.session.perms && $smarty.session.perms->hasFlag(\3))\4}',
+                        $source);
+}
+
+// }}}
 // {{{
 
 function form_force_encodings($source, &$smarty)