Изменения типа поля в админской панели minishop2

Наверное эта заметка больше для себя самого, но в друг кому-то пригодится.

В рамках необходимости и в меру своих способностей кастомизирую панель с заказами минишопа под свои задачи.

Т.к. я не решился добавлять новые поля в закладку адрес, а просто переделать старые под себя, в какой-то момент перед мной встала задача изменить тип поля.

И мне нужно, что бы был не просто input, а стал input type='data'

Готового решения на просторах интернета я не нашел, пришлось ваять самому. Код получился не сложный и весьма короткий, но в силу того, что знаний у меня не много, для меня трудный =)

Создал плагин с любым названием и указал событие msOnManagerCustomCssJs
Содержание самого плагина:
<?php
switch ($modx->event->name) {
    case 'msOnManagerCustomCssJs':
        if ($page != 'orders') return;
        $modx->controller->addHtml("
        <script>
            Ext.ComponentMgr.onAvailable('minishop2-window-order-update', function(){
            	this.fields.items[2].items[0].items[0].items[0].xtype = 'datefield'; 
            	this.fields.items[2].items[0].items[0].items[0].format='Y-m-d';
});
        </script>");
        break;
}
this.fields.items[2].items[0].items[0].items[0] причем в этом месте первый items отвечает за вкладки, т.е. заказ, покупка, адрес и т.д.
второй за блок на самой закладке и так далее, аля вложенный список с элементами.

Кстати, если кто знает, как обратиться к элементу не вот так как у меня выше, а по идентификатору, то будет круто если поделитесь, т.к. на сколько я понимаю, если видоизменить закладку «адрес», то работать перестанет.

Дмитрий
07 августа 2025, 04:04
modx.pro
307
+2

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

Максим
11 августа 2025, 12:46
0
Кстати, если кто знает, как обратиться к элементу не вот так как у меня выше, а по идентификатору, то будет круто если поделитесь
Попробуй Ext.getCmp(id)
Или другие «геттеры» (на той же странице есть описание).
    Дмитрий
    15 августа 2025, 22:00
    0
    Спасибо, обязательно попробую
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2