在Tpl文件中为Prestashop标题链接激活链接

时间:2012-01-21 15:40:37

标签: php smarty prestashop

我正在尝试在我的Prestashop安装中的tmheaderlinks.tpl中编辑以下代码,这样当点击“关于我们”时,它将变为“活动”,其他链接也是如此:

<ul id="header_links">
<li><a href="{$link->getPageLink('index.php')}"{if $page_name == 'index'} class="active"{/if}>{l s='home' mod='tmheaderlinks'}</a></li>
<li><a href="{$link->getPageLink('prices-drop.php')}"{if $page_name == 'prices-drop'} class="active"{/if}>{l s='specials' mod='tmheaderlinks'}</a></li>
<li><a href="{$link->getPageLink('contact-form.php')}"{if $page_name == 'contact-form'} class="active"{/if}>{l s='contact' mod='tmheaderlinks'}</a></li>
<li><a href="{$link->getPageLink('cms.php?id_cms=14')}"{if $page_name == 'about-us'} class="active"{/if}>{l s='About Us' mod='tmheaderlinks'}</a></li>

Prestashop中的变量$ page_name是使用页面的id设置的,因为About Us页面来自Prestashop的CMS功能,所以id设置为'cms',这不是很有用,因为它会使该链接处于对CMS显示的所有页面处于活动状态。

我可以使用的变量可以替换About Us条目的$ page_name变量吗?或者有没有办法测试页面标题而不是名称,然后将类设置为活动?

或者我可以将$ page_name变量分配给CMS中“关于我们”页面的特定值(about-us)吗?

我在Prestashops论坛上看到过几个解决方案,但并不完全如此:

http://www.prestashop.com/forums/topic/139344-css-active-in-cms-pages/

非常感谢任何帮助!

编辑:我自己解决了这个问题(上帝知道怎么做!)使用这条线购买:

    <li><a href="{$link->getPageLink('cms.php?id_cms=14')}"{if {$smarty.server.REQUEST_URI} == '/content/14-about-us'} class="active"{/if}>{l s='About Us' mod='tmheaderlinks'}</a></li>

请记住,您需要将'/ content / 14-about-us'更改为您安装的URI。不是最好的解决方案,但它确实有效。

希望能帮助别人!

1 个答案:

答案 0 :(得分:3)

{if $smarty.get.id_cms == '9'} 

这也是一样的。

9是cms page id。您可以在CMS部分找到它。