我正在尝试在我的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。不是最好的解决方案,但它确实有效。
希望能帮助别人!
答案 0 :(得分:3)
{if $smarty.get.id_cms == '9'}
这也是一样的。
9
是cms page id
。您可以在CMS部分找到它。