Всего 123 786 комментариев

Наумов Алексей
11 января 2024, 14:13
0
ну смотри…
AjaxForm лишь прокидывает данные на FormIt.
Для того, чтобы это все работало — при рендере формы в сессию записываются $scriptPtoperties с которыми вызывался AjaxForm, эти данные записаны в сессии с ключем, который передается в af_action.

Получается, что в сессии эти данные есть по крайней мере она не пуста)

Потом FormIt вызывает хуки по очереди:
spam он там как-то email проверяет, у тебя в форме я каких-либо email не вижу, думаю что в итоге этот хук вообще ничего не делает у тебя;
— далее правильно вызывать recaptchav3, судя по логам он с ошибкой работает. Если посмотрим в код, то сообщение в логе «Failed to load Recaptcha class» означает и то, что хук вернет false. Все, FormIt должен прекратить обработку, до хука email, который отправит письмо, дело не дойдет.
Максим
11 января 2024, 13:24
0
Поменял местами, поставил хук капчи первым. С сайта форма отправляется (пишет все ок), на почту не приходят, в логах ошибка — httpdocs/core/cache/includes/elements/modsnippet/94.include.cache.php: 84) Failed to load Recaptcha class. Но скриптом через курл письма отлично приходят))) Капча не помогает защищаться от курла(
Наумов Алексей
11 января 2024, 13:18
0
хуки вызываются в порядке их указания:
&hooks=`spam,email,recaptchav3`
у вас значит проверка spam (не знаю, что там), далее отправляется письмо, далее проверка рекапчи… только смысл то её проверять, письмо уже отправлено.
Максим
11 января 2024, 13:17
0
Капча не появляется, так как скрипт не определяет, что визит подозрительный. Я если не вызываю сниппет на страницы, отправить курлом письмо все равно получается. Получается даже в том случае, когда на сайте не остается ни одной формы.
Максим
11 января 2024, 13:16
0
[[!AjaxForm?
&snippet=`FormIt`
&form=`tplCallbackForm`
&emailTpl=`tplCallbackMessage`
&hooks=`spam,email,recaptchav3`
&emailSubject=`Заказ обратного звонка с сайта [[++site_url]]`
&emailTo=`[[++ms2_email_manager]]`
&validate=`name:required,phone:required,email:blank`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено!`
]]
Наумов Алексей
11 января 2024, 13:15
0
Ну вот тут было бы логично добавить проверку isset или array_key_exists. это скорее косяк компонента.

github.com/GulomovCreative/FetchIt/blob/master/core/components/fetchit/model/fetchit.class.php#L79
Наумов Алексей
11 января 2024, 13:11
0
Покажите вызовы сниппета AjaxForm на вашем сайте. Отправить форму с сайта без заполнения капчи точно невозможно?
Konstantin
10 января 2024, 21:59
0
БОЛЬШОЕ СПАСИБО!
Павел Романов
10 января 2024, 12:36
1
+1
В колонке назовите это поле как-нибудь иначе:


В рендере используйте реальное имя.
Если pdoTools установлен и поле называется «project», то так:
Андрей Вечканов
10 января 2024, 09:09
0
Добрый день! скажите есть ли возможность вывести или забрать рейтинг из tv поля, мне нужно импортировать данные через ImportX
Konstantin
09 января 2024, 14:29
0
Здравствуйте! Подскажите как задать параметр выходного формата изображения? Пытаюсь добавить &f=jpeg но не реагирует
Артур Шевченко
08 января 2024, 17:18
0
Наверное надо сортировку в вывод добавить.
Сергей Карпович
08 января 2024, 16:39
0
Хз, но на другом сайте где стоит AjaxFormit + Formit там с disabled работает.
Артур Шевченко
08 января 2024, 16:32
0
Валидацией занимается FormIt, а мой компонент просто обёртка, такая же как AjaxForm, поэтому и там бы это не работало.
Сергей Карпович
08 января 2024, 16:23
0
Ну с AjaxFormit как раз с disabled работало, это позволяло в select показать подсказку, которую нельзя выбрать.

Поэтому тут бился в стену какое то время =)
Артур Шевченко
08 января 2024, 16:12
0
Из-за атрибута disabled и не работала, ведь значение с этим атрибутом не может быть выбрано, значит всегда выбрано другое значение, значит оно всегда есть, значит валидатор всегда возвращает true.
Сергей Карпович
08 января 2024, 11:20
0
Временно решил проблему убрав disabled у первого option
<option disabled selected value="">Выбор отдела*</option>
Сергей Карпович
08 января 2024, 10:40
0
Подскажите, почему можете не работать валидация select?
форма:
<form action="{$_modx->resource.id | url}" method="post" enctype="multipart/form-data">
    <input type="hidden" name="page" value="{$_modx->resource.pagetitle | htmlent}">
    <div class="form">
        <div class="pole pole-icon">
            <input type="tel" name="phone" placeholder="Ваш телефон" autocomplete="off">
            <span class="error-info error_phone"></span>
        </div>
        <div class="pole pole-icon">
            <input type="text" name="name" placeholder="Как Вас зовут?" autocomplete="off">
            <span class="error-info error_name"></span>
        </div>
        <div class="pole">
            <select name="otdel">
                <option disabled selected value="">Выбор отдела*</option>
                <option value="Сервис"[[!+fi.otdel:FormItIsSelected=`Сервис`]]>Сервис</option>
                <option value="Запчасти"[[!+fi.otdel:FormItIsSelected=`Запчасти`]]>Запчасти</option>
                <option value="Автомобили"[[!+fi.otdel:FormItIsSelected=`Автомобили`]]>Автомобили</option>
            </select>
           <span class="error-info error_otdel"></span>
        </div>
        <div class="pole pole-btn">
            <button type="submit" class="btn bg"><span>Свяжитесь со мной</span></button>
        </div>
    </div>
    
    <div class="police">
    «я ознакомлен(-а) и принимаю условия публичной оферты и даю согласие на обработку персональных данных на условиях»
    </div>
</form>
вызов:
{'!AjaxFormitLogin' | snippet : [
            'form' =>  'tpl_form_popup',
            'emailTpl' => 'tpl_email',
            'snippet' => 'FormIt',
            'hooks' => 'FormItSaveForm,email',
            'emailTo' => $_modx->config.email_address,
            'emailFrom' => $_modx->config.emailsender,
            'formName' => 'Заявка на консультацию с сайта ' ~ $_modx->config.site_name,
            'emailSubject' => 'Заявка на консультацию с сайта ' ~ $_modx->config.site_name,
            'successMessage' => '',
            'clearFieldsOnSuccess' => 1,
            'transmittedParams' => ["success" => 'ym_goal', "error" => 'aliases'],
            'aliases' => 'phone==Телефон,name==Имя',
            'showUploadProgress' => 1,
            'spamProtection' => 1,
            'ym_goal' => 'FORM_GOAL',
            'validate' => 'otdel:required,name:required:minLength=^5^,phone:required:minLength=^18^',
            'validationErrorMessage' => 'Исправьте, пожалуйста, ошибки!',
            'otdel.vTextRequired' => 'Выберите отдел',
            'name.vTextRequired' => ' ',
            'name.vTextMinLength' => 'Слишком короткое ФИО.',
            'phone.vTextRequired' => ' ',
            'phone.vTextMinLength' => 'Слишком короткий телефон.',
            'secret.vTextContains' => 'Кажется Вы робот. Если это не так, обновите страницу.',
        ]}