Mostrar solo bloque en / página de perfil de usuario

10

Quiero mostrar un bloqueo cuando un usuario visita su propia página de perfil en / user. Los perfiles de usuario públicos tienen rutas de "/ member / [nombre de usuario]".

Cuando limito el bloque a "usuario" no aparecerá. Cuando lo limito a "miembro / *" se mostrará tanto en el propio perfil como en los públicos.

¿La url de "usuario" es algo especial?

uwe
fuente
2
También funciona para "usuario / *", lo que me hace pensar que el alias interno de la userpágina es en realidad user/[uid]... podría tener que recurrir a PHP para este: /
Clive
77
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);hará el truco
Clive
1
@Clive Como siempre, soltando el FUEGO en los comentarios = D
Fuego digital
@Clive, solo quería darte más accesorios para esta respuesta. Un año después, y encontré esta página nuevamente. ¡Gracias de nuevo!
hockey2112

Respuestas:

2

Lo que @clive ha mencionado es genial si quieres usarlo /userpara esto, pero desde varios ángulos, realmente no me gusta usarlo para este tipo de cosas. Me gustaría decir principalmente desde una perspectiva de estilo, pero en realidad más desde una perspectiva de vinculación, por ejemplo, un correo electrónico o una publicación que incluye check out my cool profile on mototribe: www.mototribe.com/userbollixing cosas.

Entonces, cuando he hecho cosas como esta, incluyo la lógica php en mi vista de bloque a lo largo de las líneas de:

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

por lo tanto, el bloque solo se genera cuando el usuario actualmente conectado mira un cierto tipo de nodo que posee. Obviamente, no he desarrollado todos los isset () s o empty () s necesarios en el horario estelar para lo anterior, pero estoy seguro de que obtienes el jist.

Por supuesto, también podría estar hablando totalmente si los perfiles de usuario D7 no son nodos, pero esto funciona muy bien en D6 con perfiles de contenido :)

Jimajamma
fuente
ese es un gran punto y una razón para no usar / usuario. Supongo que puedo usar PHP para verificar si el usuario conectado está mirando su propio perfil para mostrar el bloque adicional. Gracias
uwe
Combinación de los suyos y el código de Clive: global $ user; return arg (0) == 'usuario' && is_numeric (arg (1)) &&! arg (2) && $ user-> uid == arg (1); ¡¡¡Gracias de nuevo!!!
Uwe