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

109 lines
2.1 KiB
PHP
Raw Normal View History

2018-06-12 07:53:27 +02:00
<?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;
}
2018-06-12 07:53:27 +02:00
// Include functions and settings.
require __DIR__ . "/inc/functions.php";
// Ensure working environment for frontend.
2018-06-12 07:53:27 +02:00
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)
2018-06-12 07:53:27 +02:00
echo printPublicEnd();
2018-06-12 07:53:27 +02:00
?>