2012-10-12 3 views
0

OTRS를위한 대시 보드의 역할을하기 위해 몇 가지 PHP 페이지를 작성하려고합니다. 이 아이디어는 사무실의 디스플레이에 출력하여 첫 번째 응답과 업데이트 에스컬레이션에 접근중인 티켓을 보여줍니다. 나는 지금까지 이것을 고심하는 개발사가 아니다. 나는 에스컬레이션 시간을 설정 한 티켓 만 출력 할 수있었습니다. 그러나 나는 에스컬레이션 때까지 시간을 보여주고 싶다. 이것은 내가 절대적으로 우둔한 곳이다. 나는 운의 큰 거래없이 php/mysql 가이드를 통해 자신의 길을 혼란스럽게 시도했다.PHP/mySQL 날짜/시간 계산 (OTRS)

지금까지 코드를 포함 시켰습니다 ... 에스컬레이션 열에 시간을 추가하는 방향으로 누군가를 안내 할 수있을뿐만 아니라 (나는 escalation_update_time (Unix)를 조작하는 것과 관련이 있습니다) 현재 날짜/시간은?)뿐만 아니라 누군가가 내가 성취하고자하는 것과 똑같은 일을하도록 도울 수 있다는 점은 매우 유용 할 것입니다! (obv 변경 IP/사용자 이름/패스).

요약하면; 이상적으로 아래 스크립트에 추가하려는 내용은 다음과 같습니다.

표준 날짜/시간 형식 (Unix 제외)으로 표시하는 기능 에스컬레이션까지 에스컬레이션까지 표시 기능 (예 : 3 시간 15 분 또는 2 일 3 시간 14 분 등 각 티켓에 대해

이것은 OTRS에만 해당되는 것이 아니며 모든 mySQL/PHP 환경에 적용되므로 잘 이해하면 물건!

는 인도를 사전에 감사 나) (사람이 :)

<html><head><title>OTRS - First Contact</title> 
<link rel="stylesheet" type="text/css" href="styles.css" /> 
</head><body> 
<?php 
$db_host = '192.168.1.254'; 
$db_user = 'myuser'; 
$db_pwd = 'mypassword'; 

$database = 'otrs'; 
$table = 'users'; 

if (!mysql_connect($db_host, $db_user, $db_pwd)) 
die("Can't connect to database"); 

if (!mysql_select_db($database)) 
die("Can't select database"); 

// sending query 
$result = mysql_query("SELECT q.name AS queue_name, t.tn, t.customer_id,a .a_from,  t.title, a.create_time, create_time_unix, escalation_update_time 
FROM queue AS q, ticket AS t, article AS a, (
     SELECT _a.ticket_id, MAX(_a.create_time) AS create_time 
     FROM ticket AS _t, ticket_state AS _t_s, article AS _a 
     WHERE _t_s.name IN ('new', 'open') 
     AND  _t.ticket_state_id = _t_s.id 
     AND  _a.ticket_id = _t.id    
     GROUP BY _a.ticket_id 
    ) a_max 
WHERE q.id = t.queue_id 
AND  t.id = a_max.ticket_id 
AND  a.create_time = a_max.create_time 
AND  q.name = 'Service Desk' 
AND  escalation_response_time >0 
GROUP BY t.id 
ORDER BY a.create_time ASC"); 
if (!$result) { 
die("Query to show fields from table failed"); 
} 

$fields_num = mysql_num_fields($result); 

echo "<h1>Ticket Escalations (First Contact)</h1>"; 
echo "<table border='1'><tr>"; 
// printing table headers 

echo "<td>Queue</td>"; 
echo "<td>Ticket#</td>"; 
echo "<td>Store</td>"; 
echo "<td>Customer</td>"; 
echo "<td>Subject</td>"; 
echo "<td>Last Update</td>"; 
echo "<td>Created Time (Unix)</td>"; 
echo "<td>Escalation Time</td>"; 

echo "</tr>\n"; 
// printing table rows 

while($row = mysql_fetch_row($result)) 
{ 
echo "<tr>"; 

// $row is array... foreach(..) puts every element 
// of $row to $cell variable 
foreach($row as $cell) 
    echo "<td>$cell</td>"; 
echo "</tr>\n"; 
} 
mysql_free_result($result); 
?> 
</body></html> 

답변

0

나는 당신이 당신의 aproach을 변경해야한다고 생각 :

# you can use all following escalation options with this four different ways of escalations 
    # TicketEscalationTime... 
    # TicketEscalationUpdateTime... 
    # TicketEscalationResponseTime... 
    # TicketEscalationSolutionTime... 

    # ticket escalation time of more than 60 minutes ago (optional) 
    TicketEscalationTimeOlderMinutes => -60, 
    # ticket escalation time of less than 120 minutes ago (optional) 
    TicketEscalationTimeNewerMinutes => -120, 

    # tickets with escalation time after ... (optional) 
    TicketEscalationTimeNewerDate => '2006-01-09 00:00:01', 
    # tickets with escalation time before ... (optional) 
    TicketEscalationTimeOlderDate => '2006-01-09 23:59:59', 
: 펄과 OTRS API를 사용하는 경우, 당신은 당신이 에스컬레이션 시간을 검색 할 수 있습니다 TicketSearch 객체를 사용할 수 있습니다