我想从我的自定义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中的默认布局渲染?
答案 0 :(得分:3)
如果要创建 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>
答案 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 才能真正起作用。