从Magento模板中删除所有块

时间:2013-08-26 11:01:41

标签: php magento-layout-xml 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中的默认布局渲染?

2 个答案:

答案 0 :(得分:3)

如果要创建 json响应,可以从控制器回显它。 如果你正在尝试别的东西,这应该可以帮到你:

  1. 在模板的页面文件夹中创建blank.phtml。此文件至少应包含以下行:

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

  2. 布局中的
  3. 将此代码放入:

  4. <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>

答案 1 :(得分:0)

这是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 才能真正起作用。