根据smarty中的php文件名更改标记的类


Changing class of a tag depending on php file name in smarty

在模板中,有一些选项卡(使用HTML)可以具有class属性,表示活动,因此它们可以弹出一点,直观地告诉用户他/她在哪个选项卡中。

代码如下:

<ul id="top-navigation">
    <li class="active"><span><span><a href="{$smarty.const.SITE_URL}/admin/admin.index.php">Front Page</a></span></span></li>
    <li><span><span><a href="{$smarty.const.SITE_URL}/admin/members.list.php">Members List</a></span></span></li>
    <li><span><span><a href="#">Roll Call</a></span></span></li>
    <li><span><span><a href="#">Schedules 5022</a></span></span></li>
    <li><span><span><a href="#">Schedules 5088</a></span></span></li>
</ul>

因此,我正在寻找一种方法来判断哪个<li>元素是当前活动的选项卡。默认情况下,FrontPage选项卡设置为活动。因此,当用户点击第二个选项卡时,我想将该选项卡设置为活动类。

以下是我如何设置应该加载到php文件中的模板(在本例中为members.list.php):

  $smarty->assign('content', 'admin/members.list'); //members.list.tpl
  $smarty->display('admin/index.tpl');

最简单的方法就是根据查看的页面在smarty中设置一个页面变量,然后在模板中进行检查:

$smarty->assign('selectedItem', 'home');
<li {if $selectedItem eq 'home'}class="active"{/if}>