2

MagentoCE1.6内のtopLinksを静的ブロック内に表示したいと思います。これは、私のサイトが4つの異なるストア[マルチストア-異なるドメイン]を実行しており、1つのテンプレートを使用しながら、2つのストアにのみtopLinksを設定する必要があるためです。

私はphp呼び出しを変換しようとしました[getChildHtml('topLinks'); ?>]静的ブロック内のブロックタグに挿入しましたが、成功しませんでした。[さまざまなxmlから作成された]template_linksのxmlを詳しく調べましたが、静的ブロック内に{{block}}を作成してtopLinksを表示する方法を理解できませんでした。

静的ブロックの呼び出しは適切に行われています。内部のtopLinkを実現するための支援が必要です。

どんな助けでもありがたいです。

敬具

ファブ


私の質問の微調整:

基本的に、page.xmlを修正する必要があります

から

<block type="page/template_links" name="top.links" as="topLinks"/>

<layout>
<static_block_top_links>
    <reference name="header">
        <action method="unsetChild">
            <name>topLinks</name>
        </action>
        <block type="cms/block" before="-" name="some_name" as="topLinks">
            <action method="setBlockId">
                <name>some_static_block</name>
            </action>
        </block>
    </reference>
</static_block_top_links>

<STORE_store>
    <update handle="static_block_top_links" />
</STORE_store>

<STORE_law>
    <update handle="static_block_top_links" />
</STORE_law>

4

2 に答える 2

1

local.xmlを使用して、変更を実装します。

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <default>
        <reference name="header">
            <!-- Unset original toplinks block -->
            <action method="unsetChild">
                <name>topLinks</name>
            </action>

            <!-- Add static block in place with same alias -->
            <block type="cms/block" before="-" name="some_name" as="topLinks">
                <action method="setBlockId">
                    <name>some_static_block</name>
                </action>
            </block>
        </reference>
    </default>
</layout>

'some_name'は'top.links'以外の任意のものである可能性があることに注意してください。これにより、コアXMLファイル内のいくつかのものがcmsブロックでアクションを実行しようとします。

あなたの編集に応じて、あなたはそのようないくつかの店だけのためにそれを簡単に行うことができます:

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <static_block_top_links>
        <reference name="header">
            <action method="unsetChild">
                <name>topLinks</name>
            </action>
            <block type="cms/block" before="-" name="some_name" as="topLinks">
                <action method="setBlockId">
                    <name>some_static_block</name>
                </action>
            </block>
        </reference>
    </static_block_top_links>

    <STORE_myfirststore>
        <update handle="static_block_top_links" />
    </STORE_myfirststore>

    <STORE_mysecondstore>
        <update handle="static_block_top_links" />
    </STORE_mysecondstore>
</layout>
于 2012-05-21T07:55:42.827 に答える
0

こんにちは、magento CE 1.6+マルチストアマルチドメインをお持ちで、特定のストアの一般的なtopLinksを削除したい方は、これが正しい方法です。

app / design / frontend / default / yourtheme /layout/にlocal.xmlを作成します

local.xmlは次のようになります

<?xml version="1.0" encoding="UTF-8"?>
<layout>
<STORE_mystore1>
    <reference name="header">
        <action method="unsetChild">
            <name>topLinks</name>
        </action>
    </reference>
</STORE_mystore1>

<STORE_mystore2>
    <reference name="header">
        <action method="unsetChild">
            <name>topLinks</name>
        </action>
    </reference>
</STORE_mystore2>   
</layout>

mystore1とmystore2をストアビューのコードに置き換えます[[管理]->[ストアの管理]->[ストアビュー名]->[コード]]

必ず、layout.xmlをUTF-8でエンコードしてください。

Upload the layout.xml in the app/design/frontend/default/yourtheme/layout/ folder.

Refresh the cache.

I would like to thank Daniel Sloof and Robert Popovic for their input.

于 2012-05-23T09:59:10.573 に答える