Magento 1.7 - 自定义模块,调用函数


Magento 1.7 - Custom module, call function

我创建了一个自定义模块,我想在其中显示有关产品的一些信息。在配置中.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()方法的核心模板类