[ajaxLogin] Регистрация, Авторизация, Сброс пароля
Компонент ajaxLogin для MODX revolution реализует регистрацию, авторизацию и сброс пароля на сайте через AJAX, содержит в себе один сниппет и кучу чанков. Обязательно должен быть установлен пакет Login, автоматическая загрузка, пока, не реализована. Из пакета Login работает только с тремя сниппетами, это: Login, Register и ForgotPassword.
Все действия происходят в модальном окне, по умолчанию bootstrap3
Должна быть подключена библиотека jQuery.
Чанк ajaxLoginTpl разделён на две части сепаратором , и служит для вывода кнопки «Войти» или имени пользователя (fullname), в зависимости от состояния юзера: авторизован/не авторизован, с выпадающим меню-дропдаун (bootstrap), в котором находится ссылка выхода. Можно добавить любые другие ссылки.
Компонент в modstore.
Все действия происходят в модальном окне, по умолчанию bootstrap3
Должна быть подключена библиотека jQuery.
Сниппет ajaxLogin
Как я выше писал, ajaxLogin содержит в себе кучу чанков, которые все служат для переопределения чанков по умолчанию сниппетов пакета Login, кроме двух — ajaxLoginTpl и ajaxLoginModalTpl.Чанк ajaxLoginTpl разделён на две части сепаратором , и служит для вывода кнопки «Войти» или имени пользователя (fullname), в зависимости от состояния юзера: авторизован/не авторизован, с выпадающим меню-дропдаун (bootstrap), в котором находится ссылка выхода. Можно добавить любые другие ссылки.
Параметры
- &activationEmailTpl — Чанк письма для подтверждения Email, сниппета Register. По умолчанию: ajaxLoginActivateEmailTpl
- &activationResourceId — ID ресурса, куда будет перенаправлен пользователь для подтверждения и активации своей почты при регистрации, сниппета Register. По умолчанию: Пусто
- &emailTpl — Чанк письма с информацией о дальнейших действиях при сбросе пароля, сниппет ForgotPassword. По умолчанию: ajaxLoginForgotPassEmailTpl
- &errTpl — Шаблон вывода ошибки для сниппетов Login и ForgotPassword. По умолчанию: ajaxLoginErrTpl
- &frontendCss — Путь до файла со стилями.
- &frontendJs — Путь до файла со скриптом.
- &loginTpl — Чанк с формой авторизации для сниппета Login. По умолчанию: ajaxLoginFormTpl
- &logoutResourceId — ID ресурса, куда пользователь будет перенаправлен при выходе. Если пусто, то текущий ресурс. По умолчанию: Пусто
- ®isterTpl — Чанк с формой регистрации для сниппета Register. По умолчанию: ajaxLoginRegisterFormTpl
- &resetResourceId — ID ресурса, куда будет перенаправлен пользователь для сброса пароля по ссылке из почты. По умолчанию: Пусто
- &sentTpl — Чанк с сообщением, после заказа сброса пароля. По умолчанию: ajaxLoginForgotPassSentTpl
- &tpl — Чанк с формой восстановления пароля для сниппета ForgotPassword. По умолчанию: ajaxLoginForgotFormTpl
- &tplAjax — Чанк, разделённый на две части сепаратором. Та или иная часть выводится согласно статуса пользователя — авторизован или нет. По умолчанию: ajaxLoginTpl
- &tplModal — Чанк оформления модального окна. По умолчанию: ajaxLoginModalTpl
- &tplType — Значение указывает сниппетам Login и ForgotPassword где находится форма. По умолчанию: embedded. Не рекомендую менять этот параметр.
Примеры
Вот пример кода, которого вполне достаточно для работы этого компонента:[[!ajaxLogin?
&resetResourceId = `87`
&emailSubject = `Заказан сброс пароля`
&usergroups = `Users::Member`
&activationEmailSubject = `Спасибо за регистрацию!`
&activationResourceId = `84`
&successMsg = `На указанный Email мы отправили ссылку, по которой нужно перейти для подтверждения почты.`
]]
Как вы понимаете, должны быть созданы ресурсы для сброса пароля и подтверждения Email, с соответствующими вызовами сниппетов: ResetPassword и ConfirmRegisterКомпонент в modstore.
Поблагодарить автора
Отправить деньги
Комментарии: 28
Круто!
А где найти сам компонент-то? В статье об этом ни слова…
А где найти сам компонент-то? В статье об этом ни слова…
Ну в modstore отправил, пока не опубликовали.
чёт долго выставляют =(
да вроде давно уже выставлен modstore.pro/packages/users/ajaxlogin
Спасибо, купил.
Эх, этот jQuery… ничего против него не имею, но когда сделал простейший лендинг в котором вообще не использовал его, но для формы понадобился jquery, так обломался..., пришлось цеплять 100кб штуку, чтоб заюзать ajaxForm. Спасибо за работу.
Давайте тогда технологиями первого компьютеоа в 80-х пользоватся. Не подключать дополнительных строк на ода которые убрать шаги такие как пеиезагиузка страницы, ответ если не правильно введен пароль, ответ если не правильно введен логин. Давайтк перезагружать страницу при любом событии. Вишка то в том что подгрузка 100 кб кода дает в результатте минус 4 минимум перезагрузок страниц. Причем есть элемент когда пользовател. Вообще не обратит внимание когда страница должна была перезагрузится 10 раз. Вороде как програмисты и работают ради того чтобы не повторять шаги.
Для ajax запросов jquery не нужен. Впрочем, никто не мешает подключить свой скрипт для ajaxForm.
А обратная связь, alert будет?
подстажите как в чанке ajaxLoginTpl сделать ссылку на главную при logout?
<a href="[[~2? &service=`logout`]]">Logout</a>
id 2 это главная, вместо перехода на неё просто остаётся на странице ( logout выполняется).
Изменить параметр &logoutResourceId, по умолчанию — текущий ресурс, в вызове сниппета ajaxLogin:
[[!ajaxLogin?
....
....
&logoutResourceId = `2`
]]
Должен сработать.
сработало спасибо!
а перенаправление при удачном входе как сделать?
Ну видимо так:
[[!ajaxLogin?
....
....
&oginResourceId = `123`
]]
в этом то и грабли, что так не работает
Нужно обновиться — исправил.
Отлично, спасибо.
Ток предупреждайте, что чанки перезаписываются, спасибо.
Ток предупреждайте, что чанки перезаписываются, спасибо.
День добрый!
Небольшая проблемка при работе по https. Так и не обнаружил откуда ноги ростут. В процессе.
При авторизации в хроме в консоль кидает:
* ps: в link_tag_scheme = 1
Пока писал, заметил, что видимо дело в $_SERVER['HTTPS'] ибо оно не в on. Буду разбираться.
Небольшая проблемка при работе по https. Так и не обнаружил откуда ноги ростут. В процессе.
При авторизации в хроме в консоль кидает:
Mixed Content: The page at 'https://site.name/page/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://site.name/page/'. This request has been blocked; the content must be served over HTTPS.
Обновления страницы не происходит. Авторизация однако совершается (только f5 надо жмякнуть). Откуда может он брать http?* ps: в link_tag_scheme = 1
Пока писал, заметил, что видимо дело в $_SERVER['HTTPS'] ибо оно не в on. Буду разбираться.
Да, так как в конце и предположил ) Сервер слегка был «неполноценно настроен». Оживил $_SERVER['HTTPS'] и всё отлично.
Благодарю за компонент. Пригодится.
Благодарю за компонент. Пригодится.
Можно ли как-то вызвать отдельно форму авторизации и регистрации?
Кто-нибудь разобрался как вызвать отдельно форму авторизации и регистрации? И, главное, в нужном мне месте. Купил этот сниппет, а он мне 3 формы в самом низу сайта вывел и всё. Не могу даже перенести их в заранее подготовленное модальное окно.
Купил данный модуль на modstore, впринципе все устраивает, кроме 1: можно ли авторизоваться сразу в нескольких контекстах? (у меня языковые версии по поддоменам разбиты)
И очень скудно описан функционал, но с горем на пополам — разобрался
И очень скудно описан функционал, но с горем на пополам — разобрался
У Login есть параметр contexts, описан как экспериментальный:
(Experimental) A comma-separated list of contexts to log in to. Defaults to the current context if not explicitly set.Нужно проверять будет он работать или нет.
Добрый день.
Удалось ли Вам реализовать авторизацию в разных контекстах?
Удалось ли Вам реализовать авторизацию в разных контекстах?
Компонент более недоступен?
И есть ли альтернатива?
И есть ли альтернатива?
Компонент недоступен. Автор к сожалению тоже.
Готовой альтернативы судя по всему нет.
Готовой альтернативы судя по всему нет.
Можем мой вариант сгодится? Ребята говорят велосипед, но работает. Там есть ссылка и на другой вариант решения.
Благодарю
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.