2

私はそれを理解することはできません...これは正しいhtmlを出力します:

file: /design/default/template/catalog/product/view.phtml

<?php 

    echo $this->getLayout()
        ->createBlock('core/template')
        ->setTemplate('catalog/product/view/teasers.phtml')
        ->toHtml(); 

?>

しかし、local.xml でブロックを宣言して getChildHtml() を使用すると、機能しません。

file: /design/default/layout/local.xml

<catalog_product_view translate="label">
    <reference name="content">
        <block  
            template="catalog/product/view/teasers.phtml"
            type="core/template"
            name="teasers" 
            as="teasers" 
        ></block>
    </reference>
</catalog_product_view>

file: /design/default/template/catalog/product/view.phtml

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

他に何か必要ですか??

4

2 に答える 2

1

この質問は、経験豊富な Magento 開発者にはあまり意味がありません。うまくいけば、それが意味をなさない理由を説明することで、問題の解決策を見つけるのに役立ちます。

まず、パスlocal.xmlが正しくありません

/design/default/layout/local.xml

ここでのMagentoの構造は

app/design/frontend/package-name/theme-name/layout/local.xml

パスにパッケージ名またはテーマ名がありません。そのため、ここでアドバイスを提供することは困難です — Magento はあなたのlocal.xmlファイルを認識していますか? (無効な XML にして、エラーを探してリロードすることは、これをテストする簡単な方法です)

次に、getChildHtmlブロックをレンダリングするために を使用していると言いましたが、同時にそれをcontentブロックに追加しています。contentブロックは、追加されたブロックtest/listを自動的にレンダリングするブロックです。contentブロックにはテンプレートがないため、phtmlを呼び出すことはできませんgetChildHtml。どこgetChildHtmlから電話していますか?

于 2013-06-21T19:33:39.500 に答える