我正试图在我的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中"关于我们"页面的特定值(关于我们)吗?
我在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。不是最好的解决方案,但它有效。
希望这能帮助到别人!
{if $smarty.get.id_cms == '9'}
这也是一样的。
CCD_ 1是cmspage id
。您可以在CMS部分找到它。