[Résolu] Comment modifier le formulaire de login ?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je souhaiterais permettre après la validation du formulaire de login, rediriger vers la page précédente (celle qui s'affichait quand on était pas connecté au site « Accès refusé »). Par défaut, après la connexion, Drupal présente la page d'accueil du site.

J'ai un peu fouiner sur la toile et j'ai trouvé ceci (source) :

<?php
l
(t('Login'),'user/login', array(), drupal_get_destination());
l(t('Uitloggen'), 'logout', array(), drupal_get_destination());
?>

Ou ceci (source) :

<?php
$destination
= drupal_get_destination();
print
l('Login', 'user/login', array('query' => $destination));
?>

Le problème est que je n'ai pas la moindre idée de l'endroit où mettre ceci ?!

Si quelqu'un pouvait éclairer ma lanterne...

Merci :)

Forum : 
Version de Drupal : 

La manière la plus simple (à mon avis) de faire cela est d'implémenter un hook_form_alter et d'ajouter au $form['#submit'][] ta propre procédure de soumission (pas sur que ce soit une traduction pertinente de "submit" ;-). Tu pourras alors mettre 1/ la vérification de la bonne authentification (en vérifiant que $GLOBALS['user']->uid est bien <> 0) 2/ une redirection vers ta page via un drupal_goto.

Maintenant, et c'est rare que je dise cela, le module "rules" permet de faire cela et beaucoup d'autres choses sous la forme évènement/conditions/actions.

Merci pour ta réponse mais dans quel fichier dois-je modifier pour ce faire ?

J'ai aussi regardé du côté de « Rules » et je n'ai pas trouvé de quoi récupérer le HTTP referer. C'est certain que cette solution m'aurait simplifié la vie...

Tu dois créer un module pour implémenter un hook. Tu as de nombreux tutos sur internet pour faire cela, ce n'est pas très compliqué.

Sinon si tu as besoin de faire des redirections en fonction du referrer, le code custom se justifie en effet plus que le module Rules.