Павел Романов · 15 февраля 2024, 12:09 1 0 Что-то типа этого (бэкап базы только сделайте): <?php $tvid = 123; // ID TV-шки $vendor = 'Производитель' // Название производителя $template = 6; // ID шаблона товара $sql = "SELECT * FROM {$modx->getTableName('modTemplateVarResource')} WHERE tmplvarid = {$tvid}"; $q = $modx->prepare($sql); $q->execute(); $tvs = $q->fetchAll(PDO::FETCH_ASSOC); foreach($tvs as $tv) { if($tv['value'] != $vendor) continue; // если название не то, пропускаем if(!$resource = $modx->getObject('modResource', array('id' => $tv['contentid'], 'template' => $template)) continue; // если нет ресурса с таким ID и шаблоном, пропускаем $resource->remove(); // удаляем ресурс } Вопросы / Как удалить товары с определенным значением tv 4
Алексей Соин · 10 января 2022, 11:03 3 +10 На скорую руку накидал свой вариант m2f.zencod.ru/ Если у кого то есть предложения по более лучшему варианту, велком с пуллреквестом))) github.com/alexsoin/modx2fenom Готовые решения / Было бы неплохо сделать конвертер MODX в Fenom. Я начал, но вряд ли смогу доделать 40
Тодор · 20 декабря 2021, 18:49 4 +3 Убери 'sort'=>'resource|menuindex:asc',оставь только 'sortby' => 'CASE `Data`.`vendor` WHEN 7 THEN 1 ELSE 0 END ASC, msProduct.id', Вопросы / [mFilter2] Как выводить сначала товары с определённым свойством? 11
Олег Щавелев · 02 октября 2021, 10:36 1 +1 Создайте модификатор через плагин, и вызовите к примеру через метод getObject. Схему объектной модели можно посмотреть в компоненте ClientConfig в папке model. Вопросы / ClientConfig вывод названия поля. 2
Баха Волков · 06 июля 2021, 13:01 1 0 document.querySelector(любая_кнопка).addEventListener('click', e => { e.preventDefault() const data = new FormData(форма_фильтров) // и тут делайте с данными формы что душе угодно }) Готовые решения / AjaxForm + mFilter2 3
Станислав · 05 ноября 2020, 17:15 1 +2 Может кому то пригодится $(document).ready(function () { $('.comparision__reset-list').click(function() { $('.comparison-row .comparison-head').each(function (index, element) { $.ajaxSetup({ async: false }); $.post(document.location.href, { cmp_action: 'remove', list: $(this).data('list'), resource: $(element).attr('data-id') }, function(response) {}, 'json'); $.ajaxSetup({ async: true }); document.location.reload(); }); }); }); Вопросы / Как очистить список сравнения в Comparison? 6
Sergey · 21 февраля 2020, 17:56 1 +2 В общем все оказалось гораздо проще, есть метод. $modx->invokeEvent('msOnUpdateOrder',array( 'mode' => 'upd', 'id' => $order->get('id'), 'msOrder' => &$order, 'object' => &$order, )); Где $order — объект заказа. После вызова срабатывают плагины и все вроде норм. Вопросы / Как инициировать событие в минишопе ? (РЕШЕНО) 3
Алексей Шумаев · 29 января 2020, 12:18 1 +2 Расширить модель msOrder: https://modx.pro/solutions/7037. case 'OnMODXInit': # добавим расширение для msOrderAddress $modx->loadClass('msOrderAddress'); #добавить новое поле для адреса $modx->map['msOrderAddress']['fields']['new_field'] = 0; $modx->map['msOrderAddress']['fieldMeta']['new_field'] = array( 'dbtype' => 'varchar', 'phptype' => 'string', 'precision' => 100, 'null' => true, 'default' => null, ); # добавим расширение для msOrder $modx->loadClass('msOrder'); $modx->map['msOrder']['fields']['new_field'] = 0; $modx->map['msOrder']['fieldMeta']['new_field'] = [ 'dbtype' => 'int', 'precision' => 8, 'phptype' => 'integer', 'null' => true, 'default' => 0 ];Всё. Работаете со своими полями, как и с любыми другими. Готовые решения / Добавление своих полей в форму заказа [обновлено] 40
Артем · 27 января 2020, 15:15 2 +1 Теоретически можно указать домен в настройке session_cookie_domain, но также изменить session_name чтобы с текущими авторизациями не было конфликтов. Вопросы / Localizator и Office 2
mngatoff · 02 декабря 2019, 02:23 6 +7 достаточно триггернуть событие change на input:count, и запрос отправится стандартными средствами минишопа. я вот так делаю (немного вырвано из контекста, но принцип ясен): <script> $(document) .on('click touchend', countButton, function (e) { // где countButton - кнопки плюс и минус e.preventDefault(); var $container = $(this).closest('.ms2_form'), $count = $container.find('[name="count"]'), num = $count.val(); if (isNaN(num) === false) { // страховочка от, например, пустого поля num = parseInt(num, 10); switch ($(this).data('ms2-count')) { // соответственно, у кнопок должен быть атрибут data-ms2-count="plus или minus" case 'plus': num = num + 1; $count.val(num); break; case 'minus': if (num <= 1) return; num = num - 1; $count.val(num); break; } } else { return false; } $count.trigger('change'); // инициализируем отправку на сервер. }) .on('change keypress keyup', '.ms2_form [name="count"]', function() { if ($(this).val().match(/\D/)) { this.value = $(this).val().replace(/\D/g,''); // следим на лету, чтобы в поле были только цифры } if (parseInt($(this).val(), 10) < 1) { this.value = 1; // следим на лету, чтобы в поле было не меньше единицы } }); </script> Готовые решения / Плюс и минус в каунте корзины MS2 13
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в 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`; — добавлены ...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
FileMan - прикрепление файлов к ресурсам для MODX 3 Добрый день! Может что-то с правами доступа к файлам? Посмотрите логи в modx, в php. С ходу сложно ответить, ранее не было таких случаев.
Если у кого то есть предложения по более лучшему варианту, велком с пуллреквестом))) github.com/alexsoin/modx2fenom
оставь только
$modx->invokeEvent('msOnUpdateOrder',array(
'mode' => 'upd',
'id' => $order->get('id'),
'msOrder' => &$order,
'object' => &$order,
));
Где $order — объект заказа. После вызова срабатывают плагины и все вроде норм.
Всё. Работаете со своими полями, как и с любыми другими.
я вот так делаю (немного вырвано из контекста, но принцип ясен):