update to bootstrap 5.2.3 continued
This commit is contained in:
@ -335,9 +335,14 @@ class Plugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function loadFooterNav() {
|
public function loadFooterNav() {
|
||||||
if ( !empty( $this->footer_links ) ) {
|
if ( !empty( $this->contact_footer_links ) ) {
|
||||||
foreach( $this->footer_links as $key => $link ) {
|
foreach( $this->contact_footer_links as $key => $link ) {
|
||||||
Navigation::addLink( App::FOOTER_MENU_NAME, $link );
|
Navigation::addLink( App::CONTACT_FOOTER_MENU_NAME, $link );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( !empty( $this->info_footer_links ) ) {
|
||||||
|
foreach( $this->info_footer_links as $key => $link ) {
|
||||||
|
Navigation::addLink( App::INFO_FOOTER_MENU_NAME, $link );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
120
app/css/main.css
120
app/css/main.css
@ -13,16 +13,10 @@ html {
|
|||||||
position: relative;
|
position: relative;
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
}
|
}
|
||||||
body {
|
|
||||||
margin-top: 100px;
|
|
||||||
}
|
|
||||||
pre {
|
pre {
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
@media ( min-width: 768px ) {
|
@media ( min-width: 768px ) {
|
||||||
body {
|
|
||||||
margin-top: 75px;
|
|
||||||
}
|
|
||||||
.main {
|
.main {
|
||||||
padding-right: 40px;
|
padding-right: 40px;
|
||||||
padding-left: 40px;
|
padding-left: 40px;
|
||||||
@ -579,3 +573,117 @@ ul.alert-dropdown {
|
|||||||
background: inherit;
|
background: inherit;
|
||||||
left: 20px;
|
left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-image: linear-gradient(180deg, #eee, #fff 100px, #fff);
|
||||||
|
}
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.bd-placeholder-img-lg {
|
||||||
|
font-size: 3.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.pricing-header {
|
||||||
|
max-width: 700px;
|
||||||
|
}
|
||||||
|
.pricing-container {
|
||||||
|
max-width: 960px;
|
||||||
|
}
|
||||||
|
.bd-placeholder-img {
|
||||||
|
font-size: 1.125rem;
|
||||||
|
text-anchor: middle;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
.b-example-vr {
|
||||||
|
flex-shrink: 0;
|
||||||
|
width: 1.5rem;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
.bi {
|
||||||
|
vertical-align: -.125em;
|
||||||
|
fill: currentColor;
|
||||||
|
}
|
||||||
|
.form-control-dark {
|
||||||
|
border-color: var(--bs-gray);
|
||||||
|
}
|
||||||
|
.form-control-dark:focus {
|
||||||
|
border-color: #fff;
|
||||||
|
box-shadow: 0 0 0 .25rem rgba(255, 255, 255, .25);
|
||||||
|
}
|
||||||
|
.text-small {
|
||||||
|
font-size: 85%;
|
||||||
|
}
|
||||||
|
.dropdown-toggle {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
.b-example-divider {
|
||||||
|
height: 3rem;
|
||||||
|
background-color: rgba(0, 0, 0, .1);
|
||||||
|
border: solid rgba(0, 0, 0, .15);
|
||||||
|
border-width: 1px 0;
|
||||||
|
box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15);
|
||||||
|
}
|
||||||
|
.b-example-vr {
|
||||||
|
flex-shrink: 0;
|
||||||
|
width: 1.5rem;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
.nav-scroller {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
height: 2.75rem;
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
|
.nav-scroller .nav {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
margin-top: -1px;
|
||||||
|
overflow-x: auto;
|
||||||
|
text-align: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
.b-example-vr {
|
||||||
|
flex-shrink: 0;
|
||||||
|
width: 1.5rem;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
.feature-icon {
|
||||||
|
width: 4rem;
|
||||||
|
height: 4rem;
|
||||||
|
border-radius: .75rem;
|
||||||
|
}
|
||||||
|
.icon-link > .bi {
|
||||||
|
margin-top: .125rem;
|
||||||
|
margin-left: .125rem;
|
||||||
|
fill: currentcolor;
|
||||||
|
transition: transform .25s ease-in-out;
|
||||||
|
}
|
||||||
|
.icon-link:hover > .bi {
|
||||||
|
transform: translate(.25rem);
|
||||||
|
}
|
||||||
|
.icon-square {
|
||||||
|
width: 3rem;
|
||||||
|
height: 3rem;
|
||||||
|
border-radius: .75rem;
|
||||||
|
}
|
||||||
|
.text-shadow-1 {
|
||||||
|
text-shadow: 0 .125rem .25rem rgba(0, 0, 0, .25);
|
||||||
|
}
|
||||||
|
.text-shadow-2 {
|
||||||
|
text-shadow: 0 .25rem .5rem rgba(0, 0, 0, .25);
|
||||||
|
}
|
||||||
|
.text-shadow-3 {
|
||||||
|
text-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .25);
|
||||||
|
}
|
||||||
|
.card-cover {
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center center;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
.feature-icon-small {
|
||||||
|
width: 3rem;
|
||||||
|
height: 3rem;
|
||||||
|
}
|
@ -32,7 +32,7 @@ class Blog extends Plugin {
|
|||||||
'url' => '{ROOT_URL}admin/blog',
|
'url' => '{ROOT_URL}admin/blog',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $footer_links = [
|
public $info_footer_links = [
|
||||||
[
|
[
|
||||||
'text' => 'Blog',
|
'text' => 'Blog',
|
||||||
'url' => '{ROOT_URL}blog/index',
|
'url' => '{ROOT_URL}blog/index',
|
||||||
|
@ -49,7 +49,7 @@ class Bugreport extends Plugin {
|
|||||||
'default' => false,
|
'default' => false,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $footer_links = [
|
public $contact_footer_links = [
|
||||||
[
|
[
|
||||||
'text' => 'Bug Report',
|
'text' => 'Bug Report',
|
||||||
'url' => '{ROOT_URL}bugreport',
|
'url' => '{ROOT_URL}bugreport',
|
||||||
|
@ -45,7 +45,7 @@ class Feedback extends Plugin {
|
|||||||
'default' => false,
|
'default' => false,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $footer_links = [
|
public $contact_footer_links = [
|
||||||
[
|
[
|
||||||
'text' => 'Feedback',
|
'text' => 'Feedback',
|
||||||
'url' => '{ROOT_URL}feedback',
|
'url' => '{ROOT_URL}feedback',
|
||||||
|
@ -48,9 +48,8 @@ class Messages extends Plugin {
|
|||||||
} else {
|
} else {
|
||||||
Components::set( 'RECENT_MESSAGES', '' );
|
Components::set( 'RECENT_MESSAGES', '' );
|
||||||
}
|
}
|
||||||
|
|
||||||
App::$topNavRight .= '{RECENT_MESSAGES}';
|
App::$topNavRight .= '{RECENT_MESSAGES}';
|
||||||
App::$topNavRightDropdown .= '<li><a href="{ROOT_URL}messages"><i class="fa fa-fw fa-envelope"></i> Inbox {MBADGE}</a></li>';
|
App::$topNavRightDropdown .= '<li><a href="{ROOT_URL}messages" class="dropdown-item"><i class="fa fa-fw fa-envelope"></i> Inbox {MBADGE}</a></li>';
|
||||||
self::$loaded = true;
|
self::$loaded = true;
|
||||||
}
|
}
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
<li class="dropdown nav-item">
|
<div class="dropdown nav-item mx-2">
|
||||||
<a
|
<a
|
||||||
href="#"
|
href="#"
|
||||||
class="nav-link dropdown-toggle"
|
class="d-block dropdown-toggle nav-link"
|
||||||
id="messagesDropdown"
|
id="messagesDropdown"
|
||||||
|
|
||||||
data-bs-toggle="dropdown"
|
data-bs-toggle="dropdown"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="fa fa-fw fa-envelope"></i>{MBADGE}
|
<i class="fa fa-fw fa-envelope"></i><span class="ml-3">{MBADGE}</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="messagesDropdown">
|
<ul class="dropdown-menu text-small" aria-labelledby="messagesDropdown">
|
||||||
<li class="message-header">
|
<li class="message-header">
|
||||||
<div class="media">
|
<div class="media">
|
||||||
<div class="media-body text-center" style="padding-bottom: 10px; padding-top: 10px">
|
<div class="media-body text-center" style="padding-bottom: 10px; padding-top: 10px">
|
||||||
@ -44,7 +43,7 @@
|
|||||||
</li>
|
</li>
|
||||||
{/ALT}
|
{/ALT}
|
||||||
<li class="message-footer text-center">
|
<li class="message-footer text-center">
|
||||||
<a href="{ROOT_URL}messages">Read All New Messages</a>
|
<a href="{ROOT_URL}messages" class="dropdown-item">Read All New Messages</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</div>
|
@ -56,7 +56,7 @@ class Notifications extends Plugin {
|
|||||||
Components::set( 'recentNotifications', '' );
|
Components::set( 'recentNotifications', '' );
|
||||||
}
|
}
|
||||||
App::$topNavRight .= '{recentNotifications}';
|
App::$topNavRight .= '{recentNotifications}';
|
||||||
App::$topNavRightDropdown .= '<li><a href="{ROOT_URL}notifications"><i class="fa fa-fw fa-bell"></i> Notifications {NBADGE}</a></li>';
|
App::$topNavRightDropdown .= '<li><a href="{ROOT_URL}notifications" class="dropdown-item"><i class="fa fa-fw fa-bell"></i> Notifications {NBADGE}</a></li>';
|
||||||
self::$loaded = true;
|
self::$loaded = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
<li class="dropdown nav-item">
|
<div class="dropdown nav-item mx-2">
|
||||||
<a
|
<a
|
||||||
href="#"
|
href="#"
|
||||||
class="nav-link dropdown-toggle"
|
class="d-block dropdown-toggle nav-link"
|
||||||
id="notiificationsDropdown"
|
id="notiificationsDropdown"
|
||||||
data-bs-toggle="dropdown"
|
data-bs-toggle="dropdown"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="fa fa-fw fa-bell"></i>{NBADGE}
|
<i class="fa fa-fw fa-bell"></i><span class="ml-3">{MBADGE}</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-menu-end message-dropdown" aria-labelledby="notiificationsDropdown">
|
<ul class="dropdown-menu text-small" aria-labelledby="notiificationsDropdown">
|
||||||
{LOOP}
|
{LOOP}
|
||||||
<li class="message-preview">
|
<li class="message-preview">
|
||||||
<a href="{ROOT_URL}notifications">
|
<a href="{ROOT_URL}notifications">
|
||||||
@ -31,7 +31,7 @@
|
|||||||
</li>
|
</li>
|
||||||
{/ALT}
|
{/ALT}
|
||||||
<li class="message-footer text-center">
|
<li class="message-footer text-center">
|
||||||
<a href="{ROOT_URL}notifications">See All Notifications</a>
|
<a href="{ROOT_URL}notifications" class="dropdown-item">See All Notifications</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</div>
|
@ -21,6 +21,7 @@ use TheTempusProject\Houdini\Classes\Views;
|
|||||||
use TheTempusProject\TheTempusProject as App;
|
use TheTempusProject\TheTempusProject as App;
|
||||||
|
|
||||||
class Subscribe extends Plugin {
|
class Subscribe extends Plugin {
|
||||||
|
private static $loaded = false;
|
||||||
public $pluginName = 'TP Subscribe';
|
public $pluginName = 'TP Subscribe';
|
||||||
public $pluginAuthor = 'JoeyK';
|
public $pluginAuthor = 'JoeyK';
|
||||||
public $pluginWebsite = 'https://TheTempusProject.com';
|
public $pluginWebsite = 'https://TheTempusProject.com';
|
||||||
@ -36,6 +37,9 @@ class Subscribe extends Plugin {
|
|||||||
|
|
||||||
public function __construct( $load = false ) {
|
public function __construct( $load = false ) {
|
||||||
parent::__construct( $load );
|
parent::__construct( $load );
|
||||||
Components::set( 'FOOTER_RIGHT', Views::simpleView( 'subscribe.footer.right') );
|
if ( ! self::$loaded ) {
|
||||||
|
Components::append( 'FOOTER_RIGHT', Views::simpleView( 'subscribe.footer.right') );
|
||||||
|
self::$loaded = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,13 @@
|
|||||||
<div class="col-lg-3 text-center">
|
<div class="col-md-5 offset-md-1 mb-3">
|
||||||
<h3>Subscribe</h3>
|
<form>
|
||||||
<ul>
|
<h5>Subscribe to our newsletter</h5>
|
||||||
<li>
|
<div class="d-flex flex-column flex-sm-row w-100 gap-2">
|
||||||
<div class="input-append newsletter-box">
|
<form action="{ROOT_URL}subscribe/home" method="post" class="form-horizontal"></form>
|
||||||
<form action="{ROOT_URL}subscribe/home" method="post" class="form-horizontal">
|
<label for="newsletter1" class="visually-hidden">Email address</label>
|
||||||
<input type="email" class="full form-control" placeholder="Email" id="email" name="email" autocomplete="email" style="margin-bottom: 15px;">
|
<input name="email" id="email" type="email" class="form-control" placeholder="Email address" autocomplete="email">
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Subscribe</button>
|
<button class="btn btn-primary" name="submit" value="submit" type="submit">Subscribe</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</form>
|
||||||
</ul>
|
|
||||||
<div class="material-switch" style="margin-top: 25px; margin-bottom: 25px;">
|
|
||||||
<input name="dark-mode-toggle" type="checkbox" id="dark-mode-toggle" style="margin-top: 25px; margin-bottom: 25px; text-align:left;"/>
|
|
||||||
<label for="dark-mode-toggle" class="label-default" style="text-align:left;"></label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
@ -71,7 +71,7 @@ class notrealplugin extends forealthoughModel {
|
|||||||
'draft' => 0,
|
'draft' => 0,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $footer_links = [
|
public $contact_footer_links = [
|
||||||
[
|
[
|
||||||
'text' => 'Bug Report',
|
'text' => 'Bug Report',
|
||||||
'url' => '{ROOT_URL}bugreport',
|
'url' => '{ROOT_URL}bugreport',
|
||||||
@ -82,8 +82,11 @@ class notrealplugin extends forealthoughModel {
|
|||||||
if ( true === self::$initialized || !Installer::pluginEnabled( $reflect->getShortName() ) ) {
|
if ( true === self::$initialized || !Installer::pluginEnabled( $reflect->getShortName() ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
foreach ( $this->footer_links as $key => $link ) {
|
foreach ( $this->contact_footer_links as $key => $link ) {
|
||||||
Navigation::addLink( App::FOOTER_MENU_NAME, $link );
|
Navigation::addLink( App::CONTACT_FOOTER_MENU_NAME, $link );
|
||||||
|
}
|
||||||
|
foreach ( $this->info_footer_links as $key => $link ) {
|
||||||
|
Navigation::addLink( App::INFO_MENU_NAME, $link );
|
||||||
}
|
}
|
||||||
foreach ( $this->main_links as $key => $link ) {
|
foreach ( $this->main_links as $key => $link ) {
|
||||||
Navigation::addLink( App::MAIN_MENU_NAME, $link );
|
Navigation::addLink( App::MAIN_MENU_NAME, $link );
|
||||||
|
@ -41,11 +41,12 @@ class DefaultLoader extends Loader {
|
|||||||
$this->addCss( '<link rel="stylesheet" href="{ROOT_URL}app/css/main-dark.css" id="dark-mode-stylesheet" disabled>' );
|
$this->addCss( '<link rel="stylesheet" href="{ROOT_URL}app/css/main-dark.css" id="dark-mode-stylesheet" disabled>' );
|
||||||
$this->addJs( '<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{ROOT_URL}app/js/main.js"></script>' );
|
$this->addJs( '<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{ROOT_URL}app/js/main.js"></script>' );
|
||||||
Components::setIfNull( 'LOGO', Config::getValue( 'main/logo' ) );
|
Components::setIfNull( 'LOGO', Config::getValue( 'main/logo' ) );
|
||||||
Components::setIfNull( 'FOOTER_LEFT', Navigation::getMenuView( 'footer.left', 'FOOTER_LINKS', App::FOOTER_MENU_NAME, false ) );
|
Components::setIfNull( 'COPY', Views::simpleView( 'footer.copy') );
|
||||||
Components::setIfNull( 'FOOTER_CENTER', Views::simpleView( 'footer.center') );
|
Components::setIfNull( 'SOCIAL', Views::simpleView( 'footer.social') );
|
||||||
Components::setIfNull( 'FOOTER_RIGHT', Views::simpleView( 'footer.right') );
|
Components::prepend( 'FOOTER_LEFT', Views::simpleView( 'footer.left', Navigation::getMenuLinks( App::CONTACT_FOOTER_MENU_NAME ) ) );
|
||||||
|
Components::prepend( 'FOOTER_CENTER', Views::simpleView( 'footer.center', Navigation::getMenuLinks( App::INFO_FOOTER_MENU_NAME ) ) );
|
||||||
|
Components::prepend( 'FOOTER_RIGHT', Views::simpleView( 'footer.right') );
|
||||||
Components::setIfNull( 'FOOT', Views::simpleView( 'footer.container') );
|
Components::setIfNull( 'FOOT', Views::simpleView( 'footer.container') );
|
||||||
Components::setIfNull( 'COPY', Views::simpleView( 'copy') );
|
|
||||||
/**
|
/**
|
||||||
* Top-Nav
|
* Top-Nav
|
||||||
*/
|
*/
|
||||||
@ -57,8 +58,7 @@ class DefaultLoader extends Loader {
|
|||||||
Components::set( 'STATUS', Views::simpleView( 'nav.statusLoggedOut' ) );
|
Components::set( 'STATUS', Views::simpleView( 'nav.statusLoggedOut' ) );
|
||||||
}
|
}
|
||||||
Components::set( 'topNavRight', Template::parse( App::$topNavRight . '{STATUS}' ) );
|
Components::set( 'topNavRight', Template::parse( App::$topNavRight . '{STATUS}' ) );
|
||||||
Components::set( 'topNavLeft', Navigation::getMenuView( 'nav.main', 'MENU_LINKS', App::MAIN_MENU_NAME ) );
|
Components::set( 'topNavLeft', Views::simpleView( 'nav.main', Navigation::getMenuLinks( App::MAIN_MENU_NAME ) ) );
|
||||||
|
|
||||||
Components::set( 'colorSelect', Views::simpleView( 'forms.colorSelect' ) );
|
Components::set( 'colorSelect', Views::simpleView( 'forms.colorSelect' ) );
|
||||||
Components::set( 'iconSelect', Views::simpleView( 'forms.iconSelect' ) );
|
Components::set( 'iconSelect', Views::simpleView( 'forms.iconSelect' ) );
|
||||||
Navigation::setCrumbComponent( 'BREADCRUMB', Input::get( 'url' ) );
|
Navigation::setCrumbComponent( 'BREADCRUMB', Input::get( 'url' ) );
|
||||||
|
@ -29,36 +29,29 @@
|
|||||||
{ROBOT}
|
{ROBOT}
|
||||||
<link rel="icon" href="{ROOT_URL}images/favicon.ico">
|
<link rel="icon" href="{ROOT_URL}images/favicon.ico">
|
||||||
<!-- Required CSS -->
|
<!-- Required CSS -->
|
||||||
<link rel="stylesheet" href="{FONT_AWESOME_URL}font-awesome.min.css" crossorigin="anonymous">
|
<!-- <link rel="stylesheet" href="{FONT_AWESOME_URL}fontawesome.min.css" crossorigin="anonymous"> -->
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.1/css/all.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
<link rel="stylesheet" href="{BOOTSTRAP_CDN}css/bootstrap.min.css" crossorigin="anonymous">
|
<link rel="stylesheet" href="{BOOTSTRAP_CDN}css/bootstrap.min.css" crossorigin="anonymous">
|
||||||
<!-- Custom styles for this template -->
|
<!-- Custom styles for this template -->
|
||||||
{TEMPLATE_CSS_INCLUDES}
|
{TEMPLATE_CSS_INCLUDES}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
|
<!-- Navigation -->
|
||||||
<!--Brand and toggle should get grouped for better mobile display but I had to account for additional menus-->
|
<header class="p-3 text-bg-dark">
|
||||||
<div class="container-fluid">
|
<div class="container">
|
||||||
<a href="{ROOT_URL}" class="navbar-brand">{SITENAME}</a>
|
<div class="d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start">
|
||||||
<!-- Toggler Button -->
|
<img src="{ROOT_URL}{LOGO}" class="bi me-2" width="40" height="32" role="img" aria-label="{SITENAME} Logo" />
|
||||||
<button
|
<a href="/" class="d-flex align-items-center mb-2 mb-lg-0 text-white text-decoration-none">
|
||||||
class="navbar-toggler"
|
{SITENAME}
|
||||||
type="button"
|
</a>
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-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">
|
|
||||||
{topNavLeft}
|
{topNavLeft}
|
||||||
<ul class="navbar-nav ml-auto">
|
<div class="text-end d-flex align-items-center">
|
||||||
{topNavRight}
|
{topNavRight}
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</div>
|
||||||
<div class="container-fluid top-pad dynamic-footer-padding">
|
</header>
|
||||||
|
<div class="container-fluid">
|
||||||
{ISSUES}
|
{ISSUES}
|
||||||
<div class="container pt-4">
|
<div class="container pt-4">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -73,10 +66,7 @@
|
|||||||
{CONTENT}
|
{CONTENT}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer>
|
|
||||||
{FOOT}
|
{FOOT}
|
||||||
{COPY}
|
|
||||||
</footer>
|
|
||||||
<!-- Bootstrap core JavaScript and jquery -->
|
<!-- Bootstrap core JavaScript and jquery -->
|
||||||
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{JQUERY_CDN}jquery.min.js"></script>
|
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{JQUERY_CDN}jquery.min.js"></script>
|
||||||
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
|
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
<div class="col-lg-6 text-center">
|
<div class="col-6 col-md-2 mb-3">
|
||||||
<div class="social">
|
<h5>More Info</h5>
|
||||||
<i><a href="{ROOT_URL}fb"><span class="fa fa-facebook"></span></a></i>
|
<ul class="nav flex-column">
|
||||||
<i><a href="{ROOT_URL}twitter"><span class="fa fa-twitter"></span></a></i>
|
{LOOP}
|
||||||
<i><a href="{ROOT_URL}in"><span class="fa fa-linkedin"></span></a></i>
|
<li class="nav-item mb-2"><a href="{url}" class="nav-link p-0 text-muted">{text}</a></li>
|
||||||
<i><a href="{ROOT_URL}youtube"><span class="fa fa-youtube"></span></a></i>
|
{/LOOP}
|
||||||
<i><a href="{ROOT_URL}git"><span class="fa fa-github"></span></a></i>
|
</ul>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
@ -1,27 +1,15 @@
|
|||||||
<div class="footer-head" id="footer-head">
|
<div class="container border-top mt-4">
|
||||||
<div class="container custom-expand">
|
<footer class="py-5">
|
||||||
<!-- Collapsible Footer Toggle Button -->
|
|
||||||
<div class="col-12 text-center">
|
<div class="row">
|
||||||
<button
|
|
||||||
class="d-lg-none"
|
|
||||||
type="button"
|
|
||||||
data-bs-toggle="collapse"
|
|
||||||
data-bs-target="#footer"
|
|
||||||
aria-controls="footer"
|
|
||||||
aria-expanded="false"
|
|
||||||
aria-label="Toggle navigation">
|
|
||||||
<i class="fa fa-bars"></i> <!-- Font Awesome Icon -->
|
|
||||||
<span class="sr-only">Toggle navigation</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<!-- Collapsible Footer Content -->
|
|
||||||
<div id="footer" class="collapse d-lg-block">
|
|
||||||
<div class="row pt-3">
|
|
||||||
{FOOTER_LEFT}
|
{FOOTER_LEFT}
|
||||||
{FOOTER_CENTER}
|
{FOOTER_CENTER}
|
||||||
{FOOTER_RIGHT}
|
{FOOTER_RIGHT}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<div class="d-flex flex-column flex-sm-row justify-content-between py-4 my-4 border-top">
|
||||||
|
{COPY}
|
||||||
|
{SOCIAL}
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
1
app/views/footer/copy.html
Normal file
1
app/views/footer/copy.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<p>© 2024 AllTheBookmarks, Powered by <a href="https://thetempusproject.com" class="text-decoration-none">The Tempus Project</a>.</p>
|
@ -1,7 +1,8 @@
|
|||||||
|
<div class="col-6 col-md-2 mb-3">
|
||||||
<div class="col-lg-3 text-center">
|
<h5>Contact Us</h5>
|
||||||
<h3> Contact </h3>
|
<ul class="nav flex-column">
|
||||||
<ul>
|
{LOOP}
|
||||||
{FOOTER_LINKS}
|
<li class="nav-item mb-2"><a href="{url}" class="nav-link p-0 text-muted">{text}</a></li>
|
||||||
|
{/LOOP}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
@ -1,19 +1,6 @@
|
|||||||
|
<div class="col-6 col-md-2 mb-3 d-flex">
|
||||||
<div class="col-lg-3 text-center">
|
<div class="material-switch mt-5 mx-auto">
|
||||||
<h3>Information</h3>
|
<input name="dark-mode-toggle" type="checkbox" id="dark-mode-toggle" />
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="{ROOT_URL}about">About Us</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="{ROOT_URL}contact">Contact Us</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="{ROOT_URL}privacy">Privacy Policy</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<div class="material-switch" style="margin-top: 25px; margin-bottom: 25px;">
|
|
||||||
<input name="dark-mode-toggle" type="checkbox" id="dark-mode-toggle"/>
|
|
||||||
<label for="dark-mode-toggle" class="label-default"></label>
|
<label for="dark-mode-toggle" class="label-default"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
27
app/views/footer/social.html
Normal file
27
app/views/footer/social.html
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<ul class="list-unstyled d-flex">
|
||||||
|
<li class="ms-3">
|
||||||
|
<a class="link-dark" href="{ROOT_URL}fb">
|
||||||
|
<span class="fa-brands fa-fw fa-facebook"></span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="ms-3">
|
||||||
|
<a class="link-dark" href="{ROOT_URL}twitter">
|
||||||
|
<span class="fa-brands fa-fw fa-twitter"></span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="ms-3">
|
||||||
|
<a class="link-dark" href="{ROOT_URL}in">
|
||||||
|
<span class="fa-brands fa-fw fa-linkedin"></span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="ms-3">
|
||||||
|
<a class="link-dark" href="{ROOT_URL}youtube">
|
||||||
|
<span class="fa-brands fa-fw fa-youtube"></span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="ms-3">
|
||||||
|
<a class="link-dark" href="{ROOT_URL}git">
|
||||||
|
<span class="fa-brands fa-fw fa-github"></span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
@ -1,3 +1,5 @@
|
|||||||
<ul class="navbar-nav">
|
<ul class="nav col-12 col-lg-auto mb-2 justify-content-center mb-md-0 mx-auto">
|
||||||
{MENU_LINKS}
|
{LOOP}
|
||||||
|
<li><a href="{url}" class="nav-link px-2 text-white">{text}</a></li>
|
||||||
|
{/LOOP}
|
||||||
</ul>
|
</ul>
|
@ -1,21 +1,20 @@
|
|||||||
<li class="dropdown nav-item">
|
<div class="dropdown nav-item mx-2">
|
||||||
<a
|
<a
|
||||||
href="#"
|
href="#"
|
||||||
class="nav-link dropdown-toggle"
|
class="d-block dropdown-toggle nav-link"
|
||||||
id="userDropdown"
|
id="userDropdown"
|
||||||
|
|
||||||
data-bs-toggle="dropdown"
|
data-bs-toggle="dropdown"
|
||||||
aria-haspopup="true"
|
aria-haspopup="true"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
{USERNAME}<i class="fa fa-user pl-2"></i>
|
<span class="mr-3">{USERNAME}</span> <i class="fa fa-user"></i>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown">
|
<ul class="dropdown-menu text-small" aria-labelledby="userDropdown">
|
||||||
<li><a href="{ROOT_URL}usercp"><i class="fa fa-fw fa-user"></i> Profile</a></li>
|
<li><a href="{ROOT_URL}usercp" class="dropdown-item"><i class="fa fa-fw fa-user"></i> Profile</a></li>
|
||||||
{topNavRightDropdown}
|
{topNavRightDropdown}
|
||||||
<li><a href="{ROOT_URL}usercp/settings"><i class="fa fa-fw fa-gear"></i> Settings</a></li>
|
<li><a href="{ROOT_URL}usercp/settings" class="dropdown-item"><i class="fa fa-fw fa-gear"></i> Settings</a></li>
|
||||||
<div class="dropdown-divider"></div>
|
<li><hr class="dropdown-divider"></li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{ROOT_URL}home/logout"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
|
<a href="{ROOT_URL}home/logout" class="dropdown-item"><i class="fa fa-fw fa-power-off"></i> Log Out</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</div>
|
@ -41,7 +41,8 @@ use TheTempusProject\Models\Routes as RoutesModel;
|
|||||||
class TheTempusProject extends Bedrock {
|
class TheTempusProject extends Bedrock {
|
||||||
const MAIN_MENU_NAME = 'topNavLeft';
|
const MAIN_MENU_NAME = 'topNavLeft';
|
||||||
const ADMIN_MENU_NAME = 'adminMenu';
|
const ADMIN_MENU_NAME = 'adminMenu';
|
||||||
const FOOTER_MENU_NAME = 'footerMenu';
|
const CONTACT_FOOTER_MENU_NAME = 'contactFooterMenu';
|
||||||
|
const INFO_FOOTER_MENU_NAME = 'infoFooterMenu';
|
||||||
public static $plugins = [];
|
public static $plugins = [];
|
||||||
public static $activeGroup;
|
public static $activeGroup;
|
||||||
public static $activePerms;
|
public static $activePerms;
|
||||||
@ -55,7 +56,20 @@ class TheTempusProject extends Bedrock {
|
|||||||
public static $isAdmin = false;
|
public static $isAdmin = false;
|
||||||
public static $isMod = false;
|
public static $isMod = false;
|
||||||
private $initialized = false;
|
private $initialized = false;
|
||||||
public $footer_links = [
|
public $contact_footer_links = [];
|
||||||
|
public $info_footer_links = [
|
||||||
|
[
|
||||||
|
'text' => 'FAQs',
|
||||||
|
'url' => '{ROOT_URL}home/terms',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'text' => 'About',
|
||||||
|
'url' => '{ROOT_URL}home/terms',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'text' => 'Privacy Policy',
|
||||||
|
'url' => '{ROOT_URL}home/terms',
|
||||||
|
],
|
||||||
[
|
[
|
||||||
'text' => 'Terms of Service',
|
'text' => 'Terms of Service',
|
||||||
'url' => '{ROOT_URL}home/terms',
|
'url' => '{ROOT_URL}home/terms',
|
||||||
@ -480,8 +494,11 @@ class TheTempusProject extends Bedrock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function loadLinks() {
|
public function loadLinks() {
|
||||||
foreach ( $this->footer_links as $key => $link ) {
|
foreach ( $this->contact_footer_links as $key => $link ) {
|
||||||
Navigation::addLink( self::FOOTER_MENU_NAME, $link );
|
Navigation::addLink( self::CONTACT_FOOTER_MENU_NAME, $link );
|
||||||
|
}
|
||||||
|
foreach ( $this->info_footer_links as $key => $link ) {
|
||||||
|
Navigation::addLink( self::INFO_FOOTER_MENU_NAME, $link );
|
||||||
}
|
}
|
||||||
foreach ( $this->main_links as $key => $link ) {
|
foreach ( $this->main_links as $key => $link ) {
|
||||||
Navigation::addLink( self::MAIN_MENU_NAME, $link );
|
Navigation::addLink( self::MAIN_MENU_NAME, $link );
|
||||||
|
Reference in New Issue
Block a user