page: strip nested placeholder indicators
[minimedit.git] / page.php
index 3c0977ebf776b78590b646b7b5107fc9f5159abf..8b264bf7e35e6512e6ac2b6cebc8bfeeafa97f43 100644 (file)
--- a/page.php
+++ b/page.php
@@ -53,7 +53,7 @@ elseif (file_exists("$Page$Args.html")) {
        $found = include "./$Page$Args.html";
 }
 elseif (isset($User) and $User['admin']) {
-       $found = require './template.html';
+       $found = require (file_exists("$Page/template.html") ? "$Page/template.html" : './template.html');
 }
 
 print "</div>\n\n";
@@ -65,7 +65,10 @@ if ($Page) {
        {
                $rep = [];
                foreach ($blocks as $name => $html) {
-                       $rep["[[$name]]"] = "<!--BLOCK $name-->$html<!--/-->";
+                       $rep["[[$name]]"] = sprintf('<!--BLOCK:%s-->%s<!--/-->',
+                               is_numeric($name) ? '' : "[[$name]]",
+                               preg_replace('{<!--[^-]*-->}', '', $html)
+                       );
                }
                return str_replace(array_keys($rep), array_values($rep), ob_get_clean());
        }