2013-09-24 36 views
0

我創建了一個自定義模塊,我想顯示有關產品的一些信息。 在config.xml中我增加Magento 1.7 - 自定義模塊,通話功能

<blocks> 
    <mymodule> 
     <class>Namespace_MyModule_Block</class> 
    </mymodule> 
</blocks> 

塊類擴展Mage_Catalog_Block_Product_View。 但根據模塊(mymodule.phtml)在*一個.phtml文件,我不能叫

$this->getProduct() 

。 的個XML配置好了,這樣我就可以調用一個.phtml與

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

但$產品始終爲空。根據模塊config.xml中的配置$ this-> getProduct()應該訪問Mynamespace_MyModule_Block_View並調用該函數。我嘗試了一個虛函數,它只是返回一個字符串值,但這也不起作用。

我希望有人能給我一個提示天氣有一些缺失或錯誤的配置。

EDIT 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我調用$這 - > getProduct(),並且該方法是在Mynamespace_MyModule_Block_Button

+0

也許你應該在你的佈局文件 – Marius

回答

3

在我的自定義模塊中的一個我已經使用類似下面

類Yournamespace_Brand_Block_View延伸Mage_Catalog_Block_Product_Abstract

,我也使用Magento的默認功能,所有的產品功能,如

分頁和工具欄等

編輯

塊類型更改從core/templateproductavailable/button

<block type="productavailable/button" name="product_available_button" as="product_available_button"      template="productavailable/button.phtml"/> 

希望這一定能解決你的問題。

讓我知道,如果我可以幫助你更多。

+0

的內容,我想這個問題補充核心模板類'類Mynamespace_ProductAvailable_Block_Button按鈕延伸Mage_Catalog_Block_Product_Abstract'但調用$這個 - > getProduct。 phtml仍然返回null。 – s4lfish

+0

嘗試撥打您的阻止文件,然後分配或返回到您的phtml文件 – liyakat

+0

你是什麼意思「分配或返回」?我嘗試了一些類似於默認view.phtml的功能,其中來自View.php的$ this-> getProduct()被調用。 – s4lfish

2

也許我不明白你的問題,但如果我是正確的,你試着打電話$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"/> 

「類型」屬性塊鏈接到PHTML,所以你錯過這個。現在,您正在使用的不具有getProduct()方法

+0

這正是答案。 Liyakat在評論中也提到了這個錯誤,但是對於更多的訪問者我接受這個答案,所以他們可以很快找到解決方案。 – s4lfish