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?


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 :)


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.