Initial commit

This commit is contained in:
Joey Kimsey
2024-08-04 21:15:59 -04:00
parent c9d1fb983f
commit 0d469501ee
695 changed files with 70184 additions and 71 deletions

View File

@ -0,0 +1,94 @@
<?php
/**
* app/controllers/admin/contact.php
*
* This is the admin contact controller. The only real use is to send out emails to the various lists.
*
* @version 3.0
* @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE]
*/
namespace TheTempusProject\Controllers\Admin;
use TheTempusProject\Classes\AdminController;
use TheTempusProject\Classes\Email;
use TheTempusProject\Bedrock\Functions\Input;
use TheTempusProject\Houdini\Classes\Issues;
use TheTempusProject\Houdini\Classes\Views;
use TheTempusProject\Models\User;
use TheTempusProject\Models\Subscribe;
class Contact extends AdminController {
public static $user;
public static $subscribe;
public function __construct() {
parent::__construct();
self::$title = 'Admin - Contact';
self::$user = new User;
self::$subscribe = new Subscribe;
}
private function emailSubscribers( $params ) {
$list = self::$subscribe->list();
if ( empty( $list ) ) {
Issues::add( 'error', 'No subscribers found' );
return;
}
foreach ( $list as $recipient ) {
$params[ 'confirmationCode' ] = $recipient->confirmationCode;
Email::send( $recipient->email, 'contact', $params, [ 'template' => true, 'unsubscribe' => true ] );
}
}
private function emailUsers( $params, $limit = null ) {
$list = self::$user->userList( $limit );
foreach ( $list as $recipient ) {
Email::send( $recipient->email, 'contact', $params, [ 'template' => true ] );
}
}
public function index() {
if ( Input::exists( 'mailType' ) ) {
$params = [
'subject' => Input::post( 'mailSubject' ),
'title' => Input::post( 'mailTitle' ),
'message' => Input::post( 'mailMessage' ),
];
switch ( Input::post( 'mailType' ) ) {
case 'registered':
$this->emailUsers( $params );
Issues::add( 'success', 'Email(s) Sent' );
break;
case 'newsletter':
$this->emailUsers( $params, 'newsletter' );
Issues::add( 'success', 'Email(s) Sent' );
break;
case 'all':
$this->emailUsers( $params );
$this->emailSubscribers( $params );
Issues::add( 'success', 'Email(s) Sent' );
break;
case 'opt':
$this->emailUsers( $params, 'newsletter' );
$this->emailSubscribers( $params );
Issues::add( 'success', 'Email(s) Sent' );
break;
case 'subscribers':
$this->emailSubscribers( $params );
Issues::add( 'success', 'Email(s) Sent' );
break;
default:
Issues::add( 'error', 'Invalid Request' );
break;
}
}
Views::view( 'admin.contact' );
}
}