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