Submitted by choomz on
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 :)
Nan !! pas bon ça :) Ce
Permalien Soumis par Yoran le 19 Mars, 2010 - 09:30
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
Permalien Soumis par choomz le 19 Mars, 2010 - 15:08
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 :)
Disons que c'est une logique
Permalien Soumis par Yoran le 19 Mars, 2010 - 15:21
Disons que c'est une logique qui est contestable sur pas mal d'aspect mais qui fonctionne assez bien sur d'autres.
J'avoue, en tout cas je suis
Permalien Soumis par choomz le 19 Mars, 2010 - 15:38
J'avoue, en tout cas je suis en train de me taper tes tutos, bravo, bien foutu !!!
Merci :)
Bonjour choomz et yoran, Je
Permalien Soumis par FFFFFFFab le 16 Juin, 2010 - 20:04
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
Permalien Soumis par FFFFFFFab le 17 Juin, 2010 - 17:20
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é.