head: load edit script before body
[minimedit.git] / page.inc.php
index 137d266267fab1905b74492b3e556e3b77722684..17e7c807269f444df3a9e8589bee7ff674a533b3 100644 (file)
@@ -1,11 +1,19 @@
 <?php
-$body = getoutput(@$Place);
+if ($User and $User->admin("edit {$Page->link}")) {
+       $ckesrc = '/lib/ckeditor'; # local install
+       if (!file_exists(DOCROOT . $ckesrc)) {
+               $ckesrc = '//cdn.ckeditor.com/4.15.1/full-all'; # remote fallback
+       }
+       ob_start();
+       printf("<script>var ckesrc = '%s'</script>\n", "$ckesrc/ckeditor.js");
+       print '<script src="/edit/page.js"></script>'."\n";
+       $Page->head = ob_get_clean();
+}
 
 include_once 'head.inc.php';
 
 print "<header>\n";
-ob_start();
-include 'menu.inc.html';
+$menu = new ArchiveArticle('menu.inc.html');
 ob_start();
 if ($User and property_exists($User, 'login') and $User->login) {
        print '<div class="login"><p>';
@@ -29,7 +37,8 @@ if ($User and property_exists($User, 'login') and $User->login) {
        }
        print "</p></div>\n";
 }
-$nav = getoutput(['login' => ob_get_clean()]);
+$menu->place['login'] = ob_get_clean();
+$nav = $menu->render();
 
 $nav = preg_replace_callback('{<a href="([^"]+)">(.*?)</a>}', function ($m) {
        $request = $_SERVER['REQUEST_URI'];
@@ -39,23 +48,12 @@ $nav = preg_replace_callback('{<a href="([^"]+)">(.*?)</a>}', function ($m) {
 print $nav;
 print "</header>\n\n";
 
-print $body;
+print $Page->render();
 
 register_shutdown_function(function () {
        print '<footer>';
        @include 'footer.inc.html';
        print "</footer>\n";
-
-       global $User, $Page;
-       if ($User and $User->admin("edit {$Page->link}")) {
-               $ckesrc = '/lib/ckeditor'; # local install
-               if (!file_exists(DOCROOT . $ckesrc)) {
-                       $ckesrc = '//cdn.ckeditor.com/4.15.1/full-all'; # remote fallback
-               }
-               printf("<script>var ckesrc = '%s'</script>\n", "$ckesrc/ckeditor.js");
-               print '<script src="/edit/page.js"></script>'."\n";
-       }
-
        print "</body></html>\n";
 });