page: hide login class sections in all contents
authorMischa POSLAWSKY <perl@shiar.org>
Fri, 25 Jan 2019 23:47:41 +0000 (00:47 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Sat, 2 Mar 2019 14:50:53 +0000 (15:50 +0100)
Extend user-dependent classes .login/.logout in menu
to generic templating so any page can include optional parts.

page.inc.php
page.php

index 1253338db4707fe6f56e4f6ff424c628242ad678..b6723e9917c629b4483456281b3ff636276b0809 100644 (file)
@@ -33,12 +33,6 @@ $nav = preg_replace_callback('{<a href="([^"]+)">(.*?)</a>}', function ($m) {
        $html = $request == $m[1] ? $m[2] : $m[0]; # text or full link
        return $m[1] == substr($request, 0, strlen($m[1])) ? "<b>$html</b>" : $html;
 }, $nav);
-if (!empty($User)) {
-       $nav = preg_replace('{\s*<li class="logout">.*?</li>}', '', $nav);
-}
-else {
-       $nav = preg_replace('{\s*<li class="login">.*?</li>}', '', $nav);
-}
 print $nav;
 print "</header>\n\n";
 
index 9c88e79adef63baae3a0c04efad458e186108077..bca7a6745e7e9809e5b8c746818c5041933a54b9 100644 (file)
--- a/page.php
+++ b/page.php
@@ -52,6 +52,11 @@ function getoutput($blocks = [])
                }
        }
 
+       # keep either login or logout parts depending on user level
+       global $User;
+       $hideclass = empty($User) ? 'login' : 'logout';
+       $doc = preg_replace('{\s*<(p|li|span) class="'.$hideclass.'">.*?</\1>}s', '', $doc);
+
        return preg_replace_callback(
                '{ (?<! <!--BLOCK: ) \[\[ ([^] ]+) ([^]]*) \]\] }x',
                function ($sub) use ($blocks) {