update to bootstrap 5.2.3 continued
This commit is contained in:
@ -35,7 +35,6 @@ class Controller extends BedrockController {
|
|||||||
}
|
}
|
||||||
new Template;
|
new Template;
|
||||||
Template::setTemplate( 'default' );
|
Template::setTemplate( 'default' );
|
||||||
Components::set( 'TOKEN', Token::generate() );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __destruct() {
|
public function __destruct() {
|
||||||
|
@ -102,18 +102,25 @@ class Home extends Controller {
|
|||||||
public function about() {
|
public function about() {
|
||||||
self::$title = 'About - {SITENAME}';
|
self::$title = 'About - {SITENAME}';
|
||||||
self::$pageDescription = '{SITENAME} Terms and Conditions of use. Please use {SITENAME} safely.';
|
self::$pageDescription = '{SITENAME} Terms and Conditions of use. Please use {SITENAME} safely.';
|
||||||
Views::view( 'switches' );
|
Views::view( 'about' );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function contact() {
|
public function contact() {
|
||||||
self::$title = 'contact - {SITENAME}';
|
self::$title = 'Contact Us - {SITENAME}';
|
||||||
self::$pageDescription = '{SITENAME} Terms and Conditions of use. Please use {SITENAME} safely.';
|
self::$pageDescription = '{SITENAME} Terms and Conditions of use. Please use {SITENAME} safely.';
|
||||||
Views::view( 'contact' );
|
Views::view( 'contact' );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function privacy() {
|
public function privacy() {
|
||||||
self::$title = 'privacy - {SITENAME}';
|
self::$title = 'Privacy Policy - {SITENAME}';
|
||||||
self::$pageDescription = '{SITENAME} Terms and Conditions of use. Please use {SITENAME} safely.';
|
self::$pageDescription = '{SITENAME} Terms and Conditions of use. Please use {SITENAME} safely.';
|
||||||
Views::view( 'privacy' );
|
Components::set( 'PRIVACY', Views::simpleView( 'privacy' ) );
|
||||||
|
Views::raw( '<div class="col-lg-8 mx-auto">{PRIVACY}</div>' );
|
||||||
|
}
|
||||||
|
|
||||||
|
public function faq() {
|
||||||
|
self::$title = 'Frequently Asked Questions - {SITENAME}';
|
||||||
|
self::$pageDescription = '{SITENAME} Terms and Conditions of use. Please use {SITENAME} safely.';
|
||||||
|
Views::view( 'faq' );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
<link rel="alternate" hreflang="en-us" href="alternateURL">
|
<link rel="alternate" hreflang="en-us" href="alternateURL">
|
||||||
<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="{BOOTSTRAP_CDN}css/bootstrap.min.css" crossorigin="anonymous">
|
<link rel="stylesheet" href="{BOOTSTRAP_CDN}css/bootstrap.min.css" crossorigin="anonymous">
|
||||||
<!-- RSS -->
|
<!-- RSS -->
|
||||||
<link rel="alternate" href="{ROOT_URL}blog/rss" title="{TITLE} Feed" type="application/rss+xml" />
|
<link rel="alternate" href="{ROOT_URL}blog/rss" title="{TITLE} Feed" type="application/rss+xml" />
|
||||||
@ -39,70 +39,57 @@
|
|||||||
{TEMPLATE_CSS_INCLUDES}
|
{TEMPLATE_CSS_INCLUDES}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
<!-- Navigation -->
|
||||||
<!--Brand and toggle should get grouped for better mobile display -->
|
<header class="p-3 text-bg-dark">
|
||||||
<div class="navbar-header">
|
<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">
|
||||||
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-ex1-collapse" style="">
|
<img src="{ROOT_URL}{LOGO}" class="bi me-2" width="40" height="32" role="img" aria-label="{SITENAME} Logo" />
|
||||||
<span class="sr-only">Toggle navigation</span>
|
<a href="/" class="d-flex align-items-center mb-2 mb-lg-0 text-white text-decoration-none">
|
||||||
<span class="icon-bar"></span>
|
{SITENAME}
|
||||||
<span class="icon-bar"></span>
|
</a>
|
||||||
<span class="icon-bar"></span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="collapse navbar-collapse navbar-ex1-collapse">
|
|
||||||
{topNavLeft}
|
{topNavLeft}
|
||||||
<div class="navbar-right">
|
<div class="text-end d-flex align-items-center">
|
||||||
<ul class="navbar-nav">
|
{topNavRight}
|
||||||
{topNavRight}
|
</div>
|
||||||
</ul>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</header>
|
||||||
|
<div class="container-fluid">
|
||||||
|
{ISSUES}
|
||||||
|
<div class="container pt-4">
|
||||||
|
<div class="row">
|
||||||
|
{ERROR}
|
||||||
|
{NOTICE}
|
||||||
|
{SUCCESS}
|
||||||
|
{INFO}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
{/ISSUES}
|
||||||
<div class="container-fluid">
|
<div class="pt-4">
|
||||||
<div class="foot-pad">
|
<div class="container">
|
||||||
{ISSUES}
|
<h1 class="blog-title text-center">{SITENAME} Blog</h1>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="container">
|
<div class="col-sm-8">
|
||||||
{ERROR}
|
{BLOG_BREADCRUMBS}
|
||||||
{NOTICE}
|
{CONTENT}
|
||||||
{SUCCESS}
|
</div>
|
||||||
</div>
|
<div class="col-sm-4 blog-sidebar">
|
||||||
</div>
|
<div class="sidebar-module">
|
||||||
{/ISSUES}
|
{SIDEBAR}
|
||||||
<div class="row">
|
</div>
|
||||||
<div class="container">
|
<div class="sidebar-module">
|
||||||
<h1 class="blog-title">{SITENAME} Blog</h1>
|
{SIDEBAR2}
|
||||||
<div class="row">
|
</div>
|
||||||
<div class="col-sm-8 blog-main">
|
|
||||||
{BLOG_BREADCRUMBS}
|
|
||||||
{CONTENT}
|
|
||||||
</div>
|
|
||||||
<!-- /.blog-main -->
|
|
||||||
<div class="col-sm-3 col-sm-offset-1 blog-sidebar">
|
|
||||||
<div class="sidebar-module">
|
|
||||||
{SIDEBAR}
|
|
||||||
</div>
|
|
||||||
<div class="sidebar-module">
|
|
||||||
{SIDEBAR2}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- /.blog-sidebar -->
|
|
||||||
</div>
|
</div>
|
||||||
<!-- /.row -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer>
|
{FOOT}
|
||||||
{FOOT}
|
|
||||||
{COPY}
|
|
||||||
</footer>
|
|
||||||
<!-- Bootstrap core JavaScript and jquery -->
|
<!-- Bootstrap core JavaScript and jquery -->
|
||||||
<script src="{JQUERY_CDN}jquery.min.js" crossorigin="anonymous"></script>
|
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{JQUERY_CDN}jquery.min.js"></script>
|
||||||
<script src="{BOOTSTRAP_CDN}js/bootstrap.min.js" crossorigin="anonymous"></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="{BOOTSTRAP_CDN}js/bootstrap.min.js"></script>
|
||||||
<!-- Custom javascript for this template -->
|
<!-- Custom javascript for this template -->
|
||||||
{TEMPLATE_JS_INCLUDES}
|
{TEMPLATE_JS_INCLUDES}
|
||||||
</body>
|
</body>
|
||||||
|
@ -1,36 +1,51 @@
|
|||||||
<legend>Bug Report</legend>
|
<div class="container py-4">
|
||||||
<p>Thank you for visiting Our bug reporting page. We value our users' input highly and in an effort to better serve your needs, please fill out the form below to help us address this issue.</p>
|
<h2 class="text-center mb-4">Bug Report</h2>
|
||||||
<p>We read each and every bug report submitted, and by submitting this form you allow us to send you a follow up email.</p>
|
<p>Thank you for visiting our bug reporting page. We value our users' input highly and in an effort to better serve your needs, please fill out the form below to help us address this issue.</p>
|
||||||
<form action="" method="post" class="form-horizontal">
|
<p>We read each and every bug report submitted, and by submitting this form you allow us to send you a follow-up email.</p>
|
||||||
<label for="url">Page you were trying to reach:</label>
|
<form action="" method="post">
|
||||||
<input type="url" name="url" id="url" class="form-control" aria-describedby="urlHelp">
|
<!-- Page URL -->
|
||||||
<p id="urlHelp" class="form-text text-muted">
|
<div class="mb-3">
|
||||||
What is the URL of the page you actually received the error on? (The URL is the website address. Example: {ROOT_URL}home)
|
<label for="url" class="form-label">Page you were trying to reach:</label>
|
||||||
</p>
|
<input type="url" name="url" id="url" class="form-control" aria-describedby="urlHelp" required>
|
||||||
<label for="ourl">Page you were on:</label>
|
<small id="urlHelp" class="form-text text-muted">
|
||||||
<input type="url" name="ourl" id="ourl" class="form-control" aria-describedby="ourlHelp">
|
What is the URL of the page you actually received the error on? (The URL is the website address. Example: {ROOT_URL}home)
|
||||||
<p id="ourlHelp" class="form-text text-muted">
|
</small>
|
||||||
What is the URL of the page you were on before you received the error? (The URL is the website address. Example: {ROOT_URL}home/newhome)
|
|
||||||
</p>
|
|
||||||
<label for="repeat">*Has this happened more than once?</label>
|
|
||||||
<div class="form-check">
|
|
||||||
<label class="form-check-label">
|
|
||||||
<input class="form-check-input" type="radio" name="repeat" id="repeat" value="false" checked>
|
|
||||||
No
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-check">
|
|
||||||
<label class="form-check-label">
|
|
||||||
<input class="form-check-input" type="radio" name="repeat" id="repeat" value="true">
|
|
||||||
Yes
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="entry" class="col-lg-3 control-label">Describe the problem/error as best as you can: (max:2000 characters)</label>
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<textarea class="form-control" name="entry" maxlength="2000" rows="10" cols="50" id="entry"></textarea>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<!-- Referrer URL -->
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Submit</button>
|
<div class="mb-3">
|
||||||
</form>
|
<label for="ourl" class="form-label">Page you were on:</label>
|
||||||
|
<input type="url" name="ourl" id="ourl" class="form-control" aria-describedby="ourlHelp">
|
||||||
|
<small id="ourlHelp" class="form-text text-muted">
|
||||||
|
What is the URL of the page you were on before you received the error? (The URL is the website address. Example: {ROOT_URL}home/newhome)
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Repeat Issue -->
|
||||||
|
<div class="mb-3">
|
||||||
|
<label class="form-label">*Has this happened more than once?</label>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="repeat" id="repeatNo" value="false" checked>
|
||||||
|
<label class="form-check-label" for="repeatNo">No</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" name="repeat" id="repeatYes" value="true">
|
||||||
|
<label class="form-check-label" for="repeatYes">Yes</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Description -->
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="entry" class="form-label">Describe the problem/error as best as you can: (max: 2000 characters)</label>
|
||||||
|
<textarea class="form-control" name="entry" id="entry" rows="6" maxlength="2000" required></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Hidden Token -->
|
||||||
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
|
||||||
|
<!-- Submit Button -->
|
||||||
|
<div class="text-center">
|
||||||
|
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Submit</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
@ -30,11 +30,11 @@ class Feedback extends Controller {
|
|||||||
self::$title = 'Feedback - {SITENAME}';
|
self::$title = 'Feedback - {SITENAME}';
|
||||||
self::$pageDescription = 'At {SITENAME}, we value our users\' input. You can provide any feedback or suggestions using this form.';
|
self::$pageDescription = 'At {SITENAME}, we value our users\' input. You can provide any feedback or suggestions using this form.';
|
||||||
if ( !Input::exists() ) {
|
if ( !Input::exists() ) {
|
||||||
return Views::view( 'feedback.feedback' );
|
return Views::view( 'feedback.create' );
|
||||||
}
|
}
|
||||||
if ( !Forms::check( 'feedback' ) ) {
|
if ( !Forms::check( 'feedback' ) ) {
|
||||||
Issues::add( 'error', [ 'There was an error with your form, please check your submission and try again.' => Check::userErrors() ] );
|
Issues::add( 'error', [ 'There was an error with your form, please check your submission and try again.' => Check::userErrors() ] );
|
||||||
return Views::view( 'feedback.feedback' );
|
return Views::view( 'feedback.create' );
|
||||||
}
|
}
|
||||||
$result = self::$feedback->create( Input::post( 'name' ), Input::post( 'feedbackEmail' ), Input::post( 'entry' ) );
|
$result = self::$feedback->create( Input::post( 'name' ), Input::post( 'feedbackEmail' ), Input::post( 'entry' ) );
|
||||||
if ( $result ) {
|
if ( $result ) {
|
||||||
|
43
app/plugins/feedback/views/create.html
Normal file
43
app/plugins/feedback/views/create.html
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<div class="container py-4">
|
||||||
|
<h2 class="text-center mb-4">Feedback</h2>
|
||||||
|
<p>
|
||||||
|
Here at <strong>{SITENAME}</strong>, we highly value your feedback. We constantly strive to provide our users with the highest level of quality in everything we do.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If you would like to provide any suggestions or comments on our service, we ask that you please fill out the quick form below and let us know what's on your mind.
|
||||||
|
</p>
|
||||||
|
<form action="" method="post">
|
||||||
|
<!-- Name -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="name" class="col-lg-2 col-form-label text-end">Name:</label>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<input type="text" class="form-control" name="name" id="name" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Email (Optional) -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="feedbackEmail" class="col-lg-2 col-form-label text-end">E-mail: (optional)</label>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<input type="email" class="form-control" name="feedbackEmail" id="feedbackEmail">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Feedback -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="entry" class="col-lg-2 col-form-label text-end">Feedback:</label>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<textarea class="form-control" name="entry" id="entry" rows="6" maxlength="2000" required></textarea>
|
||||||
|
<small class="form-text text-muted">Max: 2000 characters</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Hidden Token -->
|
||||||
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
|
||||||
|
<!-- Submit Button -->
|
||||||
|
<div class="text-center">
|
||||||
|
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Submit</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
@ -1,25 +1,57 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="container py-4">
|
||||||
<legend>New Message</legend>
|
<div class="row justify-content-center">
|
||||||
<fieldset>
|
<div class="col-md-4">
|
||||||
<div class="form-group">
|
<form action="" method="post" class="needs-validation">
|
||||||
<label for="toUser" class="col-lg-1 control-label">To:</label>
|
<legend class="mb-4">New Message</legend>
|
||||||
<div class="col-lg-2">
|
<fieldset>
|
||||||
<input class="form-control" type="text" name="toUser" id="toUser" value="{prepopuser}">
|
<!-- To User Field -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="toUser" class="col-sm-6 col-form-label">To:</label>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control"
|
||||||
|
name="toUser"
|
||||||
|
id="toUser"
|
||||||
|
value="{prepopuser}"
|
||||||
|
required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Subject Field -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="subject" class="col-sm-6 col-form-label">Subject:</label>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control"
|
||||||
|
name="subject"
|
||||||
|
id="subject"
|
||||||
|
required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Message Field -->
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="message" class="form-label">Message:</label>
|
||||||
|
<textarea
|
||||||
|
class="form-control"
|
||||||
|
name="message"
|
||||||
|
id="message"
|
||||||
|
rows="6"
|
||||||
|
maxlength="2000"
|
||||||
|
required></textarea>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
name="submit"
|
||||||
|
value="submit"
|
||||||
|
class="btn btn-primary btn-lg">
|
||||||
|
Send
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
</div>
|
||||||
<label for="subject" class="col-lg-1 control-label">Subject:</label>
|
|
||||||
<div class="col-lg-2">
|
|
||||||
<input class="form-control" type="text" name="subject" id="subject">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="entry" class="col-lg-3 control-label">Message:</label>
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<textarea class="form-control" name="message" maxlength="2000" rows="10" cols="50" id="message"></textarea>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Send</button><br>
|
|
||||||
</form>
|
|
||||||
|
@ -1,30 +1,33 @@
|
|||||||
{PAGINATION}
|
|
||||||
<div class="row" style="margin-top: 30px; margin-bottom: 50px;">
|
<div class="container py-4">
|
||||||
<form action="" method="post">
|
<div class="row justify-content-center">
|
||||||
<table class="table">
|
<div class="col-md-8">
|
||||||
<thead>
|
<legend>Notifications</legend>
|
||||||
<tr>
|
<table class="table">
|
||||||
<th style="width: 90%">Notification</th>
|
<thead>
|
||||||
<th style="width: 5%"></th>
|
<tr>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 90%"></th>
|
||||||
</tr>
|
<th style="width: 5%"></th>
|
||||||
</thead>
|
<th style="width: 5%"></th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr {unseenBadge}>
|
<tbody>
|
||||||
<td>{notification}</td>
|
{LOOP}
|
||||||
<td><a href="{ROOT_URL}notifications/markRead/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
<tr {unseenBadge}>
|
||||||
<td><a href="{ROOT_URL}notifications/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
<td>{notification}</td>
|
||||||
</tr>
|
<td><a href="{ROOT_URL}notifications/markRead/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||||
{/LOOP}
|
<td><a href="{ROOT_URL}notifications/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td colspan="7">
|
{ALT}
|
||||||
No Notifications
|
<tr>
|
||||||
</td>
|
<td colspan="7">
|
||||||
</tr>
|
No Notifications
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
</form>
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,21 +1,21 @@
|
|||||||
<div class="dropdown nav-item mx-2">
|
<div class="dropdown nav-item mx-2">
|
||||||
<a
|
<a
|
||||||
href="#"
|
href="#"
|
||||||
class="d-block dropdown-toggle nav-link"
|
class="nav-link dropdown-toggle"
|
||||||
id="notiificationsDropdown"
|
id="notiificationsDropdown"
|
||||||
data-bs-toggle="dropdown"
|
data-bs-toggle="dropdown"
|
||||||
aria-haspopup="true"
|
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="fa fa-fw fa-bell"></i><span class="ml-3">{MBADGE}</span>
|
<i class="fa fa-fw fa-bell"></i><span class="ml-3">{MBADGE}</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu text-small" aria-labelledby="notiificationsDropdown">
|
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="notiificationsDropdown">
|
||||||
{LOOP}
|
{LOOP}
|
||||||
<li class="message-preview">
|
<!-- Notification Item -->
|
||||||
<a href="{ROOT_URL}notifications">
|
<li>
|
||||||
|
<a href="{ROOT_URL}notifications" class="dropdown-item">
|
||||||
<div class="media">
|
<div class="media">
|
||||||
<div class="media-body">
|
<div class="media-body">
|
||||||
<p class="small text-muted"><i class="fa fa-clock-o"></i> {DTC}{createdAt}{/DTC}</p>
|
<p class="small text-muted mb-1"><i class="fa fa-clock-o me-1"></i> {DTC}{createdAt}{/DTC}</p>
|
||||||
{notification}
|
<span>{notification}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
@ -30,8 +30,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{/ALT}
|
{/ALT}
|
||||||
<li class="message-footer text-center">
|
<!-- Footer -->
|
||||||
<a href="{ROOT_URL}notifications" class="dropdown-item">See All Notifications</a>
|
<li>
|
||||||
|
<hr class="dropdown-divider">
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/notifications" class="dropdown-item text-center">
|
||||||
|
See All Notifications
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
@ -38,14 +38,3 @@ class Redirects extends Plugin {
|
|||||||
],
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
// as long as this is in the plugin constructor, it should happen before the controller and method loading
|
|
||||||
// $routes = new RoutesModel;
|
|
||||||
// $route = $routes->findByOriginalUrl( $url );
|
|
||||||
// if ( false !== $route ) {
|
|
||||||
// if ( 'internal' === $route->redirect_type ) {
|
|
||||||
// $this->setUrl( $route->forwarded_url );
|
|
||||||
// } else {
|
|
||||||
// Redirect::external( $route->forwarded_url );
|
|
||||||
// }
|
|
||||||
// }
|
|
@ -18,7 +18,7 @@
|
|||||||
{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="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}
|
||||||
@ -48,35 +48,67 @@
|
|||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
{ISSUES}
|
|
||||||
<div class="row">
|
<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 row">
|
<!-- Sidebar -->
|
||||||
{ERROR}
|
<div class="col-lg-2 col-md-3 bg-dark text-white">
|
||||||
{NOTICE}
|
|
||||||
{SUCCESS}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{/ISSUES}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xlg-1 col-lg-2 col-med-2">
|
|
||||||
{ADMIN}
|
{ADMIN}
|
||||||
{ADMINNAV}
|
<nav class="navbar navbar-expand-lg navbar-dark flex-column align-items-stretch">
|
||||||
|
<ul class="navbar-nav flex-column">
|
||||||
|
{ADMIN_LINKS}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
{/ADMIN}
|
{/ADMIN}
|
||||||
</div>
|
</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">
|
<!-- Main Content -->
|
||||||
|
<div class="col-lg-10 col-md-9 pt-3 mt-5">
|
||||||
|
{ISSUES}
|
||||||
|
<div class="row mb-3">
|
||||||
|
<div class="col-12">
|
||||||
|
{ERROR}
|
||||||
|
{NOTICE}
|
||||||
|
{SUCCESS}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/ISSUES}
|
||||||
{ADMIN_BREADCRUMBS}
|
{ADMIN_BREADCRUMBS}
|
||||||
{CONTENT}
|
{CONTENT}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer>
|
<div class="container border-top">
|
||||||
<div class="sticky-foot">
|
<footer class="pt-4">
|
||||||
<div class="sticky-foot-head" id=""></div>
|
<div class="d-flex flex-column flex-sm-row justify-content-between">
|
||||||
<div class="col-lg-12 col-md-12 col-sm-12 text-center sticky-copy">
|
<p>© 2024 AllTheBookmarks, Powered by <a href="https://thetempusproject.com" class="text-decoration-none">The Tempus Project</a>.</p>
|
||||||
<p class="text-muted">Powered by <a href="https://thetempusproject.com">The Tempus Project</a>.</p>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</footer>
|
||||||
</footer>
|
</div>
|
||||||
<!-- 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>
|
||||||
|
@ -65,8 +65,8 @@
|
|||||||
<div class="pt-4">
|
<div class="pt-4">
|
||||||
{CONTENT}
|
{CONTENT}
|
||||||
</div>
|
</div>
|
||||||
|
{FOOT}
|
||||||
</div>
|
</div>
|
||||||
{FOOT}
|
|
||||||
<!-- 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>
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
<div class="col-8 mx-auto">
|
||||||
|
<p>
|
||||||
|
AllTheBookmarks was built out of a need to manage my own bookmarks better. As a web developer, I would not only use urls for every aspect of my job, but i also needed to switch browsers, operating systems, or devices. For years I had a version of this tool that I used on my own local network. In 2025 I'm bringing it to anyone who wants it.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Right now this entire system was built and managed by myself. As stated, I have used my own version of this for years but translating it to publicly available is not a 1 to 1 job. There may be bugs or issues encountered while you use the produxct. I can't guarantee a fix for every need in every case immidiately, but I do actively keep track of bugs and work hard to ensure everyone has a great experiience usiing the app.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If you encounter any bugs, feel free to report it here. Likewise, there are forms for feedback, reviews, suggestions, and a general contact form. Thanks for taking the time to check out the product!
|
||||||
|
</p>
|
||||||
|
</div>
|
67
app/views/faq.html
Normal file
67
app/views/faq.html
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
|
||||||
|
<div class="container py-5">
|
||||||
|
<h1 class="mb-4">Frequently Asked Questions</h1>
|
||||||
|
|
||||||
|
<!-- Table of Contents -->
|
||||||
|
<div class="mb-5">
|
||||||
|
<h2 class="h4">Table of Contents</h2>
|
||||||
|
<ul class="list-unstyled">
|
||||||
|
<li><a href="#question1" class="text-decoration-none">Does this work on mobile?</a></li>
|
||||||
|
<li><a href="#question2" class="text-decoration-none">Does this work on Mac/PC/Linux?</a></li>
|
||||||
|
<li><a href="#question3" class="text-decoration-none">How do I use the extension on my mobile device?</a></li>
|
||||||
|
<li><a href="#question4" class="text-decoration-none">How do I add this to my phone like an app?</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Accordion for Questions -->
|
||||||
|
<div class="accordion" id="faqAccordion">
|
||||||
|
<div class="accordion-item">
|
||||||
|
<h2 class="accordion-header" id="heading1">
|
||||||
|
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapse1" aria-expanded="true" aria-controls="collapse1">
|
||||||
|
Does this work on mobile?
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="collapse1" class="accordion-collapse collapse show" aria-labelledby="heading1" data-bs-parent="#faqAccordion">
|
||||||
|
<div class="accordion-body" id="question1">
|
||||||
|
Yes, this works seamlessly on mobile devices.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="accordion-item">
|
||||||
|
<h2 class="accordion-header" id="heading2">
|
||||||
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse2" aria-expanded="false" aria-controls="collapse2">
|
||||||
|
Does this work on Mac/PC/Linux?
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="collapse2" class="accordion-collapse collapse" aria-labelledby="heading2" data-bs-parent="#faqAccordion">
|
||||||
|
<div class="accordion-body" id="question2">
|
||||||
|
Yes, it is compatible with Mac, PC, and Linux platforms.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="accordion-item">
|
||||||
|
<h2 class="accordion-header" id="heading3">
|
||||||
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse3" aria-expanded="false" aria-controls="collapse3">
|
||||||
|
How do I use the extension on my mobile device?
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="collapse3" class="accordion-collapse collapse" aria-labelledby="heading3" data-bs-parent="#faqAccordion">
|
||||||
|
<div class="accordion-body" id="question3">
|
||||||
|
To use the extension on mobile, open your browser, install the extension, and follow the setup instructions.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="accordion-item">
|
||||||
|
<h2 class="accordion-header" id="heading4">
|
||||||
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse4" aria-expanded="false" aria-controls="collapse4">
|
||||||
|
How do I add this to my phone like an app?
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="collapse4" class="accordion-collapse collapse" aria-labelledby="heading4" data-bs-parent="#faqAccordion">
|
||||||
|
<div class="accordion-body" id="question4">
|
||||||
|
You can add it to your phone by installing the app or creating a shortcut from your browser to your home screen.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -1,13 +1,11 @@
|
|||||||
<div class="container border-top mt-4">
|
<div class="container border-top mt-4">
|
||||||
<footer class="py-5">
|
<footer class="pt-4">
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
{FOOTER_LEFT}
|
{FOOTER_LEFT}
|
||||||
{FOOTER_CENTER}
|
{FOOTER_CENTER}
|
||||||
{FOOTER_RIGHT}
|
{FOOTER_RIGHT}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="d-flex flex-column flex-sm-row justify-content-between py-3 mt-2 border-top">
|
||||||
<div class="d-flex flex-column flex-sm-row justify-content-between py-4 my-4 border-top">
|
|
||||||
{COPY}
|
{COPY}
|
||||||
{SOCIAL}
|
{SOCIAL}
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<div class="col-6 col-md-2 mb-3 d-flex">
|
<div class="col-6 col-md-2 mb-3">
|
||||||
<div class="material-switch mt-5 mx-auto">
|
<h5>Dark Mode</h5>
|
||||||
|
<div class="material-switch px-4">
|
||||||
<input name="dark-mode-toggle" type="checkbox" id="dark-mode-toggle" />
|
<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>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<ul class="nav nav-tabs" role="tablist">
|
<ul class="nav nav-tabs justify-content-center" role="tablist">
|
||||||
{LOOP}
|
{LOOP}
|
||||||
<li><a href="{url}" class="nav-link">{name}</a></li>
|
<li class="nav-item"><a href="{url}" class="nav-link">{name}</a></li>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
</ul>
|
</ul>
|
@ -1,60 +1,73 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-sm-12 col-md-6 col-lg-8 col-sm-offset-0 col-md-offset-3 col-lg-offset-2 top-pad" >
|
<div class="col-md-8">
|
||||||
<div class="card panel-primary">
|
<div class="card shadow">
|
||||||
<div class="card-header">
|
<!-- Card Header -->
|
||||||
<h3 class="card-title">{username}</h3>
|
<div class="card-header text-center bg-dark text-white">
|
||||||
</div>
|
<h3 class="card-title mb-0">{username}</h3>
|
||||||
<div class="card-body">
|
</div>
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-3 col-lg-3 " align="center">
|
<!-- Card Body -->
|
||||||
<img alt="User Pic" src="{ROOT_URL}{avatar}" class="img-circle img-responsive">
|
<div class="card-body">
|
||||||
</div>
|
<div class="row align-items-center">
|
||||||
<div class=" col-md-9 col-lg-9 ">
|
<!-- User Image -->
|
||||||
<table class="table table-user-primary">
|
<div class="col-md-4 text-center">
|
||||||
<tbody>
|
<img src="{ROOT_URL}{avatar}" alt="User Pic" class="rounded-circle img-fluid" style="max-width: 150px;">
|
||||||
{ADMIN}
|
</div>
|
||||||
<tr>
|
|
||||||
<td>Confirmed:</td>
|
<!-- User Details -->
|
||||||
<td>{confirmedText}</td>
|
<div class="col-md-8">
|
||||||
</tr>
|
<table class="table table-borderless">
|
||||||
{/ADMIN}
|
<tbody>
|
||||||
<tr>
|
{ADMIN}
|
||||||
<td>registered:</td>
|
<tr>
|
||||||
<td>{DTC}{registered}{/DTC}</td>
|
<th scope="row">Confirmed:</th>
|
||||||
</tr>
|
<td>{confirmedText}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td>Last seen</td>
|
{/ADMIN}
|
||||||
<td>{DTC}{lastLogin}{/DTC}</td>
|
<tr>
|
||||||
</tr>
|
<th scope="row">Registered:</th>
|
||||||
<tr>
|
<td>{DTC}{registered}{/DTC}</td>
|
||||||
<td>Gender</td>
|
</tr>
|
||||||
<td>{gender}</td>
|
<tr>
|
||||||
</tr>
|
<th scope="row">Last Seen:</th>
|
||||||
{ADMIN}
|
<td>{DTC}{lastLogin}{/DTC}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td>Email</td>
|
<tr>
|
||||||
<td><a href="mailto:{email}">{email}</a></td>
|
<th scope="row">Gender:</th>
|
||||||
</tr>
|
<td>{gender}</td>
|
||||||
<td>User ID</td>
|
</tr>
|
||||||
<td>{ID}</td>
|
{ADMIN}
|
||||||
</tr>
|
<tr>
|
||||||
{/ADMIN}
|
<th scope="row">Email:</th>
|
||||||
</tbody>
|
<td><a href="mailto:{email}">{email}</a></td>
|
||||||
</table>
|
</tr>
|
||||||
</div>
|
<tr>
|
||||||
</div>
|
<th scope="row">User ID:</th>
|
||||||
</div>
|
<td>{ID}</td>
|
||||||
<div class="card-footer">
|
</tr>
|
||||||
<a href="{ROOT_URL}messages/create?prepopuser={USERNAME}" data-original-title="Broadcast Message" data-bs-toggle="tooltip" type="button" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-envelope"></i></a>
|
{/ADMIN}
|
||||||
{ADMIN}
|
</tbody>
|
||||||
<span class="float-right">
|
</table>
|
||||||
<a href="{ROOT_URL}admin/users/edit/{ID}" data-original-title="Edit this user" data-bs-toggle="tooltip" type="button" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a>
|
</div>
|
||||||
<a href="{ROOT_URL}admin/users/delete/{ID}" data-original-title="Remove this user" data-bs-toggle="tooltip" type="button" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-times"></i></a>
|
</div>
|
||||||
</span>
|
</div>
|
||||||
{/ADMIN}
|
|
||||||
</div>
|
<!-- Admin Controls -->
|
||||||
</div>
|
<div class="card-footer text-center">
|
||||||
</div>
|
<a href="{ROOT_URL}messages/create?prepopuser={USERNAME}" class="btn btn-primary btn-sm me-2" data-bs-toggle="tooltip" title="Broadcast Message">
|
||||||
</div>
|
<i class="fa fa-envelope"></i> Message
|
||||||
|
</a>
|
||||||
|
{ADMIN}
|
||||||
|
<a href="{ROOT_URL}admin/users/edit/{ID}" class="btn btn-warning btn-sm me-2" data-bs-toggle="tooltip" title="Edit User">
|
||||||
|
<i class="fa fa-pencil-square"></i> Edit
|
||||||
|
</a>
|
||||||
|
<a href="{ROOT_URL}admin/users/delete/{ID}" class="btn btn-danger btn-sm" data-bs-toggle="tooltip" title="Delete User">
|
||||||
|
<i class="fa fa-times"></i> Delete
|
||||||
|
</a>
|
||||||
|
{/ADMIN}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,46 +1,65 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="container py-4">
|
||||||
<legend>Register</legend>
|
<h2 class="text-center mb-4">Create an Account</h2>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<div class="form-group">
|
<!-- Username -->
|
||||||
<label for="username" class="col-lg-6 control-label">Username:</label>
|
<div class="mb-3 row">
|
||||||
|
<label for="username" class="col-lg-6 col-form-label text-end">Username:</label>
|
||||||
<div class="col-lg-2">
|
<div class="col-lg-2">
|
||||||
<input class="form-control" type="text" name="username" id="username">
|
<input type="text" class="form-control" name="username" id="username" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<label for="email" class="col-lg-6 control-label">Email:</label>
|
<!-- Email -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="email" class="col-lg-6 col-form-label text-end">Email:</label>
|
||||||
<div class="col-lg-2">
|
<div class="col-lg-2">
|
||||||
<input class="form-control" type="email" name="email" id="email">
|
<input type="email" class="form-control" name="email" id="email" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<label for="email2" class="col-lg-6 control-label">Re-Enter Email:</label>
|
<!-- Re-enter Email -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="email2" class="col-lg-6 col-form-label text-end">Re-Enter Email:</label>
|
||||||
<div class="col-lg-2">
|
<div class="col-lg-2">
|
||||||
<input class="form-control" type="email" name="email2" id="email2">
|
<input type="email" class="form-control" name="email2" id="email2" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<label for="password" class="col-lg-6 control-label">Password:</label>
|
<!-- Password -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="password" class="col-lg-6 col-form-label text-end">Password:</label>
|
||||||
<div class="col-lg-2">
|
<div class="col-lg-2">
|
||||||
<input class="form-control" type="password" name="password" id="password">
|
<input type="password" class="form-control" name="password" id="password" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<label for="password2" class="col-lg-6 control-label">Re-Enter Password:</label>
|
<!-- Re-enter Password -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="password2" class="col-lg-6 col-form-label text-end">Re-Enter Password:</label>
|
||||||
<div class="col-lg-2">
|
<div class="col-lg-2">
|
||||||
<input class="form-control" type="password" name="password2" id="password2">
|
<input type="password" class="form-control" name="password2" id="password2" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<center>
|
<!-- Terms of Service -->
|
||||||
I have read and agree to the Terms of Service
|
<div class="mb-3 text-center">
|
||||||
<input type="checkbox" name="terms" id="terms" value="1"/>
|
<div class="">
|
||||||
<div class="terms">
|
<input type="checkbox" class="form-check-input" name="terms" id="terms" value="1" required>
|
||||||
{TERMS}
|
<label for="terms" class="form-check-label">
|
||||||
</div>
|
I have read and agree to the <a href="/home/terms" class="text-primary">Terms of Service</a>
|
||||||
</center>
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="terms mt-2 mx-auto">
|
||||||
|
{TERMS}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Hidden Token -->
|
||||||
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
|
||||||
|
<!-- Submit Button -->
|
||||||
|
<div class="text-center">
|
||||||
|
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Sign up</button>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Sign up</button><br>
|
|
||||||
</form>
|
</form>
|
@ -1,19 +1,21 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="container py-4">
|
||||||
<legend>Email Settings</legend>
|
<div class="row justify-content-center">
|
||||||
<fieldset>
|
<div class="col-md-4">
|
||||||
<div class="form-group">
|
<form action="" method="post">
|
||||||
<label for="email" class="col-lg-3 control-label">New Email:</label>
|
<legend>Email Settings</legend>
|
||||||
<div class="col-lg-2">
|
<fieldset>
|
||||||
<input class="form-control" type="email" name="email" id="email">
|
<div class="mb-3">
|
||||||
</div>
|
<label for="email" class="form-label">New Email:</label>
|
||||||
|
<input type="email" class="form-control" name="email" id="email" placeholder="Enter new email">
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="email2" class="form-label">Re-type Email:</label>
|
||||||
|
<input type="email" class="form-control" name="email2" id="email2" placeholder="Re-enter new email">
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
<button name="submit" value="submit" type="submit" class="btn btn-primary">Update</button>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
</div>
|
||||||
<label for="email2" class="col-lg-3 control-label">Re-type email:</label>
|
</div>
|
||||||
<div class="col-lg-2">
|
|
||||||
<input class="form-control" type="email" name="email2" id="email2">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Update</button><br>
|
|
||||||
</form>
|
|
||||||
|
@ -1,25 +1,25 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="container py-4">
|
||||||
<legend>Change Password</legend>
|
<div class="row justify-content-center">
|
||||||
<fieldset>
|
<div class="col-md-4">
|
||||||
<div class="form-group">
|
<form action="" method="post">
|
||||||
<label for="curpass" class="col-lg-3 control-label">Current Password:</label>
|
<legend>Change Password</legend>
|
||||||
<div class="col-lg-3">
|
<fieldset>
|
||||||
<input class="form-control" type="password" name="curpass" id="curpass">
|
<div class="mb-3">
|
||||||
</div>
|
<label for="curpass" class="form-label">Current Password:</label>
|
||||||
|
<input type="password" class="form-control" name="curpass" id="curpass" placeholder="Enter current password">
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="password" class="form-label">New Password:</label>
|
||||||
|
<input type="password" class="form-control" name="password" id="password" placeholder="Enter new password">
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="password2" class="form-label">Re-type New Password:</label>
|
||||||
|
<input type="password" class="form-control" name="password2" id="password2" placeholder="Re-enter new password">
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
<button name="submit" value="submit" type="submit" class="btn btn-primary">Update</button>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
</div>
|
||||||
<label for="password" class="col-lg-3 control-label">New Password:</label>
|
</div>
|
||||||
<div class="col-lg-3">
|
|
||||||
<input class="form-control" type="password" name="password" id="password">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="password2" class="col-lg-3 control-label">Re-Type New Password:</label>
|
|
||||||
<div class="col-lg-3">
|
|
||||||
<input class="form-control" type="password" name="password2" id="password2">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Update</button><br>
|
|
||||||
</form>
|
|
@ -1,6 +1,14 @@
|
|||||||
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
<div class="container py-4">
|
||||||
<legend>Preferences</legend>
|
<div class="row justify-content-center">
|
||||||
{PREFERENCES_FORM}
|
<div class="col-md-4">
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Update</button><br>
|
<legend>Preferences</legend>
|
||||||
</form>
|
<fieldset>
|
||||||
|
{PREFERENCES_FORM}
|
||||||
|
</fieldset>
|
||||||
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
<button name="submit" value="submit" type="submit" class="btn btn-primary">Update</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -60,15 +60,15 @@ class TheTempusProject extends Bedrock {
|
|||||||
public $info_footer_links = [
|
public $info_footer_links = [
|
||||||
[
|
[
|
||||||
'text' => 'FAQs',
|
'text' => 'FAQs',
|
||||||
'url' => '{ROOT_URL}home/terms',
|
'url' => '{ROOT_URL}home/faq',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => 'About',
|
'text' => 'About',
|
||||||
'url' => '{ROOT_URL}home/terms',
|
'url' => '{ROOT_URL}home/about',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => 'Privacy Policy',
|
'text' => 'Privacy Policy',
|
||||||
'url' => '{ROOT_URL}home/terms',
|
'url' => '{ROOT_URL}home/privacy',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => 'Terms of Service',
|
'text' => 'Terms of Service',
|
||||||
@ -478,6 +478,13 @@ class TheTempusProject extends Bedrock {
|
|||||||
'enabled' => true,
|
'enabled' => true,
|
||||||
'example' => '{LOGGEDIN}Only visible to users who are logged-in{LOGGEDIN}',
|
'example' => '{LOGGEDIN}Only visible to users who are logged-in{LOGGEDIN}',
|
||||||
];
|
];
|
||||||
|
$this->filters[] = [
|
||||||
|
'name' => 'notloggedin',
|
||||||
|
'find' => '#{NOTLOGGEDIN}(.*?){/NOTLOGGEDIN}#is',
|
||||||
|
'replace' => ( self::$isLoggedIn ? '' : '$1' ),
|
||||||
|
'enabled' => true,
|
||||||
|
'example' => '{NOTLOGGEDIN}Only visible to users who are logged-in{NOTLOGGEDIN}',
|
||||||
|
];
|
||||||
$this->filters[] = [
|
$this->filters[] = [
|
||||||
'name' => 'dtc',
|
'name' => 'dtc',
|
||||||
'find' => '#{DTC(.*?)}(.*?){/DTC}#is',
|
'find' => '#{DTC(.*?)}(.*?){/DTC}#is',
|
||||||
@ -510,8 +517,8 @@ class TheTempusProject extends Bedrock {
|
|||||||
|
|
||||||
public function load( $url = '' ) {
|
public function load( $url = '' ) {
|
||||||
$routes = new RoutesModel;
|
$routes = new RoutesModel;
|
||||||
if (empty($url)) {
|
if ( empty( $url ) ) {
|
||||||
$url = trim(Input::get('url'), '/');
|
$url = trim( Input::get( 'url' ), '/' );
|
||||||
$url = str_ireplace( '.php', '', $url );
|
$url = str_ireplace( '.php', '', $url );
|
||||||
}
|
}
|
||||||
$route = $routes->findByOriginalUrl($url);
|
$route = $routes->findByOriginalUrl($url);
|
||||||
|
Reference in New Issue
Block a user