Pull to refresh

Comments 6

mysql4 prefix лучше не используйте, ввиду того что это устаревшая конструкция.
таки да, думал они от него только в ресурс-моделях поизбавлялись, подправил, спасибо.
Коль речь зашла о правильности использования ивентов вместо рерайтов, то логичнее добавить колонку в грид через ивенты.
Для этого достаточно добавить 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 — Указываем блок, который будет отвечать за рендеринг. Данные поля являются необязятельными.
Все же я хотел описать все три возможных варианта добавления функционала наиболее простыми словами. Конечно же, для добавления поля в грид будет достаточно и лейаута, но лейауты заслуживают отдельной темы, которую я еще планирую написать в будущем. Плюс, с учетом того, как часто в админке встречается хардкод — не всегда выходит добавить что-то лейаутом через action method
Бывает конечно и хардкод, но в основном (то что я встречал) именование блоков остается неизменным. Поэтому к ним не составит труда обратиться через layout.
Буду ждать новые статьи. Всегда интересно пообщаться с единомышленниками
Only those users with full accounts are able to leave comments. Log in, please.