Регистрация и авторизация в всплывающем окне.
Есть ли какой то не очень сложный способ организовать регистрацию и авторизацию в всплывающем окне, как например на этом же сайте?
Основная задача, что бы при регистрации или авторизации показывались ошибки(регистрации или авторизации) в этой же форме
Основная задача, что бы при регистрации или авторизации показывались ошибки(регистрации или авторизации) в этой же форме
Комментарии: 8
Самый простой — открывать форму во всплывающем окне браузера методом window.open();
Более красиво, через ajax можно сделать только авторизацию по логину\паролю, с социальной авторизацией (как тут) не прокатит.
Более красиво, через ajax можно сделать только авторизацию по логину\паролю, с социальной авторизацией (как тут) не прокатит.
Нужно обязательно через Login, но ведь через window.open(); после логина — она редиректится на какой либо ресурс, как сделать что бы она закрывалась?
Прошу прощения за такие вопросы, я только постигаю)
Прошу прощения за такие вопросы, я только постигаю)
Я вот тут точно не скажу (ибо не проверял и в javascript не силён), но можно при редиректе вызывать функцию, которую будет слушать родительское окно и закрывать дочрнее, а потом обновляться.
Но гораздо лучше, если Login — делать через ajax. Начать можно отсюда.
Но гораздо лучше, если Login — делать через ajax. Начать можно отсюда.
Спасибо, обязательно начну :)
Возник промежуточный вариант, через ай-фрейм. Идея такова, ай-фрейм после авторизации переходит на ресурс с скриптом, который его закрывает. Это возможно?
Если я правильно понял, то предлагаю простой способ, при загрузке страницы проверить с помощью JS div c классом loginMessage на наличие элементов, и если они там есть то открыть окно с формой и ошибкой сразу.
iframe это вообще колхоз.
popup тоже плохо, т.к у многих стоят блокираторы.
Я мог реализовать любым способом, но решил самым простым-посредством jquery по кнопке раскрывать список вниз, при этом этот чанк используется только в том случае если пользователь не авторизирован на сайте, посредством Personilize идет проверка.Если юзер авторизирован то открывается другой…
А этот, в случае ошибок сам раскрывается и показывает на ошибку (ловится строчка из location.hash)
popup тоже плохо, т.к у многих стоят блокираторы.
Я мог реализовать любым способом, но решил самым простым-посредством jquery по кнопке раскрывать список вниз, при этом этот чанк используется только в том случае если пользователь не авторизирован на сайте, посредством Personilize идет проверка.Если юзер авторизирован то открывается другой…
А этот, в случае ошибок сам раскрывается и показывает на ошибку (ловится строчка из location.hash)
<script type="text/javascript">
function openBox (objName) {
if ( $(objName).css('display') == 'none' ) {
$(objName).animate({height: 'show'}, 400);
} else {
$(objName).animate({height: 'hide'}, 200);
}
}
$(function() {
var re = /\#fast_reg/;
var matches = re.exec(window.location.hash);
if (matches) {
openBox('#register'); return false;
}
});
$(function() {
var re = /\#fast_enter/;
var matches = re.exec(window.location.hash);
if (matches) {
openBox('#enter'); return false;
}
});
</script>
<a href="#" onclick="openBox('#register'); return false">[Быстрая регистрация]</a>
<a href="#" onclick="openBox('#enter'); return false">[Быстрый вход]</a>
<!--register -->
<div id="register" style="display: none">
[[!Register?
&submitVar=`registerbtn`
&activationEmailTpl=`lgnActivationEmailTpl`
&activationEmailSubject=`Спасибо за регистрацию!`
&submittedResourceId=`[[*id]]`
&usernameField=`email`
&usergroups=`Покупатели`
&activation=`0`
&validate=`nospam:blank,
password:required,
password_confirm:password_confirm=^password^,
fullname:required,
email:required:email`
&placeholderPrefix=`reg.`
&postHooks=`auto-login`
]]
<div class="registerMessage">[[!+reg.error.message]]</div>
<form class="form" action="[[~[[*id]]]]#fast_reg" method="post">
<input type="hidden" name="nospam" value="[[!+reg.nospam]]" />
<table cellpadding="5">
<tr>
<td>Адрес эл. почты*:</td>
<td>
<input type="text" name="email" id="email" value="[[!+reg.email]]" />
<div class="error">[[!+reg.error.email]]</div>
</td>
</tr>
<tr>
<td>Пароль*:</td>
<td>
<input type="password" name="password" id="password" value="[[!+reg.password]]" />
<div class="error">[[!+reg.error.password]]</div>
</td>
</tr>
<tr>
<td>Повторите пароль*:</td>
<td>
<input type="password" name="password_confirm" id="password_confirm" value="[[!+reg.password_confirm]]" />
<div class="error">[[!+reg.error.password_confirm]]</div>
</td>
</tr>
<tr>
<td>Ф.И.О.*:</td>
<td>
<input type="text" name="fullname" id="fullname" value="[[!+reg.fullname]]" />
<div class="error">[[!+reg.error.fullname]]</div>
</td>
</tr>
<tr>
<td>Телефон:</td>
<td>
<input type="text" name="phone" id="phone" value="[[!+reg.phone]]" />
<div class="error">[[!+reg.error.phone]]</div>
</td>
</tr>
<tr>
<td>Адрес доставки:</td>
<td>
<textarea name="address" id="address">[[!+reg.address]]</textarea>
<div class="error">[[!+reg.error.address]]</div>
</td>
</tr>
<tr>
<td><input type="submit" name="registerbtn" value="Зарегистрироваться" /></td>
<td></td>
</tr>
</table>
</form>
</div>
<!--/register -->
<!-- enter -->
<div id="enter" style="display: none">
[[!Login?
&loginTpl=`tpl.orderLoginTpl`
&logoutTpl=`tpl.loginLogoutTpl`
&errTpl=`lgnErrTpl`
&loginResourceId=`[[*id]]`
&logoutResourceId=`24`
&contexts=`web,catalog` ]]
</div>
<!--/enter -->
Используйте api modx.
Вот несколько примеров, возможно вам это поможет
В качестве решения всплывающих окон можно применить fancybox
Вот несколько примеров, возможно вам это поможет
В качестве решения всплывающих окон можно применить fancybox
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.