1

我想从我的自定义 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 中的默认布局呈现?

4

2 回答 2

3

如果你想创建一个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>

于 2013-08-26T11:26:35.500 回答
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才能实际工作。

于 2020-06-17T12:58:01.270 回答