Есть вопрос по авторизации в админку. Как убрать автоматический переблос на страницу профиля пользователя?
Прислано: t1mm1
пн, 16/06/2008 - 07:50
Как убрать автоматический переброс на страницу профиля пользователя?
то есть при авторизации автоматом перебрасывает из http://sitename[dot]ua/user на http://sitename[dot]ua/user/manager
как сделать, чтобы перебрасывало на http://sitename[dot]uа ?
собственно есть одно решение через значения массива $_SERVER , но там грубо напильником работать не очень хочется (основная трабла будет потом в том, что при попытке отредактировать профиль будет выкидывать на страницу "переназначения" )...
то есть можно вставить такой вот код на страницу index.php
if(strpos($_SERVER['REQUEST_URI'],'users/manager')) {
header('Location:'.$_SERVER['HOST_NAME']);
}
но... это слишком грубо )))))
может есть варианты с наждачкой - нулевкой по этой проблеме?))
спасибо )
- t1mm1's blog
- Для комментирования войдите или зарегистрируйтесь
смотреть в сторону destination
т.е. в простейшем случае если у вас вместо ссылки
http://sitename[dot]ua/user будет стоять http://sitename[dot]ua/user?destination=sitename[dot]ua, то после авторизации вы попадете
на sitename[dot]ua
- Для комментирования войдите или зарегистрируйтесь
спасибо за подсказку... но там я уже порылся. не могу понять каким образом друпал формирует редирект при корректной авторизации.
мне попросту надо поменять редирект при авторизации не на страницу профиля, а на хост_нэйм.
вот таке...
нашел где обрабатывается сабмит (слава Зенде=) ), но я там не увидел функции drupall_goto , которая по идее и перебрасывает куда надо через дестинейшн.
вот таке.
а резать и пилить напильником модуль - я то могу, но это до первого обновления... ((
- Для комментирования войдите или зарегистрируйтесь
Так авторизация или регистация ? по идее после авторизации и так попадаете на главную страницу,
если регистрация то в template.php определяете функция
<?php
function phptemplate_user_register($form) {
$_REQUEST['destination']='бла-бла-бла';
return drupal_render($form);
// или через файл user_register.tpl.php - тут можно поменять вывод формы
// return _phptemplate_callback('user_register', array('form' => $form));
}
?>- Для комментирования войдите или зарегистрируйтесь
не, именно авторизация
кидает после авторизации сразу на страницу профиля.
собственно в этом ничего страшного нет. но хочу понять как перебросить на главную страницу или на какой либо другой адресс...
в тимплейт файле можно прописать переопределение функции... но какое название этой самой функции
(при регистрации возьму на заметку вами написанное, думаю пригодиться )
- Для комментирования войдите или зарегистрируйтесь
function phptemplate_user_login($form)
или
function phptemplate_user_login_block($form) - это для входа через блок
- Для комментирования войдите или зарегистрируйтесь
напильник и молоток делают иногда чудеса =)
в индексе прописал
if(($_SERVER['HTTP_REFERER'] == 'http://*******.ru/user') or ($_SERVER['HTTP_REFERER'] == 'http://*******.ru/user')) {
if(strpos($_SERVER['REQUEST_URI'],'users/manager') or strpos($_SERVER['REQUEST_URI'],'users/admin')) {
header('Location:../../');
}
}
пока сделал так. работает. но этож тема друпалла получается непереносима... хотя пофиг, но надо до конча доделывать начатое )
function phptemplate_user_login($form) - это переопределение функции вывода формы авторизации...
а как в ней переопределить значение action , чтобы вставить туда явно значение destination ?
- Для комментирования войдите или зарегистрируйтесь
Ну я ж вам написал :)
<?php
function phptemplate_user_login($form) {
$_REQUEST['destination']='Ваш-сайт';
return drupal_render($form);
}
function phptemplate_user_login_block($form) {
$_REQUEST['destination']='Ваш-сайт';
return drupal_render($form);
}
?>Вставте это в temlate.php вашей темы
вместо 'Ваш сайт' куда редиректить
PS. Да все это дейсвительно для D5.x
- Для комментирования войдите или зарегистрируйтесь
Ну я ж вам написал :)
<?php
function phptemplate_user_login($form) {
$_REQUEST['destination']='Ваш-сайт';
return drupal_render($form);
}
function phptemplate_user_login_block($form) {
$_REQUEST['destination']='Ваш-сайт';
return drupal_render($form);
}
?>Вставте это в temlate.php вашей темы
вместо 'Ваш сайт' куда редиректить
PS. Да все это дейсвительно для D5.x
А для D6 как такое же можно сделать?
- Для комментирования войдите или зарегистрируйтесь



Комментарии