繁体   English   中英

Magento 1.7-自定义模块,调用功能

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM