类别视图中的getChildHtml

时间:2012-07-29 12:17:50

标签: php magento

我正在尝试将包含特色商品的自定义文件放在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>

featuredcat.phtml包含一个循环,用于查找已选择自定义属性(精选)的产品。这很可爱,已经在侧边栏了。

然后我添加:

echo $this->getChildHtml('featuredcat')

到我的catalog / category / view.phtml文件的底部。但没有渲染。我本可以发誓这是正确的。谁能解释我做错了什么?

干杯。

1 个答案:

答案 0 :(得分: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') ?>