Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
afb9624971 | |||
8d3dee2ac2 | |||
355e509e68 | |||
c3f46cf6c3 | |||
4a521afa88 | |||
0fa83b0ae6 | |||
5c7a320c2a |
@ -439,7 +439,7 @@ class Installer {
|
|||||||
|
|
||||||
// exclude any flags we don't have a matric map for
|
// exclude any flags we don't have a matric map for
|
||||||
if ( empty( $module_data->class_object->$matrix ) ) {
|
if ( empty( $module_data->class_object->$matrix ) ) {
|
||||||
Debug::warn( "$flag_type does not have a proper matrix map and cannot be uninstalled." );
|
Debug::warn( "$flag_type does not have a proper matrix map and cannot be installed." );
|
||||||
$module_data->$flag_type = INSTALL_STATUS_NOT_FOUND;
|
$module_data->$flag_type = INSTALL_STATUS_NOT_FOUND;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -500,7 +500,7 @@ class Installer {
|
|||||||
|
|
||||||
// exclude any flags we don't have a matric map for
|
// exclude any flags we don't have a matric map for
|
||||||
if ( empty( $module_data->class_object->$matrix ) ) {
|
if ( empty( $module_data->class_object->$matrix ) ) {
|
||||||
Debug::warn( "$flag_type does not have a proper matrix map and cannot be installed." );
|
Debug::warn( "$flag_type does not have a proper matrix map and cannot be uninstalled." );
|
||||||
$module_data->$flag_type = INSTALL_STATUS_NOT_FOUND;
|
$module_data->$flag_type = INSTALL_STATUS_NOT_FOUND;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ class Admin extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index() {
|
public function index() {
|
||||||
return Views::view( 'admin.logs.admin_list', self::$log->list( 'admin' ) );
|
return Views::view( 'admin.logs.admin_list', self::$log->listPaginated( 'admin' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function view( $id = null ) {
|
public function view( $id = null ) {
|
||||||
|
@ -39,7 +39,7 @@ class Errors extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index() {
|
public function index() {
|
||||||
return Views::view( 'admin.logs.error_list', self::$log->list( 'error' ) );
|
return Views::view( 'admin.logs.error_list', self::$log->listPaginated( 'error' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function view( $id = null ) {
|
public function view( $id = null ) {
|
||||||
|
@ -95,7 +95,7 @@ class Groups extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index( $data = null ) {
|
public function index( $data = null ) {
|
||||||
Views::view( 'admin.groups.list', self::$group->list() );
|
Views::view( 'admin.groups.list', self::$group->listPaginated() );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function listmembers( $data = null ) {
|
public function listmembers( $data = null ) {
|
||||||
|
@ -39,7 +39,7 @@ class Logins extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index() {
|
public function index() {
|
||||||
return Views::view( 'admin.logs.login_list', self::$log->list( 'login' ) );
|
return Views::view( 'admin.logs.login_list', self::$log->listPaginated( 'login' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function view( $id = null ) {
|
public function view( $id = null ) {
|
||||||
|
@ -26,8 +26,8 @@ class Logs extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index( $data = null ) {
|
public function index( $data = null ) {
|
||||||
Views::view( 'admin.logs.error_list', self::$log->list( 'error' ) );
|
Views::view( 'admin.logs.error_list', self::$log->listPaginated( 'error' ) );
|
||||||
Views::view( 'admin.logs.admin_list', self::$log->list( 'admin' ) );
|
Views::view( 'admin.logs.admin_list', self::$log->listPaginated( 'admin' ) );
|
||||||
Views::view( 'admin.logs.login_list', self::$log->list( 'login' ) );
|
Views::view( 'admin.logs.login_list', self::$log->listPaginated( 'login' ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,7 @@ class Plugins extends AdminController {
|
|||||||
if ( !Input::exists( 'installHash' ) ) {
|
if ( !Input::exists( 'installHash' ) ) {
|
||||||
return Views::view( 'admin.modules.plugins.enable' );
|
return Views::view( 'admin.modules.plugins.enable' );
|
||||||
}
|
}
|
||||||
if ( !Plugin::enable( $name ) ) {
|
if ( ! Plugin::enable( $name ) ) {
|
||||||
Session::flash( 'error', 'There was an error enabling the plugin.' );
|
Session::flash( 'error', 'There was an error enabling the plugin.' );
|
||||||
} else {
|
} else {
|
||||||
Session::flash( 'success', 'Plugin has been enabled.' );
|
Session::flash( 'success', 'Plugin has been enabled.' );
|
||||||
|
@ -88,7 +88,7 @@ class Routes extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index() {
|
public function index() {
|
||||||
return Views::view( 'admin.routes.list', self::$routes->list() );
|
return Views::view( 'admin.routes.list', self::$routes->listPaginated() );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function view( $id = null ) {
|
public function view( $id = null ) {
|
||||||
|
@ -140,7 +140,7 @@ class Users extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index() {
|
public function index() {
|
||||||
Views::view( 'admin.users.list', self::$user->userList() );
|
Views::view( 'admin.users.list', self::$user->listPaginated() );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function view( $id = null ) {
|
public function view( $id = null ) {
|
||||||
|
@ -257,7 +257,7 @@ class Group extends DatabaseModel {
|
|||||||
if ( $group === false ) {
|
if ( $group === false ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$members = self::$db->get( 'users', [ 'userGroup', '=', $id ] );
|
$members = self::$db->getPaginated( 'users', [ 'userGroup', '=', $id ] );
|
||||||
if ( !$members->count() ) {
|
if ( !$members->count() ) {
|
||||||
Debug::info( "list members: Could not find anyone in group: $id" );
|
Debug::info( "list members: Could not find anyone in group: $id" );
|
||||||
return false;
|
return false;
|
||||||
|
@ -19,9 +19,12 @@ use TheTempusProject\Classes\DatabaseModel;
|
|||||||
use TheTempusProject\TheTempusProject as App;
|
use TheTempusProject\TheTempusProject as App;
|
||||||
use TheTempusProject\Canary\Classes\CustomException;
|
use TheTempusProject\Canary\Classes\CustomException;
|
||||||
use TheTempusProject\Houdini\Classes\Filters;
|
use TheTempusProject\Houdini\Classes\Filters;
|
||||||
|
use TheTempusProject\Plugins\Comments as CommentPlugin;
|
||||||
|
use TheTempusProject\Models\Comments;
|
||||||
|
|
||||||
class Posts extends DatabaseModel {
|
class Posts extends DatabaseModel {
|
||||||
public $tableName = 'posts';
|
public $tableName = 'posts';
|
||||||
|
public static $comments = false;
|
||||||
|
|
||||||
public $databaseMatrix = [
|
public $databaseMatrix = [
|
||||||
[ 'author', 'int', '11' ],
|
[ 'author', 'int', '11' ],
|
||||||
@ -32,19 +35,14 @@ class Posts extends DatabaseModel {
|
|||||||
[ 'content', 'text', '' ],
|
[ 'content', 'text', '' ],
|
||||||
];
|
];
|
||||||
|
|
||||||
public $resourceMatrix = [
|
|
||||||
[
|
|
||||||
'title' => 'Welcome',
|
|
||||||
'content' => '<p>This is just a simple message to say thank you for installing The Tempus Project. If you have any questions you can find everything through our website <a href="https://TheTempusProject.com">here</a>.</p>',
|
|
||||||
'author' => 1,
|
|
||||||
'created' => '{time}',
|
|
||||||
'edited' => '{time}',
|
|
||||||
'draft' => 0,
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
if ( class_exists( 'TheTempusProject\Plugins\Comments' ) ) {
|
||||||
|
$comments = new CommentPlugin;
|
||||||
|
if ( $comments->checkEnabled() ) {
|
||||||
|
self::$comments = new Comments;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function newPost( $title, $post, $draft ) {
|
public function newPost( $title, $post, $draft ) {
|
||||||
@ -161,6 +159,9 @@ class Posts extends DatabaseModel {
|
|||||||
if ( isset( $params['stripHtml'] ) && $params['stripHtml'] === true ) {
|
if ( isset( $params['stripHtml'] ) && $params['stripHtml'] === true ) {
|
||||||
$instance->contentSummary = strip_tags( $instance->content );
|
$instance->contentSummary = strip_tags( $instance->content );
|
||||||
}
|
}
|
||||||
|
if ( self::$comments !== false ) {
|
||||||
|
$instance->commentCount = self::$comments->count( 'blog', $instance->ID );
|
||||||
|
}
|
||||||
$instance->content = Filters::applyOne( 'mentions.0', $instance->content, true );
|
$instance->content = Filters::applyOne( 'mentions.0', $instance->content, true );
|
||||||
$instance->content = Filters::applyOne( 'hashtags.0', $instance->content, true );
|
$instance->content = Filters::applyOne( 'hashtags.0', $instance->content, true );
|
||||||
$out[] = $instance;
|
$out[] = $instance;
|
||||||
|
@ -38,6 +38,18 @@ class Blog extends Plugin {
|
|||||||
'url' => '{ROOT_URL}blog/index',
|
'url' => '{ROOT_URL}blog/index',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
public $resourceMatrix = [
|
||||||
|
'posts' => [
|
||||||
|
[
|
||||||
|
'title' => 'Welcome',
|
||||||
|
'content' => '<p>This is just a simple message to say thank you for installing The Tempus Project. If you have any questions you can find everything through our website <a href="https://TheTempusProject.com">here</a>.</p>',
|
||||||
|
'author' => 1,
|
||||||
|
'created' => '{time}',
|
||||||
|
'edited' => '{time}',
|
||||||
|
'draft' => 0,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
public $posts;
|
public $posts;
|
||||||
|
|
||||||
public function __construct( $load = false ) {
|
public function __construct( $load = false ) {
|
||||||
|
@ -54,7 +54,7 @@ class Comments extends Plugin {
|
|||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $resourceMatrix = [
|
public $resourceMatrix = [
|
||||||
'group' => [
|
'groups' => [
|
||||||
[
|
[
|
||||||
'name' => 'Moderator',
|
'name' => 'Moderator',
|
||||||
'permissions' => '{"adminAccess":false}',
|
'permissions' => '{"adminAccess":false}',
|
||||||
|
@ -53,6 +53,6 @@ class Feedback extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index( $data = null ) {
|
public function index( $data = null ) {
|
||||||
Views::view( 'feedback.admin.list', self::$feedback->list() );
|
Views::view( 'feedback.admin.list', self::$feedback->listPaginated() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ class Message extends DatabaseModel {
|
|||||||
Debug::info( 'Invalid user ID' );
|
Debug::info( 'Invalid user ID' );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$messageData = self::$db->get( $this->tableName, [ 'ID', '=', $parent ] );
|
$messageData = self::$db->getPaginated( $this->tableName, [ 'ID', '=', $parent ] );
|
||||||
if ( $messageData->count() == 0 ) {
|
if ( $messageData->count() == 0 ) {
|
||||||
Debug::info( 'Message not found.' );
|
Debug::info( 'Message not found.' );
|
||||||
return false;
|
return false;
|
||||||
@ -71,7 +71,7 @@ class Message extends DatabaseModel {
|
|||||||
if ( $type !== null ) {
|
if ( $type !== null ) {
|
||||||
$params = array_merge( $params, [ 'AND', $type, '=', $user ] );
|
$params = array_merge( $params, [ 'AND', $type, '=', $user ] );
|
||||||
}
|
}
|
||||||
$messageData = self::$db->get( $this->tableName, $params, 'ID', 'DESC', [ 0, 1 ] );
|
$messageData = self::$db->getPaginated( $this->tableName, $params, 'ID', 'DESC', [ 0, 1 ] );
|
||||||
if ( $messageData->count() != 0 ) {
|
if ( $messageData->count() != 0 ) {
|
||||||
if ( $messageData->first()->recieverDeleted == 0 ) {
|
if ( $messageData->first()->recieverDeleted == 0 ) {
|
||||||
$message = $messageData->first();
|
$message = $messageData->first();
|
||||||
@ -93,7 +93,7 @@ class Message extends DatabaseModel {
|
|||||||
Debug::info( 'Invalid ID' );
|
Debug::info( 'Invalid ID' );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$messageData = self::$db->get( $this->tableName, [ 'ID', '=', $id ] );
|
$messageData = self::$db->getPaginated( $this->tableName, [ 'ID', '=', $id ] );
|
||||||
if ( $messageData->count() == 0 ) {
|
if ( $messageData->count() == 0 ) {
|
||||||
Debug::info( 'Message not found.' );
|
Debug::info( 'Message not found.' );
|
||||||
return false;
|
return false;
|
||||||
@ -122,7 +122,7 @@ class Message extends DatabaseModel {
|
|||||||
} else {
|
} else {
|
||||||
$find = $message->ID;
|
$find = $message->ID;
|
||||||
}
|
}
|
||||||
$messageData = self::$db->get( $this->tableName, [ 'ID', '=', $find, 'OR', 'Parent', '=', $find ], 'ID', 'ASC' )->results();
|
$messageData = self::$db->getPaginated( $this->tableName, [ 'ID', '=', $find, 'OR', 'Parent', '=', $find ], 'ID', 'ASC' )->results();
|
||||||
Components::set( 'PID', $find );
|
Components::set( 'PID', $find );
|
||||||
|
|
||||||
if ( $markRead == true ) {
|
if ( $markRead == true ) {
|
||||||
@ -138,7 +138,7 @@ class Message extends DatabaseModel {
|
|||||||
$limit = 10;
|
$limit = 10;
|
||||||
}
|
}
|
||||||
$limit = [ 0, $limit ];
|
$limit = [ 0, $limit ];
|
||||||
$messageData = self::$db->get(
|
$messageData = self::$db->getPaginated(
|
||||||
$this->tableName,
|
$this->tableName,
|
||||||
[
|
[
|
||||||
'parent', '=', 0,
|
'parent', '=', 0,
|
||||||
@ -175,7 +175,7 @@ class Message extends DatabaseModel {
|
|||||||
$limit = 10;
|
$limit = 10;
|
||||||
}
|
}
|
||||||
$limit = [ 0, $limit ];
|
$limit = [ 0, $limit ];
|
||||||
$messageData = self::$db->get(
|
$messageData = self::$db->getPaginated(
|
||||||
$this->tableName,
|
$this->tableName,
|
||||||
[
|
[
|
||||||
'parent', '=', 0,
|
'parent', '=', 0,
|
||||||
|
@ -74,9 +74,9 @@ class Notification extends DatabaseModel {
|
|||||||
'expiresAt', '<', time(),
|
'expiresAt', '<', time(),
|
||||||
];
|
];
|
||||||
if ( empty( $limit ) ) {
|
if ( empty( $limit ) ) {
|
||||||
$notifications = self::$db->get( $this->tableName, $whereClause );
|
$notifications = self::$db->getPaginated( $this->tableName, $whereClause );
|
||||||
} else {
|
} else {
|
||||||
$notifications = self::$db->get( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
|
$notifications = self::$db->getPaginated( $this->tableName, $whereClause, 'ID', 'DESC', [0, $limit] );
|
||||||
}
|
}
|
||||||
if ( !$notifications->count() ) {
|
if ( !$notifications->count() ) {
|
||||||
Debug::info( 'No Notifications found.' );
|
Debug::info( 'No Notifications found.' );
|
||||||
|
@ -27,5 +27,4 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{PAGINATION}
|
|
@ -1,5 +1,4 @@
|
|||||||
<legend><h2>Installed Dependencies</h2></legend>
|
<legend><h2>Installed Dependencies</h2></legend>
|
||||||
{PAGINATION}
|
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<legend><h2>Installed Models</h2></legend>
|
<legend><h2>Installed Models</h2></legend>
|
||||||
{PAGINATION}
|
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<legend><h2>Installed Plugins</h2></legend>
|
<legend><h2>Installed Plugins</h2></legend>
|
||||||
{PAGINATION}
|
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -242,7 +242,7 @@ class TheTempusProject extends Bedrock {
|
|||||||
'example' => '(?)',
|
'example' => '(?)',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $configMatrix = [
|
public static $configMatrix = [
|
||||||
"main" => [
|
"main" => [
|
||||||
"logo" => [
|
"logo" => [
|
||||||
"type" => "file",
|
"type" => "file",
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
"require":
|
"require":
|
||||||
{
|
{
|
||||||
"fortawesome/font-awesome": "4.7",
|
"fortawesome/font-awesome": "4.7",
|
||||||
"thetempusproject/bedrock": "1.0.9",
|
"thetempusproject/bedrock": "1.0.10",
|
||||||
"thetempusproject/canary": "1.0.5",
|
"thetempusproject/canary": "1.0.5",
|
||||||
"thetempusproject/houdini": "1.0.8",
|
"thetempusproject/houdini": "1.0.8",
|
||||||
"twbs/bootstrap": "3.3.7"
|
"twbs/bootstrap": "3.3.7"
|
||||||
@ -30,7 +30,6 @@
|
|||||||
{
|
{
|
||||||
"files":
|
"files":
|
||||||
[
|
[
|
||||||
"app/functions/forms.php",
|
|
||||||
"app/functions/common.php"
|
"app/functions/common.php"
|
||||||
],
|
],
|
||||||
"classmap":
|
"classmap":
|
||||||
|
10
composer.lock
generated
10
composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "91dc97145b402ae3dd4da77b7423cb51",
|
"content-hash": "7e218ec992062f8f552f6fceea5bda9c",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "fortawesome/font-awesome",
|
"name": "fortawesome/font-awesome",
|
||||||
@ -60,11 +60,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "thetempusproject/bedrock",
|
"name": "thetempusproject/bedrock",
|
||||||
"version": "1.0.9",
|
"version": "1.0.10",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.thetempusproject.com/the-tempus-project/bedrock",
|
"url": "https://git.thetempusproject.com/the-tempus-project/bedrock",
|
||||||
"reference": "464201cf177eabdba9bf8ebfe734d2e511e76748"
|
"reference": "42ade08306525488f2449a2f4e3e05569eee9822"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1.0",
|
"php": ">=8.1.0",
|
||||||
@ -101,7 +101,7 @@
|
|||||||
"framework",
|
"framework",
|
||||||
"mvc"
|
"mvc"
|
||||||
],
|
],
|
||||||
"time": "2024-08-20T10:31:54+00:00"
|
"time": "2024-08-21T10:12:54+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "thetempusproject/canary",
|
"name": "thetempusproject/canary",
|
||||||
@ -297,5 +297,5 @@
|
|||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": [],
|
"platform": [],
|
||||||
"platform-dev": [],
|
"platform-dev": [],
|
||||||
"plugin-api-version": "2.3.0"
|
"plugin-api-version": "2.6.0"
|
||||||
}
|
}
|
||||||
|
@ -213,7 +213,7 @@ class Install extends Controller {
|
|||||||
$baseConfig['database']['dbPassword']['value'] = Input::postNull( 'dbPassword' );
|
$baseConfig['database']['dbPassword']['value'] = Input::postNull( 'dbPassword' );
|
||||||
$baseConfig['database']['dbPrefix']['value'] = Input::postNull( 'dbPrefix' );
|
$baseConfig['database']['dbPrefix']['value'] = Input::postNull( 'dbPrefix' );
|
||||||
$baseConfig['database']['dbUsername']['value'] = Input::postNull( 'dbUsername' );
|
$baseConfig['database']['dbUsername']['value'] = Input::postNull( 'dbUsername' );
|
||||||
if ( ! TheTempusProject::$activeConfig->generate( CONFIG_JSON, $configMatrix ) ) {
|
if ( ! TheTempusProject::$activeConfig->generate( CONFIG_JSON, $baseConfig ) ) {
|
||||||
return Issues::add( 'error', 'Config file already exists so the installer has been halted. If there was an error with installation, please delete app/config/config.json manually and try again. The installer should automatically bring you back to this step.' );
|
return Issues::add( 'error', 'Config file already exists so the installer has been halted. If there was an error with installation, please delete app/config/config.json manually and try again. The installer should automatically bring you back to this step.' );
|
||||||
}
|
}
|
||||||
Session::flash( 'success', 'Config saved successfully.' );
|
Session::flash( 'success', 'Config saved successfully.' );
|
||||||
@ -341,7 +341,6 @@ class Install extends Controller {
|
|||||||
} else {
|
} else {
|
||||||
$installResult = $this->installer->installModel( (object) $module, [ 'installResources' => true ], false );
|
$installResult = $this->installer->installModel( (object) $module, [ 'installResources' => true ], false );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !$installResult ) {
|
if ( !$installResult ) {
|
||||||
$error = true;
|
$error = true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user