Добрый день.
Мне нужно вывести поле "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
В общем дальше никак не догадаюсь, что мне делать. Поэтому был очень рад любому совету.