[英]Magento 1.7 - Custom module, call function
我创建了一个自定义模块,希望在其中显示有关产品的一些信息。 在config.xml中我添加了
<blocks>
<mymodule>
<class>Namespace_MyModule_Block</class>
</mymodule>
</blocks>
块类扩展了Mage_Catalog_Block_Product_View 。 但我不能打电话
$this->getProduct()
根据模块(mymodule.phtml)在* .phtml文件中。 XML配置良好,所以我可以用
<?php echo $this->getChildHtml('mymodule'); ?>
但是$ product始终为null。 根据模块中的配置config.xml $ this-> getProduct()应该访问Mynamespace_MyModule_Block_View并调用该函数。 我尝试了一个仅返回字符串值的虚拟函数,但这也不起作用。
我希望有人能给我提示天气,其中有些配置丢失或错误。
编辑1:layout.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()
方法的核心模板类
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.