Trotor 27 02/17/17 15:22 Есть хук который позволяет авторизироваться в попап-окне. Всё бы хорошо, но при авторизации с любой страницы форума, перебрасывает на главную, не редиректит на ту страницу откуда авторизировался. Как бы это исправить? <?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; } } Поделиться сообщением Ссылка на сообщение
Strategius 52 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''] ) ); Изменено 17 февраля 2017 пользователем Strategius Поделиться сообщением Ссылка на сообщение
Trotor 27 02/17/17 18:41 Заменить наВыдаёт ошибку:Parse error: syntax error, unexpected ''] ) ); ' (T_ENCAPSED_AND_WHITESPACE), expecting ']' in Поделиться сообщением Ссылка на сообщение
Strategius 52 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'] ) );По идее должно работать. Изменено 17 февраля 2017 пользователем Strategius Поделиться сообщением Ссылка на сообщение
Trotor 27 02/18/17 01:05 Или ПослеТоже не прокатило. Хорошо бы посмотреть хук этот.ЛовиАвторизация во всплывающем окне.zip Поделиться сообщением Ссылка на сообщение
Dmitriy427 198 02/18/17 02:03 По идее что-то такое нужно:$this->output = $this->registry->output->getTemplate( 'global' )->quickLoginForm();Заменить на:$this->output = $this->registry->output->getTemplate( 'global' )->quickLoginForm( $_SERVER['HTTP_REFERER'] );В настройках шаблона "quickLoginForm" добавить переменную:$referer = ''Но до конца не уверен, поскольку в вашем файле XML ничего кроме этого шаблона и языковой строки нет, непонятно каким методом попап грузится. Если вместе с глобальным шаблоном, то правка должна работать.Странный какой-то полуфабрикат, частично заливаемый, частично устанавливаемый и видимо должна быть ещё ручная правка глобального шаблона с яваскрипт. 2 Поделиться сообщением Ссылка на сообщение
Trotor 27 02/18/17 04:00 Но до конца не уверен, поскольку в вашем файле XML ничего кроме этого шаблона и языковой строки нет, непонятно каким методом попап грузится. Если вместе с глобальным шаблоном, то правка должна работать.Странный какой-то полуфабрикат, частично заливаемый, частично устанавливаемый и видимо должна быть ещё ручная правка глобального шаблона с яваскрипт.Вообще то да, забыл уточнить. В шаблон includeJS добавлялось это:.js,public/js/ips.quicklogin.js (после &f=public/js/ipb.js,public/js/ips.quickpm) Заменить на:иВ настройках шаблона "quickLoginForm" добавить переменную:Добавил. При авторизации, выдаёт nopermission на белой странице.Может quickLogin.php из директории ajax тоже следует отредактировать? Поделиться сообщением Ссылка на сообщение
newbie 1723 02/18/17 06:29 Достаточно отредактировать шаблон quickLoginFormВот похожая задача http://ipbskins.ru/forum/topic14993.html/page__view__findpost__p__100351 1 Поделиться сообщением Ссылка на сообщение
Dmitriy427 198 02/18/17 11:34 Достаточно отредактировать шаблон quickLoginFormА ну да. Заменить: <if test="referer:|:$referer"> <input type="hidden" name="referer" value="{$referer}" /> </if> На: <input type="hidden" name="referer" value="{$this->settings['this_url']}" />Хотя и с предыдущей правкой будет работать, отредактировал её. Поделиться сообщением Ссылка на сообщение
Trotor 27 02/18/17 15:31 Достаточно отредактировать шаблон quickLoginFormНе работает.При авторизации, выдаёт nopermission на белой странице. Хотя и с предыдущей правкой будет работать, отредактировал её.Хм... Тоже самое - выдаёт nopermission на белой странице. Поделиться сообщением Ссылка на сообщение
Dmitriy427 198 02/18/17 15:45 Вставьте в нaчало шаблона:<php>print $settings['this_url'];exit;</php>И скопируйте сюда url, что там в окне будет. P.S. Возможно, ещё потребуются правки яваскрипт, html кнопки "Быстрый вход" и аякс-обработчика.P.P.S. Правку в 6-ом сообщении ещё раз отредактировал, пробуйте. Замену строки, с вызовом шаблона "quickLoginForm()", нужно делать в обоих файлах quickLogin.php. 1 Поделиться сообщением Ссылка на сообщение
Trotor 27 02/18/17 19:42 P.P.S. Правку в 6-ом сообщении ещё раз отредактировал, пробуйте. Замену строки, с вызовом шаблона "quickLoginForm()", нужно делать в обоих файлах quickLogin.php.Вот! Правка помогла + замена строки именно в двух файлах. Спасибо. Поделиться сообщением Ссылка на сообщение
Dmitriy427 198 02/18/17 22:22 Вот! Правка помогла + замена строки именно в двух файлах. Спасибо.Помогло то, что я влез на ваш форум, посмотрел яваскрипт и код кнопки. Заливать нужно было полный архив с модификацией, а не один шаблон сиротливый. Поделиться сообщением Ссылка на сообщение