簡體   English   中英

Magento:從視圖調用產品模型方法

[英]Magento: Call Product Model method from view

我創建了一個自定義模型來覆蓋核心的產品模型。

// app/code/local/Commerce121/Catalog/Model/Product.php

include('Mage/Catalog/Model/Product.php');

class Commerce121_Catalog_Model_Product extends Mage_Catalog_Model_Product
{

  public function getCompatibilityGrid()
  {
        return '<table width="100%"><tr><th>Year</th><th>Model</th><tr>Engine</tr></tr></table>';
  }

}

// app/code/local/Commerce121/Catalog/etc/config.xml
<?xml version="1.0"?>
<config>
    <modules>
       <Commerce121_catalog>
            <version>1.0</version>
       </Commerce121_catalog>
   </modules>
   <global>
      <models>
       <catalog>
         <rewrite>
           <product>Commerce121_Catalog_Model_Product</product>
         </rewrite>
        </catalog>
      </models>
   </global>
</config>

// app/etc/modules/Commerce121_Catalog.xml
<?xml version="1.0"?>
<config>
    <modules>
        <Commerce121_catalog>
            <active>true</active>
            <codepool>local</codepool>
        </Commerce121_catalog>
    </modules>
</config>

在管理員中,模塊被列為已啟用。

app/design/frontend/.../default/template/catalog/product/view/view.phtml

我補充說:

echo $_product->getCompatibilityGrid();

但是什么也沒顯示(這是視圖,因為echo 'bla'顯示了)。 $ _product是對控制器的引用嗎? 如果是這樣,我是否還需要擴展控制器?

未覆蓋Turs out產品模型。 config.xml中缺少聲明模塊的部分:

<commerce121_catalog>
  <class>Commerce121_Catalog_Model</class>
</commerce121_catalog>

應該是這樣的:

<?xml version="1.0"?>
<config>
  <modules>
      <Commerce121_Catalog>
          <version>0.1.0</version>
      </Commerce121_Catalog>
  </modules>
  <global>
      <models>
        <commerce121_catalog>
            <class>Commerce121_Catalog_Model</class>
        </commerce121_catalog>
        <catalog>
          <rewrite>
            <product>Commerce121_Catalog_Model_Product</product>
          </rewrite>
        </catalog>
      </models>
  </global>
</config>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM