Comments 6

простите, не смог удержаться
+9
mysql4 prefix лучше не используйте, ввиду того что это устаревшая конструкция.
0
Коль речь зашла о правильности использования ивентов вместо рерайтов, то логичнее добавить колонку в грид через ивенты.
Для этого достаточно добавить observer на core_block_abstract_prepare_layout_after или core_block_abstract_prepare_layout_before и в методе обсервера проверять тип блока.
Есть второй способ — это добавление колонок через layout
Для этого достаточно добавить в файл layout:
filter_index используется при поиске если поле фильтруемо. Здесь необходимо указать значение. которое будет подставляться в sql запрос. Например, main_table. is_exported
renderer — Указываем блок, который будет отвечать за рендеринг. Данные поля являются необязятельными.
Для этого достаточно добавить observer на core_block_abstract_prepare_layout_after или core_block_abstract_prepare_layout_before и в методе обсервера проверять тип блока.
if ($_block->getType() == 'adminhtml/sales_order_grid') {}
Есть второй способ — это добавление колонок через layout
Для этого достаточно добавить в файл layout:
<adminhtml_sales_order_grid>
<reference name="sales_order.grid">
<action method="addColumnAfter" translate="header">
<columnId>COLUMN_ID</columnId>
<arguments>
<header>HEADER</header>
<index>COLUMN_INDEX</index>
<filter_index>FILTER_INDEX</filter_index>
<type>TYPE</type>
<renderer>CUSTOM_RENDERER_BLOCK</renderer>
</arguments>
<after>AFTER_COLUMN_ID</after>
</action>
</reference>
</adminhtml_sales_order_grid>
filter_index используется при поиске если поле фильтруемо. Здесь необходимо указать значение. которое будет подставляться в sql запрос. Например, main_table. is_exported
renderer — Указываем блок, который будет отвечать за рендеринг. Данные поля являются необязятельными.
0
Все же я хотел описать все три возможных варианта добавления функционала наиболее простыми словами. Конечно же, для добавления поля в грид будет достаточно и лейаута, но лейауты заслуживают отдельной темы, которую я еще планирую написать в будущем. Плюс, с учетом того, как часто в админке встречается хардкод — не всегда выходит добавить что-то лейаутом через action method
0
Only those users with full accounts are able to leave comments. Log in, please.
Magento шаг за шагом