Redirige les utilisateurs vers la dernière page visitée, après connexion depuis le composant

8

Dans Joomla 3.5.1, je souhaite rediriger les utilisateurs vers la page qu'ils étaient avant de se connecter.

S'ils se connectent à partir de mod_login, pas de problème, puisque le module est en attente dans le menu supérieur, ils restent simplement sur cette page.

Le problème se produit lorsque les utilisateurs se connectent à partir du composant: ils sont toujours redirigés vers la page de profil.

Dans l'élément de menu, index.php?option=com_users&view=loginil y a une option pour rediriger les utilisateurs après la connexion.

Mais comment savoir: " Get them back to the page they were before"?

Certains composants ajoutent quelque chose comme:

?return=L2YlQzMlQjNydW0tcGVyZ3VudGFzLWUtcmVzcG9zdGFzL2NvbnZlcnNhdGi9yZWFkLmh0bWw/aWQ9MjU=

À l'URL, demandant une redirection vers une page spécifique.

Mais ils reviennent toujours à la page de profil.

Nuno Nogueira
la source
they always go back to the profile page.cela m'arrive, indépendamment de la modification comme l'a suggéré @Lodder.
kokbira

Réponses:

7

C'est assez simple pour ce faire.

Vous devrez d'abord créer un remplacement de modèle pour le fichier suivant:

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

Une fois cela fait, ouvrez le fichier suivant (votre remplacement):

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

et allez à la ligne 81, où vous verrez le code suivant:

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

et remplacez-le par:

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

J'espère que cela t'aides

Lodder
la source
+1 Très belle idée. Je ne sais pas si $_SERVER['HTTP_REFERER']c'est toujours un choix valable, mais j'aime l'idée.
mavrosxristoforos
@mavrosxristoforos - Oui, il a quelques inconvénients . Une solution plus avancée et plus fiable impliquerait un plugin système, utilisant une session ou un cookie
Lodder
Merci beaucoup pour votre aide, j'utilise des substitutions de modèle pour K2 depuis des années, mais pour Core Joomla, cela semble impossible. J'ai regardé les instructions de votre lien, y compris la section "Création de remplacements" mais toutes les modifications que je fais sont ignorées.
Nuno Nogueira
@NunoNogueira - Le fichier que vous ouvrez pour y apporter des modifications, le chemin correspond-il à ce que j'ai fourni dans ma réponse (2e extrait de code)? Il devrait être exactement le même, à part MY_TEMPLATEbien sûr le nom de votre modèle
Lodder
@NunoNogueira - J'ai fait une erreur avec le chemin, je l'ai mis à jour maintenant. (supprimer /view/)
Lodder