diff --git a/.gitignore b/.gitignore index e257bbd..b8f74ff 100644 --- a/.gitignore +++ b/.gitignore @@ -63,4 +63,4 @@ vendor/canary/logs/* components/* mailhog.log uploads/* -images/qr-codes/ +images/qr-codes/* diff --git a/app/images/ttp-gitlab.png b/app/images/ttp-gitlab.png deleted file mode 100644 index 1bce8fa..0000000 Binary files a/app/images/ttp-gitlab.png and /dev/null differ diff --git a/app/images/ttp-install.png b/app/images/ttp-install.png deleted file mode 100644 index aace68d..0000000 Binary files a/app/images/ttp-install.png and /dev/null differ diff --git a/app/images/ttp.png b/app/images/ttp.png deleted file mode 100644 index 31bec2e..0000000 Binary files a/app/images/ttp.png and /dev/null differ diff --git a/app/plugins/messages/controllers/messages.php b/app/plugins/messages/controllers/messages.php deleted file mode 100644 index f5239a3..0000000 --- a/app/plugins/messages/controllers/messages.php +++ /dev/null @@ -1,121 +0,0 @@ - - * @link https://TheTempusProject.com - * @license https://opensource.org/licenses/MIT [MIT LICENSE] - */ -namespace TheTempusProject\Controllers; - -use TheTempusProject\Classes\Controller; -use TheTempusProject\Classes\Forms as FormChecker; -use TheTempusProject\Models\Message; -use TheTempusProject\Houdini\Classes\Components; -use TheTempusProject\Houdini\Classes\Views; -use TheTempusProject\Houdini\Classes\Issues; -use TheTempusProject\Bedrock\Functions\Check; -use TheTempusProject\Bedrock\Functions\Input; -use TheTempusProject\TheTempusProject as App; -use TheTempusProject\Hermes\Functions\Redirect; -use TheTempusProject\Bedrock\Functions\Session; - -class Messages extends Controller { - private static $message; - - public function __construct() { - parent::__construct(); - self::$title = 'Messages'; - self::$message = new Message; - if ( ! App::$isLoggedIn ) { - Session::flash( 'error', 'You do not have permission to access this page.' ); - return Redirect::home(); - } - } - - public function create() { - self::$title .= ' - New Message'; - if ( Input::get( 'prepopuser' ) ) { - $data = Input::get( 'prepopuser' ); - } - if ( !empty( $data ) && self::$user->checkUsername( $data ) ) { - Components::set( 'prepopuser', $data ); - } else { - Components::set( 'prepopuser', '' ); - } - if ( !Input::exists( 'submit' ) ) { - return Views::view( 'messages.create' ); - } - if ( !FormChecker::check( 'newMessage' ) ) { - Issues::add( 'error', [ 'There was an problem sending your messages.' => Check::userErrors() ] ); - return Views::view( 'messages.create' ); - } - if ( self::$message->newThread( Input::post( 'toUser' ), Input::post( 'subject' ), Input::post( 'message' ) ) ) { - Issues::add( 'success', 'Message Sent.' ); - } else { - Issues::add( 'notice', 'There was an problem sending your messages.' ); - } - return $this->index(); - } - - public function delete( $id = '' ) { - if ( Input::exists( 'T_' ) ) { - self::$message->delete( Input::post( 'T_' ) ); - } - if ( Input::exists( 'F_' ) ) { - self::$message->delete( Input::post( 'F_' ) ); - } - if ( Input::exists( 'ID' ) ) { - self::$message->delete( Input::get( 'ID' ) ); - } - if ( !empty( $id ) ) { - self::$message->delete( $id ); - } - return $this->index(); - } - - public function index() { - Components::set( 'message_inbox', Views::simpleView( 'messages.inbox', self::$message->getInbox() ) ); - Components::set( 'message_outbox', Views::simpleView( 'messages.outbox', self::$message->getOutbox() ) ); - Views::view( 'messages.index' ); - } - - public function read( $id = '' ) { - self::$message->markRead( $id ); - return $this->index(); - } - - public function reply() { - if ( Input::exists( 'messageID' ) ) { - $data = Input::post( 'messageID' ); - } - if ( !Check::id( $data ) ) { - Issues::add( 'error', 'There was an error with your request.' ); - return $this->index(); - } - self::$title .= ' - Reply to: ' . self::$message->messageTitle( $data ); - if ( !Input::exists( 'message' ) ) { - Components::set( 'messageID', $data ); - return Views::view( 'messages.reply' ); - } - if ( !FormChecker::check( 'replyMessage' ) ) { - Issues::add( 'error', [ 'There was an problem sending your messages.' => Check::userErrors() ] ); - Components::set( 'messageID', $data ); - return Views::view( 'messages.reply' ); - } - if ( !self::$message->newMessageReply( $data, Input::post( 'message' ) ) ) { - Issues::add( 'error', 'There was an error with your request.' ); - return $this->index(); - } - Issues::add( 'success', 'Reply Sent.' ); - return $this->index(); - } - - public function view( $id = '' ) { - self::$title = self::$message->messageTitle( $id ); - return Views::view( 'messages.message', self::$message->getThread( $id, true ) ); - } -} diff --git a/app/plugins/messages/models/message.php b/app/plugins/messages/models/message.php deleted file mode 100644 index 16a7920..0000000 --- a/app/plugins/messages/models/message.php +++ /dev/null @@ -1,454 +0,0 @@ - - * @link https://TheTempusProject.com - * @license https://opensource.org/licenses/MIT [MIT LICENSE] - */ -namespace TheTempusProject\Models; - -use TheTempusProject\Classes\DatabaseModel; -use TheTempusProject\Houdini\Classes\Components; -use TheTempusProject\Houdini\Classes\Views; -use TheTempusProject\Canary\Bin\Canary as Debug; -use TheTempusProject\Bedrock\Functions\Check; -use TheTempusProject\Bedrock\Functions\Sanitize; -use TheTempusProject\TheTempusProject as App; -use TheTempusProject\Canary\Classes\CustomException; - -class Message extends DatabaseModel { - public $tableName = 'messages'; - public $databaseMatrix = [ - [ 'userTo', 'int', '11' ], - [ 'userFrom', 'int', '11' ], - [ 'parent', 'int', '11' ], - [ 'sent', 'int', '10' ], - [ 'lastReply', 'int', '10' ], - [ 'senderDeleted', 'int', '1' ], - [ 'recieverDeleted', 'int', '1' ], - [ 'isRead', 'int', '1' ], - [ 'message', 'text', '' ], - [ 'subject', 'text', '' ], - ]; - private $messages; - private $usernames; - - /** - * The model constructor. - */ - public function __construct() { - parent::__construct(); - self::$message = $this; - } - - /** - * Retrieves the most recent relative message in a thread - * - * @param int $parent - the id of the parent message - * @param string $user - the id of the relative user - * @return object - */ - public function getLatestMessage( $parent, $user, $type = null ) { - if ( !Check::id( $parent ) ) { - Debug::info( 'Invalid message ID' ); - return false; - } - if ( !Check::id( $user ) ) { - Debug::info( 'Invalid user ID' ); - return false; - } - $messageData = self::$db->get( $this->tableName, [ 'ID', '=', $parent ] ); - if ( $messageData->count() == 0 ) { - Debug::info( 'Message not found.' ); - return false; - } - $message = $messageData->first(); - $params = [ 'parent', '=', $parent ]; - if ( $type !== null ) { - $params = array_merge( $params, [ 'AND', $type, '=', $user ] ); - } - $messageData = self::$db->get( $this->tableName, $params, 'ID', 'DESC', [ 0, 1 ] ); - if ( $messageData->count() != 0 ) { - if ( $messageData->first()->recieverDeleted == 0 ) { - $message = $messageData->first(); - } else { - $message->recieverDeleted = 1; - } - } - return $message; - } - - /** - * This calls a view of the requested message. - * - * @param int $ID - The message ID you are looking for. - * @return null - */ - public function getThread( $id, $markRead = false ) { - if ( !Check::id( $id ) ) { - Debug::info( 'Invalid ID' ); - return false; - } - $messageData = self::$db->get( $this->tableName, [ 'ID', '=', $id ] ); - if ( $messageData->count() == 0 ) { - Debug::info( 'Message not found.' ); - return false; - } - $message = $messageData->first(); - if ( $message->userTo == App::$activeUser->ID ) { - $permissionCheck = 1; - if ( $message->recieverDeleted == 1 ) { - Debug::info( 'User has already deleted this message.' ); - return false; - } - } - if ( $message->userFrom == App::$activeUser->ID ) { - $permissionCheck = 1; - if ( $message->senderDeleted == 1 ) { - Debug::info( 'User has already deleted this message.' ); - return false; - } - } - if ( empty( $permissionCheck ) ) { - Debug::info( 'You do not have permission to view this message.' ); - return false; - } - if ( $message->parent != 0 ) { - $find = $message->parent; - } else { - $find = $message->ID; - } - $messageData = self::$db->get( $this->tableName, [ 'ID', '=', $find, 'OR', 'Parent', '=', $find ], 'ID', 'ASC' )->results(); - Components::set( 'PID', $find ); - - if ( $markRead == true ) { - foreach ( $messageData as $instance ) { - $this->markRead( $instance->ID ); - } - } - return $this->filter( $messageData ); - } - - public function getInbox( $limit = null ) { - if ( empty( $limit ) ) { - $limit = 10; - } - $limit = [ 0, $limit ]; - $messageData = self::$db->get( - $this->tableName, - [ - 'parent', '=', 0, - 'AND', - 'userFrom', '=', App::$activeUser->ID, - 'OR', - 'parent', '=', 0, - 'AND', - 'userTo', '=', App::$activeUser->ID, - ], - 'ID', - 'DESC', - $limit - ); - if ( $messageData->count() == 0 ) { - Debug::info( 'getInbox: No messages found' ); - return false; - } - $filters = [ - 'importantUser' => App::$activeUser->ID, - 'deleted' => false, - 'type' => 'userTo', - ]; - return $this->filter( $messageData->results(), $filters ); - } - - /** - * This function calls the view for the message outbox. - * - * @return null - */ - public function getOutbox( $limit = null ) { - if ( empty( $limit ) ) { - $limit = 10; - } - $limit = [ 0, $limit ]; - $messageData = self::$db->get( - $this->tableName, - [ - 'parent', '=', 0, - 'AND', - 'userFrom', '=', App::$activeUser->ID, - ], - 'ID', - 'DESC', - $limit - ); - if ( $messageData->count() == 0 ) { - Debug::info( 'getOutbox: No messages found' ); - return false; - } - $filters = [ - 'importantUser' => App::$activeUser->ID, - 'deleted' => false, - 'type' => 'userFrom', - ]; - return $this->filter( $messageData->results(), $filters ); - } - - /** - * This function is to prep our messages for display. An array of raw messages - * sent through this function will automatically have all the user ID's filter - * into actual usernames. - * - * @param $messageArray - This is an array of messages that need to be processed. - * @return array - It will return the same message array after being processed. - * @todo add filtering for BB-code. - */ - public function filter( $messageArray, $filters = [] ) { - $out = []; - foreach ( $messageArray as $message ) { - if ( !is_object( $message ) ) { - $message = $messageArray; - $end = true; - } - if ( isset( $filters['type'] ) && isset( $filters['importantUser'] ) ) { - $type = $filters['type']; - } else { - $type = null; - } - if ( isset( $filters['importantUser'] ) ) { - $user = $filters['importantUser']; - } else { - $user = App::$activeUser->ID; - } - if ( $message->parent == 0 ) { - $last = $this->getLatestMessage( $message->ID, $user, $type ); - } else { - $last = $message; - } - if ( $type != null && $message->$type != $user && $last->$type != $user ) { - continue; - } - if ( isset( $filters['deleted'] ) && $filters['deleted'] == false ) { - if ( $type == 'userFrom' ) { - if ( $last->senderDeleted == 1 ) { - continue; - } - } - if ( $type == 'userTo' ) { - if ( $last->recieverDeleted == 1 ) { - continue; - } - } - } - $messageOut = (array) $message; - $short = explode( ' ', Sanitize::contentShort( $message->message ) ); - $summary = implode( ' ', array_splice( $short, 0, 25 ) ); - if ( count( $short, 1 ) >= 25 ) { - $messageOut['summary'] = $summary . '...'; - } else { - $messageOut['summary'] = $summary; - } - if ( $last->isRead == 0 ) { - $messageOut['unreadBadge'] = Views::simpleView( 'messages.unreadBadge' ); - } else { - $messageOut['unreadBadge'] = ''; - } - $messageOut['fromAvatar'] = self::$user->getAvatar( $message->userFrom ); - $messageOut['userTo'] = self::$user->getUsername( $message->userTo ); - $messageOut['userToPretty'] = \ucfirst( $messageOut['userTo'] ); - $messageOut['userFrom'] = self::$user->getUsername( $message->userFrom ); - $messageOut['userFromPretty'] = \ucfirst( $messageOut['userFrom'] ); - $out[] = (object) $messageOut; - if ( !empty( $end ) ) { - $out = $out[0]; - break; - } - } - return $out; - } - - /** - * Function to check input and save messages to the DB. - * - * @param string $data - Username of the person receiving the sent message. - * @return function - */ - public function newThread( $to, $subject, $message ) { - if ( !self::$user->usernameExists( $to ) ) { - Debug::info( 'Message->sendMessage: User not found.' ); - return false; - } - $fields = [ - 'userTo' => self::$user->getID( $to ), - 'userFrom' => App::$activeUser->ID, - 'parent' => 0, - 'sent' => time(), - 'lastReply' => time(), - 'senderDeleted' => 0, - 'recieverDeleted' => 0, - 'isRead' => 0, - 'subject' => $subject, - 'message' => $message, - ]; - if ( !self::$db->insert( $this->tableName, $fields ) ) { - new CustomException( 'messageSend' ); - return false; - } - return true; - } - - public function getUnreadCount( $userId ) { - $result = self::$db->get( - $this->tableName, - [ - 'userTo', '=', $userId, - 'AND', - 'isRead', '=', 0, - 'AND', - 'parent', '=', 0, - 'AND', - 'recieverDeleted', '=', 0, - ] - ); - return $result->count(); - } - - public function unreadCount() { - if ( empty( App::$activeUser->ID ) ) { - return 0; - } - return $this->getUnreadCount( App::$activeUser->ID ); - } - - public function hasPermission( $id ) { - if ( !Check::id( $id ) ) { - Debug::info( 'Invalid ID' ); - return false; - } - $messageData = self::$db->get( 'messages', [ 'ID', '=', $id ] ); - if ( $messageData->count() == 0 ) { - Debug::info( 'Message not found.' ); - return false; - } - $message = $messageData->first(); - if ( $message->userTo != App::$activeUser->ID && $message->userFrom != App::$activeUser->ID ) { - return false; - } - return true; - } - - /** - * Marks a message as read. This is setup to only work - * if the message was sent to the active user. - * - * @param int - The message ID you are marking as read. - * @return bool - */ - public function markRead( $id ) { - if ( !Check::id( $id ) ) { - Debug::info( 'Invalid ID' ); - return false; - } - $result = self::$db->get( $this->tableName, [ 'ID', '=', $id, 'AND', 'userTo', '=', App::$activeUser->ID, 'AND', 'isRead', '=', '0' ] ); - if ( $result->count() == 0 ) { - Debug::info( 'Failed to mark message as read.' ); - return false; - } - if ( !self::$db->update( $this->tableName, $id, [ 'isRead' => 1 ] ) ) { - Debug::error( 'Failed to mark message as read.' ); - return false; - } - return true; - } - - public function newMessageReply( $id, $message ) { - if ( !$this->hasPermission( $id ) ) { - Debug::info( 'Permission Denied.' ); - return false; - } - $messageData = self::$db->get( $this->tableName, [ 'ID', '=', $id ] )->first(); - if ( $messageData->userTo == App::$activeUser->ID ) { - $recipient = $messageData->userFrom; - } else { - $recipient = $messageData->userTo; - } - if ( $recipient === App::$activeUser->ID ) { - Debug::info( 'Cannot send messages to yourself' ); - return false; - } - if ( !self::$db->update( $this->tableName, $messageData->ID, [ 'lastReply' => time() ] ) ) { - new CustomException( 'messagesReplyUpdate' ); - return false; - } - $fields = [ - 'senderDeleted' => 0, - 'recieverDeleted' => 0, - 'isRead' => 0, - 'userTo' => $recipient, - 'userFrom' => App::$activeUser->ID, - 'message' => $message, - 'subject' => 're: ' . $messageData->subject, - 'sent' => time(), - 'parent' => $messageData->ID, - 'lastReply' => time(), - ]; - if ( !self::$db->insert( $this->tableName, $fields ) ) { - new CustomException( 'messagesReplySend' ); - return false; - } - return true; - } - - public function messageTitle( $id ) { - if ( !$this->hasPermission( $id ) ) { - Debug::info( 'Permission Denied.' ); - return false; - } - $message = self::$db->get( $this->tableName, [ 'ID', '=', $id ] )->first(); - return $message->subject; - } - - /** - * Function to delete messages from the DB. - * - * @param int $data - The ID of the message you are trying to delete. - * @todo - done at 5 am after no sleep. This can be simplified a lot, i just wanted a working solution ASAP - * @return bool - */ - public function delete( $data ) { - if ( !is_array( $data ) ) { - $data = [ $data ]; - } - foreach ( $data as $instance ) { - if ( !Check::id( $instance ) ) { - $error = true; - } - if ( !$this->hasPermission( $instance ) ) { - Debug::info( 'Permission Denied.' ); - return false; - } - $message = self::$db->get( $this->tableName, [ 'ID', '=', $instance ] )->first(); - if ( $message->userTo == App::$activeUser->ID ) { - $fields = [ 'recieverDeleted' => '1' ]; - } else { - $fields = [ 'senderDeleted' => '1' ]; - } - if ( !self::$db->update( $this->tableName, $instance, $fields ) ) { - $error = true; - } - Debug::info( "message Deleted: $instance" ); - if ( !empty( $end ) ) { - break; - } - } - if ( !empty( $error ) ) { - Debug::info( 'There was an error deleting one or more messages.' ); - return false; - } - return true; - } -} diff --git a/app/plugins/messages/plugin.php b/app/plugins/messages/plugin.php deleted file mode 100644 index 2f70323..0000000 --- a/app/plugins/messages/plugin.php +++ /dev/null @@ -1,57 +0,0 @@ - - * @link https://TheTempusProject.com - * @license https://opensource.org/licenses/MIT [MIT LICENSE] - */ -namespace TheTempusProject\Plugins; - -use TheTempusProject\TheTempusProject as App; -use TheTempusProject\Classes\Plugin; -use TheTempusProject\Models\Message; -use TheTempusProject\Houdini\Classes\Components; -use TheTempusProject\Houdini\Classes\Views; - -class Messages extends Plugin { - public $pluginName = 'TP Messages'; - public $pluginAuthor = 'JoeyK'; - public $pluginWebsite = 'https://TheTempusProject.com'; - public $modelVersion = '1.0'; - public $pluginVersion = '3.0'; - public $pluginDescription = 'A simple plugin which adds a site wide messaging system.'; - public $permissionMatrix = [ - 'sendMessages' => [ - 'pretty' => 'Can send Messages', - 'default' => false, - ], - ]; - private static $loaded = false; - - public function __construct() { - if ( ! self::$loaded ) { - $messages = new Message; - Components::set( 'MESSAGE_COUNT', $messages->unreadCount() ); - if ( $messages->unreadCount() > 0 ) { - $messageBadge = Views::simpleView( 'messages.badge' ); - } else { - $messageBadge = ''; - } - Components::set( 'MBADGE', $messageBadge ); - if ( App::$isLoggedIn ) { - Components::set( 'RECENT_MESSAGES', Views::simpleView( 'messages.nav.recentMessagesDropdown', $messages->getInbox( 5 ) ) ); - } else { - Components::set( 'RECENT_MESSAGES', '' ); - } - App::$topNavRight .= '{RECENT_MESSAGES}'; - App::$topNavRightDropdown .= '
  • Inbox {MBADGE}
  • '; - self::$loaded = true; - } - parent::__construct(); - } -} diff --git a/app/plugins/messages/views/badge.html b/app/plugins/messages/views/badge.html deleted file mode 100644 index 0a248f2..0000000 --- a/app/plugins/messages/views/badge.html +++ /dev/null @@ -1 +0,0 @@ -{MESSAGE_COUNT} \ No newline at end of file diff --git a/app/plugins/messages/views/create.html b/app/plugins/messages/views/create.html deleted file mode 100644 index f680f0f..0000000 --- a/app/plugins/messages/views/create.html +++ /dev/null @@ -1,73 +0,0 @@ -
    -
    - -
    -
    -
    - New Message -
    - -
    - -
    - -
    -
    - - -
    - -
    - -
    -
    - - -
    - - -
    -
    - -
    - -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/app/plugins/messages/views/inbox.html b/app/plugins/messages/views/inbox.html deleted file mode 100644 index 2194b7b..0000000 --- a/app/plugins/messages/views/inbox.html +++ /dev/null @@ -1,40 +0,0 @@ -

    Inbox

    -
    - - - - - - - - - - - - - {LOOP} - - - - - - - - - {/LOOP} - {ALT} - - - - {/ALT} - -
    FromSubjectLast Reply - -
    {userFromPretty}{subject}{DTC date}{lastReply}{/DTC} - -
    - No Messages. -
    - - New message -
    diff --git a/app/plugins/messages/views/index.html b/app/plugins/messages/views/index.html deleted file mode 100644 index 7d4b30a..0000000 --- a/app/plugins/messages/views/index.html +++ /dev/null @@ -1,10 +0,0 @@ -
    -
    -
    - {message_inbox} -
    -
    - {message_outbox} -
    -
    -
    \ No newline at end of file diff --git a/app/plugins/messages/views/message.html b/app/plugins/messages/views/message.html deleted file mode 100644 index 628e76b..0000000 --- a/app/plugins/messages/views/message.html +++ /dev/null @@ -1,53 +0,0 @@ -
    -
    - -
    - {LOOP} - {SINGLE} -
    -

    {subject}

    -
    - {/SINGLE} -
    -
    - -
    - {message} -
    -
    -
    - - {/LOOP} -
    -
    - - - -
    -
    -
    \ No newline at end of file diff --git a/app/plugins/messages/views/nav/recentMessagesDropdown.html b/app/plugins/messages/views/nav/recentMessagesDropdown.html deleted file mode 100644 index f7ea71e..0000000 --- a/app/plugins/messages/views/nav/recentMessagesDropdown.html +++ /dev/null @@ -1,46 +0,0 @@ - \ No newline at end of file diff --git a/app/plugins/messages/views/outbox.html b/app/plugins/messages/views/outbox.html deleted file mode 100644 index 0393d63..0000000 --- a/app/plugins/messages/views/outbox.html +++ /dev/null @@ -1,37 +0,0 @@ -

    Outbox

    -
    - - - - - - - - - - - - {LOOP} - - - - - - - - {/LOOP} - {ALT} - - - - {/ALT} - -
    ToSubjectSent - -
    {userToPretty}{subject}{DTC date}{sent}{/DTC} - -
    - No Messages -
    - -
    \ No newline at end of file diff --git a/app/plugins/messages/views/reply.html b/app/plugins/messages/views/reply.html deleted file mode 100644 index 289a1a5..0000000 --- a/app/plugins/messages/views/reply.html +++ /dev/null @@ -1,18 +0,0 @@ -
    -
    - Reply -
    -
    -
    - - -
    -
    -
    - - -
    - -
    -
    -
    \ No newline at end of file diff --git a/app/plugins/messages/views/unreadBadge.html b/app/plugins/messages/views/unreadBadge.html deleted file mode 100644 index 344a6d8..0000000 --- a/app/plugins/messages/views/unreadBadge.html +++ /dev/null @@ -1 +0,0 @@ - class="bg-info" \ No newline at end of file diff --git a/app/views/install/complete.html b/app/views/install/complete.html deleted file mode 100644 index bce6d2f..0000000 --- a/app/views/install/complete.html +++ /dev/null @@ -1,32 +0,0 @@ -
    -
    -
    - -
    - -
    - -

    Success

    - -

    - The Tempus Project has been successfully installed. -

    -

    - You can now log in and manage your site or jump straight into building your new features! -

    - -

    - Some plugins may need additional configuration and there are already some pre-made resources to get you started. (Both in the files and the Admin Panel) -

    - - -
    -
    -
    diff --git a/app/views/install/configure.html b/app/views/install/configure.html deleted file mode 100644 index f57ed14..0000000 --- a/app/views/install/configure.html +++ /dev/null @@ -1,44 +0,0 @@ -
    - {installer-nav} -
    -
    - Configure -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - -
    -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/app/views/install/models.html b/app/views/install/models.html deleted file mode 100644 index bbad39d..0000000 --- a/app/views/install/models.html +++ /dev/null @@ -1,37 +0,0 @@ -
    - {installer-nav} -
    -
    -

    All models are required for proper installation of The Tempus Project. In this step, we will add the database tables required for these models. In the next step, you'll be able to select which plugins you would like installed.

    -
    - - - - - - - - - {LOOP} - - - - - {/LOOP} - {ALT} - - - - {/ALT} - -
    Model NameVersion
    {name}{version}
    - No models to install. -
    - -
    - -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/app/views/install/nav.html b/app/views/install/nav.html deleted file mode 100644 index a1e937a..0000000 --- a/app/views/install/nav.html +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/app/views/install/plugins.html b/app/views/install/plugins.html deleted file mode 100644 index ea67132..0000000 --- a/app/views/install/plugins.html +++ /dev/null @@ -1,45 +0,0 @@ -
    - {installer-nav} -
    -
    -

    - The Tempus Project was built to utilize all of the plugins provided with the installer. You can choose not to enable any one of them, but it may negatively impact the operation of your site. -

    -
    - - - - - - - - - - {LOOP} - - - - - - {/LOOP} - {ALT} - - - - {/ALT} - -
    Plugin NameVersion - -
    {name}{version} - -
    - No models to install. -
    - -
    - -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/app/views/install/resources.html b/app/views/install/resources.html deleted file mode 100644 index 64c77a8..0000000 --- a/app/views/install/resources.html +++ /dev/null @@ -1,16 +0,0 @@ -
    - {installer-nav} -
    -
    -

    - Some models such as groups will need additional database resources and configurations to function properly. In this step, we will install those features. -

    -
    - -
    - -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/app/views/install/routing.html b/app/views/install/routing.html deleted file mode 100644 index 77a95ce..0000000 --- a/app/views/install/routing.html +++ /dev/null @@ -1,18 +0,0 @@ -
    - {installer-nav} -
    -
    -

    The Tempus Project uses rewrites in htaccess files (Apache), or location directives (Nginx), to automatically route all incoming traffic through the app. In this step, we will help set-up and then test that the required configurations have been made.

    -

    Apache Users

    -

    In this step, we will attempt to generate the appropriate files for Apache servers.

    -

    Nginx Users

    -

    If you are using Nginx, you will need to update your server's configuration manually. Please see the documentation, for convenience, an example configuration has been provided with TheTempusProject and can be found in the app/resources directory.

    -
    - -
    -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/app/views/install/terms.html b/app/views/install/terms.html deleted file mode 100644 index 199b517..0000000 --- a/app/views/install/terms.html +++ /dev/null @@ -1,16 +0,0 @@ -
    - {installer-nav} -
    -
    -
    - {TERMS} -
    -
    -
    - -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/app/views/install/user.html b/app/views/install/user.html deleted file mode 100644 index 6133376..0000000 --- a/app/views/install/user.html +++ /dev/null @@ -1,35 +0,0 @@ -
    - {installer-nav} -
    -
    -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - -
    - -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/app/views/install/verify.html b/app/views/install/verify.html deleted file mode 100644 index 61ae0a1..0000000 --- a/app/views/install/verify.html +++ /dev/null @@ -1,23 +0,0 @@ -
    - {installer-nav} -
    -
    -

    Requirements

    -
      -
    • PHP version greater than 5.6
    • -
    • Session storage must be enabled
    • -
    • PHP mail must be enabled.
    • -
    • Safe mode must be disabled.
    • -
    • Rewrite rule must be on
    • -
    • file uploads must be on
    • -
    • mysql_pdo must be enabled
    • -
    -
    -
    - -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/app/views/install/welcome.html b/app/views/install/welcome.html deleted file mode 100644 index 62fd726..0000000 --- a/app/views/install/welcome.html +++ /dev/null @@ -1,17 +0,0 @@ -
    -
    -
    -
    - {installer-nav} -

    Welcome to The Tempus Project Installer.

    -

    - This installer will guide you through the process of installing and configuring The Tempus Project. Do not forget to delete this file once you have completed installation. -

    -
    - -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/app/views/start.html b/app/views/start.html deleted file mode 100644 index 3afa8a8..0000000 --- a/app/views/start.html +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    Getting Started with {SITENAME}

    -

    - {SITENAME} has been open source for many years now. The hopes and intentions for it were always to give others a leg-up to get started building web-apps like i wish i had as a kid. - There were so many tutorials and ideas, expansions and plans for the project. - Unfortunately no person is given unlimited time to accomplish their dreams and over the years the idea for a huge repository for learning and education has taken a back seat. -

    -

    - At this time, the best recommendation available is to contact us for more information. - The site here is actively maintained so feel free to utilize any of our available resources for contact. - In addition to the site here, you can contact the lead developer (me) directly through JoeyKimsey.com. -

    -

    - 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 a publicly available product is not a 1-to-1 job. There may be bugs or issues encountered while you use the product. I can't guarantee a fix for every need in every case immediately, but I do actively keep track of bugs and work hard to ensure everyone has a great experience using the app. -

    -

    - If you encounter any bugs, feel free to report them here. Likewise, there are forms for feedback, reviews, suggestions, and a general contact form. Thanks for taking the time to check out the product! -

    -
    - {loggedin} - Report a Bug - {/loggedin} - Contact Us -
    -
    \ No newline at end of file diff --git a/composer.json b/composer.json index 470c6c7..6ea295e 100644 --- a/composer.json +++ b/composer.json @@ -25,6 +25,7 @@ { "endroid/qr-code": "^6.0", "fortawesome/font-awesome": "4.7", + "stripe/stripe-php": "^16.3", "thetempusproject/bedrock": "1.1.6", "thetempusproject/canary": "1.0.9", "thetempusproject/houdini": "2.0.5", diff --git a/composer.lock b/composer.lock index c361252..0818445 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "10e7ce6b744b46b0c10780dbd7786ecb", + "content-hash": "1a35931e4b6b82cdcc4c3cd9824421b1", "packages": [ { "name": "bacon/bacon-qr-code", @@ -234,6 +234,65 @@ }, "time": "2016-10-24T15:52:54+00:00" }, + { + "name": "stripe/stripe-php", + "version": "v16.5.0", + "source": { + "type": "git", + "url": "https://github.com/stripe/stripe-php.git", + "reference": "3fb22256317344e049fce02ff289af3b776b0464" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/3fb22256317344e049fce02ff289af3b776b0464", + "reference": "3fb22256317344e049fce02ff289af3b776b0464", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": ">=5.6.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "3.5.0", + "phpstan/phpstan": "^1.2", + "phpunit/phpunit": "^5.7 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Stripe\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stripe and contributors", + "homepage": "https://github.com/stripe/stripe-php/contributors" + } + ], + "description": "Stripe PHP Library", + "homepage": "https://stripe.com/", + "keywords": [ + "api", + "payment processing", + "stripe" + ], + "support": { + "issues": "https://github.com/stripe/stripe-php/issues", + "source": "https://github.com/stripe/stripe-php/tree/v16.5.0" + }, + "time": "2025-01-27T20:20:33+00:00" + }, { "name": "thetempusproject/bedrock", "version": "1.1.6", diff --git a/images/icon-maskWhite.png b/images/icon-maskWhite.png deleted file mode 100644 index d93d196..0000000 Binary files a/images/icon-maskWhite.png and /dev/null differ diff --git a/images/logo.png b/images/logo.png deleted file mode 100644 index ea64007..0000000 Binary files a/images/logo.png and /dev/null differ diff --git a/images/logo128.png b/images/logo128.png deleted file mode 100644 index 213aadc..0000000 Binary files a/images/logo128.png and /dev/null differ diff --git a/images/logoWhite.png b/images/logoWhite.png deleted file mode 100644 index 213fa01..0000000 Binary files a/images/logoWhite.png and /dev/null differ diff --git a/images/logoWhite128.png b/images/logoWhite128.png deleted file mode 100644 index e3db214..0000000 Binary files a/images/logoWhite128.png and /dev/null differ diff --git a/images/logoWhite192.png b/images/logoWhite192.png deleted file mode 100644 index f57cf6a..0000000 Binary files a/images/logoWhite192.png and /dev/null differ diff --git a/images/logoWhite512.png b/images/logoWhite512.png deleted file mode 100644 index b7a4907..0000000 Binary files a/images/logoWhite512.png and /dev/null differ