dseigqk7443 2017-03-27 14:45
浏览 68
已采纳

too long

I would like to extend core product class and add some functionality.

I made file app\code\local\ast\Catalog\etc\config.xml

<?xml version="1.0"?>
<config>
    <modules>
         <ast_Catalog>
            <version>0.0.1</version>
        </ast_Catalog>
    </modules>
    <global>
        <models>
            <catalog>
                <rewrite>
                    <product>ast_Catalog_Model_Product</product>
                </rewrite>
            </catalog>
        </models>
   </global>
</config>

second file app\etc\modules\ast_Catalog.xml

<?xml version="1.0"?>
<config>
     <modules>
        <ast_Catalog>
            <active>true</active>
            <codePool>local</codePool>
        </ast_Catalog>
     </modules>
</config>

and file Product.php in app\code\local\ast\Catalog\Model\

class ast_Catalog_Model_Product extends Mage_Catalog_Model_Product 
{

    public function makeBlue() 
    {
        echo 'makeBlue';
    }   

}

Now when I try to use my function makeBlue() in app\design\frontend\ast\default\template\catalog\product\view.phtml file

<div class="product-shop">
 <?php 
               ....
               echo 'hello';
               echo $this->makeBlue(); 
               ....       
 ?>    

I have got error below:

Invalid method Mage_Catalog_Block_Product_View::makeBlue(Array
(
)
)

#0 I:\WWW\Sklep_www4\app\design\frontend\ast\default\template\catalog\product\view.phtml(45): Varien_Object->__call('makeBlue', Array)
.......

What is wrong ?

  • 写回答

2条回答 默认 最新

  • dongpiao1983 2017-03-31 10:32
    关注

    The problem was I extend class ast_Catalog_Model_Product not Mage_Catalog_Block_Product_View. After change extend class to Mage_Catalog_Block_Product_View everything works fine.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?