Redirecionar usuários para a última página visitada, após o login do componente


8

No Joomla 3.5.1, quero redirecionar os usuários para a página em que estavam antes de efetuar login.

Se eles fizerem login no mod_login, não há problema, uma vez que o módulo está pendente no menu superior, eles permanecem nessa página.

O problema ocorre quando os usuários efetuam login no componente: eles sempre são redirecionados para a página de perfil.

No item de menu, index.php?option=com_users&view=loginhá uma opção para redirecionar os usuários após o login.

Mas como eu digo: " Get them back to the page they were before"?

Certos componentes estão anexando algo como:

?return=L2YlQzMlQjNydW0tcGVyZ3VudGFzLWUtcmVzcG9zdGFzL2NvbnZlcnNhdGi9yZWFkLmh0bWw/aWQ9MjU=

Para o URL, solicitando um redirecionamento para uma página específica.

Mas eles sempre retornam à página de perfil.


they always go back to the profile page.isso acontece comigo, independentemente de modificar como o @Lodder sugeriu.
kokbira

Respostas:


7

Muito simples de fazer isso.

Em primeiro lugar, você precisará criar uma Substituição de modelo para o seguinte arquivo:

components/com_users/views/login/tmpl/default_login.php

Uma vez feito, abra o seguinte arquivo (sua substituição):

templates/MY_TEMPLATE/html/com_users/login/default_login.php

e vá para a linha 81, onde você verá o seguinte código:

<input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url', $this->form->getValue('return'))); ?>" />

e substitua-o por:

<input type="hidden" name="return" value="<?php echo base64_encode($_SERVER['HTTP_REFERER']); ?>" />

Espero que isto ajude


+1 Ótima ideia. Não tenho certeza se a opção $_SERVER['HTTP_REFERER']é sempre válida, mas gosto da ideia.
Mavrosxristoforos

@mavrosxristoforos - Sim, ele tem algumas desvantagens . Uma solução mais avançada e confiável envolveria um plugin sistema, fazendo uso de uma sessão ou um cookie
Lodder

Muito obrigado por ajudar, eu tenho usado substituições de modelos para o K2 há anos, mas para o núcleo do Joomla parece impossível. Examinei as instruções no seu link, incluindo a seção "Criando substituições", mas as alterações que faço são ignoradas.
Nuno Nogueira

@NunoNogueira - O arquivo que você abre para fazer as alterações, o caminho corresponde ao que eu forneci na minha resposta (segundo trecho de código)? Deve ser exatamente o mesmo, além de MY_TEMPLATEque, naturalmente, é o nome do seu modelo
Lodder

@NunoNogueira - Cometi um erro com o caminho, atualizei-o agora. (remove /view/)
Lodder
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.