0

我创建了自己的模块来将相关产品添加到产品页面,这仅显示具有相同品牌/制造商的相关产品。

但是,我遇到了模板文件不会显示在页面上的问题。

这是我到目前为止所拥有的。

应用程序/代码/社区/CustomMod/RelatedBrand/etc/config.xml

<?xml version="1.0" encoding="UTF-8"?>
<config> 
    <modules>
        <CustomMod_RelatedBrand>
            <version>0.0.1</version>
        </CustomMod_RelatedBrand>
    </modules>
    <global>
        <blocks>
            <relatedbrand>
                <class>CustomMod_RelatedBrand_Block</class>
            </relatedbrand>
        </blocks>
    </global>
</config>

app/code/community/CustomMod/RelatedBrand/Block/Related.php

<?php
class CustomMod_RelatedBrand_Block_Related extends Mage_Catalog_Block_Product_View {    
    public function _toHtml() {
        echo "Block's _toHtml() method called!";
        parent::_toHtml();
    }
}
?>

然后在 catalog.xml 文件中,我在 catalog_product_view 区域添加了以下内容:

<block type="relatedbrand/related" name="related_brand" as="related_brand" template="relatedbrand/view.phtml"/>

然后在 design/frontend/MYPACKAGE/default/relatedbrand/view.phtml 我有:

<?php echo 'HELLO'; ?>

同样在 catalog/product/view.phtml 我添加了:

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

当我导航到产品页面时,我可以看到Block's _toHtml() method called!HELLO没有显示,我就是不知道为什么。有谁知道我可能错过了什么?

4

1 回答 1

2

这个

public function _toHtml() {
    echo "Block's _toHtml() method called!";
    parent::_toHtml();
}

应该:

public function _toHtml() {
    echo "Block's _toHtml() method called!";
    return parent::_toHtml();
}

_toHtml中的方法Mage_Core_Block_Template不回显内容。它只是返回它。在您的情况下,该方法返回null.

于 2013-10-10T08:31:53.950 回答