Артем · 31 января 2020, 15:04 2 +1 {foreach $rows as $row} {$row@index + 1} {/foreach}или {foreach $rows as $row index=$index} {$index + 1} {/foreach} Вопросы / Как задать счетчик итераций в цикле foreach в Fenom? 5
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
Олег Щавелев · 26 ноября 2019, 13:10 1 0 1 Вариант PDOTools Fenom {$_modx->regClientScript(«assets/js/ms2.js»)} вызываем в шаблоне или в чанке. Скрипт у меня рендирится кстати самым последнем. Вопросы / Как добавить JS скрипт ниже скрипта MS2 default.js 4
Антон Тарасов · 26 ноября 2019, 12:44 1 +1 Можно удалить по шаблону… или просто все товары без разбора. Например, вот — по шаблону: $template = 1; $resources = $modx->getCollection('modResource', array('template'=>$template)); foreach($resources as $resource) { $resource->remove(); }Это если подчистую удалять. Вопросы / Как можно быстро удалить несколько десятков тысяч товаров? 9
Баха Волков · 19 февраля 2019, 15:13 1 +1 Можно и массивом передавать: 'where' => [ 'parent:=' => 0, 'AND:hidemenu:=' => 0, 'OR:isfolder:=' => 1, 'AND:hidemenu:=' => 0 ], Вопросы / Как на Fenom написать &where с условием? 7
Андрей · 09 января 2019, 10:07 2 +1 Передавайте значение этого плейсхолдера в вызов mFilter2. У mfilter есть параметр prepareSnippet, в нем указывается сниппет который будет обрабатывать результаты выборки. код сниппета $item = array_merge( (array) $row, array( 'customData' => $modx->getOption('customData', $scriptProperties, '') ) ); return json_encode($item); Теперь в вызове mfilter добавьте данные из плейсхолдера 'prepareSnippet' => 'название_сниппета', 'customData' => [ 'example' => $_modx->getPlaceholder('example') ] Теперь в чанке c товаром будет доступен плейсхолдер {$customData.example} Вопросы / Собственная маршрутизация, плейсхолдеры и mFilter2. Нужна помощь. 2
Владимир · 05 декабря 2018, 14:31 1 0 Решил проблему, может кому пригодится. Все это работает под extends modObjectGetListProcessor, в методе prepareQueryBeforeCount $c->leftJoin('ordersClientSender', 'Client'); $c->leftJoin('ordersSender', 'Sender', '`Client`.`sender` = `Sender`.`id`'); $c->select($this->modx->getSelectColumns($this->classKey, $this->classKey));; $c->select(array( 'senders' => 'GROUP_CONCAT(Sender.name)' )); $c->groupby($this->classKey.'.name'); Вопросы / Помощь с SQL запросом 1
Александр · 20 сентября 2018, 09:00 1 0 Для решения помог плагин: <?php switch ($modx->event->name) { case 'msOnChangeInCart': $tmp = $cart->get(); $tmp[$key]['count'] = 1; $cart->set($tmp); break; }Вопрос, есть ли отличия в реализации: с помощью расширения обработчика корзины и плагина? Вопросы / Добавление только одного товара в корзину minishop2 4
Вячеслав Варов · 28 января 2018, 19:20 3 0 Вот рабочий пример <div id="pdopage" class="catalog-line-core"> {$_modx->runSnippet('!mSearch2', [ 'returnIds' => 1, 'limit' => 0, 'toPlaceholder' => 'result' ])} {if $_modx->getPlaceholder('result')==''} По данному запросу ничего не найдено, попробуйте исправить запрос. {else} [[!pdoPage? &element=`msProducts` &parents=`0` &resources=`[[+result]]` &limit=`9` ]] </div> [[!+page.nav]] {/if} Вопросы / mSearch2 - подходящих результатов не найдено 1
Александр · 24 января 2018, 17:38 1 0 Разобрался. Забыл, что надо вызывать в mFilter не ms, а msoption. Так работает: [[!mFilter2? &parents=`1` &filters=`msoption|capacity` ]] Новые дополнения и их версии / msFieldsManager свои свойства в товаре miniShop2 176
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. С ходу сложно ответить, ранее не было таких случаев.
я вот так делаю (немного вырвано из контекста, но принцип ясен):
{$_modx->regClientScript(«assets/js/ms2.js»)} вызываем в шаблоне или в чанке. Скрипт у меня рендирится кстати самым последнем.
Это если подчистую удалять.
У mfilter есть параметр prepareSnippet, в нем указывается сниппет который будет обрабатывать результаты выборки.
код сниппета
Теперь в вызове mfilter добавьте данные из плейсхолдера
Теперь в чанке c товаром будет доступен плейсхолдер {$customData.example}
Вопрос, есть ли отличия в реализации: с помощью расширения обработчика корзины и плагина?
Так работает: