如何在WHMCS所有页面显示工单列表?
How to display ticket list in all pages of WHMCS?
我正在为 WHMCS 设计一个 bootstrap 主题,并在顶部导航(位于 header.tpl), 有一个 onClick 按钮,它显示一个浮动的 window 包含带有自定义滚动条的门票列表。
问题是:在“clientarea.php”和“supporttickets.php”页面中它工作正常,但是在其他页面,虽然显示了票数,但是没有显示票的列表视图。
谢谢。代码:
{if $loggedin} {if in_array('tickets',$contactpermissions)}
<li class="xn-icon-button pull-right">
<a href="#"><span class="fa fa-comments"></span></a>
<div class="informer informer-danger"> {$clientsstats.numactivetickets}</div>
<div class="panel panel-primary animated zoomIn xn-drop-left xn-panel-dragging">
<div class="panel-heading">
<h3 class="panel-title" style="font-size: 13pt;"> {$LANG.supportticketsopentickets} <span class="fa fa-comments"></span></h3>
<div class="pull-left">
<span class="label label-danger"> Tickets: {$clientsstats.numactivetickets}</span>
</div>
</div>
<div class="panel-body list-group list-group-contacts scroll" style="height: 200px;">
{foreach from=$tickets item=ticket}
<a href="viewticket.php?tid={$ticket.tid}&c={$ticket.c}" class="list-group-item">
<div class="list-group-status status-online"></div>
<img src="templates/{$template}/assets/images/users/dadparvar.jpg" class="pull-right" alt="Hamed Azimi"/>
<span class="contacts-title">{$ticket.department}: <i>{$ticket.status}</i></span>
<p>{if $ticket.unread}<strong>{/if}#{$ticket.tid} - {$ticket.subject}{if $ticket.unread}</strong>{/if}
</p>
</a>
{foreachelse}
{$LANG.supportticketsnoneopen}
{/foreach}
</div>
<div class="panel-footer text-center">
<a href="submitticket.php">{$LANG.opennewticket}</a> | <a href="supporttickets.php">Show all tickets</a>
</div>
</div>
</li>
{/if}{/if}
它们在上述页面上可用,因为 WHMCS 已经在为您加载它们。在门票不可用的页面中,使用 WHMCS API 函数将它们加载到与模板中使用的结构相同的变量中。
{php}
$client_id = $this->get_template_vars('clientsdetails.id');
$results = localAPI('gettickets', array('clientid' => $client_id), 'admin');
if ($results['result'] == 'success') {
$tickets = $results['tickets']['ticket'];
}
$this->assign('tickets', $tickets);
{/php}
在您要查看门票列表的 TPL 文件顶部添加此代码。
备注:
代码还缺少一些需要的功能,比如票证访问权限和部门名称,可以查看WHMCSAPI或者直接查询数据库
您可以使用 smarty include 将代码添加到一个文件中,只在需要时包含它。
我正在为 WHMCS 设计一个 bootstrap 主题,并在顶部导航(位于 header.tpl), 有一个 onClick 按钮,它显示一个浮动的 window 包含带有自定义滚动条的门票列表。
问题是:在“clientarea.php”和“supporttickets.php”页面中它工作正常,但是在其他页面,虽然显示了票数,但是没有显示票的列表视图。
谢谢。代码:
{if $loggedin} {if in_array('tickets',$contactpermissions)}
<li class="xn-icon-button pull-right">
<a href="#"><span class="fa fa-comments"></span></a>
<div class="informer informer-danger"> {$clientsstats.numactivetickets}</div>
<div class="panel panel-primary animated zoomIn xn-drop-left xn-panel-dragging">
<div class="panel-heading">
<h3 class="panel-title" style="font-size: 13pt;"> {$LANG.supportticketsopentickets} <span class="fa fa-comments"></span></h3>
<div class="pull-left">
<span class="label label-danger"> Tickets: {$clientsstats.numactivetickets}</span>
</div>
</div>
<div class="panel-body list-group list-group-contacts scroll" style="height: 200px;">
{foreach from=$tickets item=ticket}
<a href="viewticket.php?tid={$ticket.tid}&c={$ticket.c}" class="list-group-item">
<div class="list-group-status status-online"></div>
<img src="templates/{$template}/assets/images/users/dadparvar.jpg" class="pull-right" alt="Hamed Azimi"/>
<span class="contacts-title">{$ticket.department}: <i>{$ticket.status}</i></span>
<p>{if $ticket.unread}<strong>{/if}#{$ticket.tid} - {$ticket.subject}{if $ticket.unread}</strong>{/if}
</p>
</a>
{foreachelse}
{$LANG.supportticketsnoneopen}
{/foreach}
</div>
<div class="panel-footer text-center">
<a href="submitticket.php">{$LANG.opennewticket}</a> | <a href="supporttickets.php">Show all tickets</a>
</div>
</div>
</li>
{/if}{/if}
它们在上述页面上可用,因为 WHMCS 已经在为您加载它们。在门票不可用的页面中,使用 WHMCS API 函数将它们加载到与模板中使用的结构相同的变量中。
{php}
$client_id = $this->get_template_vars('clientsdetails.id');
$results = localAPI('gettickets', array('clientid' => $client_id), 'admin');
if ($results['result'] == 'success') {
$tickets = $results['tickets']['ticket'];
}
$this->assign('tickets', $tickets);
{/php}
在您要查看门票列表的 TPL 文件顶部添加此代码。
备注:
代码还缺少一些需要的功能,比如票证访问权限和部门名称,可以查看WHMCSAPI或者直接查询数据库
您可以使用 smarty include 将代码添加到一个文件中,只在需要时包含它。