0

商品ビューブロック自体の中にあるストアの商品ビューに表示したいカスタムブロック(タブ付き商品情報)があります。view.phtmlでブロックを正しく呼び出し、次のコードを使用してブロックをXMLに追加しました。

<block type="catalog/product_view_tabs" name="product.info.tabs" as="info_tabs" template="catalog/product/view/tabs.phtml" >

ブロックは、catalog.xmlに配置するとレンダリングされますが、local.xmlに次の形式で配置すると常にレンダリングされます。

<catalog_product_view translate="label">
 <label>Catalog Product View (Any)</label>
   <reference name="content">
    <block type="catalog/product_view_tabs" name="product.info.tabs" as="info_tabs" template="catalog/product/view/tabs.phtml" >
   </reference>
</catalog_product_view>

それは動作しません。local.xmlのコードスニペットにbeforeまたはafterタグ(例:after = "product.info.media")を追加すると、レンダリングされますが、製品ビューブロック全体の前または後に常にレンダリングされます。catalog.xmlでは、他のブロックの間に配置しただけで、正常に機能しました。

製品ビューセクション全体のコンテンツをcatalog.xmlからlocal.xmlにコピーすると機能しますが、すべてのコンテンツ(画像、説明など)が2回表示されます。

local.xmlを介してこれを行う方法はありますか?多分setchildを通して?

4

2 に答える 2

1

local.xmlについて話すとき、/ app / etc / local.xmlについて話しますか?このファイルは構成ファイルであり、レイアウト更新ファイルではありません。そのように機能することを意図したものではありません。

別のレイアウトファイル(app / design / <package> / <theme> /layout/local.xml内)について話している場合は、このレイアウト更新ファイルを宣言したモジュールの依存関係を、元のコンテンツを宣言するモジュールに追加する必要がありますページの(あなたの場合はMage_Catalog)。

これは、属性のまたはのMagentoがすでに宣言されたブロックとのみ比較され、local.xmlが元のcatalog.xmlの前に解析されるためです。

StackOverflow_Localというモジュールがあり、そのconfig.xml(app / code / local / StackOverflow / Local / etc / config.xml)に次の宣言があると仮定します。

<config>
  <frontend>
    <layout>
      <updates>
        <stackoverflow_local>
          <file>local.xml</file>
        </stackoverflow_local>
      </updates>
    </layout>
  </frontend>
</config>  

次に、app / etc / modules / StackOverflow_Local.xmlにモジュールの宣言があり、次のようなものが見つかります。

<?xml version="1.0"?>
<config>
  <modules>
    <StackOverflow_Local>
      <active>true</active>
      <codePool>local</codePool>
    </StackOverflow_Local>
  </modules>
</config>

依存関係を追加するには(Mage_Catalogが無効/削除されている場合、モジュールは機能しないはずです)、アクティベーションXMLを次のように変換します。

<?xml version="1.0"?>
<config>
  <modules>
    <StackOverflow_Local>
      <active>true</active>
      <codePool>local</codePool>
      <depends>
        <Mage_Catalog />
      </depends>
    </StackOverflow_Local>
  </modules>
</config>
于 2012-05-03T16:38:05.910 に答える
0

ブロックをコンテンツブロックに追加しています。reference 名前の値をproduct.infoに更新します。テンプレートにある限り、info_tabsのエイリアスに基づきます

echo $this->getChildHtml('info_tabs')

あなたは行ってもいいはずです。

于 2012-05-03T16:32:14.523 に答える