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>

からの出力に Magento からのコードを含めないようにしたいのですが、cart.phtmlMagento に記述されたコードのみを含める必要があります。

今実行すると、他のすべてのタグを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

app/design/adminhtml/default/default/layout/api2.xmlで Magento が行う方法は次のとおりです。

<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 に答える