Rudimentary navigation generation
This commit is contained in:
parent
7ab664e18f
commit
622f99adff
4 changed files with 56 additions and 36 deletions
|
@ -4,6 +4,7 @@ namespace AntCMS;
|
|||
|
||||
use AntCMS\AntMarkdown;
|
||||
use AntCMS\AntKeywords;
|
||||
use AntCMS\AntPages;
|
||||
|
||||
class AntCMS
|
||||
{
|
||||
|
@ -24,6 +25,7 @@ class AntCMS
|
|||
$pageTemplate = str_replace('<!--AntCMS-Description-->', $content['description'], $pageTemplate);
|
||||
$pageTemplate = str_replace('<!--AntCMS-Author-->', $content['author'], $pageTemplate);
|
||||
$pageTemplate = str_replace('<!--AntCMS-Keywords-->', $content['keywords'], $pageTemplate);
|
||||
$pageTemplate = str_replace('<!--AntCMS-Navigation-->', AntPages::generateNavigation(null), $pageTemplate);
|
||||
|
||||
$end_time = microtime(true);
|
||||
$elapsed_time = round($end_time - $start_time, 4);
|
||||
|
@ -51,7 +53,7 @@ class AntCMS
|
|||
if (is_dir($pagePath)) {
|
||||
$pagePath = $pagePath . '/index.md';
|
||||
} else {
|
||||
$pagePath = $pagePath . '.md';
|
||||
$pagePath = (file_exists($pagePath)) ? $pagePath : $pagePath . '.md';
|
||||
}
|
||||
|
||||
if (file_exists($pagePath)) {
|
||||
|
|
|
@ -18,6 +18,7 @@ class AntConfig
|
|||
'username' => '',
|
||||
),
|
||||
'debug' => true,
|
||||
'baseURL' => $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']),
|
||||
);
|
||||
|
||||
AntYaml::saveFile(antConfigFile, $defaultOptions);
|
||||
|
|
|
@ -4,6 +4,7 @@ namespace AntCMS;
|
|||
|
||||
use AntCMS\AntCMS;
|
||||
use AntCMS\AntYaml;
|
||||
use AntCMS\AntConfig;
|
||||
|
||||
class AntPages
|
||||
{
|
||||
|
@ -35,5 +36,24 @@ class AntPages
|
|||
|
||||
public static function getPages()
|
||||
{
|
||||
return AntYaml::parseFile(antPagesList);
|
||||
}
|
||||
|
||||
public static function generateNavigation($navTemplate = null)
|
||||
{
|
||||
$currentConfig = AntConfig::currentConfig();
|
||||
$baseURL = $currentConfig['baseURL'];
|
||||
$navTemplate =
|
||||
'<li class="nav-item active">
|
||||
<a class="nav-link" href="<!--AntCMS-PageLink-->"><!--AntCMS-PageTitle--></a>
|
||||
</li>';
|
||||
$navHTML = '';
|
||||
foreach (AntPages::getPages() as $page) {
|
||||
$url = $_SERVER['REQUEST_SCHEME'] . "://" . str_replace('//', '/',$baseURL . $page['functionalPagePath']);
|
||||
$navEntry = str_replace('<!--AntCMS-PageLink-->', $url, $navTemplate);
|
||||
$navEntry = str_replace('<!--AntCMS-PageTitle-->', $page['pageTitle'], $navEntry);
|
||||
$navHTML .= $navEntry;
|
||||
}
|
||||
return $navHTML;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,42 +1,39 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="<!--AntCMS-Description-->">
|
||||
<meta name="author" content="<!--AntCMS-Author-->">
|
||||
<meta name="keywords" content="<!--AntCMS-Keywords-->">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="<!--AntCMS-Description-->">
|
||||
<meta name="author" content="<!--AntCMS-Author-->">
|
||||
<meta name="keywords" content="<!--AntCMS-Keywords-->">
|
||||
|
||||
<title><!--AntCMS-Title--></title>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<a class="navbar-brand" href="#">My Website</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="#">Home</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">About</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css"
|
||||
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
|
||||
|
||||
<!-- Content -->
|
||||
<div class="container mt-5">
|
||||
<!--AntCMS-Body-->
|
||||
<!--AntCMS-Debug-->
|
||||
<title><!--AntCMS-Title--></title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<a class="navbar-brand" href="#">My Website</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav"
|
||||
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav">
|
||||
<!--AntCMS-Navigation-->
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</nav>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="container mt-5">
|
||||
<!--AntCMS-Body-->
|
||||
<!--AntCMS-Debug-->
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
Loading…
Add table
Reference in a new issue