2016-07-01 17 views
0

製品詳細ページ内にフォームを表示するカスタムモジュールがあります。このブロック内で現在表示されている製品の製品IDを取得する必要があります。他のすべてが働いています。Magentoは、製品詳細ページのカスタムモジュールブロックで製品IDを取得します

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

前者はエラーを返しました:

他の回答にはしようと提案しました。製品の詳細テンプレート内にあるこのテンプレートを使用するとうまくいきます。 getProduct()はブロックのメソッドではないからです。

後者は常にnullを返します。

誰かが私を助けることができれば、それは素晴らしいだろう。

ありがとうございます。

EDIT:カスタムブロック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

カスタムブロックは、このクラスに

Mage_Catalog_Block_Product_View

を拡張されている場合は、簡単にできるようになります使用する:$ this-> getProduct()

+0

既にMage_Core_Block_Templateが拡張されています。これは、あなたが私に "致命的なエラーが発生しました:あなたは、/app/code/core/Mage/Catalog/Block/Product/View.phpのnullのメンバ関数getMetaTitle() " – s148

+0

私は今問題が何かを推測できません。クラス名を更新しました。新しいクラス名を試してください。 – tawfekov

+0

エラーを受け取っていませんが、$ this-> getProduct()はnullを返します。 。ブロックレイアウトに関するいくつかの情報で質問を更新しましたが、そのrelaventがあるかどうかはわかりませんが、配置場所を知ることができます。 – s148

0

このコードを試してみてください。

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

これは何かを返すようだ、私はそれが本当に何かを見つけることができません。それは現在の製品ではないようです。 – s148

関連する問題