Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Haktar

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

Recommended Posts

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

 

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

 

<?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;
}
}

 

Share this post


Link to post
Share on other sites

Заменить на

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

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

Share this post


Link to post
Share on other sites

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

 

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'] ) );

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

Edited by Strategius

Share this post


Link to post
Share on other sites

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

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

Заменить на:

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

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

$referer = ''

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

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

  • Upvote 2

Share this post


Link to post
Share on other sites

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

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

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

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

 

 

Заменить на:

и

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

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

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

Share this post


Link to post
Share on other sites
Достаточно отредактировать шаблон quickLoginForm

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

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

На:

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

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

Share this post


Link to post
Share on other sites

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

Не работает.

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

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

Share this post


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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...