Traitement lors de la première connection

Bonjour,

Je souhaite effectuer un traitement lors de la première connexion d'un utilisateur.

J'ai remarqué que cet évènement a lieu lorsque les champs 'created' et 'changed' de la table users sont identiques.
Par contre, je ne sais pas où placer le test pour faire une redirection normale ou rediriger sur ma page de traitement spécifique.

J'ai trouvé la fonction drupal_goto() dans includes/common.inc, mais je ne sais pas comment l'utiliser.

Merci d'avance pour votre aide.
@+

Forum : 

Le mieux est probablement que tu t'accroches sur l'événement "login" de hook_user().

Ainsi par exemple:

<?php
 
function monmodule_user($op, &$edit, &$account, $category = NULL) {
   if (
$op == "login") {
      if (<
c'est la première fois que je fais le traitement>) {
          drupal_goto("mapagedetraitement");
      }
   }
 }
?>

D'ailleurs je te conseille de raisonner en "je n'ai jamais fais le traitement pour cet utilisateur" plutôt qu'en "l'utilisateur se connecte pour la première fois". C'est assez facile à faire, par exemple en sauvegardant cette information dans $user/$edit (elle sera sauvegardée automatiquement par drupal).

  • DamZ

Tout d'abord je te remercie pour ta réponse.

Par contre, c'est ma première modification du code pur et dur et j'ai du mal à adapter ce que tu m'as dit.

Faut-il que j'ajoute du code dans la fonction user_login() du module user.module ? Ce code appelle-t-il juste la fonction monmodule_user() ? Et dois-je mettre cette fonction dans le module user.module ?

Merci d'avance pour tes précisions,
@+

Ni l'un ni l'autre. Je t'ai proposé un bout de code pour un module.

Si ton module s'appelle "monmodule", le code de drupal va automatiquement appeller la fonction monmodule_user() lorsque c'est nécessaire. C'est ce qui s'appelle en language drupal un "hameçon" (un "hook"): une fonction définie dans un module et appellée automatique par le code de drupal.

Pour plus d'information sur les modules, tu peux te reporter directement au "Creating modules - a tutorial" [1], un document un peu ancien (il y a des mentions de "drupal 4.5" dedans) mais qui est encore largement à jour et qui mériterait une traduction en français.

  • DamZ

[1] http://drupal.org/node/17914