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