0
votes

When i try to override "app\code\core\Mage\Adminhtml\Block\Catalog\Category\Tab" this Block Mage_Adminhtml_Block_Catalog_Category_Tab_Product for add new column in category product listing tab

I have get this error

Fatal error: Call to a member function toHtml() on a non-object in D:\xampp\htdocs\magento_new\app\code\core\Mage\Adminhtml\Block\Catalog\Category\Tabs.php on line 153

My code

Module config xml app\code\local\Krp\Adminhtml\etc\config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Krp_Adminhtml>
            <version>0.1</version>
        </Krp_Adminhtml>
    </modules>

    <global>
        <blocks>
            <adminhtml>
                <rewrite>
                    <catalog_category_tab_product>Krp_Adminhtml_Block_Catalog_Category_Tab_Product</catalog_category_tab_product>
                </rewrite>
            </adminhtml>            
        </blocks>
    </global>    
</config>

app\etc\modules\Krp_Adminhtml.xml

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

Block file code app\code\local\Krp\Adminhtml\Block\Catalog\Category\Tab\Product.php

class Krp_Adminhtml_Block_Catalog_Category_Tab_Product extends Mage_Adminhtml_Block_Catalog_Category_Tab_Product{

   protected function _prepareCollection(){
    //=============== Code ==================//
   }

}
2
Any solutions about that?Mahmoud Ismail

2 Answers

0
votes

You forgot to configure the name of the block class.

config.xml

    <config>
    ...
        <global>
        ...
            <blocks>
                <krp_adminhtml>
                    <class>Krp_Adminhtml_Block</class>
                </krp_adminhtml>

                <adminhtml>
                    <rewrite>
                        <catalog_category_tab_product>Krp_Adminhtml_Block_Catalog_Category_Tab_Product</catalog_category_tab_product>
                    </rewrite>
                </adminhtml>
            </blocks>
        ...
        </global>
    ...
    </config>
0
votes

/app/code/local/Krp/Adminhtml/Block/Adminhtml/Catalog/Category/Tab/Product.php

File should be as following :

<?php
class Krp_Adminhtml_Block_Adminhtml_Catalog_Category_Tab_Product extends Mage_Adminhtml_Block_Catalog_Category_Tab_Product
{
}

Your confing.xml should be as following :

<?xml version="1.0"?>
<config>
  <modules>
    <Krp_Adminhtml>
      <version>1.0.0</version>
    </Krp_Adminhtml>
  </modules>
  <global>
    <helpers>
      <adminhtml>
        <class>Krp_Adminhtml_Helper</class>
      </adminhtml>
    </helpers>
    <blocks>
      <adminhtml>
        <class>Krp_Adminhtml_Block</class>
      </adminhtml>
            <adminhtml>
                <rewrite>
                    <catalog_category_tab_product>Krp_Adminhtml_Block_Adminhtml_Catalog_Category_Tab_Product</catalog_category_tab_product>
                </rewrite>
            </adminhtml>
    </blocks>
  </global>
</config> 

And finally Helper class if required /app/code/local/Krp/Adminhtml/Helper/Data.php

 <?php
    class Krp_Adminhtml_Helper_Data extends Mage_Core_Helper_Abstract
    {
    }