Pokaż tylko blok na stronie / profilu użytkownika

10

Chcę pokazać blok, gdy użytkownik odwiedza swoją stronę profilu w / user. Publiczne profile użytkowników mają ścieżki „/ member / [nazwa użytkownika]”.

Kiedy ograniczę blok do „użytkownika”, nie pojawi się. Gdy ograniczę go do „member / *”, będzie on wyświetlany zarówno na profilu własnym, jak i profilach publicznych.

Czy URL użytkownika jest czymś wyjątkowym?

uwe
źródło
2
Działa również w przypadku „user / *”, co sprawia, że ​​myślę, że wewnętrzny alias userstrony to user/[uid]… może być konieczne użycie PHP: /
Clive
7
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);rade
Clive
1
@Clive Jak zwykle upuszczając POŻAR w komentarzach = D
Cyfrowy ogień
@Clive, chciałem dać ci dalsze rekwizyty dla tej odpowiedzi. Rok później znów znalazłem tę stronę. Dzięki jeszcze raz!
hockey2112

Odpowiedzi:

2

To, o czym wspomniał @clive, jest świetne, jeśli chcesz do tego użyć /user, ale pod wieloma względami naprawdę nie lubię go używać do tego rodzaju rzeczy. Chciałbym powiedzieć głównie z perspektywy stylu, ale w rzeczywistości bardziej z perspektywy łączenia, np. E-maila lub postu, które zawierają check out my cool profile on mototribe: www.mototribe.com/userelementy dodające więcej energii.

Więc kiedy robię takie rzeczy, włączam logikę php do mojego widoku bloku zgodnie z następującymi zasadami:

$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;

więc blok jest generowany tylko wtedy, gdy aktualnie zalogowany użytkownik patrzy na określony typ węzła, którego jest właścicielem. Oczywiście nie rozwinąłem wszystkich isset () lub pustych () potrzebnych w powyższym czasie, ale jestem pewien, że dostaniesz pierwszy.

Oczywiście mógłbym również mówić tutaj o całkowitym klapsie, jeśli profile użytkowników D7 nie są węzłami, ale działa to świetnie w D6 z profilami treści :)

Jimajamma
źródło
to świetny punkt i powód, aby nie używać / user. Chyba mogę użyć PHP, aby sprawdzić, czy zalogowany użytkownik patrzy na swój profil, aby wyświetlić dodatkowy blok. Dzięki
uwe
Połączenie twojego kodu Clive: global $ user; return arg (0) == 'user' && is_numeric (arg (1)) &&! arg (2) && $ user-> uid == arg (1); Dzięki jeszcze raz!!!
uwe