21 минута назад
Привет Иван — ну с почином, получается. Если что-то будет не работать (сам понимаешь мало тестировали) можешь писать мне в телеграм напрямую.
Замети...
mSearch для MODX3 и MS3 - уже в modstore.pro 3
6 часов назад
Ни где не могу найти информацию по настройке импорта изображений «Обновлять данные существующих изображений» — не понять, на что влияет данная настрой...
msImportExport 2.0 127
Вчера в 13:08
нет переводов primeVue. То есть если использовать фильтры DataTable или Calendar, то они будут англискими.Вот про это я не подумал. Думаю учтем в буду...
VueTools - универсальный компонент оформления админки в MODX 3 4
08 января 2026, 12:31
Большие сомнения у меня в этом)
resComments — многоуровневые комментарии с пагинацией для ресурсов MODX3 3
07 января 2026, 15:36
вот этот сниппет
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService...
Проблемы с отправкой писем статус заказа из minishop2 5
06 января 2026, 20:15
Хотел проверить еще раз, теперь все работает. Спасибо.
MiniShop3 1.0.0-alpha.4 — Большое обновление админки 24
05 января 2026, 14:53
Тоже не понял зачем эти сложности, всегда этот скрипт юзал.
Почему в новых версиях MODX не работает сброс пароля через MD5 и как восстановить доступ в manager 4
30 декабря 2025, 22:52
Почему-то прочитал это голосом комментатора из Дома 2… Только про Minishop 3!) Спасибо всем за вклад в развитие и, достаточно неплохие итоги года)
Итоги 2025 года на MODX.pro 3
— в этом вызове замените строчки
на:
Важно: сейчас у вас реализован функционал, при котором перехватываются значения сортировки из адресной строки. При вышеописанных изменениях он пропадет. Если его необходимо сохранить — нужно будет дописать небольшой сниппет для переключения между желаемой сортировкой и вбитой в адресной строке.
— пример актуален для сниппетов семейства pdoTools.
(параметры могут отличаться, если выводящий сниппет другой — укажите, чем вы вызываете раздел.)
Если вам нужно сортировать его по клику, то необходимо или дописать перехват сниппетом get-значений для сортировки или воспользоваться готовым решением, как mFilter2.
У вас есть как минимум 2 способа реализовать данную задачу — через систему плагинов или через расширение класса корзины.
В обоих случаях принцип работы примерно такой:
— при требуемых событиях (добавление товара, изменение количества, удаление товара и тд) для каждого конкретного товара или циклом во всей корзине получаем параметры товаров
— из полученных данных выбираем id и запрашиваем для каждого товара кастомное тв-поле со списком скидок
— если тв-поле присутствует, то в отсортированным по необходимому для скидки количеству массиве, через цикл сверяем значение с количеством товара в корзине. Так получаем соответствующую скидку по количеству для каждого товара.
— умножаем скидку на исходную цену товара
— возвращаем значение
Вы ведь убрали все лишние строчки &element=`GetUserAction` и тому подобные?
К слову, если вам нужно вернуть список ресурсов конкретного пользователя (не авторизованного), то вам нужно обращаться на страницу с гет-параметром (пример: site.ru/articles?author=1), перехватывать этот параметр и по аналогии заносить в where.
А вообще, если сниппет ничего не возвращает, то всегда можно воспользоваться параметром &showLog=`1` чтобы наглядно увидеть, на каком этапе появляется ошибка.
Приложите, пожалуйста, код вызова AjaxForm.
— в инпутах отсутствует возможность переноса строки.
По поводу переносов строк (php.net): «В отличие от синтаксиса двойных кавычек и heredoc, переменные и управляющие последовательности для специальных символов, заключенных в одинарные кавычки, не обрабатываются.»
Вы можете написать простенький сниппет проверки, который заодно и решит проблему с постоянной обработкой AjaxForm вне зависимости от значения price:
[[! название_сниппета? &check=`[[*price]]` &acceptValue=`0` &tpl=`название_чанка_который_нужно_отобразить`]]
Код:
Вы можете для проверки поместить все содержимое then в отдельный чанк и вызвать модификатор в виде :then=`[[$название_чанка]]`?
Сейчас у вас выполняется следующая логика:
— обрабатывается содержимое внутри then=``
— проверяется значение [[*price]] (если у вас minishop2, то такое значение в принципе не находит, т.к. там требуется иной плейсхолдер)
— значение [[*price]] не равно 0 (так как его в принципе нет).
— вам ничего не возвращает, так как нет условия :else=``
Вот пример того, когда вам всегда вернется какой-либо результат:
В версиях 2.2 и 2.3 введен новый функционал характеристик товара (раньше реализовывалось ручным расширением таблиц) и торговые предложения.
По личному опыту, пожалуй, сейчас надежнее ставить версию 2.1.12-pl (находится в репозитории modx), так как она стабильна и поддерживает все выпущенные к ней дополнения.
Единственный минус подобного решения — из-за специфики работы преобразования плейсхолдеров модкса, в вашем примере вначале выполняется содержимое внутри then (в любом случае, вне зависимости от значения price), а уже после — проверка условия. Что негативно сказывается на производительности, в случае, если количество товаров больше 0 и форма не нужна в принципе.
Дальше, исходя из полученных данных — простой калькулятор на js.
Чуть сложнее будет только если для каждой фотографии можно будет выбирать отдельный формат, но это опять же вполне реализуется в рамках яваскрипта.