Всего 124 201 комментарий

Артур Шевченко
03 февраля 2025, 12:45
+1
Возможность, конечно же, есть. Это бесплатный компонент с открытым исходным кодом. На сайте modstore есть ссылка на репозиторий GitHub откуда можно скачать zip-архив и загрузить его в админку.
Сергей
03 февраля 2025, 11:31
0
Артур, ответьте пожалуйста на вопрос) Заранее спасибо.
Наумов Алексей
03 февраля 2025, 09:23
0
Привет! Да, надо проверить… У объявленной с помощью var переменной область видимости может быть выше, может в этом дело… ну и остальной код скорректирую, добавлю проверок.
Антон А.
03 февраля 2025, 08:22
0
У себя я переписал так:
let inputGroup = form.querySelector('[name="' + error.field + '"]');
if (inputGroup) {
            inputGroup.closest(easyComm.selectors.inputParent).classList.add(easyComm.classes.hasError);
}
Антон А.
03 февраля 2025, 06:59
0
По поводу сообщения для капчи. Тоже если вернуть старый код на jQuery, то работает.
Старый код:
jQuery(form).find('[name="' + error.field + '"]').closest('.form-group').addClass('has-error');
Новый код, не работает для Капчи:
var inputGroup = form.querySelector('[name="' + error.field + '"]').closest(easyComm.selectors.inputParent);
if (inputGroup) {
    inputGroup.classList.add(easyComm.classes.hasError);
}
Павел Гвоздь
02 февраля 2025, 17:25
0
Есть скрины шагов, но нет итогового скрина, что получилось. С демо картинкой веселее.
Николай Савин
02 февраля 2025, 13:37
0
Очень хороший комплексный материал. Низкий поклон. Давненько такого не было.
Антон
02 февраля 2025, 12:49
0
Привязываю к tickets для загрузки и последующего редактирования того, что загрузил через фронт.
Вызов стандартный
[[!ufForm?
   &tplForm=`uf.form`
   &list=`image`
   &anonym=`0`
   &dropzone=`{"maxFilesize":3,"maxFiles":3,"acceptedFiles":".jpg, .jpeg, .gif, .png","template":"edit"}`
]]
в тиккетс в &allowedFields добавил ufForm, вместо загрузки файлов выводит текст:

Drop files here or click to upload
Select files
Виктор
01 февраля 2025, 21:57
+1
Понял, спасибо! В целом, манипуляции с css проблему решают. Сама капча работает корректно
Павел Гвоздь
01 февраля 2025, 11:15
0
Если мы донастроим момент с подарочными сертификатами из нового функционала дополнения, то получается клиенту добавятся бонусы на счет, но вариант списания все равно 20% останется же, для нашего случая верно же понимаю?
Верно!

Т.е. нельзя разделить это как то на 2 вида, обычные бонусы и подарочные бонусы, которыми например можно оплатить все 100%?
Нельзя.
Антон А.
01 февраля 2025, 10:02
0
У меня на Modx 3.0.6 (версия easyComm 3.6.0-pl) не хотела появляться GoogleRecaptcha на форме. А точнее скрипт Рекапчи не видел callback-функцию easyCommReCaptchaCallback. Но если вручную запустить эту функцию в консоли браузера после загрузки страницы, то все запускается и капча появляется.
Решил проблему так:
В новом ec.js easyCommReCaptchaCallback объявляется с помощью let. Хотя в предыдущих версиях скрипта было var easyCommReCaptchaCallback. Поменял let на var и все стало работать как надо.

И еще в стандартной форме, если не пройти Рекапчу (не поставить галочку) и попробовать отправить форму, то никакой ошибки не выходит, а в консоли ошибка
Uncaught TypeError: Cannot read properties of null (reading 'closest')
    at xmlHttpRequest.onreadystatechange (ec.js:74:104)
Может надо выдавать предупреждение, что капча не пройдена.
Андрей Шевяков
01 февраля 2025, 08:46
0
Добрый день!
Бонус-коды – это подарочные купоны/карты или сертификаты, которые единоразово вводятся юзером на фронтенде в личном кабинете, после чего сумма бонус-кода попадает на бонусный счёт юзера.

Например, вы можете вознаграждать своих покупателей N-ной суммой в виде купона, который они будут вводить в своём личном кабинете и использовать полученную сумму бонусов на будущую покупку. Также можно замотивировать пользователей поскорее потратить этот активированный бонус, указав в системной настройке msb2_lifetime_for_bonus его (coupon_accrual) время жизни, например в течение 1 недели.
Вопрос:

Это отличный вариант, чтобы делать вариант Подарочных сертификатов на сайте. Но не понятен момент, можно ли для них выставлять параметр «Максимальный процент корзины»?

Пример:

У нас на сайте бонусами можно оплатить 20% от стоимости заказа.


Если мы донастроим момент с подарочными сертификатами из нового функционала дополнения, то получается клиенту добавятся бонусы на счет, но вариант списания все равно 20% останется же, для нашего случая верно же понимаю?

Т.е. нельзя разделить это как то на 2 вида, обычные бонусы и подарочные бонусы, которыми например можно оплатить все 100%?
Aleksandr Huz
01 февраля 2025, 01:10
+1
Про мультиязычность напишу отдельную статью. Вкратце: есть комбо-поле, которое переключает контекст для блоков, которые можно переводить вручную или с помощью сторонних сервисов (DeepL, ChatGPT). Также есть отдельная вкладка для перевода текущего ресурса — по принципу Локализатора. Конфликтов не должно быть. Дополнительные поля я не использую с этим компонентом — ни разу не пригодились. Вся информация находится в блоках, поэтому отдельной вкладки для лексиконов, как в Локализаторе, тоже нет.
Олег Захаров
01 февраля 2025, 00:48
+1
да, я Notepad++ с темной темой юзаю для правок кодов разных файлов (приходится работать с исходниками на других движках), очень нравится. Думал сам тоже переделать но времени все никак не мог найти. Еще раз спасибо за тяжкий труд на благо сообщества!
Денис Усманов
01 февраля 2025, 00:45
+1
Благодарю за тёплые слова)
Как привыкаешь, глаза отдыхают, потом даже не захочется возвращаться к стандартной теме — проверено на себе и нескольких коллегах)
Денис Усманов
01 февраля 2025, 00:43
+1
Круто! Увидел твой компонент у клиента на днях, мне очень понравился! Рад, что есть такой мощный инструмент, очень полезный практически на всех магазинах!
Олег Захаров
01 февраля 2025, 00:42
+1
Спасибо за ваш труд!
А то уже надоела стандартная тема.
Правда немного привыкать придется.
Олег Захаров
01 февраля 2025, 00:41
0
Жаба душит. Но посмотрел состав и подумал что оно стоит того.
Как реализовано управление мультиязычности немного не понял.
Я использую Localizator и немного дорабатываю под себя. Не будет конфликтовать? Как реализовано управление переводами элементов и доп. полей (все таки они могут использоваться, и надо бы их Вашим компонентом тоже поддерживать?), а также как реализовано управление лексиконами и словарями?