カスタム phtml ファイルを使用して単純なブロック (コア/テンプレートのみ) を作成し、他の phtml ファイルを変更せずに拡張機能を作成します。
しかし、元のテンプレートを変更して何かを追加する以外に、それを表示させることはできませ$this->getChildHtml('myblock')
ん。
他のphtmlを変更せずにブロックを追加したい. これを行う方法、メソッドなしでブロックを自動的に表示するgetChildHtml
方法は?
ブロックが次のタイプの場合、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
次のように、ルート ブロックの下にブロックを定義できます。
<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/をご覧ください。
これが誰かを助けることを願っています。乾杯。
私はこれを行う方法を理解し、
独自のレイアウトとテンプレートを使用して、独自のモジュールを作成します。
レイアウトで、親ブロックが呼び出されるセクションを更新して、最初に新しいブロックを挿入し、次にテンプレートで getChildHtml() を介して親を呼び出すので、クライアントのファイルに触れる必要はありません。
皆さん、よろしくお願いします
すべての子ノードを表示できるのは、特定のファイルだけです。そうは言っても、大多数にはその機能が組み込まれていません。
この機能を有効にするには、添付されているブロックをレンダリングする行を phtml ファイルに追加します。
<?php echo $this->getChildHtml() ?>