Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

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

 

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

 

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

 

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

Опубликовано:

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

Опубликовано:

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

 

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 ничего кроме этого шаблона и языковой строки нет, непонятно каким методом попап грузится. Если вместе с глобальным шаблоном, то правка должна работать.

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

Опубликовано:
  • Автор

Но до конца не уверен, поскольку в вашем файле 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.

Опубликовано:
  • Автор

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

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

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

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.