Alexey

Alexey

С нами с 02 августа 2015; Место в рейтинге пользователей: #109
15 декабря 2020, 15:15
0
Привет! Повесь плагин на OnBeforeDocFormSave вместо OnDocFormSave
11 декабря 2020, 00:06
0
Накидал на тестовом сайте

вызов сниппета:
[[AjaxSnippet?
      &snippet=`my_slider`
      &as_mode=`onload`
]]

Чанк, который отдает сниппет my_slider:
<div class="slider single-item">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
</div>

Код в футере:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="vendor/js/slick-theme.css"/>
<link rel="stylesheet" type="text/css" href="vendor/js/slick.css"/>
<script src="vendor/js/slick.js"></script>

<script>
    $(document).on('as_complete', document, function(e,d) {
    	$('.single-item').slick();
    });
</script>

Всё прекрасно отрабатывает на тестовом варианте. Значит, осталось разобраться, что именно нужно инициализировать на событие as_complete, как выше написал Константин.
10 декабря 2020, 21:02
0
Привет! Класс rows нужно дать тегу tbody, а не table-list
10 декабря 2020, 18:25
0
Ошибки есть в консоли браузера?
10 декабря 2020, 17:39
0
Помимо предыдущего справедливого замечания: а хук есть? Который сохранит загруженный в форму файл на сервер и добавит путь к файлу в новое поле?
10 декабря 2020, 12:58
0
bezumkin.ru/sections/components/2557/

Тут указано, что есть событие as_complete, которое происходит при загрузке ajaxSnippet. Попробуйте на это событие повесить инициализацию слайдера.

$(document).on('as_complete', document, function(e,d) {
	//код инициализации
});
10 декабря 2020, 12:38
0
Полагаю, что инициализация слайдера происходит в основном DOM -дереве, при событии document.ready. А тело слайдера грузится позже. Соответственно, скрипт инициализации не видит подгруженную разметку слайдера, ее просто нет в основном DOM-е.
09 декабря 2020, 21:01
+6
Ох, здорово! Насчет бесплатной доставки прямо в точку, спасибо огромное!
09 декабря 2020, 13:43
0
Сейчас попробовал на рабочем проекте:

<div class="form-group">
      <textarea name="message_d" class="form-control form-control-simple" placeholder="Введите сообщение *"></textarea>
      <span class="error_message_d">{$_modx->getPlaceholder('error.message_d')}</span>
</div>
skrinshoter.ru/s/091220/gJq6ZWja?a

при неуспешном сабмите {$_modx->getPlaceholder('error.message_d')} выводит строку с ошибкой. Только нужно было этот плейсхолдер обернуть в соответствующий класс ошибки. Значит, в принципе, работает. Возможно, дело в отсутствии префикса fi в вызове плейсхолдера?

Но это у меня связка formIt и AjaxFrom
09 декабря 2020, 11:25
+1
Не совсем понял, откуда передается параметр id. Если из вызова сниппета AjaxForm, наподобие этого:
{'!AjaxForm' | snippet : [
        'snippet' => 'FormIt',
        'form' => 'modal_callback_form',
        'hooks' => 'email,FormItSaveForm',
        ...
    	'validationErrorMessage'=>'В форме содержатся ошибки! Заполните обязательные поля',
    	'successMessage'=>'Сообщение успешно отправлено!',    	
    	'id' => 123
    ]}
то этот параметр будет доступен в форме так:
{$id}
09 декабря 2020, 01:03
+1
Разработчик обновил компонент reCaptchaV3, теперь каждую минуту идет запрос нового токена для рекапчи.

skrinshoter.ru/s/081220/Tsdc0Imy
08 декабря 2020, 23:14
0
Попробуйте тело функции поместить в отдельный сниппет, который вызывался бы из основного сниппета(вместо вызова функции). Конечно, со всеми «вытекающими» параметрами. Fatal Error должна пропасть.
08 декабря 2020, 21:14
+1
Нужно ещё учесть, что размеры хранятся в БД в виде массива — prnt.sc/vyflfj
Поэтому полученное значение желательно распарсить в строку и уже после этого приконтачить к названию:
$size = $p->get('size');
$size = implode('_', $size);
$p->set('pagetitle', $pagetitle . ' ' . $size);
07 декабря 2020, 15:24
0
Попробовал, установил на тестовый хостинг связку formIt, ajaxform и recaptchav2. По истечению 2 минут форма не прилетает на почту. Хотя при отправке формы пишется, что всё ок
07 декабря 2020, 13:22
0
И токен не устаревает через 2 минуты?
07 декабря 2020, 13:01
0
Вдогонку к предыдущему комментарию: второй скрин не тот. Вот актуальный — skrinshoter.ru/s/071220/gpJucTNt?a
07 декабря 2020, 12:41
0
Я сталкивался неоднократно — skrinshoter.ru/s/071220/gCv8POsx?a
Рекомендуют ставить получение токена не на событие загрузки страницы, а на отправку формы, как-то так:

skrinshoter.ru/s/071220/gCv8POsx?a

Но тут нюанс — получение токена занимает время, пост-запросы с формы могут улететь раньше, чем токен будет получен. Первый раз отправил форму — получил ошибку «нет токена», т.к. не успел подгрузиться. Во второй раз клацнул сабмит — отправил.

Значит, нужно ещё в FormIt ставить на submit проверку, есть ли в поле токена не пустой value. Это получается интеграция в formIt будет…
07 декабря 2020, 09:16
0
Интересно! Получается, что работает, так как в пределах одного домена браузеры позволяют
06 декабря 2020, 16:45
0
Тут проблема в том, что форма через фрейм грузится. И скрипт на странице ее просто не видит. И не ловит событие af_complete
06 декабря 2020, 15:39
0
Пишите в личку