login: templating support for warning message
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 21 Apr 2018 12:37:27 +0000 (14:37 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Sat, 21 Apr 2018 12:48:14 +0000 (14:48 +0200)
login.inc.php
login.php
page.php

index 4d05dedc5fa670d4a20b253df4322a86d334bd6e..9c2a604448b9c52e11a147ad175f9ca7af7cce51 100644 (file)
@@ -1,10 +1,5 @@
 <h2>Inloggen</h2>
 
-<?php
-if (isset($message)) {
-       printf('<p class="warn">%s</p>'."\n\n", $message);
-}
-?>
 <form action="" method="post">
        <input id="login" name="login" placeholder="Gebruikersnaam" value="<?php
                if (isset($_POST['login'])) print htmlspecialchars($_REQUEST['login']);
index 714b5c56d096638fb1fb46ac02989ebddd43e238..bcc2856bbae3c787f8375337dd7ff1dba70d55c4 100644 (file)
--- a/login.php
+++ b/login.php
@@ -18,6 +18,8 @@ elseif (isset($_GET['logout'])) {
 if (empty($User)) {
        ob_clean();
        require_once 'login.inc.php';
+       $part = ['warn' => $message];
+       print getoutput($part);
        return TRUE;
 }
 
index 20f8244ac0684bd973df5e6bd9a924d5e9ad8695..edb074e158348da910b1c6b7d80ae1a3fb4ae7d2 100644 (file)
--- a/page.php
+++ b/page.php
@@ -11,7 +11,17 @@ function getoutput($blocks = [])
                        preg_replace('{<!--[^-]*-->}', '', $html)
                );
        }
-       return str_replace(array_keys($rep), array_values($rep), ob_get_clean());
+       $doc = ob_get_clean();
+       if (!empty($blocks['warn'])) {
+               $warn = '<p class="warn">[[warn]]</p>';
+               if ($offset = strpos($doc, '</h2>')) {
+                       $doc = substr_replace($doc, "\n\n".$warn, $offset + 5, 0);
+               }
+               else {
+                       $doc = $warn . "\n\n" . $doc;
+               }
+       }
+       return str_replace(array_keys($rep), array_values($rep), $doc);
 }
 
 # custom error handling