Николай Савин · 20 февраля 2019, 14:03 В админке на каждой странице каждое поле отдельно жестко прописано, с указанием всех свойств (строка, текст, число). Это сделано в js массиве. Если ты что то новое добавляешь в карту объекта и базу данных (уточню на всякий случай что еще и таблицу базы данных нужно расширять ручками) — то так же ручками нужно добавлять новый дополнительный код в js массив полей. Обычно делают отдельный плагин, чтобы не вносить правки в исходный код MODX. Вот пример, прямо из рабочего проекта дернул switch ($modx->event->name){ case 'OnDocFormPrerender': $modx->controller->addHtml(" <script type='text/javascript'> Ext.ComponentMgr.onAvailable('modx-panel-resource', function(){ if(this.items[1].items[0].id == 'minishop2-product-tab'){ var leftCol = this.items[1].items[0].items[0].items[0].items[0].items[0].items[0].items[0]; }else{ if(this.items[1].items[0].id== 'modx-resource-settings'){ var leftCol = this.items[1].items[0].items[0].items[0]; } if(this.items[1].items[1].id == 'modx-resource-settings'){ var leftCol = this.items[1].items[1].items[0].items[0]; } } var kz_title = { anchor: '100%', description: '<b>[[*kz_title]]</br>Заголовок на казахском</b>', fieldLabel: 'Заголовок на казахском', id: 'modx-resource-kz-title', maxLength:255, msgTarget: 'under', name:'kz_title', xtype:'textfield' } leftCol.items.splice(2, 0, kz_title); var kz_description = { anchor: '100%', description: '<b>[[*kz_description]]</br>Описание на казахском</b>', fieldLabel: 'Описание на казахском', id: 'modx-resource-kz-description', maxLength:255, msgTarget: 'under', name:'kz_description', xtype:'textarea' } leftCol.items.splice(4, 0, kz_description); }); </script>"); break; } На выходе получилось вот так prntscr.com/mnm25m Готовые решения / Расширение любых таблиц MODX 60 +1 2
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
Если ты что то новое добавляешь в карту объекта и базу данных (уточню на всякий случай что еще и таблицу базы данных нужно расширять ручками) — то так же ручками нужно добавлять новый дополнительный код в js массив полей.
Обычно делают отдельный плагин, чтобы не вносить правки в исходный код MODX.
Вот пример, прямо из рабочего проекта дернул
switch ($modx->event->name){ case 'OnDocFormPrerender': $modx->controller->addHtml(" <script type='text/javascript'> Ext.ComponentMgr.onAvailable('modx-panel-resource', function(){ if(this.items[1].items[0].id == 'minishop2-product-tab'){ var leftCol = this.items[1].items[0].items[0].items[0].items[0].items[0].items[0].items[0]; }else{ if(this.items[1].items[0].id== 'modx-resource-settings'){ var leftCol = this.items[1].items[0].items[0].items[0]; } if(this.items[1].items[1].id == 'modx-resource-settings'){ var leftCol = this.items[1].items[1].items[0].items[0]; } } var kz_title = { anchor: '100%', description: '<b>[[*kz_title]]</br>Заголовок на казахском</b>', fieldLabel: 'Заголовок на казахском', id: 'modx-resource-kz-title', maxLength:255, msgTarget: 'under', name:'kz_title', xtype:'textfield' } leftCol.items.splice(2, 0, kz_title); var kz_description = { anchor: '100%', description: '<b>[[*kz_description]]</br>Описание на казахском</b>', fieldLabel: 'Описание на казахском', id: 'modx-resource-kz-description', maxLength:255, msgTarget: 'under', name:'kz_description', xtype:'textarea' } leftCol.items.splice(4, 0, kz_description); }); </script>"); break; }На выходе получилось вот так prntscr.com/mnm25m