31
Переопределение блоков (block) в Magento
Magento, Программирование, Руководства
Метки (теги) : magento, php, модуль, расширение
Если Вам нужно создать модуль для magento как отдельную самостоятельную единицу, который бы не менял ядро самой magento, вам скорее всего потребуется переопределять контроллеры (controllers) или модели (models), или блоки (blocks).
Как переопределить модель толково описано здесь
Из того, что там написано мне было не совсем очевидно как переопределить blocks у модулей административной панели (Adminhtml). Какое-то время я рылся по сети в поисках ответа. Еще пол дня я доставал Дмитрия Федюка своими вопросами по этой теме. В итоге нашел решение данной проблеме (моей проблеме, так как думаю для многих программеров это была не проблема).
Например, мы хотим на странице списков, (товары, заказы и т.д.) th заголовкам таблицы добавить новый класс “myclass”.
Это можно сделать в этом файле app\code\core\Mage\Adminhtml\Block\Widget\Grid\Column.php
public function getHeaderCssClass(){$class = $this->getData(‘header_css_class’);if (($this->getSortable()===false) || ($this->getGrid()->getSortable()===false)) {$class .= ‘ no-link’;}if ($this->isLast()) {$class .= ‘ last’;}return $class.’ myclass’;}
class Mycompany_MyModule_Block_Adminhtml_Widget_Grid_Column extends Mage_Adminhtml_Block_Widget_Grid_Column{public function getHeaderCssClass(){$class = parent::getHeaderCssClass();$class = $class . ‘ myclass’;return $class;}}
<blocks><adminhtml><rewrite><widget_grid_column>Mycompany_MyModule_Block_Adminhtml_Widget_Grid_Column</widget_grid_column></rewrite></adminhtml></blocks>
в строке
app\code\core\Mage\Adminhtml\Block\Widget\Grid\Column.php
и
app/code/local/Mycompany/MyModule/Block/Adminhtml/Widget/Grid/Column.php
слово Block в разных позициях, наверно опечатались
Нет не опечатался. Все верно. У меня именно так. Разве у вас по другому работает???