Вывод изображения в Заказы>Покупки (админка Minishop2)

Всех приветствую.

Первый раз с Minishop. Столкнулся с вопросом: как выводить изображение в окне заказов, а именно в табе «Покупки».

Попробовал в лоб добавить к системной настройке ms2_order_product_fields: product_thumb
Теперь в таблице выводится путь к превью изображения. А как сделать чтобы там было именно изображение?
Алексей
11 декабря 2018, 17:46
modx.pro
3
1 492
+1

Комментарии: 3

Денис
11 декабря 2018, 19:19
5
+5
Судя по исходникам просто так не выйдет.
Создайте плагин и повесьте на событие OnManagerPageBeforeRender
После вставьте следующий код:
<?php
switch ($modx->event->name) {
	case 'OnManagerPageBeforeRender':
        if($controller->config['controller'] == "mgr/orders") {
            if ($miniShop2 = $modx->getService('miniShop2')) {
                $modx->controller->addHtml('<style>.x-grid3-col-order-product-image img {width:40px;display:block;}</style>');
                $modx->controller->addHtml('
                    <script>
                        Ext.onReady(function(){
                            var originalGetColumns = miniShop2.grid.OrderProducts.prototype.getColumns;
                            miniShop2.config["default_thumb"] = miniShop2.config["defaultThumb"];
                            Ext.override(miniShop2.grid.OrderProducts,{
                                getColumns: function () {
                                	var imgFields = [ "product_thumb", "product_image" ];
                                    var columns = originalGetColumns.apply(this);
                                    for(var i=0; i<columns.length; i++){
                                    	if(imgFields.indexOf(columns[i]["dataIndex"]) != -1){
                                    		columns[i]["renderer"] = miniShop2.utils.renderImage;
                                    		columns[i]["id"] = "order-product-image";
                                    	}
                                    }
                                    return columns;
                                }
                            });
                        });
                    </script>
                ');
            }
        }
    break;
}

Если в системной настройке ms2_order_product_fields указан product_thumb или product_image, то вы увидите уже не ссылку, а картинку.
    Павел Гвоздь
    12 декабря 2018, 07:37
    +2
    Вообще, по хорошему, такое в коробку miniShop2 надо отправлять PR-ом. ;)
    Алексей
    11 декабря 2018, 23:16
    0
    Да, работает. Спасибо! В голове крутилось: плагин, плагин..., но думал, что может есть встроенная возможность.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3