Артем · 31 января 2020, 15:04 {foreach $rows as $row} {$row@index + 1} {/foreach}или {foreach $rows as $row index=$index} {$index + 1} {/foreach} Вопросы / Как задать счетчик итераций в цикле foreach в Fenom? 5 +1 2
mngatoff · 02 декабря 2019, 02:23 достаточно триггернуть событие 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 +7 6
Олег Щавелев · 26 ноября 2019, 13:10 1 Вариант PDOTools Fenom {$_modx->regClientScript(«assets/js/ms2.js»)} вызываем в шаблоне или в чанке. Скрипт у меня рендирится кстати самым последнем. Вопросы / Как добавить JS скрипт ниже скрипта MS2 default.js 4 0 1
Антон Тарасов · 26 ноября 2019, 12:44 Можно удалить по шаблону… или просто все товары без разбора. Например, вот — по шаблону: $template = 1; $resources = $modx->getCollection('modResource', array('template'=>$template)); foreach($resources as $resource) { $resource->remove(); }Это если подчистую удалять. Вопросы / Как можно быстро удалить несколько десятков тысяч товаров? 9 +1 1
Баха Волков · 19 февраля 2019, 15:13 Можно и массивом передавать: 'where' => [ 'parent:=' => 0, 'AND:hidemenu:=' => 0, 'OR:isfolder:=' => 1, 'AND:hidemenu:=' => 0 ], Вопросы / Как на Fenom написать &where с условием? 7 +1 1
Андрей · 09 января 2019, 10:07 Передавайте значение этого плейсхолдера в вызов 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 +1 2
Владимир · 05 декабря 2018, 14:31 Решил проблему, может кому пригодится. Все это работает под 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 0 1
Александр · 20 сентября 2018, 09:00 Для решения помог плагин: <?php switch ($modx->event->name) { case 'msOnChangeInCart': $tmp = $cart->get(); $tmp[$key]['count'] = 1; $cart->set($tmp); break; }Вопрос, есть ли отличия в реализации: с помощью расширения обработчика корзины и плагина? Вопросы / Добавление только одного товара в корзину minishop2 4 0 1
Вячеслав Варов · 28 января 2018, 19:20 Вот рабочий пример <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 0 3
Александр · 24 января 2018, 17:38 Разобрался. Забыл, что надо вызывать в mFilter не ms, а msoption. Так работает: [[!mFilter2? &parents=`1` &filters=`msoption|capacity` ]] Новые дополнения и их версии / msFieldsManager свои свойства в товаре miniShop2 176 0 1
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
я вот так делаю (немного вырвано из контекста, но принцип ясен):
{$_modx->regClientScript(«assets/js/ms2.js»)} вызываем в шаблоне или в чанке. Скрипт у меня рендирится кстати самым последнем.
Это если подчистую удалять.
У mfilter есть параметр prepareSnippet, в нем указывается сниппет который будет обрабатывать результаты выборки.
код сниппета
Теперь в вызове mfilter добавьте данные из плейсхолдера
Теперь в чанке c товаром будет доступен плейсхолдер {$customData.example}
Вопрос, есть ли отличия в реализации: с помощью расширения обработчика корзины и плагина?
Так работает: