Сниппет Register от Login не создает пользователей
Здравствуйте!
По какой-то неизвестной причине, сниппет Register от Login не создает пользователей.
По какой-то неизвестной причине, сниппет Register от Login не создает пользователей.
[[!Register?
&submitVar=`login-register-btn`
&activation=`0`
&autoLogin=`1`
&submittedResourceId=`5`
&usergroups=`Users`
&usernameField=`email`
&passwordField=`password`
&validate=`nospam:blank,
password:required:minLength=^8^,
password_confirm:password_confirm=^password^,
fullname:required,
email:required:email`
&placeholderPrefix=`reg.`
]]
[[!+error.message:default=`[[$regform]]`]]
Код чанка regform:<form class="form" action="[[~[[*id]]]]" method="post">
<input type="hidden" name="nospam" value="[[!+reg.nospam]]">
<div class="form-item" id="not-acc" data-tab-content>
<div class="form__inp-wrap">
<div class="form__inp-item">
<div class="arrow-inp arrow-inp2">
<img src="modern/img/icons/inp-arrow.svg" alt="">
<input type="text" name="fullname" id="fullname" value="[[!+reg.fullname]]" placeholder="Имя" class="form-inp">
<div class="invalid-feedback">[[!+reg.error.fullname]]</div>
</div>
<input type="email" placeholder="Email" name="email" value="[[!+reg.email]]" required class="form-inp">
<div class="invalid-feedback">[[!+reg.error.email]]</div>
<input type="password" placeholder="Пароль" name="password" value="[[!+reg.password]]" required class="form-inp">
<div class="invalid-feedback">[[!+reg.error.password]]</div>
<input type="password" placeholder="Введите пароль еще раз" name="password_confirm" class="form-inp" value="[[!+reg.password_confirm]]">
<div class="invalid-feedback">[[!+reg.error.password_confirm]]</div>
<button class="form-btn" type="submit" name="login-register-btn">Создать аккаунт</button>
</div>
<div class="form__text-wrap">
<p>Если у вас нет аккаунта, пройдите простую регистрацию.</p>
<p>Введите ваше имя, email и пароль, и зарегистрируйтесь.</p>
</div>
</div>
</div>
</form>
В чем может быть причина? В логах ошибок нет. Спасибо! Комментарии: 24
Надо логировать процесс начиная с отправки формы. Смотреть консоль браузера, журнал ошибок, логи сервера.
В консоле браузера и журнале ошибок, нет ошибок.
А ещё я удивлён, что кто-то в 2023 году делает регистрацию с перезагрузкой страницы.
А как сделать без перезагрузки страницы? Я сама удивилась, когда страница перезагружается после нажатия на кнопку.
C AjaxFormitLogin тоже с перезагрузкой страницы и данные формы передаются в адресную строку. Но новый пользователь и с AjaxFormitLogin не создался.
Значит вы что-то не правильно сделали. Напишите мне в телегу доступы посмотрю, если хотите.
Если вы указываете submitVar, то замените button на input
<input class="form-btn" type="submit" name="login-register-btn" value="Создать аккаунт">
- [[$addquestion]] — в этом чанке у меня сниппет TicketForm
- [[$authregtabs]] — тут блок с табами, где есть формы авторизации/регистрации/восстановление пароля (как в этом видео скриншоте skrinshoter.ru/vLVs638ZeZi?a )
Ну пусть перезагружается, хотя бы регистрация будет работать) с button при указанном submitVar не будет
Будет ли работать регистрация с Login + AjaxForm?
У Артура есть компонент AjaxFormitLogin, который правда уже не поддерживается, но выполнит вашу задачу в любом случае. Не знаю по поводу SendIt, тут уже Артур сам ответит)
Если хотите разобраться то вот и вот история моих изысканий на эту тему. Всё это в итоге переросло в компонент AjaxFormitLogin, поддержку которого я прекратил, потому что решил полностью переписать JS и PHP, которые достались мне по наследству от AjaxForm. Однако весь функционал из AjaxFormitLogin перекочевал в новый компонент SendIt. Он полностью готов и отлажен. Сегодня я закончил написание документации. Думаю в понедельник или во вторник он станет доступен для скачивание через менеджер пакетов в modstore.
Спасибо!
Пока изучу как использовать AjaxFormitLogin без fenom для регистрации/авторизации.
Первый раз его использование не решило перезагрузку страницы после отправки формы.
Пока изучу как использовать AjaxFormitLogin без fenom для регистрации/авторизации.
Первый раз его использование не решило перезагрузку страницы после отправки формы.
Лучше разберитесь с феном, с ним удобнее.
У меня на сайте очень много шаблонов. Если я правильно поняла, после включения фенома, на сайте весь код нужно будет под феном переписать. Поэтому пока не могу перейти на феном.
Вот так я вызвала AjaxFormitLogin:
Теперь после отправки формы, страница не обновляется. Но также ничего не происходит. Поля формы остаются заполненными и не создается аккаунт.
Вот так я вызвала 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"
.Теперь после отправки формы, страница не обновляется. Но также ничего не происходит. Поля формы остаются заполненными и не создается аккаунт.
НУ я же давал ссылку на документацию по AjaxFormitLogin. Пакет Login использовать не нужно, весь его функционал уже есть в моём компоненте. В документации есть примеры вызовов для всех форм: регистрации, авторизации, восстановления пароля, редактирования данных, вам нужно только свой чанк формы подставить, ну и если мы говорим про регистрацию вот эти значения надо сохранить
&activation=`0`
&autoLogin=`1`
Артур, подскажите пожалуйста, с помощью AjaxFormitLogin возможно ли без перезагрузки страницы после отправки формы на той же странице отобразить TicketForm?
На странице добавления вопроса в шаблоне я разместила следующий код:
На странице добавления вопроса в шаблоне я разместила следующий код:
[[!+modx.user.id:isloggedin:is=`1`:then=`[[$addquestion]]`:else=`[[$authregtabs]]`]]
Можно, только нужно создать 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) переключать классы.
Ну и по поводу фенома, он нормально работает со стандартным парсером, главное чтобы в шаблонах и чанках не было открывающих фигурных скобок не относящихся к феном, а если есть, то после них нужно просто поставить пробел.
Кстати, если вы не знали, есть группа в Телеграмм где помощь можно получить оперативнее
Заменила button на input. С таким способом, регистрация пользователей заработала.
Получается проблема была в button и оно не давало создавать пользователей?
Получается проблема была в button и оно не давало создавать пользователей?
Не передавалось значение submitVar поэтому скрипт не отрабатывал.
В принципе можно и button использовать, но тогда нужно указать у нее атрибут value с любым значением. Ибо иначе в post-запросе передается пустой ключ и поэтому submitVar не отрабатывает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.