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


10

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

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

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


2
これは "user / *"でも機能します。そのため、userページの内部エイリアスは実際にはuser/[uid]...これをPHPに頼らなければならない可能性があります:/
Clive

7
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);トリックを行います
クライブ

1
@CliveいつものようにコメントにFIREをドロップ= D
デジタルの

@Clive、この答えのためのさらなる小道具をあなたに与えたかっただけです。一年後、またこのページを見つけました。再度、感謝します!
hockey2112 2014年

回答:


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

もちろん、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.