質問

Checkout.xmlではわかります

<action method="setCartTemplate"><value>checkout/cart.phtml</value></action>
<action method="setEmptyTemplate"><value>checkout/cart/noItems.phtml</value></action>
<action method="chooseTemplate"/>

カートにアイテムがあるが、空の場合ではなく、ブロックが表示されようとしています。これを達成するにはどうすればよいですか?

役に立ちましたか?

解決

通常、ブロックを広告し、ディスプレイHTMLを条件付きでラップし、カートアイテムをチェックします。

これは機能します、

Mage::helper('checkout/cart')->getCart()->getItemsCount();

コアブロックを書き換えたり、独自のブロックを作成したりする必要はありません。

PHTMLブロックは、テンプレートでさらにカートロジックが必要な場合を除き、コアテンプレートブロックにすぎない可能性があります。コアカートの抽象ブロックを独自のブロックから拡張する必要があります(独自のブロックから拡張する必要があります(Mage_Checkout_Block_Cart_Abstract)これにより、すべてのコアカートメソッドにアクセスできます。

次に、ブロックをXMLに追加するだけで、アイテムがある場合にのみコードを出力します。

意図したディスプレイが何であるかに応じて、これらのコアブロックリストの子としてブロックを追加できます。ベースを変更する必要はありません cart.phtml ブロックをエコーするためのファイル

<block type="core/text_list" name="checkout.cart.top_methods" as="top_methods" translate="label">
                    [ add your block here ]
                </block>

<block type="core/text_list" name="checkout.cart.methods" as="methods" translate="label">
                   [ add your block here ]
                </block>
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top