Bootstrap 5 continued + bugfixes
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@ -64,3 +64,4 @@ vendor/canary/logs/*
|
|||||||
.env
|
.env
|
||||||
components/*
|
components/*
|
||||||
mailhog.log
|
mailhog.log
|
||||||
|
uploads/*
|
||||||
|
@ -214,6 +214,10 @@ class Forms extends Check {
|
|||||||
* @return {bool}
|
* @return {bool}
|
||||||
*/
|
*/
|
||||||
public static function passwordResetCode() {
|
public static function passwordResetCode() {
|
||||||
|
if ( !Input::exists( 'resetCode' ) ) {
|
||||||
|
self::addUserError( 'Invalid resetCode.' );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if ( !self::token() ) {
|
if ( !self::token() ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -212,12 +212,13 @@ class Preferences {
|
|||||||
}
|
}
|
||||||
if ( 'file' == $details['type'] ) {
|
if ( 'file' == $details['type'] ) {
|
||||||
if ( Input::exists( $name ) ) {
|
if ( Input::exists( $name ) ) {
|
||||||
$folder = IMAGE_UPLOAD_DIRECTORY . App::$activeUser->username . DIRECTORY_SEPARATOR;
|
$folder = UPLOAD_DIRECTORY . App::$activeUser->username . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR;
|
||||||
if ( !Upload::image( $name, $folder ) ) {
|
$upload = Upload::image( $name, $folder );
|
||||||
Issues::add( 'error', [ 'There was an error with your upload.' => Check::systemErrors() ] );
|
if ( $upload ) {
|
||||||
} else {
|
|
||||||
$route = str_replace( APP_ROOT_DIRECTORY, '', $folder );
|
$route = str_replace( APP_ROOT_DIRECTORY, '', $folder );
|
||||||
$prefsArray[$name] = $route . Upload::last();
|
$prefsArray[$name] = $route . Upload::last();
|
||||||
|
} else {
|
||||||
|
Issues::add( 'error', [ 'There was an error with your upload.' => Check::userErrors() ] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,14 +29,14 @@ class Register extends Controller {
|
|||||||
public function confirm( $code = null ) {
|
public function confirm( $code = null ) {
|
||||||
self::$title = 'Confirm Email';
|
self::$title = 'Confirm Email';
|
||||||
if ( !isset( $code ) && !Input::exists( 'confirmationCode' ) ) {
|
if ( !isset( $code ) && !Input::exists( 'confirmationCode' ) ) {
|
||||||
return Views::view( 'email.confirmation' );
|
return Views::view( 'confirmation' );
|
||||||
}
|
}
|
||||||
if ( Forms::check( 'emailConfirmation' ) ) {
|
if ( Forms::check( 'emailConfirmation' ) ) {
|
||||||
$code = Input::post( 'confirmationCode' );
|
$code = Input::post( 'confirmationCode' );
|
||||||
}
|
}
|
||||||
if ( !self::$user->confirm( $code ) ) {
|
if ( !self::$user->confirm( $code ) ) {
|
||||||
Issues::add( 'error', 'There was an error confirming your account, please try again.' );
|
Issues::add( 'error', 'There was an error confirming your account, please try again.' );
|
||||||
return Views::view( 'email.confirmation' );
|
return Views::view( 'confirmation' );
|
||||||
}
|
}
|
||||||
Session::flash( 'success', 'You have successfully confirmed your email address.' );
|
Session::flash( 'success', 'You have successfully confirmed your email address.' );
|
||||||
Redirect::to( 'home/index' );
|
Redirect::to( 'home/index' );
|
||||||
@ -97,13 +97,13 @@ class Register extends Controller {
|
|||||||
if ( !App::$isLoggedIn ) {
|
if ( !App::$isLoggedIn ) {
|
||||||
return Issues::add( 'notice', 'Please log in to resend your confirmation email.' );
|
return Issues::add( 'notice', 'Please log in to resend your confirmation email.' );
|
||||||
}
|
}
|
||||||
if ( App::$activeUser->data()->confirmed == '1' ) {
|
if ( App::$activeUser->confirmed == '1' ) {
|
||||||
return Issues::add( 'notice', 'Your account has already been confirmed.' );
|
return Issues::add( 'notice', 'Your account has already been confirmed.' );
|
||||||
}
|
}
|
||||||
if ( !Forms::check( 'confirmationResend' ) ) {
|
if ( !Forms::check( 'confirmationResend' ) ) {
|
||||||
return Views::view( 'email.confirmation_resend' );
|
return Views::view( 'confirmation_resend' );
|
||||||
}
|
}
|
||||||
Email::send( App::$activeUser->data()->email, 'confirmation', App::$activeUser->data()->confirmationCode, [ 'template' => true ] );
|
Email::send( App::$activeUser->email, 'confirmation', App::$activeUser->confirmationCode, [ 'template' => true ] );
|
||||||
Session::flash( 'success', 'Your confirmation email has been sent to the email for your account.' );
|
Session::flash( 'success', 'Your confirmation email has been sent to the email for your account.' );
|
||||||
Redirect::to( 'home/index' );
|
Redirect::to( 'home/index' );
|
||||||
}
|
}
|
||||||
@ -111,26 +111,26 @@ class Register extends Controller {
|
|||||||
public function reset( $code = null ) {
|
public function reset( $code = null ) {
|
||||||
self::$title = 'Password Reset';
|
self::$title = 'Password Reset';
|
||||||
if ( !isset( $code ) && !Input::exists( 'resetCode' ) ) {
|
if ( !isset( $code ) && !Input::exists( 'resetCode' ) ) {
|
||||||
Issues::add( 'error', 'No reset code provided.' );
|
Issues::add( 'info', 'Please provide a reset code.' );
|
||||||
return Views::view( 'password_reset_code' );
|
return Views::view( 'password_reset_code' );
|
||||||
}
|
}
|
||||||
if ( Input::exists( 'resetCode' ) ) {
|
if ( Input::exists( 'resetCode' ) ) {
|
||||||
if ( Forms::check( 'password_reset_code' ) ) {
|
if ( Forms::check( 'passwordResetCode' ) ) {
|
||||||
$code = Input::post( 'resetCode' );
|
$code = Input::post( 'resetCode' );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( !self::$user->checkCode( $code ) ) {
|
if ( ! self::$user->checkCode( $code ) ) {
|
||||||
Issues::add( 'error', 'There was an error with your reset code. Please try again.' );
|
Issues::add( 'error', 'There was an error with your reset code. Please try again.' );
|
||||||
return Views::view( 'password_reset_code' );
|
return Views::view( 'password_reset_code' );
|
||||||
}
|
}
|
||||||
if ( !Input::exists() ) {
|
Components::set( 'resetCode', $code );
|
||||||
|
if ( ! Input::exists('password') ) {
|
||||||
return Views::view( 'password_reset' );
|
return Views::view( 'password_reset' );
|
||||||
}
|
}
|
||||||
if ( !Forms::check( 'passwordReset' ) ) {
|
if ( ! Forms::check( 'passwordReset' ) ) {
|
||||||
Issues::add( 'error', [ 'There was an error with your request.' => Check::userErrors() ] );
|
Issues::add( 'error', [ 'There was an error with your request.' => Check::userErrors() ] );
|
||||||
return Views::view( 'password_reset' );
|
return Views::view( 'password_reset' );
|
||||||
}
|
}
|
||||||
Components::set( 'resetCode', $code );
|
|
||||||
self::$user->changePassword( $code, Input::post( 'password' ) );
|
self::$user->changePassword( $code, Input::post( 'password' ) );
|
||||||
Email::send( self::$user->data()->email, 'passwordChange', null, [ 'template' => true ] );
|
Email::send( self::$user->data()->email, 'passwordChange', null, [ 'template' => true ] );
|
||||||
Session::flash( 'success', 'Your Password has been changed, please use your new password to log in.' );
|
Session::flash( 'success', 'Your Password has been changed, please use your new password to log in.' );
|
||||||
|
@ -43,7 +43,7 @@ class Usercp extends Controller {
|
|||||||
public function email() {
|
public function email() {
|
||||||
self::$title = 'Email Settings';
|
self::$title = 'Email Settings';
|
||||||
if ( App::$activeUser->confirmed != '1' ) {
|
if ( App::$activeUser->confirmed != '1' ) {
|
||||||
return Issues::add( 'notice', 'You need to confirm your email address before you can make modifications. If you would like to resend that confirmation link, please <a href="{BASE}register/resend">click here</a>', true );
|
return Issues::add( 'notice', 'You need to confirm your email address before you can make modifications. If you would like to resend that confirmation link, please <a href="/register/resend">click here</a>', true );
|
||||||
}
|
}
|
||||||
if ( !Input::exists() ) {
|
if ( !Input::exists() ) {
|
||||||
return Views::view( 'user_cp.email_change' );
|
return Views::view( 'user_cp.email_change' );
|
||||||
@ -98,6 +98,7 @@ class Usercp extends Controller {
|
|||||||
$fields = App::$activePrefs;
|
$fields = App::$activePrefs;
|
||||||
if ( Input::exists( 'submit' ) ) {
|
if ( Input::exists( 'submit' ) ) {
|
||||||
$fields = $prefs->convertFormToArray( true, false );
|
$fields = $prefs->convertFormToArray( true, false );
|
||||||
|
// dv( $fields );
|
||||||
// @TODO now i may need to rework the form checker to work with this....
|
// @TODO now i may need to rework the form checker to work with this....
|
||||||
// if (!Forms::check('userPrefs')) {
|
// if (!Forms::check('userPrefs')) {
|
||||||
// Issues::add( 'error', [ 'There was an error with your request.' => Check::userErrors() ] );
|
// Issues::add( 'error', [ 'There was an error with your request.' => Check::userErrors() ] );
|
||||||
|
@ -103,3 +103,17 @@ function generateRandomString( $length = 10 ) {
|
|||||||
}
|
}
|
||||||
return $randomString;
|
return $randomString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function generateUuidV4(): string {
|
||||||
|
// Generate 16 random bytes
|
||||||
|
$data = random_bytes(16);
|
||||||
|
|
||||||
|
// Set the version to 4 -> random (bits 12-15 of time_hi_and_version)
|
||||||
|
$data[6] = chr((ord($data[6]) & 0x0f) | 0x40);
|
||||||
|
|
||||||
|
// Set the variant to RFC 4122 -> (bits 6-7 of clock_seq_hi_and_reserved)
|
||||||
|
$data[8] = chr((ord($data[8]) & 0x3f) | 0x80);
|
||||||
|
|
||||||
|
// Convert to hexadecimal and format as a UUID
|
||||||
|
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
<legend>New Posts</legend>
|
<legend>New Posts</legend>
|
||||||
<table class="table table-striped">
|
<table class="table context-main">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 20%"></th>
|
<th style="width: 20%"></th>
|
||||||
|
@ -53,6 +53,7 @@ class Bugreport extends Plugin {
|
|||||||
[
|
[
|
||||||
'text' => 'Bug Report',
|
'text' => 'Bug Report',
|
||||||
'url' => '{ROOT_URL}bugreport',
|
'url' => '{ROOT_URL}bugreport',
|
||||||
|
'filter' => 'loggedin',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $admin_links = [
|
public $admin_links = [
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<legend>New Comments</legend>
|
<legend>New Comments</legend>
|
||||||
<table class="table table-striped">
|
<table class="table context-main">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 20%"></th>
|
<th style="width: 20%"></th>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
id="comment"
|
id="comment"
|
||||||
placeholder="Write your comment here..."></textarea>
|
placeholder="Write your comment here..."></textarea>
|
||||||
</div>
|
</div>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary">Comment</button>
|
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary mb-3">Comment</button>
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
<input type="hidden" name="contentId" value="{CONTENT_ID}">
|
<input type="hidden" name="contentId" value="{CONTENT_ID}">
|
||||||
</form>
|
</form>
|
||||||
|
@ -53,7 +53,7 @@ class Contact extends Plugin {
|
|||||||
];
|
];
|
||||||
public $admin_links = [
|
public $admin_links = [
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-support"></i> Contact',
|
'text' => '<i class="fa fa-fw fa-briefcase"></i> Contact',
|
||||||
'url' => '{ROOT_URL}admin/contact',
|
'url' => '{ROOT_URL}admin/contact',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
@ -67,9 +67,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Footer -->
|
<!-- Footer -->
|
||||||
<footer class="bg-light border-top">
|
<footer class="border-top context-main-bg">
|
||||||
<div class="container py-3">
|
<div class="container pb-4 pt-3 align-items-center">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between align-items-center context-main-bg">
|
||||||
{COPY}
|
{COPY}
|
||||||
{SOCIAL}
|
{SOCIAL}
|
||||||
</div>
|
</div>
|
||||||
|
@ -63,9 +63,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/ISSUES}
|
{/ISSUES}
|
||||||
<div class="">
|
{CONTENT}
|
||||||
{CONTENT}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{FOOT}
|
{FOOT}
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,14 +1,16 @@
|
|||||||
<legend>Admin Dashboard</legend>
|
<div class="context-main-bg context-main">
|
||||||
<div class="row">
|
<legend class="text-center my-2">Admin Dashboard</legend>
|
||||||
<div class="col-xlg-6 col-lg-6 col-md-6 col-sm-6">
|
<div class="row">
|
||||||
{userDash}
|
<div class="col-5 offset-1">
|
||||||
|
{userDash}
|
||||||
|
</div>
|
||||||
|
<div class="col-5">
|
||||||
|
{commentDash}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xlg-6 col-lg-6 col-md-6 col-sm-6">
|
<div class="row">
|
||||||
{commentDash}
|
<div class="col-10 offset-1">
|
||||||
</div>
|
{blogDash}
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
|
||||||
<div class="col-xlg-12 col-lg-12 col-md-12 col-sm-12">
|
|
||||||
{blogDash}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,5 +1,5 @@
|
|||||||
<legend>New Users</legend>
|
<legend>New Users</legend>
|
||||||
<table class="table table-striped">
|
<table class="table context-main">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 85%"></th>
|
<th style="width: 85%"></th>
|
||||||
|
15
app/views/confirmation.html
Normal file
15
app/views/confirmation.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
<div class="container py-5 context-main-bg my-5 text-center">
|
||||||
|
<h1 class="mb-4">Email Confirmation</h1>
|
||||||
|
<hr>
|
||||||
|
<p>Please enter the confirmation code you received in your email.</p>
|
||||||
|
<form action="" method="post" class="">
|
||||||
|
<fieldset>
|
||||||
|
<div data-mdb-input-init class="form-outline mb-4 col-2 offset-5">
|
||||||
|
<input class="form-control" type="text" name="confirmationCode" id="confirmationCode" placeholder="Confirmation Code">
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Submit</button><br>
|
||||||
|
</form>
|
||||||
|
</div>
|
10
app/views/confirmation_resend.html
Normal file
10
app/views/confirmation_resend.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<div class="container py-5 context-main-bg my-5 text-center">
|
||||||
|
<h1 class="mb-4">Re-Send Confirmation</h1>
|
||||||
|
<hr>
|
||||||
|
<p>Please click the resend button to resend your email confirmation. Don't forget to check the spam folder!</p>
|
||||||
|
<form action="" method="post" class="">
|
||||||
|
<input type="hidden" name="resendConfirmation" value="true">
|
||||||
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Resend Confirmation</button><br>
|
||||||
|
</form>
|
||||||
|
</div>
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
<div class="container py-5 context-main-bg my-5">
|
<div class="container py-5 context-main-bg my-5">
|
||||||
<h1 class="mb-4">Frequently Asked Questions</h1>
|
<h1 class="mb-4">Frequently Asked Questions</h1>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -1 +1 @@
|
|||||||
<p>© 2024 AllTheBookmarks, Powered by <a href="https://thetempusproject.com" class="text-decoration-none">The Tempus Project</a>.</p>
|
<span>© 2024 AllTheBookmarks, Powered by <a href="https://thetempusproject.com" class="text-decoration-none">The Tempus Project</a>.</span>
|
@ -1,4 +1,4 @@
|
|||||||
<ul class="list-unstyled d-flex">
|
<ul class="list-unstyled d-flex mb-0">
|
||||||
<li class="ms-3">
|
<li class="ms-3">
|
||||||
<a class="context-main" href="{ROOT_URL}fb">
|
<a class="context-main" href="{ROOT_URL}fb">
|
||||||
<span class="fa-brands fa-fw fa-facebook"></span>
|
<span class="fa-brands fa-fw fa-facebook"></span>
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="col-8 mx-auto p-4 rounded shadow-sm mb-5 context-main-bg mt-4 text-center">
|
||||||
<legend>Lost and Found</legend>
|
<form action="" method="post">
|
||||||
<fieldset>
|
<legend class=" my-2">Lost and Found</legend>
|
||||||
<div class="form-group">
|
<p class="col-8 offset-2">You can begin the process of recovering your account here. Provide your username, or email address and instructions for ressetting your password will be mailed to you shortly.</p>
|
||||||
<label for="entry" class="col-lg-3 control-label">Username or Email:</label>
|
<fieldset>
|
||||||
<div class="col-lg-3">
|
<div data-mdb-input-init class="form-outline mb-4 col-2 offset-5">
|
||||||
<input class="form-control" type="text" name="entry" id="entry">
|
<input name="entry" type="text" id="entry" class="form-control" placeholder="Username or Email" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</fieldset>
|
||||||
</fieldset>
|
<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">Reset Password</button><br>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Reset Password</button><br>
|
</form>
|
||||||
</form>
|
</div>
|
@ -1,56 +1,48 @@
|
|||||||
<section class="h-100 gradient-form pt-5 context-main-bg">
|
<section class="h-100 gradient-form">
|
||||||
<div class="container pb-5 h-100">
|
<div class="container pb-5 h-100 context-main-bg pt-5">
|
||||||
<div class="row d-flex justify-content-center align-items-center h-100">
|
<div class="row d-flex justify-content-center align-items-center h-100">
|
||||||
<div class="col-xl-10">
|
<div class="col-xl-10">
|
||||||
<div class="card rounded-3 text-black">
|
<div class="card rounded-3 text-black">
|
||||||
<div class="row g-0">
|
<div class="row g-0">
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<div class="card-body p-md-5 mx-md-4">
|
<div class="card-body p-md-5 mx-md-4">
|
||||||
|
<div class="text-center">
|
||||||
<div class="text-center">
|
<img src="{ROOT_URL}{LOGO}" style="width: 185px;" alt="logo">
|
||||||
<img src="{ROOT_URL}{LOGO}" style="width: 185px;" alt="logo">
|
<h4 class="mt-1 mb-5 pb-1">AllTheBookmarks</h4>
|
||||||
<h4 class="mt-1 mb-5 pb-1">AllTheBookmarks</h4>
|
</div>
|
||||||
</div>
|
<form action="{ROOT_URL}home/login" method="post">
|
||||||
|
<p>Please login to your account</p>
|
||||||
<form action="{ROOT_URL}home/login" method="post">
|
<div data-mdb-input-init class="form-outline mb-4">
|
||||||
<p>Please login to your account</p>
|
<input name="username" type="text" id="username" class="form-control" placeholder="Username" />
|
||||||
|
</div>
|
||||||
<div data-mdb-input-init class="form-outline mb-4">
|
<div data-mdb-input-init class="form-outline mb-4">
|
||||||
<input name="username" type="text" id="username" class="form-control" placeholder="Username" />
|
<input name="password" type="password" id="password" class="form-control" placeholder="password" />
|
||||||
|
</div>
|
||||||
|
<div class="text-center pt-1 mb-5 pb-1">
|
||||||
|
<button name="submit" value="submit" type="submit" data-mdb-button-init data-mdb-ripple-init class="btn btn-primary btn-block fa-lg gradient-custom-2 mb-3">
|
||||||
|
Sign in
|
||||||
|
</button>
|
||||||
|
<a class="text-muted" href="{ROOT_URL}register/recover">Forgot password?</a>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex align-items-center justify-content-center pb-4">
|
||||||
|
<p class="mb-0 me-2">Don't have an account?</p>
|
||||||
|
<a href="{ROOT_URL}register" data-mdb-button-init data-mdb-ripple-init class="btn btn-outline-dark">
|
||||||
|
Create new
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 d-flex align-items-center gradient-custom-2">
|
||||||
|
<div class="text-white px-3 py-4 p-md-5 mx-md-4">
|
||||||
|
<h4 class="mb-4">I appreciate you.</h4>
|
||||||
|
<p class="small mb-0">As a solo developer, i appreciate each and every person who uses my products. There aren't many of you, so thank you</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div data-mdb-input-init class="form-outline mb-4">
|
|
||||||
<input name="password" type="password" id="password" class="form-control" placeholder="password" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="text-center pt-1 mb-5 pb-1">
|
|
||||||
<button name="submit" value="submit" type="submit" data-mdb-button-init data-mdb-ripple-init class="btn btn-primary btn-block fa-lg gradient-custom-2 mb-3">Sign
|
|
||||||
in</button>
|
|
||||||
<a class="text-muted" href="{ROOT_URL}register/recover">Forgot password?</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="d-flex align-items-center justify-content-center pb-4">
|
|
||||||
<p class="mb-0 me-2">Don't have an account?</p>
|
|
||||||
<a href="{ROOT_URL}register">
|
|
||||||
|
|
||||||
<button type="button" data-mdb-button-init data-mdb-ripple-init class="btn btn-outline-dark">Create new</button>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="col-lg-6 d-flex align-items-center gradient-custom-2">
|
|
||||||
<div class="text-white px-3 py-4 p-md-5 mx-md-4">
|
|
||||||
<h4 class="mb-4">I appreciate you.</h4>
|
|
||||||
<p class="small mb-0">As a solo developer, i appreciate each and every person who uses my products. There aren't many of you, so thank you</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
@ -9,7 +9,7 @@
|
|||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<img src="{ROOT_URL}{AVATAR}" alt="" width="32" height="32" class="rounded-circle me-2"> <strong class="mr-3">{USERNAME}</strong>
|
<img src="{ROOT_URL}{AVATAR}" alt="" width="32" height="32" class="rounded-circle me-2"> <strong class="mr-3">{USERNAME}</strong>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-menu-dark text-small shadow" aria-labelledby="userDropdown">
|
<ul class="dropdown-menu dropdown-menu-dark dropdown-menu-end text-small shadow" aria-labelledby="userDropdown">
|
||||||
<li><a href="{ROOT_URL}usercp" class="dropdown-item"><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" class="dropdown-item"><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>
|
||||||
|
@ -9,29 +9,27 @@
|
|||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
<i class="fa fa-user"></i>
|
<i class="fa fa-user"></i>
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-dark text-small shadow" aria-labelledby="userDropdown">
|
<div class="dropdown-menu dropdown-menu-dark dropdown-menu-end text-small shadow" aria-labelledby="userDropdown">
|
||||||
<form method="post" action="{ROOT_URL}home/login" id="signin" class="px-4 py-3">
|
<form method="post" action="{ROOT_URL}home/login" id="signin" class="px-4 py-3">
|
||||||
<input type="hidden" name="rurl" id="rurl" value="{CURRENT_URL}">
|
<input type="hidden" name="rurl" id="rurl" value="{CURRENT_URL}">
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
|
|
||||||
<!-- Username -->
|
<!-- Username -->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="username">Username</label>
|
|
||||||
<input
|
<input
|
||||||
id="username"
|
id="username"
|
||||||
type="text"
|
type="text"
|
||||||
class="form-control"
|
class="form-control mb-2"
|
||||||
name="username"
|
name="username"
|
||||||
placeholder="Username">
|
placeholder="Username">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Password -->
|
<!-- Password -->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="password">Password</label>
|
|
||||||
<input
|
<input
|
||||||
id="password"
|
id="password"
|
||||||
type="password"
|
type="password"
|
||||||
class="form-control"
|
class="form-control mb-2"
|
||||||
name="password"
|
name="password"
|
||||||
placeholder="Password">
|
placeholder="Password">
|
||||||
</div>
|
</div>
|
||||||
@ -40,7 +38,7 @@
|
|||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
class="form-check-input"
|
class="form-check-input mb-2"
|
||||||
id="remember"
|
id="remember"
|
||||||
name="remember">
|
name="remember">
|
||||||
<label class="form-check-label" for="remember">Remember me</label>
|
<label class="form-check-label" for="remember">Remember me</label>
|
||||||
@ -49,7 +47,7 @@
|
|||||||
<!-- Submit Button -->
|
<!-- Submit Button -->
|
||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
class="btn btn-primary btn-block mt-3"
|
class="btn btn-primary btn-block"
|
||||||
name="submit"
|
name="submit"
|
||||||
value="submit">
|
value="submit">
|
||||||
Sign in
|
Sign in
|
||||||
|
@ -1,20 +1,18 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="container py-5 context-main-bg my-5 text-center">
|
||||||
<legend>Change Password</legend>
|
<h1 class="mb-4">Change Password</h1>
|
||||||
<fieldset>
|
<hr>
|
||||||
<div class="form-group">
|
<p>Please enter the confirmation code you received in your email.</p>
|
||||||
<label for="password" class="col-lg-3 control-label">New Password:</label>
|
<form action="" method="post" class="">
|
||||||
<div class="col-lg-3">
|
<fieldset>
|
||||||
<input class="form-control" type="password" name="password" id="password">
|
<div data-mdb-input-init class="form-outline mb-4 col-2 offset-5">
|
||||||
|
<input class="form-control" type="password" name="password" id="password" placeholder="New Password">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div data-mdb-input-init class="form-outline mb-4 col-2 offset-5">
|
||||||
<div class="form-group">
|
<input class="form-control" type="password" name="password2" id="password2" placeholder="New Password Confirmation">
|
||||||
<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>
|
||||||
</div>
|
</fieldset>
|
||||||
</fieldset>
|
<input type="hidden" name="resetCode" value="{resetCode}">
|
||||||
<input type="hidden" name="resetCode" value="{resetCode}">
|
<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">Submit</button><br>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Submit</button><br>
|
</form>
|
||||||
</form>
|
</div>
|
@ -1,14 +1,14 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="container py-5 context-main-bg my-5 text-center">
|
||||||
<legend>Change Password</legend>
|
<h1 class="mb-4">Change Password</h1>
|
||||||
|
<hr>
|
||||||
<p>Please enter the code you received in your email. If you did not receive the code, please check your spam filter or <a href="{ROOT_URL}">click here</a> to request a new reset code.</p>
|
<p>Please enter the code you received in your email. If you did not receive the code, please check your spam filter or <a href="{ROOT_URL}">click here</a> to request a new reset code.</p>
|
||||||
<fieldset>
|
<form action="" method="post" class="">
|
||||||
<div class="form-group">
|
<fieldset>
|
||||||
<label for="resetCode" class="col-lg-3 control-label">Reset Code</label>
|
<div data-mdb-input-init class="form-outline mb-4 col-2 offset-5">
|
||||||
<div class="col-lg-3">
|
<input class="form-control" type="text" name="resetCode" id="resetCode" placeholder="Password Reset Code">
|
||||||
<input class="form-control" type="text" name="resetCode" id="resetCode">
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</fieldset>
|
||||||
</fieldset>
|
<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">Submit</button><br>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Submit</button><br>
|
</form>
|
||||||
</form>
|
</div>
|
@ -77,7 +77,7 @@ class TheTempusProject extends Bedrock {
|
|||||||
];
|
];
|
||||||
public $admin_links = [
|
public $admin_links = [
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-home"></i> Home',
|
'text' => '<i class="fa fa-fw fa-home"></i> Dashboard',
|
||||||
'url' => '{ROOT_URL}admin/index',
|
'url' => '{ROOT_URL}admin/index',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -89,19 +89,19 @@ class TheTempusProject extends Bedrock {
|
|||||||
'url' => '{ROOT_URL}admin/users',
|
'url' => '{ROOT_URL}admin/users',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-group"></i> Groups',
|
'text' => '<i class="fa fa-fw fa-user-group"></i> Groups',
|
||||||
'url' => '{ROOT_URL}admin/groups',
|
'url' => '{ROOT_URL}admin/groups',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-reply-all"></i> Contact',
|
'text' => '<i class="fa fa-fw fa-phone"></i> Contact',
|
||||||
'url' => '{ROOT_URL}admin/contact',
|
'url' => '{ROOT_URL}admin/contact',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-reply-all"></i> Tokens',
|
'text' => '<i class="fa fa-fw fa-shield-halved"></i> Tokens',
|
||||||
'url' => '{ROOT_URL}admin/tokens',
|
'url' => '{ROOT_URL}admin/tokens',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-arrows-v"></i> Modules',
|
'text' => '<i class="fa fa-fw fa-arrow-down"></i> Modules',
|
||||||
'url' => [
|
'url' => [
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-database"></i> Plugins',
|
'text' => '<i class="fa fa-fw fa-database"></i> Plugins',
|
||||||
@ -114,7 +114,7 @@ class TheTempusProject extends Bedrock {
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-arrows-v"></i> Logs',
|
'text' => '<i class="fa fa-fw fa-arrow-down"></i> Logs',
|
||||||
'url' => [
|
'url' => [
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-file"></i> Logs',
|
'text' => '<i class="fa fa-fw fa-file"></i> Logs',
|
||||||
@ -293,6 +293,22 @@ class TheTempusProject extends Bedrock {
|
|||||||
"default" => 5
|
"default" => 5
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"uploads" => [
|
||||||
|
"images" => [
|
||||||
|
"type"=> "radio",
|
||||||
|
"pretty"=> "Upload Images Enabled",
|
||||||
|
"default"=> true,
|
||||||
|
"protected"=> true,
|
||||||
|
"value"=> true,
|
||||||
|
],
|
||||||
|
"maxImageSize"=> [
|
||||||
|
"type" => "text",
|
||||||
|
"pretty" => "Maximum size for image uploads",
|
||||||
|
"default" => 500000,
|
||||||
|
"protected" => true,
|
||||||
|
"value" => 500000,
|
||||||
|
]
|
||||||
|
],
|
||||||
"database" => [
|
"database" => [
|
||||||
"dbEnabled" => [
|
"dbEnabled" => [
|
||||||
"type" => "radio",
|
"type" => "radio",
|
||||||
|
Reference in New Issue
Block a user