Mostrar bloco apenas na página de perfil do usuário

10

Quero mostrar um bloco quando um usuário visita sua própria página de perfil em / user. Os perfis de usuário público têm caminhos de "/ member / [nome de usuário]".

Quando limito o bloco a "usuário", ele não aparece. Quando o limite a "membro / *", ele será exibido no perfil próprio e nos perfis públicos.

O URL do "usuário" é algo especial?

uwe
fonte
2
Também funciona para "user / *", o que me faz pensar que o alias interno da userpágina é realmente user/[uid]... talvez seja necessário recorrer ao PHP para esta: /
Clive
7
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);fará o truque
Clive
1
@Clive Como de costume deixar cair o fogo em comentários = D
fogo Digital
@Clive, só queria lhe dar mais props para esta resposta. Um ano depois, encontrei esta página novamente. Obrigado novamente!
hockey2112

Respostas:

2

O que o @clive mencionou é ótimo se você quiser usar /userisso, mas de vários ângulos, eu realmente não gosto de usá-lo para esse tipo de coisa. Eu gostaria de dizer principalmente de uma perspectiva de estilo, mas, na verdade, mais de uma perspectiva de vinculação, por exemplo, um e-mail ou postagem que inclua a check out my cool profile on mototribe: www.mototribe.com/usermistura de coisas.

Então, quando eu fiz coisas assim, incluí a lógica php na minha exibição de blocos ao longo das linhas 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;

portanto, o bloco é gerado apenas quando o usuário conectado no momento olha para um determinado tipo de nó que ele possui. Obviamente, eu não especifiquei todos os isset () ou vazio () s necessários no horário nobre para o acima exposto, mas tenho certeza que você entendeu.

Claro, eu também poderia estar falando aqui se os perfis de usuário do D7 não forem nós, mas isso funciona muito bem no D6 com perfis de conteúdo :)

Jimajamma
fonte
esse é um ótimo ponto e um motivo para não usar / usuário. Eu acho que posso usar um pouco de PHP para verificar se o usuário conectado está olhando para seu próprio perfil para mostrar o bloco extra. Obrigado
uwe
Combinação do seu e do código de Clive: global $ user; return arg (0) == 'usuário' && is_numeric (arg (1)) &&! arg (2) && $ user-> uid == arg (1); Obrigado novamente!!!
Uwe