2012-10-24 16 views
7

Magentoで動作するカスタム参照ブロックを取得する際に問題が発生します。Magentoに新しい参照ブロックを追加する

ステップ1

page.xml

<block type="core/text_list" name="newreference" as="newreference"></block> 

ステップ2

に新しい「リファレンス」のブロックを作成:

これらは私が行った手順は、このブロックへの参照をページに表示したい場所に追加しました(上記1column.phtmlでフッター、2columns-left.phtml、2columns-right.phtml、3columns.phtml)

<?php $this->getChildHtml('newreference'); ?> 

ステップ3

追加のcatalog.xmlするための基準は、私が欲しいMagentoのを伝えますカテゴリページの 'newreference' リファレンスブロックの出力テンプレート部分(specialfooter.phtml)へ

<reference name="newreference"> 
    <block type="core/template" name="specialfooter" template="page/html/specialfooter.phtml"></block> 
</reference> 

ステップ4

page/html /ディレクトリに 'specialfooter.phtml'を作成してテストします。

何も起こりません。

私はリファレンスブロックがどのように動作するかの私の理解でフィット行った手順は、私が間違っている可能性があります。私はどんな文書、公式かそうでなければ、または被験者の上の任意の光を出す任意の以前のSOの質問を見つけるのに苦労しています。

私はMagento verを使用しています。 1.7.0.2。

ご協力いただければ幸いです。

+0

最も可能性の高い問題は、キャッシュされたxmlレイアウトにノードがロードされないようにキャッシュをクリアしていないことです。あなたの手順は正しいようです。 –

+0

残念ながら、私は恐ろしいMagentoキャッシュをよく認識しており、開発者を追い抜く能力があります。キャッシュのクリアと無効化の両方を試みました。 – john0514

答えて

7

あなたはechoを忘れていないのですか? :

<?php echo $this->getChildHtml('newreference'); ?> 
+0

これはずっと前のことですが、それが問題なのかどうか覚えていませんが、確かにエコーがありません - 恥ずかしいですね!これを受け入れるとマークし、遅れて申し訳ありません。 – john0514

0

私は同じ問題を抱えていましたが、これは私にとってはうまくいくようです。

このブロックレイアウト/ page.xmlに

<block type="page/html/new_newreference" name="newreference" as="newreference" template="page/html/new/newreference.phtml"/> 

は、ページなどで参照することができます。使用したテンプレート/ページフォルダ内1column.phtml

<?php echo $this->getChildHtml('newreference') ?> 

注命名「タイプ」と「テンプレート」パスと「名」との間の相関関係「として」getChildHtmlと()。製品ページに同じ原理を使用して

。レイアウト/ catalog.xmlのこのブロック

<block type="catalog/product_new" name="catalogreference" as="catalogreference" template="catalog/product/new/catalogreference.html"/> 

テンプレート/カタログ/製品/ビューで参照できます。PHTML使用して:あなたはブロックをウィジェットで使用したい場合は

<?php echo $this->getChildHtml('catalogreference'); ?> 

注これらの両方の例は

フォルダ固有のものです。このブロックを適切な参照ブロックに追加します。たとえば、関連するxmlファイルに "content"または "head"などを追加します。 page.xmlかのcatalog.xml

<block type="core/text_list" name="mywidgetblock" as="mywidgetblock"> 
     <label>My widget Block</label> 
    </block> 

NB:私は、 "タイプ" 宣言を理解していないが、それは動作しますか?

管理パネルのCMS/Widget/Widgetインスタンス新規または既存レイアウトの更新/ブロック参照は、ドロップダウンから「My widget Block」を検索します。

私はMagentoを使い始めています。これを試して試してみるのに多くの時間がかかりましたので、同じ状況で誰かを助けることを願っています。

関連する問題