Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #7
Отправить деньги
Артур Шевченко
05 сентября 2023, 13:57
+1
И ещё важно не забыть сделать метод генерации ключа товара в корзине публичным.
Артур Шевченко
04 сентября 2023, 23:10
0
Так а с чего бы он их начал парсить, если их нет или они в неподходящем для парсинга формате? У вас и ошибки не было, было предупреждение, что вы передаёте в функцию foreach не массив. Я показал как сделать проверку, чтобы предупреждение ушло, но цикл-то от этого не запустился. Надо разбираться что лежит в $node и исходя из этого корректировать код.
Артур Шевченко
04 сентября 2023, 21:24
0
if($key=='@attributes' && is_array($node)){
                foreach($node as $k => $v) {
                    $this->keys[1][] = '@attributes.'.$k;
                    $this->values[] = trim($v);
Артур Шевченко
04 сентября 2023, 21:13
0
В описании ошибки должна быть ссылка на файл и сроку в нём.
Артур Шевченко
04 сентября 2023, 16:58
0
Вообще мне кажется, что правильнее показывать уведомление об успешной отправке не в «тосте», а в самой форме.
Дизайнеры зачастую даже стили для отображения ошибок не рисуют, что уж говорить об успешной отправке, а у всплывашек из коробки приятный дизайн.

Кстати, компонент сессии использует?
Нет, не использует, но использует куки.

Есть ли стандартный шаблон для писем?
Есть три шаблона писем: для обычных форм и опросов, для подтверждения email, для сброса пароля.
Артур Шевченко
04 сентября 2023, 15:00
+1
А так
{if $_modx->resource.parent != 31 && $_modx->resource.id != 31}
  <div class="reward"><span>Артикул:</span> <span class="item">[[+article]]</span></div>
{/if}
Артур Шевченко
04 сентября 2023, 14:58
+1
Ставлю рубль против 1000, что у вас некорректная html-разметка.
Артур Шевченко
31 августа 2023, 21:40
+1
Доступ к контексту web должен быть не context, а load, list, view.
Артур Шевченко
31 августа 2023, 13:31
0
Админ загружает файл на сервер, потом в карточке пользователя указывает путь к загруженному файлу, в ЛК ты выводишь это значение в тэг
<a href="#" download></a>
Можно использовать дополнительные поля — extended, или установить ExtraFields и расширить модель пользователя.
Артур Шевченко
30 августа 2023, 13:58
0
Для этого нужна существенная доработка. Проблема в том, что скидки могут быть самыми разными: ограниченными по времени, по опциям. Особенно сложно с опциями, потому что учитываются те опции, которые переданы в корзину.
Артур Шевченко
30 августа 2023, 13:49
0
С msOptionsPrice2 компонент работает. Насчёт вывода товаров со скидкой и возможности фильтрации обещаю подумать.
Артур Шевченко
28 августа 2023, 20:12
+1
Тут есть вариант.
1. Каждый выбранный товар повестить в форму и по клику на кнопку в цикле триггерить submit
2. Написать свою отправку и триггерить на сервере метод ms2->cart->remove($key);
Артур Шевченко
27 августа 2023, 23:34
0
Если в документации про это не написано, можно попробовать в админке рядом с системными настройками по группе ms2Gallery поискать, или скопировать файлы на локалку и через ide по файлам поискать invokeEvent
Артур Шевченко
27 августа 2023, 10:49
1
+1
Можно, только нужно создать css класс, который будет управлять видимостью элементов, если такого класса еще нет, например «d-none», и блоку с формой и блоку с табами добавить условия. Для формы
[[!+modx.user.id:isloggedin:isnot=`1`:then=`d-none`]]
для табов
[[!+modx.user.id:isloggedin:is=`1`:then=`d-none`]]
Ну и в JS на событие «afl_complete» если response.success и ['regForm', 'authForm'].includes(form.id) переключать классы.
Артур Шевченко
26 августа 2023, 23:12
+1
Кстати, если вы не знали, есть группа в Телеграмм где помощь можно получить оперативнее
Артур Шевченко
26 августа 2023, 22:57
+2
Ну и по поводу фенома, он нормально работает со стандартным парсером, главное чтобы в шаблонах и чанках не было открывающих фигурных скобок не относящихся к феном, а если есть, то после них нужно просто поставить пробел.
Артур Шевченко
26 августа 2023, 22:54
+1
НУ я же давал ссылку на документацию по AjaxFormitLogin. Пакет Login использовать не нужно, весь его функционал уже есть в моём компоненте. В документации есть примеры вызовов для всех форм: регистрации, авторизации, восстановления пароля, редактирования данных, вам нужно только свой чанк формы подставить, ну и если мы говорим про регистрацию вот эти значения надо сохранить
&activation=`0`
 &autoLogin=`1`
Артур Шевченко
26 августа 2023, 21:53
0
Лучше разберитесь с феном, с ним удобнее.
Артур Шевченко
26 августа 2023, 21:07
1
+2
Если хотите разобраться то вот и вот история моих изысканий на эту тему. Всё это в итоге переросло в компонент AjaxFormitLogin, поддержку которого я прекратил, потому что решил полностью переписать JS и PHP, которые достались мне по наследству от AjaxForm. Однако весь функционал из AjaxFormitLogin перекочевал в новый компонент SendIt. Он полностью готов и отлажен. Сегодня я закончил написание документации. Думаю в понедельник или во вторник он станет доступен для скачивание через менеджер пакетов в modstore.
Артур Шевченко
26 августа 2023, 20:34
+2
Не передавалось значение submitVar поэтому скрипт не отрабатывал.