This repository has been archived on 2022-07-28. You can view files and clone it, but cannot push or open issues or pull requests.
md-cms/index.php
Joshua Ramon Enslin a49746ab10 Added editing function for pages (using tinymce).
Added editing pages for footer, banner, aside.
Added page overview.
Added public page.
Added settings page.
Added generator for embed pseudocodes.
2018-06-13 20:07:24 +02:00

109 lines
2.1 KiB
PHP

<?PHP
/**
* The main display file for standalone pages.
*
* @author Joshua Ramon Enslin <joshua@jrenslin.de>
*/
// Check validity of request.
if (isset($_GET['id']) and !file_exists(__DIR__ . "/data/static/" . $_GET['id'] . ".json")) {
echo printErrorPage("File does not exist.");
return;
}
// Include functions and settings.
require __DIR__ . "/inc/functions.php";
// Ensure working environment for frontend.
ensureEnvironment();
$pages = loadPublicPages(); // Load overview of pages.
/*
* Load data.
*/
/*
* @var array $tPage The variable contains the main data on the displayed page.
*/
$tPage = [];
if (isset($_GET['id'])) $id = $_GET['id'];
else if (file_exists(__DIR__ . "/data/static/" . $settings['startPage'] . ".json")) {
$id = $settings['startPage'];
}
else {
echo printErrorPage("This file does not exist.");
return;
}
$tPage = json_decode(file_get_contents(__DIR__ . "/data/static/" . $id . ".json"), true);
if (!$tPage['public']) {
if (!(isset($_GET['preview']) and checkPreviewAccess())) {
echo printErrorPage("This page is not public."); return;
}
}
/*
* Output
*/
echo printPublicHead($id, $settings['pageTitle'], $settings['logo']);
echo printPublicHeader($settings['pageTitle']);
echo printStaticPagePart("banner", "header"); // Print aside (if need be)
echo '<nav>';
echo buildPageOrder(
$pages,
function() {
return "<ul>";
},
function() {
return "</ul>";
},
function($inputs, string $toAdd) {
$output = "
<li";
if (!$inputs['public']) $output .= " class='notPublic'";
$output .= ">
<a href='./?id=" . $inputs['id'] . "'>" . $inputs['title'] . "</a>
$toAdd
</li>
";
return $output;
}
);
echo '</nav>';
echo '
<div id="mainWrapper">
';
// Print main content
echo '
<main>';
echo '<h1>' . $tPage['title'] . '</h1>';
echo checkForEmbeds($tPage['content']);
echo '
</main>
';
echo printStaticPagePart("aside", "aside"); // Print aside (if need be)
echo '
</div>';
echo printStaticPagePart("footer", "footer"); // Print footer (if need be)
echo printPublicEnd();
?>