web-dev-qa-db-ja.com

/ユーザープロフィールページにのみブロックを表示

ユーザーが/ userで自分のプロファイルページにアクセスしたときにブロックを表示したい。パブリックユーザープロファイルのパスは "/ member/[username]"です。

ブロックを「ユーザー」に制限すると、表示されません。 「メンバー/ *」に制限すると、自分のプロファイルとパブリックプロファイルの両方に表示されます。

「ユーザー」のURLは特別なものですか?

10
uwe

@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()を具体化していませんが、あなたはその要点を理解していると思います。

もちろん、D7のユーザープロファイルがノードではない場合は、ここで全体をしゃべることもできますが、これはコンテンツプロファイルを持つD6でうまく機能します:)

2
Jimajamma