edit/head: move admin preparation to separate include
[minimedit.git] / edit / head.inc.php
diff --git a/edit/head.inc.php b/edit/head.inc.php
new file mode 100644 (file)
index 0000000..5c056a7
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+if (!isset($Page->raw)) {
+       # open bottom template as initial contents
+       $template = 'template.inc.html';
+       if ($Page->handler and file_exists("{$Page->handler}/$template")) {
+               $template = "{$Page->handler}/$template";
+       }
+       $Page->raw($template);
+       $Page->meta['article:published_time'] = date('Y-m-d h:i:s O');
+       $Page->meta['article:author'] = '/' . $User->dir;
+       $Page->body = NULL;
+}
+
+if (isset($Page->raw)) {
+       # restore meta tags in static contents for editing
+       foreach (array_reverse($Page->meta) as $metaprop => $val) {
+               $Page->raw = sprintf(
+                       '<meta property="%s" content="%s">'."\n",
+                       $metaprop, $val
+               ) . $Page->raw;
+       }
+}
+
+$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();
+