Окно входа без перезагрузки - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1

Окно входа без перезагрузки

#1 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 291
  • Регистрация: 27-Март 16
  • Репутация: 17
  • IPB version:3.4.x
 

Отправлено 28 Август 2016 - 19:29

Добрый вечер!
Подскажите, пожалуйста, возможно ли полностью отказаться от отдельной страницы входа на сайт, чтобы все происходило в стоковом всплывающем окне?

Например, когда пользователь вводит неправильный пароль в окне входа, его перебрасывает на новую страницу по адресу site.ru/index.php?app=core&module=global&section=login&do=process

Как убрать эту страницу, чтобы ошибку выдавало с ajax-обновлением в этом же popup-окне?
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 071
  • IPB version:3.1.x
 

Отправлено 28 Август 2016 - 21:22

Теоретически можно отправить авторизационные данные через ajax запрос и в зависимость от полученного ответа вывести либо ошибку, либо, при успешной авторизации, обновить текущую страницу.

После формы авторизации (</form>) в globalTemplate > inlineLogin добавить скрипт

<script>
$$('#inline_login_form #login')[0].observe('submit', function(e){
    e.preventDefault();
    var form = this;
    new Ajax.Request(form.action, {
        method: 'post',
        parameters: this.serialize(true),
        onSuccess: function(r) {
            var div = document.createElement('div');
            div.innerHTML = r.responseText;
            var script = div.select('script:contains("member_id")')[0];
            if(script){
                var toEval = script.innerHTML.replace('Loader.boot();', '');
                eval(toEval);
                if(ipb.vars['member_id']){
                    var params = document.location.search.toQueryParams();
                    if(params['module'] == 'global' && ['register', 'login'].indexOf(params['section']) != -1){
                        window.location = ipb.vars['board_url']+'/';
                    }
                    else{
                        window.location.reload();
                    }
                }
                else{
                    var error = form.select('p.error.message')[0];
                    if(!error){
                        form.select('div.ipsForm fieldset')[0].insert({
                            before: '<p class="error message" style="margin-bottom:10px;"></p>'
                        });
                        error = form.select('p.error.message')[0];
                    }
                    var p = div.select('p.error.message')[0];
                    error.innerHTML = p ? p.innerHTML : 'Authentication error';
                }
            }
            else{
                window.location.href = form.action;
            }
        }
    });
    return false;
});
</script>

1

#3 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 291
  • Регистрация: 27-Март 16
  • Репутация: 17
  • IPB version:3.4.x
 

Отправлено 28 Август 2016 - 22:49

Добавил в шаблон inlineLogin этот скрипт, но теперь popup-окно входа вообще не всплывает после нажатия на кнопку входа, сразу перенаправляет на отдельную страницу...
Upd. - Извиняюсь, все правильно работает! Спасибо огромное!! Именно то, что нужно!

Сообщение изменено: Strategius (28 Август 2016 - 22:53)

0

#4 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 291
  • Регистрация: 27-Март 16
  • Репутация: 17
  • IPB version:3.4.x
 

Отправлено 20 Сентябрь 2016 - 22:02

Заметил, что с отдельного окна входа (site.ru/index.php?app=core&module=global&section=login&do=process) после добавления модификации перестала работать переадресация на прошлую страницу. Например, до модификации при авторизации с того окна раньше происходила переадресация на предыдущую страницу, с которой мы попали на страницу входа. Теперь мы остаемся на странице авторизации, даже после входа... В чем проблема?
0

#5 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 071
  • IPB version:3.1.x
 

Отправлено 21 Сентябрь 2016 - 07:47

Нужно сделать исключение для формы с отдельной страницы авторизации.
1

#6 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 291
  • Регистрация: 27-Март 16
  • Репутация: 17
  • IPB version:3.4.x
 

Отправлено 21 Сентябрь 2016 - 08:33

А как прописать страницу (ссылку) в исключение? Оно будет формироваться так примерно?

if(ipb.vars['member_id']){
                    window.location.reload();
					try {
                    if ($this->settings['base_url']."app=core&module=global&section=login");
                    window.location.assign();
                    }
                    catch () {
                    window.location.assign();
                    }
                    finally {
                    window.location.assign();
                    }
                }

Сообщение изменено: Strategius (21 Сентябрь 2016 - 09:52)

0

#7 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 260
  • Регистрация: 20-Март 09
  • Репутация: 2 071
  • IPB version:3.1.x
 

Отправлено 21 Сентябрь 2016 - 11:08

if(window.location.search.indexOf('app=core&module=global&section=login') == -1)
$('login').onsubmit = function(e){
...

1

#8 Пользователь на сайте   Strategius ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 291
  • Регистрация: 27-Март 16
  • Репутация: 17
  • IPB version:3.4.x
 

Отправлено 21 Сентябрь 2016 - 11:19

Спасибо Вам большое, работает! :)
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна