'; hesk_process_messages($hesk_error_buffer,'NOREDIRECT'); print_form(); } } elseif ( empty($trackingID) || ( $hesk_settings['email_view_ticket'] && empty($my_email) ) ) { print_form(); } /* Connect to database */ hesk_dbConnect(); /* Limit brute force attempts */ hesk_limitBfAttempts(); /* 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 ( ! empty($_GET['r']) ) { setcookie('hesk_myemail', $my_email, strtotime('+1 year')); $do_remember = ' checked="checked" '; } elseif ( isset($_COOKIE['hesk_myemail']) ) { 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'])." LIMIT 1"); } /* 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'] && $v['place']==0) { if ($modsForHesk_settings['custom_field_setting']) { $v['name'] = $hesklang[$v['name']]; } echo '

'.$v['name'].': '; if ($v['type'] == 'date' && !empty($ticket[$k])) { $dt = date('Y-m-d h:i:s', $ticket[$k]); echo hesk_dateToString($dt, 0); } else { echo $ticket[$k]; } echo '

'; } } ?>

:

$v) { if ($v['use'] && $v['place']) { if ($modsForHesk_settings['custom_field_setting']) { $v['name'] = $hesklang[$v['name']]; } echo '

'.$v['name'].': '; if ($v['type'] == 'date' && !empty($ticket[$k])) { $dt = date('Y-m-d h:i:s', $ticket[$k]); echo hesk_dateToString($dt, 0); } else { echo $ticket[$k]; } echo '

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


'; } echo '' . $hesklang['ful'] . ''; ?>
'; } 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() ?>