/ user profile 페이지에서만 블록 표시


10

사용자가 / user에서 자신의 프로필 페이지를 방문 할 때 블록을 표시하고 싶습니다. 공개 사용자 프로파일에는 "/ member / [username]"경로가 있습니다.

블록을 "사용자"로 제한하면 표시되지 않습니다. "member / *"로 제한하면 자체 프로필과 공개 프로필 모두에 표시됩니다.

"사용자"URL이 특별한가요?


2
또한 "user / *"에서도 작동하므로 user페이지 의 내부 별명 이 실제로는 user/[uid]... 이것에 대해 PHP를
Clive

7
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);트릭을 수행합니다
Clive

1
@Clive 평소 코멘트에서 화재를 삭제 = D
디지털 화재

@Clive,이 답변에 대한 추가 소품을 제공하고 싶었습니다. 1 년 후이 페이지를 다시 찾았습니다. 다시 감사합니다!
hockey2112

답변:


2

@clive가 언급 한 것은 /user이것을 사용하고 싶을 때 훌륭 하지만, 여러 각도에서, 나는 이런 종류의 일을 위해 그것을 사용하는 것을 정말로 좋아하지 않습니다. 나는 주로 스타일 관점에서 말하고 싶지만 실제로 check out my cool profile on mototribe: www.mototribe.com/user볼링 을 포함하는 이메일이나 게시물과 같은 링크 관점에서 더 많이 말하고 싶습니다.

따라서 이와 같은 작업을 수행하면 다음 행을 따라 블록 뷰에 PHP 논리를 포함시킵니다.

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

따라서 현재 로그인 한 사용자가 소유 한 특정 노드 유형을 볼 때만 블록이 생성됩니다. 분명히 위의 프라임 타임에 필요한 모든 isset () 또는 empty ()을 찾아 내지는 않았지만 jist를 얻을 것이라고 확신합니다.

물론, D7 사용자 프로필이 노드가 아닌 경우 여기에서 총체적으로 이야기 할 수는 있지만 D6에서는 콘텐츠 프로필로 훌륭하게 작동합니다. :)


/ user를 사용하지 않는 것이 좋은 이유입니다. 로그인 한 사용자가 추가 블록을 표시하기 위해 자신의 프로필을보고 있는지 확인하기 위해 일부 PHP를 사용할 수 있다고 생각합니다. 감사합니다
uwe

귀하와 Clive의 코드 조합 : 전 세계 $ user; return arg (0) == 'user'&& is_numeric (arg (1)) &&! arg (2) && $ user-> uid == arg (1); 다시 감사합니다 !!!
uwe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.