page: apply placeholder replacement to all page output
[minimedit.git] / page.php
index c6eee87fbacef892ca0b21df79a97fd203de0b1c..2c3a68ae4e172c86524bbe91004c551bec0794b3 100644 (file)
--- a/page.php
+++ b/page.php
@@ -26,7 +26,12 @@ function getoutput($blocks = [])
                '< \[\[ ([^]]*) \]\] >x',
                function ($sub) use ($blocks) {
                        list ($placeholder, $name) = $sub;
-                       $html = $blocks[$name];
+                       if (isset($blocks[$name])) {
+                               $html = $blocks[$name];
+                       }
+                       else {
+                               $html = '<strong class="warn"><em>'.$name.'</em> ontbreekt</strong>';
+                       }
                        return sprintf('<!--BLOCK:%s-->%s<!--/-->',
                                is_numeric($name) ? '' : $placeholder, # edit replacement
                                preg_replace('{<!--[^-]*-->}', '', $html) # contents
@@ -92,7 +97,7 @@ while (TRUE) {
                $PageAccess = $Page;
        }
 
-       if (file_exists("$Page.php")) {
+       if (file_exists("$Page/index.php")) {
                break;
        }
 
@@ -125,19 +130,22 @@ print "</div>\n\n";
 
 # execute dynamic code
 
+$Place = [
+       'user'  => $User['name'],
+       'url'   => htmlspecialchars($_SERVER['REQUEST_URI']),
+];
+
 if ($Page) {
-       $found |= require "./$Page.php";
+       $found |= require "./$Page/index.php";
 }
 
 # global html
 
-include_once 'page.inc.php';
-
 if (!$found) {
        # no resulting output
        http_response_code(404);
-       ob_start();
        @require "./404.html";
-       print getoutput([ 'url' => htmlspecialchars($_SERVER['REQUEST_URI']) ]);
 }
 
+include_once 'page.inc.php';
+