0

我正在尝试在 Magento 商店的类别页面上的主要产品列表下方放置一个包含特色项目的自定义文件。

我编辑了 catalog.xml 以包括:

    <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
        <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
        ...
        </block>
        <block type="catalog/product" name="featuredcat" as="featuredcat" template="customphp/featured-cat.phtml"/>
    </block>

featurescat.phtml 包含一个循环,用于查找选择了自定义属性(特色)的产品。这很好用,并且已经在边栏中。

然后我补充说:

echo $this->getChildHtml('featuredcat')

在我的目录/类别/view.phtml 文件的底部。但没有渲染。我可以发誓这是正确的。谁能阐明我做错了什么?

干杯。

4

1 回答 1

3

您提供的布局 xml 将featuredcat块直接附加到product_list块中。因此,您必须getChildHtml从内部catalog/product/list.phtml而不是从内部调用catalog/category/view.phtml

因此,您可以getChildHtml如上所述将调用移动到正确的模板,也可以将featuredcat块向上移动一个级别:

<block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
    <block type="catalog/product" name="featuredcat" as="featuredcat" template="customphp/featured-cat.phtml"/>
    <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
    ...
    </block>
</block>

或者你可以保持你的布局 xml 并使用 getChildChildHtml :) - 但我确信改变你的布局是更好的选择 -

<?php echo $this->getChildChildHtml('product_list', 'featuredcat') ?>
于 2012-07-29T13:11:08.223 回答