2

中央の列に関連製品を配置する必要があるMagentoのインストールがあります。これは簡単な部分です。引っ越した

<block type="catalog/product_list_related" name="catalog.product.related" after="container1" template="catalog/product/list/related.phtml"/>

右側の参照ブロックから中央の参照ブロックの下部まで。

これで、関連商品を中央の列に配置することに成功しましたが、一番下に配置しました。

関連商品をdivの価格ブロックのすぐ上に配置する必要があります(クラス:product-shop)

XMLのAfter/beforeパラメーターを使用して配置しようとしましたが、これは機能しないようです。

ブロックコードをXMLの上位に配置すると、まったく表示されません。

4

1 に答える 1

10

ブロックの移動は、正しく行うのが非常に簡単です(つまり、ベストプラクティスを使用します)。ベストプラクティスには、可能な場合はコアレイアウトファイルをカスタマイズしないことや、元のブロックインスタンスを再インスタンス化するのではなく操作することが含まれますこれはすべて、エンド実装者が利用できるカスタムレイアウトファイルを使用して実現できます。

カスタムテーマのレイアウトフォルダー(app / design / frontend / [package] / [theme] /layout/local.xmlなど)にlocal.xmlファイルを作成し、そこに以下を追加します。

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <!--
        In Magento v1 a move is accomplished by unsetting in one place
        and inserting in another. This is possible using just layout xml
        when the "new" parent block is a "Mage_Core_Block_Text_List"
        instance. Otherwise a template needs editing.

        In Magento v2 there will be actual "move" functionality.
    -->
    <catalog_product_view>
        <reference name="right">
            <!-- remove the block name from a parent -->
            <action method="unsetChild">
                <block>catalog.product.related</block>
            </action>
        </reference>
        <reference name="content">
            <!-- add the block name to a parent -->
            <action method="insert">
                <block>catalog.product.related</block>
            </action>
            <!--
                Mage_Core_Block_Abstract::insert() accepts multiple arguments,
                but by default it will insert the added block at the beginning
                of the list of child blocks.
            -->
        </reference>
    </catalog_product_view>
</layout>

この時点で、変更を元のレイアウトxmlファイルに戻すことができます。

于 2013-01-01T13:46:32.433 に答える