0

Prestashopインストールのtmheaderlinks.tplで次のコードを編集して、[About Us]をクリックすると、他のリンクと同様に[アクティブ]になるようにしようとしています。

<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から表示されるすべてのページでアクティブです。

AboutUsエントリの$page_name変数を置き換えることができる変数はありますか?または、名前の代わりにページタイトルをテストしてから、クラスをアクティブとして設定する方法はありますか?

または、CMSのAbout Usページの特定の値(about-us)に$ page_name変数を割り当てることはできますか?

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に変更する必要があることに注意してください。最善の修正ではありませんが、機能します。

それが誰かを助けることを願っています!

4

1 に答える 1

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

これは同じことをします。

9は cmspage idです。CMSセクションで見つけることができます。

于 2012-09-03T19:37:18.423 に答える