head: load edit script before body
[minimedit.git] / page.inc.php
1 <?php
2 if ($User and $User->admin("edit {$Page->link}")) {
3         $ckesrc = '/lib/ckeditor'; # local install
4         if (!file_exists(DOCROOT . $ckesrc)) {
5                 $ckesrc = '//cdn.ckeditor.com/4.15.1/full-all'; # remote fallback
6         }
7         ob_start();
8         printf("<script>var ckesrc = '%s'</script>\n", "$ckesrc/ckeditor.js");
9         print '<script src="/edit/page.js"></script>'."\n";
10         $Page->head = ob_get_clean();
11 }
12
13 include_once 'head.inc.php';
14
15 print "<header>\n";
16 $menu = new ArchiveArticle('menu.inc.html');
17 ob_start();
18 if ($User and property_exists($User, 'login') and $User->login) {
19         print '<div class="login"><p>';
20         printf('<span title="ingelogd">%s <a href="%s">%s</a></span>',
21                 '<span class="icon icon-user">&#x1F464;</span>',
22                 '/login', $User->login
23         );
24         if ($User->admin("edit {$Page->link}")) {
25                 $editpage = $Page->link;
26                 if (is_dir($editpage)) {
27                         if (file_exists("$editpage/index.html")) {
28                                 $editpage .= '/index.html';
29                         }
30                 }
31                 else {
32                         $editpage .= '.html';
33                 }
34                 if (!file_exists($editpage) or is_writable($editpage)) {
35                         print ' <a class="icon icon-edit" href="#edit" title="wijzig">&#x270D;</a>';
36                 }
37         }
38         print "</p></div>\n";
39 }
40 $menu->place['login'] = ob_get_clean();
41 $nav = $menu->render();
42
43 $nav = preg_replace_callback('{<a href="([^"]+)">(.*?)</a>}', function ($m) {
44         $request = $_SERVER['REQUEST_URI'];
45         $html = $request == $m[1] ? $m[2] : $m[0]; # text or full link
46         return $m[1] == substr($request, 0, strlen($m[1])) ? "<b>$html</b>" : $html;
47 }, $nav);
48 print $nav;
49 print "</header>\n\n";
50
51 print $Page->render();
52
53 register_shutdown_function(function () {
54         print '<footer>';
55         @include 'footer.inc.html';
56         print "</footer>\n";
57         print "</body></html>\n";
58 });
59