2

このブロックの前後に出力する必要がある 2 つの新しいブロックを作成しました。

<block type="catalog/product_view" name="product.info.addtocart" as="addtocart" template="catalog/product/view/addtocart.phtml"/>

これを行うために、レイアウトを更新する新しいモジュールを作成しました。参照された XML ファイルには、次のように記載されています。

<catalog_product_view>
  <reference name="product.info">
    <block type="disablecartonlogout/output" name="disablecartonlogout.outputbefore" as="whatever" before="product.info.addtocart" template="disablecartonlogout/product-options-bottom-before.phtml" />
    <block type="disablecartonlogout/output" name="disablecartonlogout.outputafter" as="whatever" after="product.info.addtocart" template="disablecartonlogout/product-options-bottom-after.phtml" />
  </reference>
</catalog_product_view>

出力がありません。「コンテンツ」への参照を変更すると、ブロックは出力されますが、間違った位置にあります。

私が間違っていることを教えてもらえますか?

4

2 に答える 2

4

必要な場所で、product.infoブロック テンプレート ( である必要がありますcatalog/product/view.phtml) でブロックを明示的に呼び出す必要があります。

使用したいメソッドは、いくつかの特定のブロックに対してのみ機能します(通常、core/text_listまたはcore/templategetChildHtml()の呼び出しを行う、の場合はそうではありませんproduct.info

于 2012-07-17T14:21:31.240 に答える
0
<catalog_product_view>
    <reference name="product.info.addtocart">
        <block type="disablecartonlogout/output" name="disablecartonlogout.outputbefore" as="whatever1" before="-" template="disablecartonlogout/product-options-bottom-before.phtml" />
        <block type="disablecartonlogout/output" name="disablecartonlogout.outputafter" as="whatever2" after="-" template="disablecartonlogout/product-options-bottom-after.phtml" />
    </reference>
</catalog_product_view>

次に移動します。

app\design\frontend\default\themeName\template\catalog\product\view\addtocart.phtml

そして追加

$this->getChildHtml('whatever1', true, true);
$this->getChildHtml('whatever2', true, true);

役立つかもしれないので試してみてください。私はこのようなことを試しました

于 2013-08-22T15:04:32.927 に答える