Добрый день.
Мне нужно вывести поле "special_price" в админке, в разделе "Категории > Товары категории":

Я добавил это поле в корневом файле app\code\core\Mage\Adminhtml\Block\Catalog\Category\Tab\Product.php :
$this->addColumn('special_price', array(
'header' => Mage::helper('catalog')->__('Special_price'),
'type' => 'currency',
'width' => '30px',
'currency_code' => (string) Mage::getStoreConfig(Mage_Directory_Model_Currency::XML_PATH_CURRENCY_BASE),
'index' => 'special_price'
));
И в принципе все работает, но не хочется трогать файлы ядра. Решил попробовать сделать модулек (в php не блестаю и модули никогда не делал).
================
Создал структуру:
app/etc/modules/Fermery_GridCategorySort.xml
app/code/local/Fermery/GridCategorySort:
> Model
> Helper
> etc
• В Model поместил файл Product.php (в который вставил содержимое корневого Product.php, только с добавленным полем "special_price"). Ну и добавил в начале строку перенаправления:
class Fermery_GridCategorySort_Model_Product extends Mage_Adminhtml_Block_Widget_Grid
• В Helper поместил Data.php, который оставил пустым, только в нем такая строка:
<?php
class Fermery_GridCategorySort_Helper_Data extends Mage_Core_Helper_Abstract{}
• В etc поместил config.xml с таким содержимым:
<config>
<modules>
<Fermery_GridCategorySort>
<version>0.1.0</version>
</Fermery_GridCategorySort>
</modules>
<global>
<helpers>
<gridcategorysort>
<class>Fermery_GridCategorySort_Helper</class>
</gridcategorysort>
</helpers>
<models>
<gridcategorysort>
<class>Fermery_GridCategorySort_Model</class>
</gridcategorysort>
<catalog>
<rewrite>
<product>Fermery_GridCategorySort_Model_Product</product>
</rewrite>
</catalog>
</models>
</global>
</config>
В итоге, модуль выводит ошибку:
Fatal error: Call to a member function addAttributeToSelect() on a non-object in ...\includes\src\Mage_Adminhtml_Block_Catalog_Category_Tab_Product.php
В общем дальше никак не догадаюсь, что мне делать. Поэтому был очень рад любому совету.