update to bootstrap 4 p1, bugfix for logoLarge, logging cleanup, more
This commit is contained in:
@ -48,4 +48,376 @@ body {
|
||||
border-color: #555;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* app/css/main.css
|
||||
*
|
||||
* This file is for any css that should be applied site wide.
|
||||
*
|
||||
* @version 3.0
|
||||
* @author Joey Kimsey <Joey@thetempusproject.com>
|
||||
* @link https://TheTempusProject.com
|
||||
* @license https://opensource.org/licenses/MIT [MIT LICENSE]
|
||||
*/
|
||||
|
||||
@media ( min-width: 768px ) {
|
||||
.side-nav {
|
||||
/* background-color: #222; */
|
||||
}
|
||||
.side-nav li a:hover,
|
||||
.side-nav li a:focus {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Other
|
||||
*/
|
||||
.bars {
|
||||
/* background-color: #333; */
|
||||
/* box-shadow: 0 5px 0 #333, 0 10px 0 #333; */
|
||||
}
|
||||
.bg-gray {
|
||||
/* background-image: -moz-linear-gradient( center bottom, #BBBBBB 0%, #F0F0F0 100% ); */
|
||||
/* box-shadow: 0 1px 0 #B4B3B3; */
|
||||
}
|
||||
.UI-buffer {
|
||||
/* border-bottom: 1px solid #CCCCCC; */
|
||||
}
|
||||
.UI-page-buffer {
|
||||
/* border-bottom: 1px solid #CCCCCC; */
|
||||
}
|
||||
.table-user-information>tbody>tr {
|
||||
/* border-top: 1px solid rgb( 221, 221, 221 ); */
|
||||
}
|
||||
.sticky-foot-head {
|
||||
/* background: #EDEFF1; */
|
||||
/* border-bottom: 1px solid #CCCCCC; */
|
||||
/* border-top: 1px solid #DDDDDD; */
|
||||
}
|
||||
.sticky-foot {
|
||||
background-color: #fff;
|
||||
}
|
||||
.sticky-copy {
|
||||
background: #282828; /* E3E3E3; */
|
||||
border-bottom: 1px solid #b0b0b0; /* CCCCCC; */
|
||||
border-top: 1px solid #bfbfbf; /* DDDDDD; */
|
||||
}
|
||||
|
||||
/**
|
||||
* Main Carousel
|
||||
*/
|
||||
.main-text {
|
||||
color: #000;
|
||||
}
|
||||
.btn-clear {
|
||||
color: #000;
|
||||
border-color: #000;
|
||||
}
|
||||
.btn-clear:hover {
|
||||
color: #fff;
|
||||
/* background-color: #F000FF; */
|
||||
}
|
||||
|
||||
/**
|
||||
* Top Navigation
|
||||
*/
|
||||
.top-nav>li>a {
|
||||
/* color: #999; */
|
||||
}
|
||||
.top-nav>li>a:hover,
|
||||
.top-nav>li>a:focus,
|
||||
.top-nav>.open>a,
|
||||
.top-nav>.open>a:hover,
|
||||
.top-nav>.open>a:focus {
|
||||
color: #000;
|
||||
background-color: #fff;
|
||||
}
|
||||
.top-nav>.open>.dropdown-menu {
|
||||
/* border: 1px solid rgba( 0, 0, 0, .15 ); */
|
||||
background-color: #000;
|
||||
/* -webkit-box-shadow: 0 6px 12px rgba( 0, 0, 0, .175 ); */
|
||||
/* box-shadow: 0 6px 12px rgba( 0, 0, 0, .175 ); */
|
||||
}
|
||||
|
||||
/**
|
||||
* Messages Dropdown
|
||||
*/
|
||||
li.message-header {
|
||||
/* border-bottom: 1px solid rgba( 0, 0, 0, .15 ); */
|
||||
}
|
||||
li.message-preview {
|
||||
/* border-bottom: 1px solid rgba( 0, 0, 0, .15 ); */
|
||||
}
|
||||
|
||||
/**
|
||||
* Widget
|
||||
*/
|
||||
.widget li.list-group-item {
|
||||
/* border-top: 1px solid #ddd; */
|
||||
}
|
||||
.widget li.list-group-item:hover {
|
||||
/* background-color: rgba( 86, 61, 124, .1 ); */
|
||||
}
|
||||
.widget .mic-info {
|
||||
/* color: #666666; */
|
||||
}
|
||||
|
||||
/**
|
||||
* Footer and Copyright
|
||||
*/
|
||||
.copy {
|
||||
background: #282828; /* E3E3E3; */
|
||||
border-bottom: 1px solid #b0b0b0; /* CCCCCC; */
|
||||
border-top: 1px solid #bfbfbf; /* DDDDDD; */
|
||||
}
|
||||
.footer-head {
|
||||
background: #282828; /* E3E3E3; */
|
||||
border-bottom: 1px solid #b0b0b0; /* CCCCCC; */
|
||||
border-top: 1px solid #bfbfbf; /* DDDDDD; */
|
||||
}
|
||||
.footer-head h3 {
|
||||
border-bottom: 1px solid #a1a7ad; /* BAC1C8 */
|
||||
color: #4a5c6e; /* 54697E */
|
||||
}
|
||||
.footer-head ul {
|
||||
/* color: #7F8C8D; */
|
||||
}
|
||||
.footer-head a {
|
||||
/* color: #78828D */
|
||||
}
|
||||
|
||||
/**
|
||||
* Side Navigation
|
||||
*/
|
||||
.side-nav>li>ul>li>a {
|
||||
/* color: #999; */
|
||||
}
|
||||
.side-nav>li>ul>li>a:hover {
|
||||
color: #000;
|
||||
}
|
||||
.side-nav .active > a {
|
||||
color: #000;
|
||||
background-color: #fff;
|
||||
}
|
||||
.side-nav .active > a:hover {
|
||||
color: #000;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
/**
|
||||
* Social
|
||||
*/
|
||||
.social span {
|
||||
/* background: none repeat scroll 0 0 #B5B5B5; */
|
||||
/* border: 2px solid #B5B5B5; */
|
||||
}
|
||||
.social span a {
|
||||
/* color: #EDEFF1; */
|
||||
}
|
||||
.social span:hover {
|
||||
/* border: 2px solid #2c3e50;
|
||||
background: #2c3e50; */
|
||||
}
|
||||
.social span a i {
|
||||
/* color: #EDEFF1 !important; */
|
||||
}
|
||||
|
||||
/**
|
||||
* Newsletter Box
|
||||
*/
|
||||
.newsletter-box input#appendedInputButton {
|
||||
background: #000;
|
||||
}
|
||||
.newsletter-box .btn {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/**
|
||||
* Colored Badges
|
||||
*/
|
||||
.badge {
|
||||
color: #000;
|
||||
/* background-color: #999999; */
|
||||
}
|
||||
.badge:hover {
|
||||
color: #000;
|
||||
}
|
||||
.badge-error {
|
||||
/* background-color: #b94a48; */
|
||||
}
|
||||
.badge-error:hover {
|
||||
/* background-color: #953b39; */
|
||||
}
|
||||
.badge-warning {
|
||||
/* background-color: #f89406; */
|
||||
}
|
||||
.badge-warning:hover {
|
||||
/* background-color: #c67605; */
|
||||
}
|
||||
.badge-success {
|
||||
/* background-color: #468847; */
|
||||
}
|
||||
.badge-success:hover {
|
||||
/* background-color: #356635; */
|
||||
}
|
||||
.badge-info {
|
||||
/* background-color: #3a87ad; */
|
||||
}
|
||||
.badge-info:hover {
|
||||
/* background-color: #2d6987; */
|
||||
}
|
||||
.badge-inverse {
|
||||
/* background-color: #333333; */
|
||||
}
|
||||
.badge-inverse:hover {
|
||||
/* background-color: #1a1a1a; */
|
||||
}
|
||||
|
||||
/**
|
||||
* Install Terms
|
||||
*/
|
||||
.install-terms {
|
||||
/* border: 1px solid #ccc;
|
||||
background: #f2f2f2; */
|
||||
}
|
||||
.install-terms p,
|
||||
.install-terms li {
|
||||
/* color: #333; */
|
||||
}
|
||||
.install-terms h3 {
|
||||
color: #fff;
|
||||
}
|
||||
.install-terms h4 {
|
||||
color: #fff;
|
||||
}
|
||||
.install-terms strong {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/**
|
||||
* Terms Page
|
||||
*/
|
||||
.terms-page {
|
||||
/* border: 1px solid #ccc;
|
||||
background: #f2f2f2; */
|
||||
}
|
||||
.terms-page p,
|
||||
.terms-page li {
|
||||
/* color: #333; */
|
||||
}
|
||||
.terms-page h3 {
|
||||
color: #fff;
|
||||
}
|
||||
.terms-page h4 {
|
||||
color: #fff;
|
||||
}
|
||||
.terms-page strong {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/**
|
||||
* Terms
|
||||
*/
|
||||
.terms {
|
||||
/* border: 1px solid #ccc; */
|
||||
/* background: #f2f2f2; */
|
||||
}
|
||||
.terms p,
|
||||
.terms li {
|
||||
/* color: #333; */
|
||||
}
|
||||
.terms h3 {
|
||||
color: #fff;
|
||||
}
|
||||
.terms h4 {
|
||||
color: #fff;
|
||||
}
|
||||
.terms strong {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.material-switch > label::before {
|
||||
/* background: rgb(0, 0, 0); */
|
||||
/* box-shadow: inset 0px 0px 10px rgba(0, 0, 0, 0.5); */
|
||||
}
|
||||
.material-switch > label::after {
|
||||
/* background: rgb(255, 255, 255); */
|
||||
/* box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.3); */
|
||||
}
|
137
app/css/main.css
137
app/css/main.css
@ -31,45 +31,11 @@ pre {
|
||||
padding-right: 225px;
|
||||
padding-left: 0;
|
||||
}
|
||||
.side-nav {
|
||||
right: 0;
|
||||
left: auto;
|
||||
}
|
||||
.side-nav {
|
||||
position: fixed;
|
||||
top: 51px;
|
||||
left: 225px;
|
||||
width: 225px;
|
||||
margin-left: -225px;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
overflow-y: auto;
|
||||
background-color: #222;
|
||||
bottom: 53px;
|
||||
overflow-x: hidden;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.side-nav>li>a {
|
||||
width: 225px;
|
||||
}
|
||||
.side-nav li a:hover,
|
||||
.side-nav li a:focus {
|
||||
outline: none;
|
||||
background-color: #000 !important;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Other
|
||||
*/
|
||||
.custom-nav {
|
||||
display: relative;
|
||||
float: right;
|
||||
}
|
||||
.navbar-form-alt {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.bars {
|
||||
display: block;
|
||||
width: 60px;
|
||||
@ -158,7 +124,7 @@ pre {
|
||||
.dynamic-footer-padding {
|
||||
padding-bottom: var(--footer-height);
|
||||
}
|
||||
.footer-head .navbar-toggle {
|
||||
.footer-head .navbar-toggler {
|
||||
display: inline-block;
|
||||
float: none;
|
||||
}
|
||||
@ -225,45 +191,6 @@ pre {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Top Navigation
|
||||
*/
|
||||
.top-nav {
|
||||
padding: 0 15px;
|
||||
}
|
||||
.top-nav>li {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
}
|
||||
.top-nav>li>a {
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
line-height: 20px;
|
||||
color: #999;
|
||||
}
|
||||
.top-nav>li>a:hover,
|
||||
.top-nav>li>a:focus,
|
||||
.top-nav>.open>a,
|
||||
.top-nav>.open>a:hover,
|
||||
.top-nav>.open>a:focus {
|
||||
color: #fff;
|
||||
background-color: #000;
|
||||
}
|
||||
.top-nav>.open>.dropdown-menu {
|
||||
float: left;
|
||||
position: absolute;
|
||||
margin-top: 0;
|
||||
border: 1px solid rgba( 0, 0, 0, .15 );
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
background-color: #fff;
|
||||
-webkit-box-shadow: 0 6px 12px rgba( 0, 0, 0, .175 );
|
||||
box-shadow: 0 6px 12px rgba( 0, 0, 0, .175 );
|
||||
}
|
||||
.top-nav>.open>.dropdown-menu>li>a {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Messages Dropdown
|
||||
*/
|
||||
@ -327,44 +254,6 @@ ul.alert-dropdown {
|
||||
border-top-right-radius: 0px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Signin Form
|
||||
*/
|
||||
.form-signin {
|
||||
max-width: 330px;
|
||||
padding: 15px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.form-signin .form-signin-heading,
|
||||
.form-signin .checkbox {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.form-signin .checkbox {
|
||||
font-weight: normal;
|
||||
}
|
||||
.form-signin .form-control {
|
||||
position: relative;
|
||||
height: auto;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
font-size: 16px;
|
||||
}
|
||||
.form-signin .form-control:focus {
|
||||
z-index: 2;
|
||||
}
|
||||
.form-signin input[type="text"] {
|
||||
margin-bottom: -1px;
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.form-signin input[type="password"] {
|
||||
margin-bottom: 10px;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Footer and Copyright
|
||||
*/
|
||||
@ -420,30 +309,6 @@ ul.alert-dropdown {
|
||||
color: #78828D
|
||||
}
|
||||
|
||||
/**
|
||||
* Side Navigation
|
||||
*/
|
||||
.side-nav>li>ul {
|
||||
padding: 0;
|
||||
}
|
||||
.side-nav>li>ul>li>a {
|
||||
display: block;
|
||||
padding: 10px 15px 10px 38px;
|
||||
text-decoration: none;
|
||||
color: #999;
|
||||
}
|
||||
.side-nav>li>ul>li>a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
.side-nav .active > a {
|
||||
color: #fff;
|
||||
background-color: #080808;
|
||||
}
|
||||
.side-nav .active > a:hover {
|
||||
color: #fff;
|
||||
background-color: #080808;
|
||||
}
|
||||
|
||||
/**
|
||||
* Social
|
||||
*/
|
||||
|
@ -117,6 +117,7 @@ window.onload = function () {
|
||||
// Check if dark mode is saved in localStorage
|
||||
if (localStorage.getItem('darkMode') === 'enabled') {
|
||||
darkModeStylesheet.disabled = false;
|
||||
toggleButton.checked = true;
|
||||
}
|
||||
|
||||
toggleButton.addEventListener('click', function () {
|
||||
|
@ -257,7 +257,7 @@ class Group extends DatabaseModel {
|
||||
if ( $group === false ) {
|
||||
return false;
|
||||
}
|
||||
$members = self::$db->getPaginated( 'users', [ 'userGroup', '=', $id ] );
|
||||
$members = self::$db->get( 'users', [ 'userGroup', '=', $id ] );
|
||||
if ( !$members->count() ) {
|
||||
Debug::info( "list members: Could not find anyone in group: $id" );
|
||||
return false;
|
||||
|
@ -87,7 +87,7 @@ class Log extends DatabaseModel {
|
||||
}
|
||||
|
||||
public function list( $filter = null ) {
|
||||
$logData = self::$db->getPaginated( $this->tableName, [ 'source', '=', $filter ] );
|
||||
$logData = self::$db->get( $this->tableName, [ 'source', '=', $filter ] );
|
||||
if ( !$logData->count() ) {
|
||||
return false;
|
||||
}
|
||||
|
@ -128,7 +128,7 @@ class Routes extends DatabaseModel {
|
||||
}
|
||||
$routeData = self::$db->get( $this->tableName, [ 'nickname', '=', $name ] );
|
||||
if ( !$routeData->count() ) {
|
||||
Debug::warn( "Could not find a group named: $name" );
|
||||
Debug::info( "Routes:findByName: Could not find a route named: $name" );
|
||||
return false;
|
||||
}
|
||||
return $this->filter( $routeData->first() );
|
||||
@ -137,7 +137,7 @@ class Routes extends DatabaseModel {
|
||||
public function findByOriginalUrl( $url ) {
|
||||
$routeData = self::$db->get( $this->tableName, [ 'original_url', '=', $url ] );
|
||||
if ( !$routeData->count() ) {
|
||||
Debug::warn( "Could not find route by original url: $url" );
|
||||
Debug::info( "Routes:findByOriginalUrl: Could not find route by original url: $url" );
|
||||
return false;
|
||||
}
|
||||
return $this->filter( $routeData->first() );
|
||||
@ -145,12 +145,12 @@ class Routes extends DatabaseModel {
|
||||
|
||||
public function findByforwardedUrl( $url ) {
|
||||
if ( !Check::url( $url ) ) {
|
||||
Debug::warn( "Invalid forwarded_url: $url" );
|
||||
Debug::warn( "Routes:findByforwardedUrl: Invalid forwarded_url: $url" );
|
||||
return false;
|
||||
}
|
||||
$routeData = self::$db->get( $this->tableName, [ 'forwarded_url', '=', $url ] );
|
||||
if ( !$routeData->count() ) {
|
||||
Debug::warn( "Could not find route by forwarded url: $url" );
|
||||
Debug::info( "Routes:findByforwardedUrl: Could not find route by forwarded url: $url" );
|
||||
return false;
|
||||
}
|
||||
return $this->filter( $routeData->first() );
|
||||
|
@ -446,7 +446,7 @@ class User extends DatabaseModel {
|
||||
*/
|
||||
public function recent( $limit = null ) {
|
||||
if ( empty( $limit ) ) {
|
||||
$data = self::$db->getpaginated( $this->tableName, '*' );
|
||||
$data = self::$db->get( $this->tableName, '*' );
|
||||
} else {
|
||||
$data = self::$db->get( $this->tableName, [ 'ID', '>', '0' ], 'ID', 'DESC', [ 0, $limit ] );
|
||||
}
|
||||
|
@ -221,9 +221,9 @@ class Posts extends DatabaseModel {
|
||||
$whereClause = '*';
|
||||
}
|
||||
if ( empty( $limit ) ) {
|
||||
$postData = self::$db->getPaginated( $this->tableName, $whereClause );
|
||||
$postData = self::$db->get( $this->tableName, $whereClause );
|
||||
} else {
|
||||
$postData = self::$db->getPaginated( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
|
||||
$postData = self::$db->get( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
|
||||
}
|
||||
if ( !$postData->count() ) {
|
||||
Debug::info( 'No Blog posts found.' );
|
||||
@ -239,7 +239,7 @@ class Posts extends DatabaseModel {
|
||||
} else {
|
||||
$whereClause = ['draft', '=', '0'];
|
||||
}
|
||||
$postData = self::$db->getPaginated( $this->tableName, $whereClause );
|
||||
$postData = self::$db->get( $this->tableName, $whereClause );
|
||||
if ( !$postData->count() ) {
|
||||
Debug::info( 'No Blog posts found.' );
|
||||
|
||||
@ -263,7 +263,7 @@ class Posts extends DatabaseModel {
|
||||
$firstDayUnix = date( 'U', strtotime( "first day of $year" ) );
|
||||
$lastDayUnix = date( 'U', strtotime( "last day of $year" ) );
|
||||
$whereClause = array_merge( $whereClause, ['created', '<=', $lastDayUnix, 'AND', 'created', '>=', $firstDayUnix] );
|
||||
$postData = self::$db->getPaginated( $this->tableName, $whereClause );
|
||||
$postData = self::$db->get( $this->tableName, $whereClause );
|
||||
if ( !$postData->count() ) {
|
||||
Debug::info( 'No Blog posts found.' );
|
||||
|
||||
@ -282,7 +282,7 @@ class Posts extends DatabaseModel {
|
||||
$whereClause = ['draft', '=', '0', 'AND'];
|
||||
}
|
||||
$whereClause = array_merge( $whereClause, ['author' => $ID] );
|
||||
$postData = self::$db->getPaginated( $this->tableName, $whereClause );
|
||||
$postData = self::$db->get( $this->tableName, $whereClause );
|
||||
if ( !$postData->count() ) {
|
||||
Debug::info( 'No Blog posts found.' );
|
||||
|
||||
@ -311,7 +311,7 @@ class Posts extends DatabaseModel {
|
||||
$month = date( 'F', $firstDayUnix );
|
||||
$lastDayUnix = date( 'U', strtotime( "last day of $month $year" ) );
|
||||
$whereClause = array_merge( $whereClause, ['created', '<=', $lastDayUnix, 'AND', 'created', '>=', $firstDayUnix] );
|
||||
$postData = self::$db->getPaginated( $this->tableName, $whereClause );
|
||||
$postData = self::$db->get( $this->tableName, $whereClause );
|
||||
if ( !$postData->count() ) {
|
||||
Debug::info( 'No Blog posts found.' );
|
||||
|
||||
|
@ -28,7 +28,7 @@ class Blog extends Plugin {
|
||||
public $pluginDescription = 'A simple plugin to add a blog to your installation.';
|
||||
public $admin_links = [
|
||||
[
|
||||
'text' => '<i class="glyphicon glyphicon-text-size"></i> Blog',
|
||||
'text' => '<i class="fa fa-fw fa-font"></i> Blog',
|
||||
'url' => '{ROOT_URL}admin/blog',
|
||||
],
|
||||
];
|
||||
|
@ -32,7 +32,6 @@
|
||||
<link rel="icon" href="{ROOT_URL}images/favicon.ico">
|
||||
<!-- Required CSS -->
|
||||
<link rel="stylesheet" href="{FONT_AWESOME_URL}font-awesome.min.css" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="{BOOTSTRAP_CDN}css/bootstrap-theme.min.css" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="{BOOTSTRAP_CDN}css/bootstrap.min.css" crossorigin="anonymous">
|
||||
<!-- RSS -->
|
||||
<link rel="alternate" href="{ROOT_URL}blog/rss" title="{TITLE} Feed" type="application/rss+xml" />
|
||||
@ -44,7 +43,7 @@
|
||||
<!--Brand and toggle should get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<a href="{ROOT_URL}" class="navbar-brand">{SITENAME}</a>
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse" style="">
|
||||
<button type="button" class="navbar-toggler" data-toggle="collapse" data-target=".navbar-ex1-collapse" style="">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
@ -55,7 +54,7 @@
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
{topNavLeft}
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
<ul class="navbar-nav">
|
||||
{topNavRight}
|
||||
</ul>
|
||||
</div>
|
||||
@ -75,9 +74,7 @@
|
||||
{/ISSUES}
|
||||
<div class="row">
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h1 class="blog-title">{SITENAME} Blog</h1>
|
||||
</div>
|
||||
<h1 class="blog-title">{SITENAME} Blog</h1>
|
||||
<div class="row">
|
||||
<div class="col-sm-8 blog-main">
|
||||
{BLOG_BREADCRUMBS}
|
||||
|
@ -310,7 +310,7 @@ class Bookmarks extends DatabaseModel {
|
||||
$base_url = $this->getBaseUrl( $instance->url );
|
||||
|
||||
if ( empty( $instance->icon ) ) {
|
||||
$instance->iconHtml = '<i class="glyphicon glyphicon-link"></i>';
|
||||
$instance->iconHtml = '<i class="fa fa-fw fa-link"></i>';
|
||||
} else {
|
||||
if (strpos($instance->icon, 'http') !== false) {
|
||||
$instance->iconHtml = '<img src="' . $instance->icon .'" />';
|
||||
@ -321,34 +321,34 @@ class Bookmarks extends DatabaseModel {
|
||||
if ( empty( $instance->hiddenAt ) ) {
|
||||
$instance->hideBtn = '
|
||||
<a href="{ROOT_URL}bookmarks/hideBookmark/'.$instance->ID.'" class="btn btn-sm btn-warning" role="button">
|
||||
<i class="glyphicon glyphicon-eye-open"></i>
|
||||
<i class="fa fa-fw fa-eye"></i>
|
||||
</a>';
|
||||
} else {
|
||||
$instance->hideBtn = '
|
||||
<a href="{ROOT_URL}bookmarks/showBookmark/'.$instance->ID.'" class="btn btn-sm btn-default" role="button">
|
||||
<i class="glyphicon glyphicon-eye-open"></i>
|
||||
<i class="fa fa-fw fa-eye"></i>
|
||||
</a>';
|
||||
}
|
||||
if ( empty( $instance->archivedAt ) ) {
|
||||
$instance->archiveBtn = '
|
||||
<a href="{ROOT_URL}bookmarks/archiveBookmark/'.$instance->ID.'" class="btn btn-sm btn-info" role="button">
|
||||
<i class="glyphicon glyphicon-briefcase"></i>
|
||||
<i class="fa fa-fw fa-briefcase"></i>
|
||||
</a>';
|
||||
} else {
|
||||
$instance->archiveBtn = '
|
||||
<a href="{ROOT_URL}bookmarks/unarchiveBookmark/'.$instance->ID.'" class="btn btn-sm btn-default" role="button">
|
||||
<i class="glyphicon glyphicon-briefcase"></i>
|
||||
<i class="fa fa-fw fa-briefcase"></i>
|
||||
</a>';
|
||||
}
|
||||
if ( ! empty( $instance->refreshedAt ) && time() < ( $instance->refreshedAt + ( 60 * 10 ) ) ) {
|
||||
$instance->refreshBtn = '
|
||||
<a href="{ROOT_URL}bookmarks/refreshBookmark/'.$instance->ID.'" class="btn btn-sm btn-danger" role="button">
|
||||
<i class="glyphicon glyphicon-refresh"></i>
|
||||
<i class="fa fa-fw fa-refresh"></i>
|
||||
</a>';
|
||||
} else {
|
||||
$instance->refreshBtn = '
|
||||
<a href="{ROOT_URL}bookmarks/refreshBookmark/'.$instance->ID.'" class="btn btn-sm btn-success" role="button">
|
||||
<i class="glyphicon glyphicon-refresh"></i>
|
||||
<i class="fa fa-fw fa-refresh"></i>
|
||||
</a>';
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ class Comments extends DatabaseModel {
|
||||
$where = ['contentType', '=', $contentType];
|
||||
}
|
||||
if ( empty( $limit ) ) {
|
||||
$commentData = self::$db->getPaginated( $this->tableName, $where, 'created', 'DESC' );
|
||||
$commentData = self::$db->get( $this->tableName, $where, 'created', 'DESC' );
|
||||
} else {
|
||||
$commentData = self::$db->get( $this->tableName, $where, 'created', 'DESC', [0, $limit] );
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ class MembershipCustomers extends DatabaseModel {
|
||||
|
||||
$api_key = Config::getValue( 'memberships/stripeSecret' );
|
||||
if ( $api_key == 'sk_xxxxxxxxxxxxxxx' || empty($api_key) ) {
|
||||
Debug::error( "No Stripe Key found" );
|
||||
Debug::error( "MembershipCustomers:create No Stripe Key found" );
|
||||
return false;
|
||||
}
|
||||
self::$stripe = new \Stripe\StripeClient( $api_key );
|
||||
|
@ -22,6 +22,7 @@ use TheTempusProject\Bedrock\Classes\Config;
|
||||
|
||||
class MembershipProducts extends DatabaseModel {
|
||||
public static $stripe;
|
||||
private static $loaded = false;
|
||||
public $tableName = 'membership_products';
|
||||
public $databaseMatrix = [
|
||||
[ 'name', 'varchar', '128' ],
|
||||
@ -35,11 +36,14 @@ class MembershipProducts extends DatabaseModel {
|
||||
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
$api_key = Config::getValue( 'memberships/stripeSecret' );
|
||||
if ( $api_key == 'sk_xxxxxxxxxxxxxxx' || empty($api_key) ) {
|
||||
Debug::error( "No Stripe Key found" );
|
||||
} else {
|
||||
self::$stripe = new \Stripe\StripeClient( $api_key );
|
||||
if ( ! self::$loaded ) {
|
||||
$api_key = Config::getValue( 'memberships/stripeSecret' );
|
||||
if ( $api_key == 'sk_xxxxxxxxxxxxxxx' || empty($api_key) ) {
|
||||
Debug::error( "MembershipProducts:__construct No Stripe Key found" );
|
||||
} else {
|
||||
self::$stripe = new \Stripe\StripeClient( $api_key );
|
||||
}
|
||||
self::$loaded = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,7 @@ use TheTempusProject\Canary\Classes\CustomException;
|
||||
class Memberships extends DatabaseModel {
|
||||
public static $stripe;
|
||||
public static $products;
|
||||
private static $loaded = false;
|
||||
public $tableName = 'membership_records';
|
||||
public $databaseMatrix = [
|
||||
[ 'stripe_customer', 'varchar', '64' ],
|
||||
@ -38,12 +39,15 @@ class Memberships extends DatabaseModel {
|
||||
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
self::$products = new MembershipProducts;
|
||||
$api_key = Config::getValue( 'memberships/stripeSecret' );
|
||||
if ( $api_key == 'sk_xxxxxxxxxxxxxxx' || empty($api_key) ) {
|
||||
Debug::error( "No Stripe Key found" );
|
||||
} else {
|
||||
self::$stripe = new \Stripe\StripeClient( $api_key );
|
||||
if ( ! self::$loaded ) {
|
||||
self::$products = new MembershipProducts;
|
||||
$api_key = Config::getValue( 'memberships/stripeSecret' );
|
||||
if ( $api_key == 'sk_xxxxxxxxxxxxxxx' || empty($api_key) ) {
|
||||
Debug::error( "Memberships:__construct No Stripe Key found" );
|
||||
} else {
|
||||
self::$stripe = new \Stripe\StripeClient( $api_key );
|
||||
}
|
||||
self::$loaded = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,9 +83,9 @@ class Memberships extends DatabaseModel {
|
||||
public function getUserSubs( $limit = null ) {
|
||||
$whereClause = ['local_user_id', '=', App::$activeUser->ID ];
|
||||
if ( empty( $limit ) ) {
|
||||
$postData = self::$db->getPaginated( $this->tableName, $whereClause );
|
||||
$postData = self::$db->get( $this->tableName, $whereClause );
|
||||
} else {
|
||||
$postData = self::$db->getPaginated( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
|
||||
$postData = self::$db->get( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
|
||||
}
|
||||
if ( !$postData->count() ) {
|
||||
Debug::info( 'No user subs found.' );
|
||||
|
@ -61,7 +61,7 @@ class Message extends DatabaseModel {
|
||||
Debug::info( 'Invalid user ID' );
|
||||
return false;
|
||||
}
|
||||
$messageData = self::$db->getPaginated( $this->tableName, [ 'ID', '=', $parent ] );
|
||||
$messageData = self::$db->get( $this->tableName, [ 'ID', '=', $parent ] );
|
||||
if ( $messageData->count() == 0 ) {
|
||||
Debug::info( 'Message not found.' );
|
||||
return false;
|
||||
@ -71,7 +71,7 @@ class Message extends DatabaseModel {
|
||||
if ( $type !== null ) {
|
||||
$params = array_merge( $params, [ 'AND', $type, '=', $user ] );
|
||||
}
|
||||
$messageData = self::$db->getPaginated( $this->tableName, $params, 'ID', 'DESC', [ 0, 1 ] );
|
||||
$messageData = self::$db->get( $this->tableName, $params, 'ID', 'DESC', [ 0, 1 ] );
|
||||
if ( $messageData->count() != 0 ) {
|
||||
if ( $messageData->first()->recieverDeleted == 0 ) {
|
||||
$message = $messageData->first();
|
||||
@ -93,7 +93,7 @@ class Message extends DatabaseModel {
|
||||
Debug::info( 'Invalid ID' );
|
||||
return false;
|
||||
}
|
||||
$messageData = self::$db->getPaginated( $this->tableName, [ 'ID', '=', $id ] );
|
||||
$messageData = self::$db->get( $this->tableName, [ 'ID', '=', $id ] );
|
||||
if ( $messageData->count() == 0 ) {
|
||||
Debug::info( 'Message not found.' );
|
||||
return false;
|
||||
@ -122,7 +122,7 @@ class Message extends DatabaseModel {
|
||||
} else {
|
||||
$find = $message->ID;
|
||||
}
|
||||
$messageData = self::$db->getPaginated( $this->tableName, [ 'ID', '=', $find, 'OR', 'Parent', '=', $find ], 'ID', 'ASC' )->results();
|
||||
$messageData = self::$db->get( $this->tableName, [ 'ID', '=', $find, 'OR', 'Parent', '=', $find ], 'ID', 'ASC' )->results();
|
||||
Components::set( 'PID', $find );
|
||||
|
||||
if ( $markRead == true ) {
|
||||
@ -138,7 +138,7 @@ class Message extends DatabaseModel {
|
||||
$limit = 10;
|
||||
}
|
||||
$limit = [ 0, $limit ];
|
||||
$messageData = self::$db->getPaginated(
|
||||
$messageData = self::$db->get(
|
||||
$this->tableName,
|
||||
[
|
||||
'parent', '=', 0,
|
||||
@ -154,7 +154,7 @@ class Message extends DatabaseModel {
|
||||
$limit
|
||||
);
|
||||
if ( $messageData->count() == 0 ) {
|
||||
Debug::info( 'No messages found' );
|
||||
Debug::info( 'getInbox: No messages found' );
|
||||
return false;
|
||||
}
|
||||
$filters = [
|
||||
@ -175,7 +175,7 @@ class Message extends DatabaseModel {
|
||||
$limit = 10;
|
||||
}
|
||||
$limit = [ 0, $limit ];
|
||||
$messageData = self::$db->getPaginated(
|
||||
$messageData = self::$db->get(
|
||||
$this->tableName,
|
||||
[
|
||||
'parent', '=', 0,
|
||||
@ -187,7 +187,7 @@ class Message extends DatabaseModel {
|
||||
$limit
|
||||
);
|
||||
if ( $messageData->count() == 0 ) {
|
||||
Debug::info( 'No messages found' );
|
||||
Debug::info( 'getOutbox: No messages found' );
|
||||
return false;
|
||||
}
|
||||
$filters = [
|
||||
|
@ -32,23 +32,23 @@ class Messages extends Plugin {
|
||||
],
|
||||
];
|
||||
private static $loaded = false;
|
||||
|
||||
public function __construct() {
|
||||
// This was taken directly from the main app
|
||||
// load the message template data as part of the template
|
||||
$messages = new Message;
|
||||
Components::set( 'MESSAGE_COUNT', $messages->unreadCount() );
|
||||
if ( $messages->unreadCount() > 0 ) {
|
||||
$messageBadge = Views::simpleView( 'messages.badge' );
|
||||
} else {
|
||||
$messageBadge = '';
|
||||
}
|
||||
Components::set( 'MBADGE', $messageBadge );
|
||||
if ( App::$isLoggedIn ) {
|
||||
Components::set( 'RECENT_MESSAGES', Views::simpleView( 'messages.nav.recentMessagesDropdown', $messages->getInbox( 5 ) ) );
|
||||
} else {
|
||||
Components::set( 'RECENT_MESSAGES', '' );
|
||||
}
|
||||
if ( ! self::$loaded ) {
|
||||
$messages = new Message;
|
||||
Components::set( 'MESSAGE_COUNT', $messages->unreadCount() );
|
||||
if ( $messages->unreadCount() > 0 ) {
|
||||
$messageBadge = Views::simpleView( 'messages.badge' );
|
||||
} else {
|
||||
$messageBadge = '';
|
||||
}
|
||||
Components::set( 'MBADGE', $messageBadge );
|
||||
if ( App::$isLoggedIn ) {
|
||||
Components::set( 'RECENT_MESSAGES', Views::simpleView( 'messages.nav.recentMessagesDropdown', $messages->getInbox( 5 ) ) );
|
||||
} else {
|
||||
Components::set( '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>';
|
||||
self::$loaded = true;
|
||||
|
@ -73,12 +73,12 @@ class Notification extends DatabaseModel {
|
||||
'expiresAt', '<', time(),
|
||||
];
|
||||
if ( empty( $limit ) ) {
|
||||
$notifications = self::$db->getPaginated( $this->tableName, $whereClause );
|
||||
$notifications = self::$db->get( $this->tableName, $whereClause );
|
||||
} else {
|
||||
$notifications = self::$db->getPaginated( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
|
||||
$notifications = self::$db->get( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
|
||||
}
|
||||
if ( !$notifications->count() ) {
|
||||
Debug::info( 'No Notifications found.' );
|
||||
Debug::info( 'Notification:getByUser No Notifications found' );
|
||||
return false;
|
||||
}
|
||||
return $this->filter( $notifications->results() );
|
||||
|
@ -33,7 +33,7 @@ class Notifications extends Plugin {
|
||||
];
|
||||
public $admin_links = [
|
||||
[
|
||||
'text' => '<i class="glyphicon glyphicon-bell"></i> Notify',
|
||||
'text' => '<i class="fa fa-fw fa-bell"></i> Notify',
|
||||
'url' => '{ROOT_URL}admin/notifications',
|
||||
],
|
||||
];
|
||||
@ -49,14 +49,14 @@ class Notifications extends Plugin {
|
||||
$messageBadge = '';
|
||||
}
|
||||
Components::set( 'NBADGE', $messageBadge );
|
||||
if ( App::$isLoggedIn ) {
|
||||
Components::set( 'recentNotifications', Views::simpleView( 'notifications.nav.recentNotificationsDropdown', $notifications->getByUser( 10 ) ) );
|
||||
} else {
|
||||
Components::set( 'recentNotifications', '' );
|
||||
}
|
||||
if ( ! self::$loaded ) {
|
||||
if ( App::$isLoggedIn ) {
|
||||
Components::set( 'recentNotifications', Views::simpleView( 'notifications.nav.recentNotificationsDropdown', $notifications->getByUser( 10 ) ) );
|
||||
} else {
|
||||
Components::set( 'recentNotifications', '' );
|
||||
}
|
||||
App::$topNavRight .= '{recentNotifications}';
|
||||
App::$topNavRightDropdown .= '<li><a href="{ROOT_URL}notifications"><i class="glyphicon glyphicon-bell"></i> Notifications {NBADGE}</a></li>';
|
||||
App::$topNavRightDropdown .= '<li><a href="{ROOT_URL}notifications"><i class="fa fa-fw fa-bell"></i> Notifications {NBADGE}</a></li>';
|
||||
self::$loaded = true;
|
||||
}
|
||||
}
|
||||
|
@ -19,8 +19,6 @@
|
||||
<link rel="alternate" hreflang="en-us" href="alternateURL">
|
||||
<link rel="icon" href="{BASE}images/favicon.ico">
|
||||
<!-- Required CSS -->
|
||||
<link rel="stylesheet" href="{BASE}vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="{BASE}vendor/fortawesome/font-awesome/css/font-awesome.min.css">
|
||||
<!-- Custom styles for this template -->
|
||||
<link rel="stylesheet" href="{BASE}Templates/default/default.css">
|
||||
<!-- Required JS -->
|
||||
@ -32,7 +30,7 @@
|
||||
but I had to account for additional menus-->
|
||||
<div class="navbar-header">
|
||||
<a href="{BASE}" class="navbar-brand">{SITENAME}</a>
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse" style="">
|
||||
<button type="button" class="navbar-toggler" data-toggle="collapse" data-target=".navbar-ex1-collapse" style="">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
@ -43,7 +41,7 @@
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
{topNavLeft}
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
<ul class=" navbar-nav">
|
||||
{topNavRight}
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -19,52 +19,51 @@
|
||||
<link rel="icon" href="{ROOT_URL}images/favicon.ico">
|
||||
<!-- Required CSS -->
|
||||
<link rel="stylesheet" href="{FONT_AWESOME_URL}font-awesome.min.css" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="{BOOTSTRAP_CDN}css/bootstrap-theme.min.css" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="{BOOTSTRAP_CDN}css/bootstrap.min.css" crossorigin="anonymous">
|
||||
<!-- Custom styles for this template -->
|
||||
{TEMPLATE_CSS_INCLUDES}
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<a href="{ROOT_URL}" class="navbar-brand">{SITENAME}</a>
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
</div>
|
||||
<!-- Top Menu Items -->
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top" role="navigation">
|
||||
<!--Brand and toggle should get grouped for better mobile display but I had to account for additional menus-->
|
||||
<div class="container-fluid">
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<a href="{ROOT_URL}" class="navbar-brand">{SITENAME}</a>
|
||||
<!-- Toggler Button -->
|
||||
<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">
|
||||
{topNavLeft}
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
{topNavRight}
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="navbar-nav ml-auto">
|
||||
{topNavRight}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{ADMIN}
|
||||
{ADMINNAV}
|
||||
{/ADMIN}
|
||||
</nav>
|
||||
<div class="container-fluid">
|
||||
{ISSUES}
|
||||
<div class="row">
|
||||
<div class="container">
|
||||
<div class="col-xlg-11 col-xlg-offset-1 col-lg-10 col-lg-offset-2 col-med-offset-2 col-md-10 col-sm-offset-3 col-sm-9 col-xs-offset-3 col-xs-9 row">
|
||||
<div class="col-xlg-11 col-xlg-offset-1 col-lg-10 col-lg-offset-2 col-med-offset-2 col-md-10 col-sm-offset-3 col-sm-9 row">
|
||||
{ERROR}
|
||||
{NOTICE}
|
||||
{SUCCESS}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/ISSUES}
|
||||
<div class="row">
|
||||
<div class="col-xlg-11 col-xlg-offset-1 col-lg-10 col-lg-offset-2 col-med-offset-2 col-md-10 col-sm-offset-3 col-sm-9 col-xs-offset-3 col-xs-9 main">
|
||||
<div class="col-xlg-1 col-lg-2 col-med-2">
|
||||
{ADMIN}
|
||||
{ADMINNAV}
|
||||
{/ADMIN}
|
||||
</div>
|
||||
<div class="col-xlg-11 col-xlg-offset-1 col-lg-10 col-lg-offset-2 col-med-offset-2 col-md-10 col-sm-offset-3 col-sm-9 main">
|
||||
{ADMIN_BREADCRUMBS}
|
||||
{CONTENT}
|
||||
</div>
|
||||
@ -73,7 +72,7 @@
|
||||
<footer>
|
||||
<div class="sticky-foot">
|
||||
<div class="sticky-foot-head" id=""></div>
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 text-center sticky-copy">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 text-center sticky-copy">
|
||||
<p class="text-muted">Powered by <a href="https://thetempusproject.com">The Tempus Project</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -52,7 +52,7 @@ class DefaultLoader extends Loader {
|
||||
if ( App::$isLoggedIn ) {
|
||||
Components::set( 'topNavRightDropdown', Template::parse( App::$topNavRightDropdown ) );
|
||||
Components::set( 'STATUS', Views::simpleView( 'nav.statusLoggedIn' ) );
|
||||
Components::set( 'USERNAME', App::$activeUser->username );
|
||||
Components::set( 'USERNAME', \ucfirst( App::$activeUser->username ) );
|
||||
} else {
|
||||
Components::set( 'STATUS', Views::simpleView( 'nav.statusLoggedOut' ) );
|
||||
}
|
||||
|
@ -30,37 +30,37 @@
|
||||
<link rel="icon" href="{ROOT_URL}images/favicon.ico">
|
||||
<!-- Required CSS -->
|
||||
<link rel="stylesheet" href="{FONT_AWESOME_URL}font-awesome.min.css" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="{BOOTSTRAP_CDN}css/bootstrap-theme.min.css" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="{BOOTSTRAP_CDN}css/bootstrap.min.css" crossorigin="anonymous">
|
||||
<!-- Custom styles for this template -->
|
||||
{TEMPLATE_CSS_INCLUDES}
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top" role="navigation">
|
||||
<!--Brand and toggle should get grouped for better mobile display but I had to account for additional menus-->
|
||||
<div class="navbar-header">
|
||||
<a href="{ROOT_URL}" class="navbar-brand">{SITENAME}</a>
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse" style="">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="container-fluid">
|
||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
||||
<a href="{ROOT_URL}" class="navbar-brand">{SITENAME}</a>
|
||||
<!-- Toggler Button -->
|
||||
<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">
|
||||
{topNavLeft}
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
{topNavRight}
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="navbar-nav ml-auto">
|
||||
{topNavRight}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="container-fluid top-pad dynamic-footer-padding">
|
||||
{ISSUES}
|
||||
<div class="container">
|
||||
<div class="container pt-4">
|
||||
<div class="row">
|
||||
{ERROR}
|
||||
{NOTICE}
|
||||
@ -69,7 +69,7 @@
|
||||
</div>
|
||||
</div>
|
||||
{/ISSUES}
|
||||
<div class="container">
|
||||
<div class="pt-4">
|
||||
{CONTENT}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -253,6 +253,11 @@ class TheTempusProject extends Bedrock {
|
||||
"pretty" => "Site Logo (Used mostly in emails)",
|
||||
"default" => "images/logo.png"
|
||||
],
|
||||
"logoLarge" => [
|
||||
"type" => "file",
|
||||
"pretty" => "Large Site Logo (Used mostly when sharing images on social media)",
|
||||
"default" => "images/logoLarge.jpg"
|
||||
],
|
||||
"name" => [
|
||||
"type" => "text",
|
||||
"pretty" => "Site Name",
|
||||
|
@ -26,7 +26,7 @@
|
||||
"thetempusproject/bedrock": "1.0.10",
|
||||
"thetempusproject/canary": "1.0.5",
|
||||
"thetempusproject/houdini": "1.0.8",
|
||||
"twbs/bootstrap": "3.3.7"
|
||||
"twbs/bootstrap": "^4.0"
|
||||
},
|
||||
"autoload":
|
||||
{
|
||||
|
Reference in New Issue
Block a user