Afficher le bloc sur / page de profil utilisateur uniquement

10

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?

uwe
la source
2
Cela fonctionne aussi pour "user / *" ce qui me fait penser que l'alias interne de la userpage est en fait user/[uid]... pourrait avoir à recourir à PHP pour celui-ci: /
Clive
7
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);fera l'affaire
Clive
1
@Clive Comme d'habitude abandonnant le FEU dans les commentaires = D
Feu numérique
@Clive, je voulais juste vous donner d'autres accessoires pour cette réponse. Un an plus tard, j'ai retrouvé cette page. Merci encore!
hockey2112

Réponses:

2

Ce que @clive a mentionné est génial si vous voulez l'utiliser /userpour 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 principalement 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 inclut des check out my cool profile on mototribe: www.mototribe.com/useréléments de bollixing.

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 ici si les profils utilisateur D7 ne sont pas des nœuds, mais cela fonctionne très bien en D6 avec des profils de contenu :)

Jimajamma
la source
c'est un excellent point et une raison de ne pas utiliser / user. Je suppose que je peux utiliser du PHP pour vérifier si l'utilisateur connecté regarde son propre profil pour afficher le bloc supplémentaire. Merci
uwe
Combinaison du vôtre et du code de Clive: global $ user; return arg (0) == 'user' && is_numeric (arg (1)) &&! arg (2) && $ user-> uid == arg (1); Merci encore!!!
uwe