2

カスタム phtml ファイルを使用して単純なブロック (コア/テンプレートのみ) を作成し、他の phtml ファイルを変更せずに拡張機能を作成します。

しかし、元のテンプレートを変更して何かを追加する以外に、それを表示させることはできませ$this->getChildHtml('myblock')ん。

他のphtmlを変更せずにブロックを追加したい. これを行う方法、メソッドなしでブロックを自動的に表示するgetChildHtml方法は?

4

5 に答える 5

6

ブロックが次のタイプの場合、core/text_listまたはpage/html_wrapperすべての子ノードが表示されます。ブロックの toHtml() 関数を参照してくださいcore/text_list: http://svn.magentocommerce.com/source/branches/1.7/app/code/core/Mage/Core /ブロック/テキスト/List.php

于 2012-11-17T03:44:13.907 に答える
1

次のように、ルート ブロックの下にブロックを定義できます。

    <reference name="root">
        <block type="core/template" name="custom_block" output="toHtml" template="custom/custom_block.phtml"/>
    </reference>

トリックは、 output="toHtml" を使用してブロックを出力ブロックとして作成することです。出力ブロックのみが自動的にレンダリングされます。デフォルトでは、テーマ ルート ブロックはすべての子ブロックのレンダリングを担当する唯一の出力ブロックであるため、ブロックをルートの下に配置することが重要です。

詳細については、http: //magebase.com/magento-tutorials/digging-deeper-into-magentos-layout-xml-part-2/をご覧ください。

これが誰かを助けることを願っています。乾杯。

于 2013-07-11T14:29:44.770 に答える
1

私はこれを行う方法を理解し、

独自のレイアウトとテンプレートを使用して、独自のモジュールを作成します。

レイアウトで、親ブロックが呼び出されるセクションを更新して、最初に新しいブロックを挿入し、次にテンプレートで getChildHtml() を介して親を呼び出すので、クライアントのファイルに触れる必要はありません。

皆さん、よろしくお願いします

于 2012-11-26T13:51:08.300 に答える
-1

すべての子ノードを表示できるのは、特定のファイルだけです。そうは言っても、大多数にはその機能が組み込まれていません。

この機能を有効にするには、添付されているブロックをレンダリングする行を phtml ファイルに追加します。

<?php echo $this->getChildHtml() ?>
于 2012-11-16T21:48:10.923 に答える