Скрыть блоки на странице корзины, если корзина пуста
В checkout.xml Я вижу
<action method="setCartTemplate"><value>checkout/cart.phtml</value></action>
<action method="setEmptyTemplate"><value>checkout/cart/noItems.phtml</value></action>
<action method="chooseTemplate"/>
Я пытаюсь, чтобы блок отображался только тогда, когда в корзине есть товары, но не тогда, когда она пуста. Как мне этого добиться?
1 answers
Обычно рекламируйте свой блок и обертывайте отображаемый 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>