Удалить все блоки из шаблона 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, вы можете просто вывести его из контроллера. Если вы пытаетесь что-то еще, это должно помочь вам:

  1. создать blank.phtml в папке страницы вашего шаблона. Этот файл должен иметь как минимум эту строку:

    <?php echo $this->getChildHtml('content') ?>

  2. в вашем макете вставьте этот код:

<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, чтобы это действительно сработало.

Другие вопросы по тегам