Warning: chmod(): Operation not permitted in /var/www/hopeinstoughton_www/wp-content/plugins/simple-universal-google-analytics/main.php on line 8 [0] in function chmod in /var/www/hopeinstoughton_www/wp-content/plugins/simple-universal-google-analytics/main.php on line 8 [1] in function include_once in /var/www/hopeinstoughton_www/wp-settings.php on line 560 [2] in function require_once in /var/www/hopeinstoughton_www/wp-config.php on line 85 [3] in function require_once in /var/www/hopeinstoughton_www/wp-load.php on line 50 [4] in function require_once in /var/www/hopeinstoughton_www/wp-blog-header.php on line 13 [5] in function require in /var/www/hopeinstoughton_www/index.php on line 17
| Server IP : 94.177.8.99 / Your IP : 216.73.217.165 Web Server : Apache/2.4.58 (Ubuntu) System : Linux aries 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/patientapps_support/modules/ticket/ |
Upload File : |
<?php
namespace modules\ticket;
use ZBateson\MailMimeParser\MailMimeParser;
use ZBateson\MailMimeParser\Message;
use ZBateson\MailMimeParser\Header\HeaderConsts;
class main extends \moduleMain {
use \modules\config\traits {
\modules\config\traits::__construct as __ConstructConfig;
}
use \modules\input\traits {
\modules\input\traits::__construct as __ConstructInput;
}
use \modules\database\traits {
\modules\database\traits::__construct as __ConstructDatabase;
}
use \modules\output\traits {
\modules\output\traits::__construct as __ConstructOutput;
}
public function __construct() {
parent::__construct(__DIR__);
$this->__ConstructConfig();
$this->__ConstructInput();
//$this->__ConstructDatabase();
$this->__ConstructOutput($this->__INPUT, $this->__CONFIG);
}
public function Activate() {
$this->level = isset($_SESSION['current_user']) ? $_SESSION['current_user']['u_level'] : 0;
hook_add('menu.admin', [$this, '__admin_menu']);
hook_add('menu.menu2', [$this, '__login_link2']); // home
hook_add('uri', [$this, '__homepage'], 1);
hook_add('html.prepare', [$this, '__html_prepare']);
$this->link('t/{ticket}', [$this, '__action_redirect']);
}
public function __html_prepare($modulemain) {
$base = $modulemain->StaticUriModule(__DIR__);
$id = $modulemain->IncludeFile($base . '/tickets.js')->depends('mainjs');
}
public function __admin_menu(&$menu) {
$menu[] = [
'caption' => 'Ticketing System',
'href' => '/admin/helpdesk', // statuses, custom fields, priorities
'hint' => 'Ticketing System Maintenance',
'icon' => '<i class="fas fa-ticket-alt"></i>',
's' => 0
];
}
public function __login_link2(&$menu) {
if ($this->level) {
$menu[] = [
'caption' => 'New Request',
'href' => '/helpdesk/request',
's' => 0,
'icon' => '<i class="largeicon fas fa-home"></i>',
'hint' => 'Submit a new request for assistance'
];
}
}
public function __homepage(&$uri, $__INPUT, $__OUTPUT) {
if (($p = strpos($uri, '?')) !== FALSE) {
$param = substr($uri, $p);
$uri = substr($uri, 0, $p);
} else {
$param = '';
}
if ($uri == '/') {
if ($this->level) {
$uri = '/helpdesk/index' . $param;
} else {
$uri = '/helpdesk/request' . $param;
}
}
}
public function __action_redirect($param) {
$ticketnum = $param['ticket'];
// if auth is valid, login.
$auth = hook_execute('nonce.verify', FALSE, 'ticket', FALSE, $this->param('auth', ''));
if (is_string($auth) && $auth == $ticketnum) {
$model_ticket = $this->LoadModel('ticket_model');
$ticket = $model_ticket->TicketNumber($ticketnum)
->Ticket();
$client_id = $ticket->t_client;
$model_user = $this->LoadModel('user_model', 'pkpCore');
$user_info = $model_user->LoadUser(NULL, '', $client_id);
if ($user_info !== NULL) {
hook_execute('login', 0, $user_info); // log in as user $user_id
}
}
$this->Redirect("/helpdesk/ticket/{$ticketnum}");
}
final function incoming() {
header('Content-type: text/plain');
$model_ticket = $this->LoadModel('ticket_model');
$model_customer = $this->LoadModel('customer_model');
$model_ticket->ModelCustomer($model_customer)
->Hostname($this->hostname());
$content = $_POST['content'];
$message = Message::from($content, FALSE);
$model_ticket->ProcessEmail($message);
echo "status=ok\n";
exit(0);
}
final function image($item_id = '', $image_id = '') {
$model_ticket = $this->LoadModel('ticket_model');
die($model_ticket->InlineImage($item_id, $image_id));
}
final function test() {
header('Content-type: text/plain');
$content = file_get_contents(HOME . '/storage/20221114130429.208.txt');
$message = Message::from($content, FALSE);
$model_ticket = $this->LoadModel('ticket_model');
$model_customer = $this->LoadModel('customer_model');
$model_ticket->ModelCustomer($model_customer)
->Hostname($this->hostname());
$model_ticket->Testing($message);
die("breakpoint");
}
}