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

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

С нами с 24 мая 2019; Место в рейтинге пользователей: #4
Отправить деньги
Артур Шевченко
23 июня 2024, 21:37
+1
Лучше так
document.addEventListener('si:send:error', (e) => {
        const { action, target, result, headers, Sending } = e.detail;
        
        if (target.tagName == 'INPUT') {
            result.data.errors = {};
        }
    })
Артур Шевченко
23 июня 2024, 21:35
0
Я загрузил обновлённую версию в modstore
Артур Шевченко
23 июня 2024, 21:24
+1
Если я меняю поле Имя, то всплывает ошибка, но класс не добавляется.
Это ошибка. В Версии 2.0.3 она будет исправлена.
Артур Шевченко
23 июня 2024, 21:03
0
Например, я не увидел все параметры которые можно указать форме data-si-*
Посмотри тут

Как указать форме, что бы она очищалась при отправке
Добавить в пресет параметр
'clearFieldsOnSuccess' => 1,
Можно ли, без сильных изменений указать, что бы стандартные уведомления были справа
Сделай копию стандартного JS конфига, поменяй параметр position на нужный, укажи путь к новому файлу конфига в системной настройке si_js_config_path.

как сделать что бы у поля так же появился класс si-error
Класс устанавливается полю с тем именем, которое ты указал в пресете в параметре validate, само поле ищется внутри data-si-form, если в форме несколько полей с одинаковым именем, то класс будет добавлен только первому.

как просто добавить класс, но не выводить сообщение об успешной или об неуспешной валидации
Сообщений об успешной валидации не существует, а чтобы отменить показ сообщений об ошибках, нужно написать обработчик на событие si:send:error в котором установить всем ошибкам в качестве сообщения пустую строку.

было бы круто понять как сделать, что бы не нужно было заранее знать название данного поля
Не очень понимаю чего ты хочешь, но есть возможность валидации массивов

Допустим я сделал в поле data-si-event=«change» data-si-preset=«russian». А так же в системной настройке sendIt указал емейл по умолчанию. Как сделать, что бы при выполнении данного события не было отправки письма?
SendIt не отправляет письма, это делает хук email компонента FormIt. В формировании списка параметров всегда используется пресет по умолчанию, в котором присутствует данный хук.
Артур Шевченко
23 июня 2024, 18:38
0
Примерно так
switch ($modx->event->name) {
    case 'OnDocFormSave':
        if ($resource->get('class_key') === 'msProduct' && $price = $resource->get('price')) {
            $q = $modx->newQuery('modTemplateVarResource');
            $q->where(['tmplvarid' => 1, 'contentid' => 1]); // получаем значения TV типа migx где записаны диапазоны
            $q->select('value');
            $ranges = $modx->getIterator('modTemplateVarResource', $q);
            if ($q->prepare() && $q->stmt->execute()) {
                $ranges = json_decode($q->stmt->fetch(PDO::FETCH_COLUMN), true);
                foreach ($ranges as $range) {
                    if ($range['min'] <= $price && $range['max'] > $price) { // проверяем входит ли цена в диапазон
                        $resource->set('range', "{$range['min']}-{$range['max']}"); // если да, то записываем диапазон в свойство товара созданное при помощи msAddFields
                        break;
                    }
                }
            }
        }
        break;
}
Артур Шевченко
19 июня 2024, 18:29
0
Я вижу только одну причину, JS от AjaxForm не подключены
Артур Шевченко
19 июня 2024, 18:28
0
Это код для компонента AjaxFormItLogin
Артур Шевченко
19 июня 2024, 12:45
0
Поиск нет смысла пилить. Если делать в рамках Modx, то ничего лучше phpMorphy не появилось, а эту библиотеку использует mSearch2, вряд ли я сделаю лучше. А если использовать ElasticSearch, то это уже решение не для всех, а только для тех у кого VPS.
Артур Шевченко
18 июня 2024, 20:19
0
Хочу ещё раз подчеркнуть, это компромиссное решение, при разработке в приоритет ставилась скорость работы и простота интеграции, в ущерб некоторой функциональности.
Артур Шевченко
18 июня 2024, 14:55
+1
Умеет, даже по ТВ типа migx с уровнем вложенности не более одного, т.е. migx в migx не потянет. Ну и плагинами вообще можно всё что угодно навертеть.
Артур Шевченко
18 июня 2024, 14:53
0
А отсутствие miniShop не останавливает?
Артур Шевченко
18 июня 2024, 14:03
+1
Может быть на досуге, когда будет настроение, добавлю на део-сайте страницу с mFilter2.
Артур Шевченко
18 июня 2024, 14:01
0
Чисто теоретически может быть так, что уже поддерживает, так как вроде бы там нет ничего такого, что не поддерживалось бы в Modx 3. Но я не проверял и до конца лета вряд ли буду этим заниматься.
Артур Шевченко
10 июня 2024, 21:59
0
У автора нет времени заниматься поддержкой компонента, поэтому он снят с продажи. Если найдётся тот, кто возьмёт поддержку на себя, компонент вернётся.
Артур Шевченко
10 июня 2024, 09:09
0
Можно написать скрипт, который выберет данные из БД и отправит их, только надо задержку ставить, а то хостер может забанить за спам.
Артур Шевченко
03 июня 2024, 22:08
0
Просто скорректировать запрос не получится, надо свой фильтр писать.
Артур Шевченко
02 июня 2024, 15:37
0
СДЭК был взломан, он в принципе пока не работает.
Артур Шевченко
01 июня 2024, 23:12
0
Обратитесь к специалисту через раздел Работа.