2012-02-29 4 views
0

일부 수준에서 로그인해야하는 구성 요소를 개발 중입니다. 그런 다음 사용자가 로그인하지 않은 경우 쿼리 문자열에서 다음과 함께 로그인 페이지로 이동하는 로그인 링크를 배치했습니다. 로그인 후Joomla에 등록한 후 어쨌든 이전 URL로 리디렉션 하시겠습니까?

return=<?php echo base64_encode($_SERVER['REQUEST_URI']);?> 

, 그것은 다시 해당 페이지에 제공되지만 사용자가 등록되지 않은 사용자가 등록 시작하면이 문제를 해결하기위한 몇 가지 방법은 무엇입니까? Joomla 자체에서 어떤 것을 변경하지 않고 이것을 할 수있는 방법이 있습니까? 쿠키 e.t.c에 몇 가지 설정 만하면됩니다. 또는 Joomla 등록 구성 요소 또는 모듈에서 일부 항목을 변경해야합니다. 또는 거기에 대한 플러그인이 있습니까?

어떤 응답이라도 감사 할 것입니다. 내가 아는 어떤 방식으로 알려 주시면 더 나은 단서를 제공 할 수 있습니다.

답변

0

구성 요소에 Joomla!의 리퍼러를 저장할 수 있습니다. session - 나는 세션이 바뀌거나 로그인하는 동안 바뀌지 않는다고 생각합니다. 나는 이것을 시도 할 시간이 없었지만 효과가있다.

은 다음에 저장하기 :

$session = JFactory::getSession(); 
$session->set('theReferrer', $_SERVER['HTTP_REFERER'], 'mycomponentname'); 

는 검색하려면 다음을 반환하기 전에

$session = JFactory::getSession(); 
$redirectTo = $session->get('theReferrer', '', 'mycomponentname'); 

그런 다음 당신은 단지 setRedirect를 사용할 수 있습니다.

$this->setRedirect($redirectTo); 
+0

그래서 나는 로그인 파일을 수정해야합니다 검색 joomla 그 자체가 그런 일이 없어 buitin – Hafiz

0

플러그인을 사용하여이를 수행 할 수 있습니다 (적어도 Joomla 3.x에서는 이것이 얼마나 멀리 떨어져 있는지 확실하지 않음). 여기서 중요한 것은 onUserAfterSave 이벤트입니다.이 이벤트는 사용자가 신규인지 기존인지를 알려줍니다.

언젠가 이전에 코드를 작성 했으므로 onUserAfterSave 이벤트 핸들러에서 리디렉션을 수행 할 수없는 정확한 이유를 기억할 수 없지만 리다이렉트가 나중에 코어 Joomla 사용자 관리 코드의 다른 부분에서 재정의됩니다 거기서부터하려고하면, 세션에 플래그를 저장하고 나중의 이벤트 핸들러에서 검사합니다.

관련 문제