Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Trotor

Быстрая авторизация

Рекомендованные сообщения

Есть хук который позволяет авторизироваться в попап-окне. Всё бы хорошо, но при авторизации с любой страницы форума, перебрасывает на главную, не редиректит на ту страницу откуда авторизировался.

 

Как бы это исправить?

 

<?php

class public_core_global_quickLogin extends ipsCommand 
{	
private $output;

public function doExecute( ipsRegistry $registry )
{
	/* Watcha up to? */
	switch ( $this->request[ 'do' ] )
	{
		Case 'login':
		default:
			$this->quickLogin();
		break;
	}

	/* Print */
	$this->registry->output->addContent( $this->output );
	$this->registry->output->sendOutput();
}

public function quickLogin()
{
	$this->registry->getClass( 'class_localization' )->loadLanguageFile( array( 'public_login' ), 'core' );

	if ( $this->memberData['member_id'] )
	{
		$this->registry->output->showError( 'no_permission' );
	}

	$this->output = $this->registry->output->getTemplate( 'global' )->quickLoginForm();
	return $this->output;
}
}

 

Поделиться сообщением


Ссылка на сообщение
02/17/17 16:38 (изменено)

http://ipbskins.ru/forum/topic14993.html/page__view__findpost__p__100351

 

return $this->output;

Заменить на

 

return $this->registry->getClass('output')->silentRedirect( $this->registry->output->formatUrl( $this->settings['this_url''] ) );

Изменено пользователем Strategius

Поделиться сообщением


Ссылка на сообщение

Заменить на

Выдаёт ошибку:

Parse error: syntax error, unexpected ''] ) ); ' (T_ENCAPSED_AND_WHITESPACE), expecting ']' in

Поделиться сообщением


Ссылка на сообщение
02/17/17 19:02 (изменено)

Хорошо бы посмотреть хук этот.

 

Parse error: syntax error, unexpected ''] ) ); ' (T_ENCAPSED_AND_WHITESPACE), expecting ']' in

В вышеприведенном коде удалить лишнюю кавычку после this_url' (ошибка).

 

Или

 

После

 

return $this->output;

Добавить

 

$this->registry->getClass('output')->silentRedirect( $this->registry->output->formatUrl( $this->settings['this_url'] ) );

По идее должно работать.

Изменено пользователем Strategius

Поделиться сообщением


Ссылка на сообщение

По идее что-то такое нужно:

$this->output = $this->registry->output->getTemplate( 'global' )->quickLoginForm();

Заменить на:

$this->output = $this->registry->output->getTemplate( 'global' )->quickLoginForm( $_SERVER['HTTP_REFERER'] );

В настройках шаблона "quickLoginForm" добавить переменную:

$referer = ''

Но до конца не уверен, поскольку в вашем файле XML ничего кроме этого шаблона и языковой строки нет, непонятно каким методом попап грузится. Если вместе с глобальным шаблоном, то правка должна работать.

Странный какой-то полуфабрикат, частично заливаемый, частично устанавливаемый и видимо должна быть ещё ручная правка глобального шаблона с яваскрипт.

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

Но до конца не уверен, поскольку в вашем файле XML ничего кроме этого шаблона и языковой строки нет, непонятно каким методом попап грузится. Если вместе с глобальным шаблоном, то правка должна работать.

Странный какой-то полуфабрикат, частично заливаемый, частично устанавливаемый и видимо должна быть ещё ручная правка глобального шаблона с яваскрипт.

Вообще то да, забыл уточнить. В шаблон includeJS добавлялось это:

.js,public/js/ips.quicklogin.js (после &f=public/js/ipb.js,public/js/ips.quickpm)

 

 

Заменить на:

и

В настройках шаблона "quickLoginForm" добавить переменную:

Добавил. При авторизации, выдаёт nopermission на белой странице.

Может quickLogin.php из директории ajax тоже следует отредактировать?

Поделиться сообщением


Ссылка на сообщение
Достаточно отредактировать шаблон quickLoginForm

А ну да. Заменить:

		<if test="referer:|:$referer">
	<input type="hidden" name="referer" value="{$referer}" />
	</if>

На:

		<input type="hidden" name="referer" value="{$this->settings['this_url']}" />

Хотя и с предыдущей правкой будет работать, отредактировал её.

Поделиться сообщением


Ссылка на сообщение

Достаточно отредактировать шаблон quickLoginForm

Не работает.

При авторизации, выдаёт nopermission на белой странице.

 

Хотя и с предыдущей правкой будет работать, отредактировал её.

Хм... Тоже самое - выдаёт nopermission на белой странице.

Поделиться сообщением


Ссылка на сообщение

Вставьте в нaчало шаблона:

<php>print $settings['this_url'];exit;</php>

И скопируйте сюда url, что там в окне будет.

 

P.S. Возможно, ещё потребуются правки яваскрипт, html кнопки "Быстрый вход" и аякс-обработчика.

P.P.S. Правку в 6-ом сообщении ещё раз отредактировал, пробуйте. Замену строки, с вызовом шаблона "quickLoginForm()", нужно делать в обоих файлах quickLogin.php.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

P.P.S. Правку в 6-ом сообщении ещё раз отредактировал, пробуйте. Замену строки, с вызовом шаблона "quickLoginForm()", нужно делать в обоих файлах quickLogin.php.

Вот! Правка помогла + замена строки именно в двух файлах. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Вот! Правка помогла + замена строки именно в двух файлах. Спасибо.
Помогло то, что я влез на ваш форум, посмотрел яваскрипт и код кнопки. Заливать нужно было полный архив с модификацией, а не один шаблон сиротливый.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...