如何在WHMCS的所有页面中显示票证列表?

时间:2015-01-30 12:40:55

标签: variables templates twitter-bootstrap-3 whmcs

我正在为 WHMCS 设计一个引导主题,在顶部导航中(位于 header.tpl 中),有一个onClick按钮,它显示浮动窗口包含带有自定义滚动的票证列表。

问题是:" 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}&amp;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}

1 个答案:

答案 0 :(得分:1)

它们在上述页面上可用,因为WHMCS已经为您加载它们。在门票不可用的页面中,使用WHMCS API函数将它们加载到您在模板中使用的具有相同结构的变量中。

Get Tickets api function docs

{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文件的顶部。

注意:

  • 代码仍缺少一些必需的功能,如检查故障单访问权限和部门名称,您可以直接检查WHMCS API或查询数据库。

  • 您可以使用smarty includes将代码添加到一个文件中,并在需要时将其包含在内。