Joshua Ramon Enslin
a49746ab10
Added editing pages for footer, banner, aside. Added page overview. Added public page. Added settings page. Added generator for embed pseudocodes.
193 lines
5.3 KiB
PHP
193 lines
5.3 KiB
PHP
<?PHP
|
|
/**
|
|
* Functions for forming the HTML output.
|
|
*/
|
|
|
|
|
|
/**
|
|
* Prints the head element of an HTML page
|
|
*
|
|
* @param string $page Name / ID of the current page.
|
|
* @param string $title Title of the page.
|
|
* @param string $icon The icon of the website.
|
|
*
|
|
* @return string
|
|
*/
|
|
function printBackendHead(string $page = "home", string $title = "Home", string $icon = ""):string {
|
|
|
|
$output = '<!DOCTYPE html>
|
|
<html lang="en" id="' . $page . '">
|
|
<head>
|
|
|
|
<!-- Content Security policies -->
|
|
<meta http-equiv="Content-Security-Policy" content="default-src \'none\'; script-src \'self\'; connect-src \'self\'; img-src \'self\' data: blob:; style-src \'self\' \'unsafe-inline\'; font-src \'self\';" />
|
|
|
|
<title>' . $title . '</title>
|
|
<link rel="stylesheet" type="text/css" href="themes/imports.css">
|
|
<link rel="stylesheet" type="text/css" href="themes/default/default.css">
|
|
<meta http-equiv="content-type" content="text/html;charset=utf-8">';
|
|
|
|
if ($icon) {
|
|
$output .= '
|
|
<link rel="shortcut icon" sizes="16x16 32x32" href="' . $icon . '" />
|
|
';
|
|
}
|
|
|
|
$output .= '
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
|
|
<script type="text/javascript" src="./js/newToolTip.js"></script>
|
|
<script type="text/javascript" src="./js/main.js"></script>
|
|
<script type="text/javascript" src="../js/main.js"></script>
|
|
|
|
</head>
|
|
<body>
|
|
';
|
|
|
|
if (isset($_SESSION['editHistory'])) {
|
|
$output .= "<p class='editLine ".$_SESSION['editHistory'][0]."'>".$_SESSION['editHistory'][1]."</p>";
|
|
unset($_SESSION['editHistory']);
|
|
}
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
/**
|
|
* Prints the header element of an HTML page.
|
|
*
|
|
* @param string $title Title of the page.
|
|
* @param string $helpText Additional help text for the page. Optional.
|
|
*
|
|
* @return string
|
|
*/
|
|
function printBackendHeader(string $title = "Home", string $helpText = ""):string {
|
|
|
|
$output = '
|
|
|
|
<header id="mainHeader">
|
|
|
|
<span id="toggleNavigation"></span>
|
|
<h1>' . $title . '</h1>
|
|
<span>
|
|
';
|
|
if ($helpText) $output .= '
|
|
<span class="newToolTipTag" data-for="pageHelp" id="helpText">
|
|
<span>?</span>
|
|
<div class="newToolTip" id="tooltip_pageHelp" data-title="' . $title . '">
|
|
' . $helpText . '
|
|
</div>
|
|
</span>';
|
|
$output .= '
|
|
<span id="uploadFile"></span>
|
|
<a id="logoutLink" href="./?logout"></a>
|
|
</span>
|
|
|
|
</header>
|
|
';
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
/**
|
|
* Returns HTML code for a help icon and its attached tooltip.
|
|
*
|
|
* @param string $tooltipName Name / ID of the tooltip to generate.
|
|
* @param string $title Title to print in the tooltip.
|
|
* @param string $helpText Text to print into the tooltip.
|
|
*
|
|
* @return string
|
|
*/
|
|
function generateHelpToolTip(string $tooltipName, string $title, string $helpText):string {
|
|
$output = '
|
|
<span class="newToolTipTag helpToolTip" data-for="' . $tooltipName . '">
|
|
<div class="newToolTip" id="tooltip_' . $tooltipName . '" data-title="' . $title . '">
|
|
' . $helpText . '
|
|
</div>
|
|
</span>';
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Prints the navigation for the backend.
|
|
*
|
|
* @param string[] $translations Translation variable.
|
|
*
|
|
* @return string
|
|
*/
|
|
function printBackendNav(array $translations):string {
|
|
|
|
$output = '
|
|
|
|
<nav id="mainNav">
|
|
|
|
<div>
|
|
<span>' . $translations['edit'] . '</span>
|
|
<div>
|
|
<a href=".">' . $translations['start'] . '</a>
|
|
</div>
|
|
<div>
|
|
<a href="pages.php">' . $translations['pages'] . '</a>
|
|
<a href="page.php"> + </a>';
|
|
if (isset($GLOBALS['pages']) and is_array($GLOBALS['pages'])) $output .= '
|
|
<a href="pages.php">' . count($GLOBALS['pages']) . '</a>';
|
|
$output .= '
|
|
</div>
|
|
<div>
|
|
<a href="editHTMLPage.php?id=banner">' . $translations['banner'] . '</a>
|
|
</div>
|
|
<div>
|
|
<a href="editHTMLPage.php?id=footer">' . $translations['footer'] . '</a>
|
|
</div>
|
|
<div>
|
|
<a href="editHTMLPage.php?id=aside">' . $translations['aside'] . '</a>
|
|
</div>
|
|
</div>
|
|
';
|
|
|
|
if ($_SESSION['admin']) {
|
|
$output .= '
|
|
<div>
|
|
<span>' . $translations['administration'] . '</span>
|
|
<div>
|
|
<a href="users.php#listUsers">' . $translations['users'] . '</a>
|
|
<a href="users.php#addUser"> + </a>';
|
|
if (isset($GLOBALS['users']) and is_array($GLOBALS['users'])) $output .= '
|
|
<a href="users.php#listUsers">' . count($GLOBALS['users']) . '</a>';
|
|
$output .= '
|
|
</div>
|
|
<div>
|
|
<a href="settings.php">' . $translations['settings'] . '</a>
|
|
</div>
|
|
</div>
|
|
';
|
|
}
|
|
|
|
$output .= '
|
|
|
|
</nav>
|
|
';
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
/**
|
|
* Prints the finishing elements of an HTML page.
|
|
*
|
|
* @return string
|
|
*/
|
|
function printBackendEnd():string {
|
|
|
|
$output = '
|
|
</body>
|
|
</html>';
|
|
|
|
return $output;
|
|
|
|
}
|
|
|
|
|
|
?>
|