Pregunta

En checkout.xml veo

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

Estoy tratando de tener un bloque sólo aparecen cuando hay artículos en el carro, pero no cuando su vacío. ¿Cómo puedo lograr esto?

¿Fue útil?

Solución

Ad su bloque con normalidad, y envolver su html exhibición en un condicional, la comprobación de la cesta elementos.

Este trabajo,

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

sin tener que volver a escribir los bloques centrales, o incluso crear su propio bloque.

Su bloque phtml podría entonces ser sólo bloque central plantilla, a menos que necesite más lógica de la compra en su plantilla, a continuación, debe ampliar el núcleo carrito bloque de abstracción de su propio bloque (Mage_Checkout_Block_Cart_Abstract), que le dará acceso a toda la cesta básica métodos.

A continuación, sólo tiene que añadir su bloque para el xml, y será única salida es de código si hay elementos.

En función de lo que su pantalla está destinado, puede agregar su bloque como un niño de estas listas de bloqueo central, entonces no es necesario cambiar el archivo de base de cart.phtml hacer eco a cabo su bloque

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top