Nur Block auf / Benutzerprofilseite anzeigen

10

Ich möchte einen Block anzeigen, wenn ein Benutzer seine eigene Profilseite unter / user besucht. Die öffentlichen Benutzerprofile haben die Pfade "/ member / [Benutzername]".

Wenn ich den Block auf "Benutzer" beschränke, wird er nicht angezeigt. Wenn ich es auf "member / *" beschränke, wird es sowohl im eigenen Profil als auch in den öffentlichen Profilen angezeigt.

Ist die "Benutzer" -URL etwas Besonderes?

uwe
quelle
2
Es funktioniert auch für "user / *", was mich denken lässt, dass der interne Alias ​​für die userSeite tatsächlich user/[uid]... möglicherweise auf PHP zurückgreifen muss: /
Clive
7
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);wird den Trick machen
Clive
1
@Clive Wie üblich das
Feuer
@Clive, wollte dir nur weitere Requisiten für diese Antwort geben. Ein Jahr später fand ich diese Seite wieder. Danke noch einmal!
Hockey2112

Antworten:

2

Was @clive erwähnt hat, ist großartig, wenn Sie es dafür verwenden möchten /user, aber aus einer Reihe von Blickwinkeln mag ich es überhaupt nicht, es für solche Dinge zu verwenden. Ich würde gerne hauptsächlich aus einer check out my cool profile on mototribe: www.mototribe.com/userStilperspektive sagen, aber eigentlich eher aus einer Verknüpfungsperspektive, z. B. einer E-Mail oder einem Post, der das Zusammenfügen von Dingen beinhaltet .

Wenn ich so etwas gemacht habe, füge ich PHP-Logik in meine Blockansicht ein, wie folgt:

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

Daher wird der Block nur generiert, wenn der aktuell angemeldete Benutzer einen bestimmten Knotentyp betrachtet, den er besitzt. Natürlich habe ich nicht alle isset () s oder leeren () s ausgearbeitet, die zur Hauptsendezeit für das oben Genannte benötigt werden, aber ich bin sicher, dass Sie den Jist bekommen.

Natürlich könnte ich hier auch total klatschen, wenn D7-Benutzerprofile keine Knoten sind, aber das funktioniert in D6 mit Inhaltsprofilen hervorragend :)

Jimajamma
quelle
Das ist ein großartiger Punkt und ein Grund, / user nicht zu verwenden. Ich denke, ich kann PHP verwenden, um zu überprüfen, ob der angemeldete Benutzer sein eigenes Profil betrachtet, um den zusätzlichen Block anzuzeigen. Vielen Dank
uwe
Kombination von Ihrem und Clives Code: global $ user; return arg (0) == 'user' && is_numeric (arg (1)) &&! arg (2) && $ user-> uid == arg (1); Danke noch einmal!!!
Uwe