'; hesk_process_messages($hesk_error_buffer, 'NOREDIRECT'); print_form(); } } elseif (empty($trackingID) || ($hesk_settings['email_view_ticket'] && empty($my_email))) { print_form(); } /* Limit brute force attempts */ hesk_limitBfAttempts(); require_once(HESK_PATH . 'inc/custom_fields.inc.php'); /* Get ticket info */ $res = hesk_dbQuery("SELECT `t1`.* , `t2`.name AS `repliername`, `ticketStatus`.`IsClosed` AS `isClosed`, `ticketStatus`.`Key` AS `statusKey` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` AS `t1` INNER JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses` AS `ticketStatus` ON `t1`.`status` = `ticketStatus`.`ID` LEFT JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` AS `t2` ON `t1`.`replierid` = `t2`.`id` WHERE `trackid`='" . hesk_dbEscape($trackingID) . "' LIMIT 1"); /* Ticket found? */ if (hesk_dbNumRows($res) != 1) { /* Ticket not found, perhaps it was merged with another ticket? */ $res = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` WHERE `merged` LIKE '%#" . hesk_dbEscape($trackingID) . "#%' LIMIT 1"); if (hesk_dbNumRows($res) == 1) { /* OK, found in a merged ticket. Get info */ $ticket = hesk_dbFetchAssoc($res); /* If we require e-mail to view tickets check if it matches the one from merged ticket */ if (hesk_verifyEmailMatch($ticket['trackid'], $my_email, $ticket['email'], 0)) { hesk_process_messages(sprintf($hesklang['tme'], $trackingID, $ticket['trackid']), 'NOREDIRECT', 'NOTICE'); $trackingID = $ticket['trackid']; } else { hesk_process_messages(sprintf($hesklang['tme1'], $trackingID, $ticket['trackid']) . '

' . sprintf($hesklang['tme2'], $ticket['trackid']), 'NOREDIRECT', 'NOTICE'); $trackingID = $ticket['trackid']; print_form(); } } else { /* Nothing found, error out */ hesk_process_messages($hesklang['ticket_not_found'], 'NOREDIRECT'); print_form(); } } else { /* We have a match, get ticket info */ $ticket = hesk_dbFetchAssoc($res); /* If we require e-mail to view tickets check if it matches the one in database */ hesk_verifyEmailMatch($trackingID, $my_email, $ticket['email']); } /* Ticket exists, clean brute force attempts */ hesk_cleanBfAttempts(); /* Remember email address? */ if ($is_form) { if ( strlen($do_remember) ) { hesk_setcookie('hesk_myemail', $my_email, strtotime('+1 year')); } elseif (isset($_COOKIE['hesk_myemail'])) { hesk_setcookie('hesk_myemail', ''); } } /* Set last replier name */ if ($ticket['lastreplier']) { if (empty($ticket['repliername'])) { $ticket['repliername'] = $hesklang['staff']; } } else { $ticket['repliername'] = $ticket['name']; } // If IP is unknown (tickets via email pipe/pop3 fetching) assume current visitor IP as customer IP if ($ticket['ip'] == 'Unknown' || $ticket['ip'] == $hesklang['unknown']) { hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` SET `ip` = '" . hesk_dbEscape($_SERVER['REMOTE_ADDR']) . "' WHERE `id`=" . intval($ticket['id'])); } /* Get category name and ID */ $result = hesk_dbQuery("SELECT `name` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` WHERE `id`='" . intval($ticket['category']) . "' LIMIT 1"); /* If this category has been deleted use the default category with ID 1 */ if (hesk_dbNumRows($result) != 1) { $result = hesk_dbQuery("SELECT `name` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` WHERE `id`='1' LIMIT 1"); } $category = hesk_dbFetchAssoc($result); /* Get replies */ $result = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "replies` WHERE `replyto`='" . intval($ticket['id']) . "' ORDER BY `id` " . ($hesk_settings['new_top'] ? 'DESC' : 'ASC')); $replies = hesk_dbNumRows($result); $unread_replies = array(); // Demo mode if (defined('HESK_DEMO')) { $ticket['email'] = 'hidden@demo.com'; } /* Print header */ require_once(HESK_PATH . 'inc/header.inc.php'); ?>

 

'; unset($_SESSION['force_form_top']); } ?>

:

:

:

' . $hesklang['open_action'] . ''; } elseif ($hesk_settings['custclose'] && $isClosable) { echo '' . $hesklang['close_action'] . ''; } } ?>

'; } elseif ($ticket['priority'] == 1) { echo 'highPriority">'; } else { echo 'medLowPriority">'; } echo '

' . $hesklang['priority'] . '

'; if ($ticket['priority'] == 0) { echo '

' . $hesklang['critical'] . '

'; } elseif ($ticket['priority'] == 1) { echo '

' . $hesklang['high'] . '

'; } elseif ($ticket['priority'] == 2) { echo '

' . $hesklang['medium'] . '

'; } else { echo '

' . $hesklang['low'] . '

'; } echo '
'; } else { $repliesColumnWidth = 3; } echo '

' . $hesklang['status'] . '

'; echo '

' . mfh_getDisplayTextForStatusId($status['ID']) . '

'; echo '
'; echo '

' . $hesklang['last_replier'] . '

' . $ticket['repliername'] . '

'; echo '

' . $hesklang['category'] . '

' . $category['name'] . '

'; echo '

' . $hesklang['replies'] . '

' . $replies . '

'; ?>

:

$v) { if ($v['use'] == 1 && $v['place'] == 0 && hesk_is_custom_field_in_category($k, $ticket['category'])) { echo '

' . $v['name'] . ': '; switch ($v['type']) { case 'email': $ticket[$k] = ''.$ticket[$k].''; break; case 'date': $ticket[$k] = hesk_custom_date_display_format($ticket[$k], $v['value']['date_format']); break; } echo $ticket[$k].'

'; } } ?>

:

$v) { if ($v['use'] == 1 && $v['place'] && hesk_is_custom_field_in_category($k, $ticket['category'])) { echo '

' . $v['name'] . ': '; switch ($v['type']) { case 'email': $ticket[$k] = ''.$ticket[$k].''; break; case 'date': $ticket[$k] = hesk_custom_date_display_format($ticket[$k], $v['value']['date_format']); break; } echo $ticket[$k].'

'; } } /* Attachments */ mfh_listAttachments($ticket['attachments'], $i, false); ?>

>
'; } if ($reopen) { echo ''; } ?>

:

' . $hesklang['rnh'] . '

'; } elseif ($reply['rating'] == 5) { echo '

' . $hesklang['rh'] . '

'; } else { echo ' '; } } ?>

:

' . $hesklang['printer_friendly'] . ' '; /* Return generated HTML */ return $options; } // END hesk_getCustomerButtons() ?>