web-dev-qa-db-fra.com

Afficher le bloc sur / page de profil utilisateur uniquement

Je souhaite afficher un bloc lorsqu'un utilisateur visite sa propre page de profil sur/user. Les profils d'utilisateurs publics ont des chemins d'accès "/ membre/[nom d'utilisateur]".

Lorsque je limite le bloc à "utilisateur", il n'apparaîtra pas. Lorsque je le limite à "membre/*", il apparaîtra à la fois sur le profil personnel et sur les profils publics.

L'URL "utilisateur" est-elle spéciale?

10
uwe

Ce que @clive a mentionné est formidable si vous souhaitez utiliser /user pour cela, mais sous un certain nombre d'angles, je n'aime vraiment pas du tout l'utiliser pour ce genre de chose. Je voudrais dire surtout du point de vue du style, mais en fait plus du point de vue des liens, par exemple, un e-mail ou un message qui comprend check out my cool profile on mototribe: www.mototribe.com/user bollixant les choses.

Donc, quand j'ai fait des trucs comme ça, j'inclus la logique php dans ma vue de bloc selon:

$global $user;
$block=array();
$node=menu_get_object();

if ($node->type==THENODETYPEWEARELOOKINGFOR && $node->uid==$user->uid) {
  // generate the block here
} else {
  // don't generate anything (or put something else in it's place)
}

return $block;

de sorte que le bloc n'est généré que lorsque l'utilisateur actuellement connecté regarde un certain type de nœud qu'il possède. Évidemment, je n'ai pas étoffé tous les isset () s ou empty () s nécessaires aux heures de grande écoute pour ce qui précède, mais je suis sûr que vous obtenez l'essentiel.

Bien sûr, je pourrais également parler de claque totale si les profils utilisateur D7 ne sont pas des nœuds, mais cela fonctionne très bien en D6 avec des profils de contenu :)

2
Jimajamma