Frage

In Checkout.xml sehe ich

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

Ich versuche, einen Block nur anzuzeigen, wenn es Gegenstände im Karren gibt, aber nicht, wenn es leer ist. Wie erledige ich das?

War es hilfreich?

Lösung

Stellen Sie Ihren Block normal und wickeln Sie Ihr Display HTML in eine bedingte und prüfen Sie nach Karrenartikeln.

Das wird funktionieren,

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

ohne Kernblöcke neu schreiben oder sogar einen eigenen Block erstellen müssen.

Ihr PHTML -Block könnte dann nur einen Kernvorlagenblock sein, es sei denn, Sie benötigen mehr CART -Logik in Ihrer Vorlage, dann sollten Sie den abstrakten Kernblock aus Ihrem eigenen Block aus erweitern (aus Ihrem eigenen Block (Mage_Checkout_Block_Cart_Abstract) Dadurch erhalten Sie Zugriff auf alle Kern -Wagenmethoden.

Fügen Sie dann Ihren Block einfach zum XML hinzu, und er gibt nur den Code aus, wenn es Elemente gibt.

Je nachdem, was Ihre beabsichtigte Anzeige ist, können Sie Ihren Block als Kind dieser Kernblocklisten hinzufügen, dann müssen Sie die Basis nicht ändern cart.phtml Datei, um Ihren Block auszuziehen

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top