2016-07-01 74 views
0

我有一個自定義模塊,其中顯示了產品詳細信息頁面中的表單。我需要檢索該塊內當前查看產品的產品ID。其他一切正在工作。Magento在產品詳細信息頁面的自定義模塊塊中獲取產品ID

其他答案建議嘗試:

$this->getProduct()->getId(); // or 
Mage::registry('current_product')->getId(); 

前者返回一個錯誤。在產品詳細信息模板中使用這一個工作正常。我明白這是因爲getProduct()不是該塊的方法。

後者總是返回null。

如果有人能幫助我,那會很棒。

在此先感謝。

編輯:自定義塊layout.xml

<layout version="0.1.0"> 
    <catalog_product_view> 
     <reference name="content"> 
      <reference name="product.info"> 
       <block 
        type="s148_interestnotification/form" 
        name="interest_notification" 
        before="-" 
        template="s148_interestnotification/index.phtml" 
       ></block> 
      </reference> 
     </reference> 
    </catalog_product_view> 
</layout> 

回答

0

使用:$ this-> getProduct()

+0

它已經擴展Mage_Core_Block_Template,當我交換與你所建議我得到的「致命錯誤:調用/ null /成員函數getMetaTitle()在/app/code/core/Mage/Catalog/Block/Product/View.php 「 – s148

+0

我不能猜到現在有什麼問題,我已經更新了班級名稱,可以請您嘗試 – tawfekov

+0

以上的新班級名稱現在我沒有收到錯誤,但$ this-> getProduct()返回null 。我已經用block layout.xml中的一些信息更新了我的問題,不知道它的相關性,但它會給你一個想法它放置的位置。 – s148

0

試試這個代碼:如果您的自定義塊擴展此類

Mage_Catalog_Block_Product_View

你就能夠輕鬆地

$collection = Mage::getSingleton('Mage_Reports_Block_Product_Viewed')->getItemsCollection(); 
+0

這似乎是返回的東西,我不能真正找出它是什麼。它似乎不是目前的產品。 – s148

相關問題