Block login utilisateur aprés 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.

Bonsoir,

Nouveau sur Drupal, j'essaye de faire en sorte qu'une fois qu'un utilisateur s'est connecté via le bloc "connection utilisateur" s'affiche à la place les éléments de son compte (chose normale mais apparament compliqué de base sur drupal).

Du coup aprés quelques recherches, j'ai identifié les éléments qu'il me fallait modifier, mais j'ai aussi vu qu'il ne fallait pas modifier directement le core, mais surcharger dans le fichier template.php

Les éléments que je dois modifier sont ici :

module/user/user.module l.728

if (!$user->uid && !(arg(0) == 'user' && !is_numeric(arg(1)))) {
   $block['subject'] = t('User login');
   $block['content'] = drupal_get_form('user_login_block');
}

Il me suffit donc juste de mettre un else et de placer les éléments que je souhaite juste derriere et tout fonctionne nikel.

Sauf que je voudrais rester dans les "best practice" et donc surchager pour conserver la possibilité d'update le core par la suite. Le seul soucis c'est que le code est dans la méthode user_block qui ne sert pas qu'à ça ...

J'ai du louper un truc quelque part, si quelqu'un pouvait m'orienter sur la bonne démarche ... surtout que ce genre de besoin est assez courant ...

Merci :)

Forum : 
Version de Drupal : 

Nan !! pas bon ça :)

Ce qu'il faut faire c'est créer un petit module custom (qui te servira tout au cour de ton projet) et y ajouter ton propre bloc qui affiche les informations de l'utilisateur connecté.

http://arnumeral.fr/node/41

L'astuce ensuite consiste à rendre visible ton nouveau bloc que pour les utilisateurs authentifié et de le déplacer juste à côté du bloc de connexion. Ainsi dés que l'utilisateur c'est connecté, le bloc de connexion disparaît et le tient apparaît. Fini propre, et bouclé en 5 minutes.

Ok, je vais partir la dessus.

La logique de ce bloc est quant même bizarre car dans l'admin du bloc tu as beau cocher utilisateur connecté / déconnecté rien n'influe sur l'affichage ...

Ou alors c'est ma logique qui est bizarre, peut être aussi :)

En tout cas merci pour l'info, si c'est comme ça la bonne méthode alors let's go :)

Bonjour choomz et yoran,

Je suis confronté au même problème. J'ai bien compris la solution mais je me pose toujours une question : pourquoi quand je repasse sur le thème Garland, les infos utilisateur (le nom) s'affiche bien une fois qu'on se connecte alors que je ne vois pas de fonctions particulières dans template.php ou dans les .tpl. ?

Merci,

Fab.

Bon... autant pour moi : en réalité le nom de l'utilisateur connecté affiché dans le thème garland provient du bloc "navigation" et non du bloc "connexion utilisateur, qui du coup fonctionne quelque soit le thème quand on affiche le bloc "navigation". J'avais tout simplement désactivé ce bloc dans mon thème.
Bref on est bien obligé de faire un petit bout de code pour afficher le nom de l'utilisateur connecté.