我创建了一个自定义模块,我想在其中显示有关产品的一些信息。在配置中.xml我添加了
<blocks>
<mymodule>
<class>Namespace_MyModule_Block</class>
</mymodule>
</blocks>
块类扩展Mage_Catalog_Block_Product_View。但我不能打电话
$this->getProduct()
在 *.phtml 文件中,根据模块 (mymodule.phtml)。xmls 配置得很好,所以我可以用
<?php echo $this->getChildHtml('mymodule'); ?>
但$product始终为空。根据模块中的配置config.xml $this->getProduct()应该访问Mynamespace_MyModule_Block_View并调用函数。我尝试使用一个仅返回字符串值的虚拟函数,但这也不起作用。
我希望有人能给我一个提示天气,有一些缺失或错误的配置。
编辑1:布局内容.xml
<?xml version="1.0"?>
<layout>
<catalog_product_view>
<reference name="product.info">
<block type="core/template" name="product_available_price" as="product_available_price"
template="productavailable/price.phtml"/>
<block type="core/template" name="product_available_info" as="product_available_info"
template="productavailable/info.phtml"/>
<block type="core/template" name="product_available_button" as="product_available_button"
template="productavailable/button.phtml"/>
</reference>
</catalog_product_view>
</layout>
在button.phtml中,我调用$this->getProduct(),该方法在Mynamespace_MyModule_Block_Button
在我的一个自定义模块中,我使用了如下
类Yournamespace_Brand_Block_View扩展Mage_Catalog_Block_Product_Abstract
而且我还使用了具有magento默认功能的所有产品功能,例如
分页和工具栏等
编辑
块类型从core/template
更改为productavailable/button
<block type="productavailable/button" name="product_available_button" as="product_available_button" template="productavailable/button.phtml"/>
希望这肯定会解决您的问题。
让我知道我是否可以为您提供更多帮助。
也许我不明白你的问题,但如果我是对的,你试图调用$this->getProduct()
这是你的自定义块Mynamespace_ProductAvailable_Block_Button
中的一个函数。如果我查看您的 xml,您的块未链接到 phtml:
<block type="core/template" name="product_available_button" as="product_available_button"
template="productavailable/button.phtml"/>
这应该是:
<block type="productavailable/button" name="product_available_button" as="product_available_button"
template="productavailable/button.phtml"/>
"type"属性将块链接到phtml,所以你错过了这个。现在您正在使用没有getProduct()
方法的核心模板类