diff --git a/include/class.ticket.php b/include/class.ticket.php index a6bff31c40f5ec4cc24f2434e72828ccde2407c3..d01f438d791c6d5c104a594e65299ac2e5ce2deb 100644 --- a/include/class.ticket.php +++ b/include/class.ticket.php @@ -75,18 +75,25 @@ class Ticket{ $sql='SELECT ticket.*, topic.topic as helptopic, lock_id, dept_name, priority_desc ' .' ,count(attach.attach_id) as attachments ' - .' ,count(DISTINCT message.msg_id) as messages ' - .' ,count(DISTINCT response.response_id) as responses ' - .' ,count(DISTINCT note.note_id) as notes ' + .' ,count(DISTINCT message.id) as messages ' + .' ,count(DISTINCT response.id) as responses ' + .' ,count(DISTINCT note.id) as notes ' .' FROM '.TICKET_TABLE.' ticket ' .' LEFT JOIN '.DEPT_TABLE.' dept ON (ticket.dept_id=dept.dept_id) ' - .' LEFT JOIN '.TICKET_PRIORITY_TABLE.' pri ON (ticket.priority_id=pri.priority_id) ' - .' LEFT JOIN '.TOPIC_TABLE.' topic ON (ticket.topic_id=topic.topic_id) ' - .' LEFT JOIN '.TICKET_LOCK_TABLE.' tlock ON (ticket.ticket_id=tlock.ticket_id AND tlock.expire>NOW()) ' - .' LEFT JOIN '.TICKET_ATTACHMENT_TABLE.' attach ON (ticket.ticket_id=attach.ticket_id) ' - .' LEFT JOIN '.TICKET_MESSAGE_TABLE.' message ON (ticket.ticket_id=message.ticket_id) ' - .' LEFT JOIN '.TICKET_RESPONSE_TABLE.' response ON (ticket.ticket_id=response.ticket_id) ' - .' LEFT JOIN '.TICKET_NOTE_TABLE.' note ON (ticket.ticket_id=note.ticket_id ) ' + .' LEFT JOIN '.TICKET_PRIORITY_TABLE.' pri ON (' + .'ticket.priority_id=pri.priority_id) ' + .' LEFT JOIN '.TOPIC_TABLE.' topic ON (' + .'ticket.topic_id=topic.topic_id) ' + .' LEFT JOIN '.TICKET_LOCK_TABLE.' tlock ON (' + .'ticket.ticket_id=tlock.ticket_id AND tlock.expire>NOW()) ' + .' LEFT JOIN '.TICKET_ATTACHMENT_TABLE.' attach ON (' + .'ticket.ticket_id=attach.ticket_id) ' + .' LEFT JOIN '.TICKET_THREAD_TABLE.' message ON (' + ."ticket.ticket_id=message.ticket_id AND message.thread_type = 'M') " + .' LEFT JOIN '.TICKET_THREAD_TABLE.' response ON (' + ."ticket.ticket_id=response.ticket_id AND response.thread_type = 'R') " + .' LEFT JOIN '.TICKET_THREAD_TABLE.' note ON ( ' + ."ticket.ticket_id=note.ticket_id AND note.thread_type = 'N') " .' WHERE ticket.ticket_id='.db_input($id) .' GROUP BY ticket.ticket_id'; @@ -436,9 +443,10 @@ class Ticket{ function getLastRespondent() { $sql ='SELECT resp.staff_id ' - .' FROM '.TICKET_RESPONSE_TABLE.' resp ' + .' FROM '.TICKET_THREAD_TABLE.' resp ' .' LEFT JOIN '.STAFF_TABLE. ' USING(staff_id) ' .' WHERE resp.ticket_id='.db_input($this->getId()).' AND resp.staff_id>0 ' + .' AND resp.thread_type="R"' .' ORDER BY resp.created DESC LIMIT 1'; if(!($res=db_query($sql)) || !db_num_rows($res)) @@ -456,8 +464,9 @@ class Ticket{ return $this->lastmsgdate; //for old versions...XXX: still needed???? - $sql='SELECT created FROM '.TICKET_MESSAGE_TABLE + $sql='SELECT created FROM '.TICKET_THREAD_TABLE .' WHERE ticket_id='.db_input($this->getId()) + ." AND thread_type = 'M'" .' ORDER BY created DESC LIMIT 1'; if(($res=db_query($sql)) && db_num_rows($res)) list($this->lastmsgdate)=db_fetch_row($res); @@ -474,8 +483,9 @@ class Ticket{ if($this->lastrespdate) return $this->lastrespdate; - $sql='SELECT created FROM '.TICKET_RESPONSE_TABLE + $sql='SELECT created FROM '.TICKET_THREAD_TABLE .' WHERE ticket_id='.db_input($this->getId()) + .' AND thread_type="R"' .' ORDER BY created DESC LIMIT 1'; if(($res=db_query($sql)) && db_num_rows($res)) list($this->lastrespdate)=db_fetch_row($res); @@ -522,11 +532,12 @@ class Ticket{ $order='DESC'; $sql ='SELECT note.*, count(DISTINCT attach.attach_id) as attachments ' - .' FROM '.TICKET_NOTE_TABLE.' note ' + .' FROM '.TICKET_THREAD_TABLE.' note ' .' LEFT JOIN '.TICKET_ATTACHMENT_TABLE.' attach - ON (note.ticket_id=attach.ticket_id AND note.note_id=attach.ref_id AND ref_type="N") ' + ON (note.ticket_id=attach.ticket_id AND note.id=attach.ref_id AND ref_type="N") ' .' WHERE note.ticket_id='.db_input($this->getId()) - .' GROUP BY note.note_id ' + .' AND note.thread_type="N"' + .' GROUP BY note.id ' .' ORDER BY note.created '.$order; $notes=array(); @@ -539,14 +550,17 @@ class Ticket{ function getMessages() { - $sql='SELECT msg.msg_id, msg.created, msg.message ' - .' ,count(DISTINCT attach.attach_id) as attachments, count( DISTINCT resp.response_id) as responses ' - .' FROM '.TICKET_MESSAGE_TABLE.' msg ' - .' LEFT JOIN '.TICKET_RESPONSE_TABLE. ' resp ON(resp.msg_id=msg.msg_id) ' - .' LEFT JOIN '.TICKET_ATTACHMENT_TABLE.' attach - ON (msg.ticket_id=attach.ticket_id AND msg.msg_id=attach.ref_id AND ref_type="M") ' + $sql='SELECT msg.id, msg.created, msg.body ' + .' ,count(DISTINCT attach.attach_id) as attachments ' + .' ,count( DISTINCT resp.id) as responses ' + .' FROM '.TICKET_THREAD_TABLE.' msg ' + .' LEFT JOIN '.TICKET_THREAD_TABLE.' resp ON (' + .'resp.pid=msg.id AND resp.thread_type = "R") ' + .' LEFT JOIN '.TICKET_ATTACHMENT_TABLE.' attach ' + .'ON (msg.ticket_id=attach.ticket_id AND msg.id=attach.ref_id AND ref_type="M") ' .' WHERE msg.ticket_id='.db_input($this->getId()) - .' GROUP BY msg.msg_id ' + .' AND msg.thread_type="M"' + .' GROUP BY msg.id ' .' ORDER BY msg.created ASC '; $messages=array(); @@ -560,11 +574,12 @@ class Ticket{ function getResponses($msgId) { $sql='SELECT resp.*, count(DISTINCT attach.attach_id) as attachments ' - .' FROM '.TICKET_RESPONSE_TABLE. ' resp ' + .' FROM '.TICKET_THREAD_TABLE. ' resp ' .' LEFT JOIN '.TICKET_ATTACHMENT_TABLE.' attach - ON (resp.ticket_id=attach.ticket_id AND resp.response_id=attach.ref_id AND ref_type="R") ' + ON (resp.ticket_id=attach.ticket_id AND resp.id=attach.ref_id AND ref_type="R") ' .' WHERE resp.ticket_id='.db_input($this->getId()) - .' GROUP BY resp.response_id ' + .' AND resp.thread_type="R"' + .' GROUP BY resp.id ' .' ORDER BY resp.created'; $responses=array(); @@ -1272,18 +1287,18 @@ class Ticket{ } //Insert message from client - function postMessage($msg,$source='',$msgid=NULL,$headers='',$newticket=false){ + function postMessage($msg,$source='',$emsgid=null,$headers='',$newticket=false){ global $cfg; if(!$this->getId()) return 0; # XXX: Refuse auto-response messages? (via email) XXX: No - but kill our auto-responder. - $sql='INSERT INTO '.TICKET_MESSAGE_TABLE.' SET created=NOW() ' + $sql='INSERT INTO '.TICKET_THREAD_TABLE.' SET created=NOW()' + .' ,thread_type="M" ' .' ,ticket_id='.db_input($this->getId()) - .' ,messageId='.db_input($msgid) - .' ,message='.db_input(Format::striptags($msg)) //Tags/code stripped...meaning client can not send in code..etc - .' ,headers='.db_input($headers) //Raw header. + # XXX: Put Subject header into the 'title' field + .' ,body='.db_input(Format::striptags($msg)) //Tags/code stripped...meaning client can not send in code..etc .' ,source='.db_input($source?$source:$_SERVER['REMOTE_ADDR']) .' ,ip_address='.db_input($_SERVER['REMOTE_ADDR']); @@ -1291,6 +1306,15 @@ class Ticket{ $this->setLastMsgId($msgid); + if ($emsgid !== null) { + $sql='INSERT INTO '.TICKET_EMAIL_INFO_TABLE + .' SET msg_id='.db_input($msgid) + .', email_mid='.db_input($emsgid) + .', headers='.db_input($headers); + + if (!db_query($sql)) return 0; + } + if($newticket) return $msgid; //Our work is done... $autorespond = true; @@ -1355,10 +1379,11 @@ class Ticket{ if($errors) return 0; - $sql='INSERT INTO '.TICKET_RESPONSE_TABLE.' SET created=NOW() ' + $sql='INSERT INTO '.TICKET_THREAD_TABLE.' SET created=NOW() ' + .' ,thread_type="R"' .' ,ticket_id='.db_input($this->getId()) - .' ,msg_id='.db_input($vars['msgId']) - .' ,response='.db_input(Format::striptags($vars['response'])) + .' ,pid='.db_input($vars['msgId']) + .' ,body='.db_input(Format::striptags($vars['response'])) .' ,staff_id='.db_input($thisstaff->getId()) .' ,staff_name='.db_input($thisstaff->getName()) .' ,ip_address='.db_input($thisstaff->getIP()); @@ -1432,7 +1457,7 @@ class Ticket{ if(!$cfg || !$cfg->logTicketActivity()) return 0; - return $this->postNote($title,$note,false,'system'); + return $this->postNote($title,$note,false,'System'); } // History log -- used for statistics generation (pretty reports) @@ -1459,12 +1484,13 @@ class Ticket{ function postNote($title,$note,$alert=true,$poster='') { global $thisstaff,$cfg; - $sql= 'INSERT INTO '.TICKET_NOTE_TABLE.' SET created=NOW() '. + $sql= 'INSERT INTO '.TICKET_THREAD_TABLE.' SET created=NOW() '. + ',thread_type="N"'. ',ticket_id='.db_input($this->getId()). ',title='.db_input(Format::striptags($title)). - ',note='.db_input(Format::striptags($note)). + ',body='.db_input(Format::striptags($note)). ',staff_id='.db_input($thisstaff?$thisstaff->getId():0). - ',source='.db_input(($poster || !$thisstaff)?$poster:$thisstaff->getName()); + ',poster='.db_input(($poster || !$thisstaff)?$poster:$thisstaff->getName()); //echo $sql; if(!db_query($sql) || !($id=db_insert_id())) return false; @@ -1566,9 +1592,7 @@ class Ticket{ if(!db_query($sql) || !db_affected_rows()) return false; - db_query('DELETE FROM '.TICKET_MESSAGE_TABLE.' WHERE ticket_id='.db_input($this->getId())); - db_query('DELETE FROM '.TICKET_RESPONSE_TABLE.' WHERE ticket_id='.db_input($this->getId())); - db_query('DELETE FROM '.TICKET_NOTE_TABLE.' WHERE ticket_id='.db_input($this->getId())); + db_query('DELETE FROM '.TICKET_THREAD_TABLE.' WHERE ticket_id='.db_input($this->getId())); $this->deleteAttachments(); return true; @@ -1684,8 +1708,9 @@ class Ticket{ return 0; $sql='SELECT ticket.ticket_id FROM '.TICKET_TABLE. ' ticket '. - ' LEFT JOIN '.TICKET_MESSAGE_TABLE.' msg USING(ticket_id) '. - ' WHERE messageId='.db_input($mid).' AND email='.db_input($email); + ' LEFT JOIN '.TICKE_THREAD_TABLE.' msg USING(ticket_id) '. + ' INNER JOIN '.TICKET_EMAIL_INFO_TABLE.' emsg ON (msg.id = emsg.message_id) '. + ' WHERE email_mid='.db_input($mid).' AND email='.db_input($email); $id=0; if(($res=db_query($sql)) && db_num_rows($res)) list($id)=db_fetch_row($res); diff --git a/include/client/tickets.inc.php b/include/client/tickets.inc.php index a360217167bde83dedcb4decb339677e3c5370d6..7719ec74a7ef2a58babcae7112a0d2cb05caa92e 100644 --- a/include/client/tickets.inc.php +++ b/include/client/tickets.inc.php @@ -59,13 +59,12 @@ if($search) { $queryterm=db_real_escape($_REQUEST['q'],false); //escape the term ONLY...no quotes. $qwhere.=' AND ( ' ." ticket.subject LIKE '%$queryterm%'" - ." OR message.message LIKE '%$queryterm%'" - ." OR response.response LIKE '%$queryterm%'" + ." OR thread.body LIKE '%$queryterm%'" .' ) '; $deep_search=true; //Joins needed for search - $qfrom.=' LEFT JOIN '.TICKET_MESSAGE_TABLE.' message ON (ticket.ticket_id=message.ticket_id )' - .' LEFT JOIN '.TICKET_RESPONSE_TABLE.' response ON (ticket.ticket_id=response.ticket_id )'; + $qfrom.=' LEFT JOIN '.TICKET_THREAD_TABLE.' thread ON (' + .'ticket.ticket_id=thread.ticket_id AND thread.thread_type IN ("M","R"))'; } } diff --git a/include/client/view.inc.php b/include/client/view.inc.php index e720ed96bffa58c5d7321e7fe2544c7829a86678..f67e6d94bd3a4456e30b17797254dff49204b960 100644 --- a/include/client/view.inc.php +++ b/include/client/view.inc.php @@ -67,11 +67,11 @@ if($ticket->getThreadCount() && ($messages = $ticket->getMessages())) { <tr><th><?php echo Format::db_datetime($message['created']); ?></th></tr> - <tr><td><?php echo Format::display($message['message']); ?></td></tr> + <tr><td><?php echo Format::display($message['body']); ?></td></tr> <?php - if($message['attachments'] && ($links=$ticket->getAttachmentsLinks($message['msg_id'],'M'))) { ?> + if($message['attachments'] && ($links=$ticket->getAttachmentsLinks($message['id'],'M'))) { ?> <tr><td class="info"><?php echo $links; ?></td></tr> @@ -81,7 +81,7 @@ if($ticket->getThreadCount() && ($messages = $ticket->getMessages())) { </table> <?php - if($message['responses'] && ($responses=$ticket->getResponses($message['msg_id']))) { + if($message['responses'] && ($responses=$ticket->getResponses($message['id']))) { foreach($responses as $resp) { $staff=$cfg->hideStaffName()?'staff':Format::htmlchars($resp['staff_name']); ?> @@ -89,9 +89,9 @@ if($ticket->getThreadCount() && ($messages = $ticket->getMessages())) { <tr> <th><?php echo Format::db_datetime($resp['created']);?> - <?php echo $staff; ?></th> </tr> - <tr><td><?php echo Format::display($resp['response']); ?></td></tr> + <tr><td><?php echo Format::display($resp['body']); ?></td></tr> <?php - if($resp['attachments'] && ($links=$ticket->getAttachmentsLinks($resp['response_id'],'R'))) {?> + if($resp['attachments'] && ($links=$ticket->getAttachmentsLinks($resp['id'],'R'))) {?> <tr><td class="info"><?php echo $links; ?></td></tr> <?php }?> diff --git a/include/staff/ticket-view.inc.php b/include/staff/ticket-view.inc.php index 33f46eadd443ccf0cda94867d0e54a924b73e30e..faac0f86ef791a8726c266a8121a980860ddc267 100644 --- a/include/staff/ticket-view.inc.php +++ b/include/staff/ticket-view.inc.php @@ -196,11 +196,11 @@ if($ticket->isOverdue()) </tr> <tr> <td colspan="2"> - <?php echo Format::htmlchars($note['note']); ?> + <?php echo Format::htmlchars($note['body']); ?> </td> </tr> <?php - if($note['attachments'] && ($links=$ticket->getAttachmentsLinks($note['note_id'],'N'))) {?> + if($note['attachments'] && ($links=$ticket->getAttachmentsLinks($note['id'],'N'))) {?> <tr> <td class="info" colspan="2"><?php echo $links; ?></td> </tr> @@ -220,9 +220,9 @@ if($ticket->isOverdue()) foreach($messages as $message) {?> <table class="message" cellspacing="0" cellpadding="1" width="940" border="0"> <tr><th><?php echo Format::db_datetime($message['created']); ?></th></tr> - <tr><td><?php echo Format::display($message['message']); ?></td></tr> + <tr><td><?php echo Format::display($message['body']); ?></td></tr> <?php - if($message['attachments'] && ($links=$ticket->getAttachmentsLinks($message['msg_id'],'M'))) {?> + if($message['attachments'] && ($links=$ticket->getAttachmentsLinks($message['id'],'M'))) {?> <tr> <td class="info"><?php echo $links; ?></td> </tr> @@ -231,17 +231,17 @@ if($ticket->isOverdue()) </table> <?php /* --------- Responses ------------ */ - if($message['responses'] && ($responses=$ticket->getResponses($message['msg_id']))) { + if($message['responses'] && ($responses=$ticket->getResponses($message['id']))) { foreach($responses as $resp) {?> <table class="response" cellspacing="0" cellpadding="1" width="100%" border="0"> <tr> <th><?php echo Format::db_datetime($resp['created']); ?> - <?php echo Format::htmlchars($resp['staff_name']); ?></th> </tr> <tr> - <td><?php echo Format::display($resp['response']); ?></td> + <td><?php echo Format::display($resp['body']); ?></td> </tr> <?php - if($resp['attachments'] && ($links=$ticket->getAttachmentsLinks($resp['response_id'],'R'))) {?> + if($resp['attachments'] && ($links=$ticket->getAttachmentsLinks($resp['id'],'R'))) {?> <tr> <td class="info"><?php echo $links; ?></td> </tr> @@ -251,7 +251,7 @@ if($ticket->isOverdue()) <?php } } - $msgId=$message['msg_id']; + $msgId=$message['id']; } } else { echo '<p>Error fetching ticket thread - get technical help.</p>'; diff --git a/include/staff/tickets.inc.php b/include/staff/tickets.inc.php index 67d270c3f033e0db98e901d66b09fdcabf5247c6..bb05de08a3ef9477d7c92be63013cbdcd7b38660 100644 --- a/include/staff/tickets.inc.php +++ b/include/staff/tickets.inc.php @@ -108,6 +108,8 @@ if($search): if(is_numeric($searchTerm)){ $qwhere.=" AND ticket.ticketID LIKE '$queryterm%'"; }elseif(strpos($searchTerm,'@') && Validator::is_email($searchTerm)){ //pulling all tricks! + # XXX: What about searching for email addresses in the body of + # the thread message $qwhere.=" AND ticket.email='$queryterm'"; }else{//Deep search! //This sucks..mass scan! search anything that moves! @@ -117,19 +119,15 @@ if($search): $qwhere.=" AND ( ticket.email LIKE '%$queryterm%'". " OR ticket.name LIKE '%$queryterm%'". " OR ticket.subject LIKE '%$queryterm%'". - " OR note.title LIKE '%$queryterm%'". - " OR MATCH(message.message) AGAINST('$queryterm')". - " OR MATCH(response.response) AGAINST('$queryterm')". - " OR MATCH(note.note) AGAINST('$queryterm')". + " OR thread.title LIKE '%$queryterm%'". + " OR MATCH(thread.body) AGAINST('$queryterm')". ' ) '; }else{ $qwhere.=" AND ( ticket.email LIKE '%$queryterm%'". " OR ticket.name LIKE '%$queryterm%'". " OR ticket.subject LIKE '%$queryterm%'". - " OR message.message LIKE '%$queryterm%'". - " OR response.response LIKE '%$queryterm%'". - " OR note.note LIKE '%$queryterm%'". - " OR note.title LIKE '%$queryterm%'". + " OR thread.body LIKE '%$queryterm%'". + " OR thread.title LIKE '%$queryterm%'". ' ) '; } } @@ -206,9 +204,7 @@ $qfrom=' FROM '.TICKET_TABLE.' ticket '. $sjoin=''; if($search && $deep_search) { - $sjoin=' LEFT JOIN '.TICKET_MESSAGE_TABLE.' message ON (ticket.ticket_id=message.ticket_id )' - .' LEFT JOIN '.TICKET_RESPONSE_TABLE.' response ON (ticket.ticket_id=response.ticket_id )' - .' LEFT JOIN '.TICKET_NOTE_TABLE.' note ON (ticket.ticket_id=note.ticket_id ) '; + $sjoin=' LEFT JOIN '.TICKET_THREAD_TABLE.' thread ON (ticket.ticket_id=thread.ticket_id )'; } $qgroup=' GROUP BY ticket.ticket_id'; @@ -222,9 +218,9 @@ $pageNav->setURL('tickets.php',$qstr.'&sort='.urlencode($_REQUEST['sort']).'&ord //ADD attachment,priorities, lock and other crap $qselect.=' ,count(attach.attach_id) as attachments ' - .' ,count(DISTINCT message.msg_id) as messages ' - .' ,count(DISTINCT response.response_id) as responses ' - .' ,count(DISTINCT note.note_id) as notes ' + .' ,count(DISTINCT message.id) as messages ' + .' ,count(DISTINCT response.id) as responses ' + .' ,count(DISTINCT note.id) as notes ' .' ,IF(ticket.reopened is NULL,IF(ticket.lastmessage is NULL,ticket.created,ticket.lastmessage),ticket.reopened) as effective_date ' .' ,CONCAT_WS(" ", staff.firstname, staff.lastname) as staff, team.name as team ' .' ,IF(staff.staff_id IS NULL,team.name,CONCAT_WS(" ", staff.lastname, staff.firstname)) as assigned '; @@ -233,9 +229,12 @@ $qfrom.=' LEFT JOIN '.TICKET_PRIORITY_TABLE.' pri ON (ticket.priority_id=pri.pri .' LEFT JOIN '.TICKET_LOCK_TABLE.' tlock ON (ticket.ticket_id=tlock.ticket_id AND tlock.expire>NOW() AND tlock.staff_id!='.db_input($thisstaff->getId()).') ' .' LEFT JOIN '.TICKET_ATTACHMENT_TABLE.' attach ON (ticket.ticket_id=attach.ticket_id) ' - .' LEFT JOIN '.TICKET_MESSAGE_TABLE.' message ON (ticket.ticket_id=message.ticket_id) ' - .' LEFT JOIN '.TICKET_RESPONSE_TABLE.' response ON (ticket.ticket_id=response.ticket_id) ' - .' LEFT JOIN '.TICKET_NOTE_TABLE.' note ON (ticket.ticket_id=note.ticket_id ) ' + .' LEFT JOIN '.TICKET_THREAD_TABLE.' message ON (' + .'ticket.ticket_id=message.ticket_id AND message.thread_type="M") ' + .' LEFT JOIN '.TICKET_THREAD_TABLE.' response ON (' + .'ticket.ticket_id=response.ticket_id AND response.thread_type="R") ' + .' LEFT JOIN '.TICKET_THREAD_TABLE.' note ON (' + .'ticket.ticket_id=note.ticket_id AND note.thread_type="N") ' .' LEFT JOIN '.STAFF_TABLE.' staff ON (ticket.staff_id=staff.staff_id) ' .' LEFT JOIN '.TEAM_TABLE.' team ON (ticket.team_id=team.team_id) '; diff --git a/main.inc.php b/main.inc.php index 7b10c018a69abb54ab321a917889e48fc80c99da..b098bc175a890478dee7c40f99e7a42031ca37f9 100644 --- a/main.inc.php +++ b/main.inc.php @@ -135,9 +135,7 @@ define('CANNED_ATTACHMENT_TABLE',TABLE_PREFIX.'canned_attachment'); define('TICKET_TABLE',TABLE_PREFIX.'ticket'); - define('TICKET_NOTE_TABLE',TABLE_PREFIX.'ticket_note'); - define('TICKET_MESSAGE_TABLE',TABLE_PREFIX.'ticket_message'); - define('TICKET_RESPONSE_TABLE',TABLE_PREFIX.'ticket_response'); + define('TICKET_THREAD_TABLE',TABLE_PREFIX.'ticket_thread'); define('TICKET_ATTACHMENT_TABLE',TABLE_PREFIX.'ticket_attachment'); define('TICKET_PRIORITY_TABLE',TABLE_PREFIX.'ticket_priority'); define('PRIORITY_TABLE',TICKET_PRIORITY_TABLE);