Initial commit
This commit is contained in:
94
app/controllers/admin/contact.php
Normal file
94
app/controllers/admin/contact.php
Normal 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' );
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user