Всего 123 801 комментарий

Zulya
27 августа 2023, 00:04
1
0
Артур, подскажите пожалуйста, с помощью AjaxFormitLogin возможно ли без перезагрузки страницы после отправки формы на той же странице отобразить TicketForm?
На странице добавления вопроса в шаблоне я разместила следующий код:
[[!+modx.user.id:isloggedin:is=`1`:then=`[[$addquestion]]`:else=`[[$authregtabs]]`]]
  • [[$addquestion]] — в этом чанке у меня сниппет TicketForm
  • [[$authregtabs]] — тут блок с табами, где есть формы авторизации/регистрации/восстановление пароля (как в этом видео скриншоте skrinshoter.ru/vLVs638ZeZi?a )
Когда посетитель не авторизован на сайте, ему отображается табы. Когда посетитель авторизуется/регистрируется, то сейчас страница перезагружается и потом отображается [[$addquestion]] со сниппетом TicketForm. А без перезагрузки страницы, даже после успешной авторизации/регистрации TicketForm не появляется, а остается формы в табах.
Артур Шевченко
26 августа 2023, 23:12
+1
Кстати, если вы не знали, есть группа в Телеграмм где помощь можно получить оперативнее
Артур Шевченко
26 августа 2023, 22:57
+2
Ну и по поводу фенома, он нормально работает со стандартным парсером, главное чтобы в шаблонах и чанках не было открывающих фигурных скобок не относящихся к феном, а если есть, то после них нужно просто поставить пробел.
Артур Шевченко
26 августа 2023, 22:54
+1
НУ я же давал ссылку на документацию по AjaxFormitLogin. Пакет Login использовать не нужно, весь его функционал уже есть в моём компоненте. В документации есть примеры вызовов для всех форм: регистрации, авторизации, восстановления пароля, редактирования данных, вам нужно только свой чанк формы подставить, ну и если мы говорим про регистрацию вот эти значения надо сохранить
&activation=`0`
 &autoLogin=`1`
Zulya
26 августа 2023, 22:36
1
0
У меня на сайте очень много шаблонов. Если я правильно поняла, после включения фенома, на сайте весь код нужно будет под феном переписать. Поэтому пока не могу перейти на феном.
Вот так я вызвала AjaxFormitLogin:
[[!AjaxFormitLogin?
&snippet=`Register`
&hooks=`email`
&form=`regform`
&usergroupsField=`Member`
&submitVar=`login-register-btn`
&activation=`0`
 &autoLogin=`1`
 &usernameField=`email`
 &passwordField=`password`
 &validate=`nospam:blank,
password:required:minLength=^8^,
password_confirm:password_confirm=^password^,
 fullname:required,
email:required:email`
&placeholderPrefix=`reg.`
]]
А из кода формы убрала
action="[[~[[*id]]]]" method="post"
.
Теперь после отправки формы, страница не обновляется. Но также ничего не происходит. Поля формы остаются заполненными и не создается аккаунт.
Артур Шевченко
26 августа 2023, 21:53
0
Лучше разберитесь с феном, с ним удобнее.
Zulya
26 августа 2023, 21:49
0
Спасибо!
Пока изучу как использовать AjaxFormitLogin без fenom для регистрации/авторизации.
Первый раз его использование не решило перезагрузку страницы после отправки формы.
Артур Шевченко
26 августа 2023, 21:07
1
+2
Если хотите разобраться то вот и вот история моих изысканий на эту тему. Всё это в итоге переросло в компонент AjaxFormitLogin, поддержку которого я прекратил, потому что решил полностью переписать JS и PHP, которые достались мне по наследству от AjaxForm. Однако весь функционал из AjaxFormitLogin перекочевал в новый компонент SendIt. Он полностью готов и отлажен. Сегодня я закончил написание документации. Думаю в понедельник или во вторник он станет доступен для скачивание через менеджер пакетов в modstore.
Dan
Dan
26 августа 2023, 20:57
+3
У Артура есть компонент AjaxFormitLogin, который правда уже не поддерживается, но выполнит вашу задачу в любом случае. Не знаю по поводу SendIt, тут уже Артур сам ответит)
Zulya
26 августа 2023, 20:54
0
Будет ли работать регистрация с Login + AjaxForm?
Dan
Dan
26 августа 2023, 20:51
3
+3
В принципе можно и button использовать, но тогда нужно указать у нее атрибут value с любым значением. Ибо иначе в post-запросе передается пустой ключ и поэтому submitVar не отрабатывает.
Артур Шевченко
26 августа 2023, 20:34
+2
Не передавалось значение submitVar поэтому скрипт не отрабатывал.
Zulya
26 августа 2023, 20:25
0
Заменила button на input. С таким способом, регистрация пользователей заработала.
Получается проблема была в button и оно не давало создавать пользователей?
Артур Шевченко
26 августа 2023, 20:16
0
Значит вы что-то не правильно сделали. Напишите мне в телегу доступы посмотрю, если хотите.
Zulya
26 августа 2023, 20:14
0
C AjaxFormitLogin тоже с перезагрузкой страницы и данные формы передаются в адресную строку. Но новый пользователь и с AjaxFormitLogin не создался.
Dan
Dan
26 августа 2023, 19:55
+1
Ну пусть перезагружается, хотя бы регистрация будет работать) с button при указанном submitVar не будет
Артур Шевченко
26 августа 2023, 19:53
0
Боюсь у неё будут с этим проблемы, страница-то перезагрузится)))
Dan
Dan
26 августа 2023, 19:46
3
+3
Если вы указываете submitVar, то замените button на input
<input class="form-btn" type="submit" name="login-register-btn" value="Создать аккаунт">
Zulya
26 августа 2023, 18:31
0
В консоле браузера и журнале ошибок, нет ошибок.