1

事前に助けてくれてありがとう。

サイドボックスがマジェントに表示される順序を変更しようとしています。など: マイ カート、ニュースレター、アンケート、最近閲覧した製品。

現在、ニュースレター ボックスの表示を最後にしようとしています。

app/design/frontend/default/MY_TEMPLATE/layout/newsletter.xml 内

次のコードがあります。

    <default>

    <!-- Mage_Newsletter -->
    <reference name="left">
        <block type="newsletter/subscribe" name="newsletter" after="-" template="newsletter/subscribe.phtml" />
    </reference>

</default>

Yet even with after="-" as shown in the code, the newsletter is still showing up 1st.

I have flushed all caches, and have re-indexed every time I make a change to no avail.

EDIT:

Changing

<reference name="left">

TO

<reference name="right">

Moves it to the bottom of the list. However, the column is actually on the left. Any ideas why this works?

4

2 に答える 2

1

全て左記の記載順ですsortedChildren。カスタムのNewsletter.xmlを削除し、カスタム テーマにlocal.xmlファイルを作成して、以下を追加してみてください。

<?xml version="1.0"?>
<layout>
    <default>
        <action method="unsetChild" block="left">
            <block>left.newsletter</block>
        </action>
        <action method="insert" block="left">
            <block>left.newsletter</block>
            <sib />
            <after>1</after>
        </action>
    </default>
</layout>

これにより、ソートされた子ブロックのリストからブロック参照が削除され、最後に再度追加されます。参考文献 Mage_Core_Block_Abstract::insert()[リンク] .

でラップするのではなく、未使用だが有効なblock属性をタグに使用しました。効果は同じだと思います。<action /><reference />

于 2012-11-21T04:15:28.313 に答える
-1

左右のサイドバーに表示されているブロック名 (レイアウト xml ファイル内) を確認します。このようなものを見つけることができます

 <reference name="right">
            <block type="catalog/product_compare_sidebar" after="cart_sidebar" name="catalog.compare.sidebar" template="catalog/product/compare/sidebar.phtml"/>
 </reference>

上記のコードは、カート サイドバーを表示し、サイドバーを比較します。これがサイドバーの最後のブロックだと考えてください。このブロックの後にニュースレターを送信する場合は、指定する必要があります

<reference name="right">
        <block type="newsletter/subscribe" name="newsletter" after="catalog.compare.sidebar" template="newsletter/subscribe.phtml" />
    </reference>

after/before 要素タグでブロック名を指定する必要があります。左/右のサイドバーの最後のブロック名を見つけて、ニュースレター ブロックでその名前を使用します。

于 2012-11-21T06:18:32.017 に答える