26 декабря 2018, 03:55 очень крутое обновление, да. назрела мысль, возможно народ поддержит — хорошо бы добавить параметр, например, «validator» — и писать в него сниппет (с поддержкой файловых), который мог бы проверять нужные поля на правильность заполнения и возращал бы именованные ошибки Новые дополнения и их версии / Tickets 1.9.3 52 +1
24 декабря 2018, 17:29 эм… а что я такого ненормального сказал? Новые дополнения и их версии / [tagElementPlugin] Работаем с файловыми элементами 8 +2
24 декабря 2018, 17:09 некоторое время назад я удалял компонент с нескольких сайтов за ненадобностью. удалял через менеджер пакетов. при этом файлы компонента и сам плагин оставались на месте, удалялась только регистрация компонента в системе. в результате консоль сыпала ошибками. приходилось файлы и плагин удалять вручную. такое было на порядка десяти сайтах Новые дополнения и их версии / [tagElementPlugin] Работаем с файловыми элементами 8 0
24 декабря 2018, 16:07 а вы научили компонент нормально удаляться? Новые дополнения и их версии / [tagElementPlugin] Работаем с файловыми элементами 8 -1
19 ноября 2018, 07:33 спасибо! Новые дополнения и их версии / [msPromoCode] 1.3.3 - Кастомизация скидки товара плагином 3 0
19 ноября 2018, 01:14 пишу плагин, чтобы разрешить скидку только на товары определенного бренда: <?php $sp = &$scriptProperties; switch ($modx->event->name) { case "mspcOnBeforeSetProductDiscount": if (strtolower($sp['coupon']['code']) == 'hotdays') { $product = $modx->getObject('msProduct', $sp['product']['id']); if ($product->get('vendor') != 9) { $sp['discount'] = 0; } } break; } $modx->event->returnedValues = $sp;на фронте, если товар другого бренда, скидка не срабатывает, но все равно приходит сообщение, что промокод применен. А как написать, что недействителен? Новые дополнения и их версии / [msPromoCode] 1.3.3 - Кастомизация скидки товара плагином 3 0
30 октября 2018, 01:38 // тут проверяешь всё что тебе нужно, чтобы уточнить что это точно тикет, в нужном разделе и т. д. // далее: // проверяешь, что документ новый и что юзер существует: if ($mode == 'new' and $user = $modx->getObject('modUserProfile', $resource->createdby)) { // подключаешь компонент: $pdoTools = $modx->getService('pdoTools'); $tickets = $modx->getService('tickets', 'Tickets', $modx->getOption( 'tickets.core_path', null, $modx->getOption('core_path').'components/tickets/').'model/tickets/', array('allowGuestEmails' => true) ); $tickets->initialize($modx->context->key, array('allowGuestEmails' => true)); // отправляешь письмо: $tickets->addQueue( $user->id, // кому отправлять; 'тема письма', $pdoTools->getChunk('имя_чанка', array(/* плейсхолдеры */)), // тело письма - можно распарсить свой чанк $user->email, // на всякий случай указываешь почту, хотя это и необязательно ); } Вопросы / TicketForm 4 0
30 октября 2018, 01:27 круто, пригодится. маленький нюанс: имеет смысл поменять местами столбцы «категория» и «название», так воспринимается логичнее Новые дополнения и их версии / [Help] Замена стандартной страницы помощи в админке 2 +1
27 октября 2018, 04:30 что-то не так на стороне js, потому что процессор migx ловит пустое значение. оно тупо не отправляется на сохранение. у меня две тв-шки рядом: «video» (listbox-multiply) и «gallery» (tvsuperselect) в migx сырые данные приходят в виде json, и этот кусок выглядит так: {"video":["1","2","3"],"gallery":""}что касается поля migx внутри migx (которое тоже json по идее), то оно экранируется и приходит вот так: {"somemigxfield":"[{\"field\":\"value\"}]"}и думается мне, что tvsuperselect тоже надо экранировать и строкой отправлять, только где и когда это отловить пока не разобрался Пошаговые инструкции / [tvSuperSelect] Кейс. Удобное указание опций для фильтрации в mFilter2 13 0
11 октября 2018, 21:29 приветствую! извиняюсь за офтоп, подскажи пожалуйста, как можно через плагины заставить msie работать с localizator? какое из событий юзать и как модифицировать данные. И пожалуй главное, как заставить его не ругаться на незнакомые названия полей Новые дополнения и их версии / CallMe 71 0
02 октября 2018, 15:36 Многим она не нужна и вряд-ли понадобится (MIGX DB например)серьезно? по-моему только ради MIGX-db это и остается наиболее must-have компонентом. и именно по MIGX-db наибольшее количество белых пятен и неисследованных возможностей Пошаговые инструкции / [MIGX] - Большой и страшный. Знакомство. 40 +4
15 сентября 2018, 19:28 не знаю, у меня работает Вопросы / В Сафари не хочет работать загрузчик файлов для TicketForm 6 0
15 сентября 2018, 18:18 ну и плюс @EVAL это 1. костыль и 2. небезопасно. а тут всё по феншую, через коннектор Новые дополнения и их версии / [tvSuperSelect] 1.2.2 Кастомайз по полной программе! 18 0
15 сентября 2018, 18:16 отличие в способе хранения данных, и это важное отличие на мой взгляд. в обычном тв строка с разделителями, а тут json-массив Новые дополнения и их версии / [tvSuperSelect] 1.2.2 Кастомайз по полной программе! 18 +1
06 августа 2018, 14:18 Все события магазина задокументированыхорошо бы еще документацию касательно работы с returnedValues Новые дополнения и их версии / [miniShop2] Версия 2.4.15 22 0
28 июля 2018, 15:33 короче, надо так: [[*tv:is=``:then=`Пусто`:else=`неПусто`]] Вопросы / Последовательные фильтры вывода 3 0
28 июля 2018, 15:31 в голове) последовательно: 1. выводим tv или слово «пусто» 2.… ииии… 'Пусто':notempty=`неПусто` слово «пусто» это уже строка, а не пустое место. поэтому в любом случае ты вторым условием проверяешь либо строку из tv, либо строку «пусто», и это никак не может быть пустым значением. Вопросы / Последовательные фильтры вывода 3 +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... Да, планируется. Даже чуть больше, чем просто бонусная система)
назрела мысль, возможно народ поддержит — хорошо бы добавить параметр, например, «validator» — и писать в него сниппет (с поддержкой файловых), который мог бы проверять нужные поля на правильность заполнения и возращал бы именованные ошибки
на фронте, если товар другого бренда, скидка не срабатывает, но все равно приходит сообщение, что промокод применен. А как написать, что недействителен?
маленький нюанс: имеет смысл поменять местами столбцы «категория» и «название», так воспринимается логичнее
у меня две тв-шки рядом: «video» (listbox-multiply) и «gallery» (tvsuperselect)
в migx сырые данные приходят в виде json, и этот кусок выглядит так:
что касается поля migx внутри migx (которое тоже json по идее), то оно экранируется и приходит вот так:
и думается мне, что tvsuperselect тоже надо экранировать и строкой отправлять, только где и когда это отловить пока не разобрался
не знаю, у меня работает
последовательно:
1. выводим tv или слово «пусто»
2.… ииии… 'Пусто':notempty=`неПусто`
слово «пусто» это уже строка, а не пустое место. поэтому в любом случае ты вторым условием проверяешь либо строку из tv, либо строку «пусто», и это никак не может быть пустым значением.