Удалить все блоки из шаблона Magento
Я хочу удалить все блоки по умолчанию из файла шаблона / макета моего пользовательского модуля Magento. В настоящее время я использовал отдельные удаляет как
<module_cart_index>
<remove name="head" />
<remove name="header" />
<remove name="footer" />
<remove name="right"/>
<remove name="left"/>
<remove name="cart_sidebar" />
<remove name="checkout.cart" />
<remove name="sale.reorder.sidebar" />
<reference name="content">
<block type="checkout/cart" name="cp.cart" template="module/cart.phtml" />
</reference>
</module_cart_index>
Я хочу, чтобы на выходе cart.phtml
не должен содержать какой-либо код из Magento, но он должен содержать только код, написанный в нем.
Прямо сейчас, когда я бегу http://127.0.0.1/mag/index.php/module/cart/
выводит полный HTML
страница с <html>, <head>, <body>
и все остальные теги. Как я могу удалить эти теги? Я хочу получить только контент, написанный на module/cart.phtml
,
Есть ли способ удалить / предотвратить рендеринг макета по умолчанию в Magento?
1 ответ
Если вы хотите создать ответ json, вы можете просто вывести его из контроллера. Если вы пытаетесь что-то еще, это должно помочь вам:
создать
blank.phtml
в папке страницы вашего шаблона. Этот файл должен иметь как минимум эту строку:<?php echo $this->getChildHtml('content') ?>
в вашем макете вставьте этот код:
<module_cart_index>
<reference name="root">
<action method="setTemplate"><template>page/blank.phtml</template></action>
</reference>
<reference name="content">
<block type="checkout/cart" name="cp.cart" template="module/cart.phtml" />
</reference>
</module_cart_index>
Вот как это делает Magento в app / design / adminhtml / default / default / layout / api2.xml:
<adminhtml_api2_role_grid>
<remove name="root"/>
<block type="api2/adminhtml_roles_grid" name="api2_roles.grid" output="toHtml"/>
</adminhtml_api2_role_grid>
Итак, чтобы заставить это работать с вашим настраиваемым блоком, сделайте что-то вроде этого:
<some_layout_handle>
<remove name="root"/>
<block type="customextension/block_name" template="some-template.phtml" output="toHtml"/>
</some_layout_handle>
Это работает для меня, единственный вывод контента - это то, что генерирует мой шаблон / блок. Я предполагаю, что блоку, возможно, придется расширить Mage_Core_Block_Template, чтобы это действительно сработало.