Вопрос по компоненту авторизация. Как после авторизации вернуться на страницу с которой уходил. Ввести определенную страницу, это я нашел. А вот чтобы автоматом определял и оставлял на нужной странице?
Re: com_login после авторизации Ковырять ядро. Хотя, как мне помнится, она нормально работала и редиректила туда, где был до входа.
Re: com_login после авторизации Dead Krolik а есть мысли какой файл и на тему чего ковырять? очень надо...
Re: com_login после авторизации kukusya, не разобрались? бьюсь второй день над проблемой, пока безрезультатно...
Re: com_login после авторизации В общем нашел решение здесь: http://forum.joomla.org/viewtopic.php?f=472&t=342620 I found *part* of the answer. The JURI object returns the actual URL, whether SEF or index.php based. So to apply this, I went into the components/com_user/controller.php and made two changes. First, I commented out these lines in the login method: Code: if(!JError::isError($error)) { // Redirect if the return url is not registration or login if ( ! $return ) { $return = 'index.php?option=com_user'; } $mainframe->redirect( $return ); } else { // Facilitate third party login forms if ( ! $return ) { $return = 'index.php?option=com_user&view=login'; } // Redirect to a login form $mainframe->redirect( $return ); } And I added this: Code: //Jackie's hack to redirect user to same page they were on after login $jackieURL =& JFactory::getURI(); $jackieURL = $jackieURL->toString(); $mainframe->redirect($jackieURL); (I named my variables after myself so I didn't have to worry about name collision, as it occured to me $URL was likely a common variable name). Second, I did a similar thing in the logout method. However, for some reason it isn't working there; logging out sitll redirects me to the front page. Also... I haven't yet figured out what to do about the register_save method. This is trickier, because the register page is at it's own URL, not a module so JURI won't work. I need to redirect to the page *before* the register page and don't yet know how to do that. So... I've done my very first hack. TADA!
Re: com_login после авторизации Тоесть логин действительно не переадресовывает... но вот логаут продолжает...
Re: com_login после авторизации Разобрался и с логаутом... www\modules\mod_login\tmpl\default.php Изменяем чтобы приняло такой вид: <form action="index.php" method="post" name="login" id="form-login"> <?php if ($params->get('greeting')) : ?> <div> <?php if ($params->get('name')) : { echo JText::sprintf( 'HINAME', $user->get('name') ); } else : { echo JText::sprintf( 'HINAME', $user->get('username') ); } endif; ?> </div> <?php endif; ?> <div align="center"> <input type="submit" name="Submit" class="button" value="<?php echo JText::_( 'BUTTON_LOGOUT'); ?>" /> </div> <input type="hidden" name="option" value="com_user" /> <input type="hidden" name="task" value="logout" /> <?php $jackieURL2 =& JFactory::getURI(); $jackieURL2 = $jackieURL2->toString(); #$mainframe->redirect('http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']); ?> <input type="hidden" name="return" value="<?php #echo $return; echo base64_encode($jackieURL2); ?>" /> </form> Теперь и логинится и разлогинивается, оставаясь на той же странице...
Re: com_login после авторизации Еще проще и правильнее сделать так: The problem has been fixed in 1.5.10 release. If you are using yoologin module then you should modify a helper.php that comes with it find and replace this : Code: $url = JURI::base(true); with this: Code: //stay on same page $uri = JFactory::getURI(); $url = $uri->toString(array('path', 'query', 'fragment')); the redirection page in module parameters must be NOT SET (aka -Select Item-)
Я использую yoo login. удалось исправить и его. выкладываю: modules/mod_yoo_login/tmpl/quick.php (поскольку я использую стиль quick.php) хотя думаю значения не имеет. редактируйте нужный. находим Код (CODE): <input type="hidden" name="return" value="<?php echo $return; ?>" /> такие строчки 2 раза упоминаются в этом файле - для логоута и для логина. заменяем их на Код (CODE): <?php $jackieURL2 =& JFactory::getURI(); $jackieURL2 = $jackieURL2->toString(); #$mainframe->redirect('http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']); ?> <input type="hidden" name="return" value="<?php #echo $return; echo base64_encode($jackieURL2); ?>" /> после такой модификации при входе или выходе вы будете возвращаться на исходную страницу. текст заменять в обоих случаях (в обоих строчках)