仅在/用户个人资料页面上显示阻止


10

我想在用户访问/ user上自己的个人资料页面时显示一个阻止。公用用户配置文件的路径为“ / member / [用户名]”。

当我将块限制为“用户”时,它不会显示。当我将其限制为“ member / *”时,它将同时显示在自己的个人资料和公开个人资料上。

“用户”网址是否有些特殊?


2
它也适用于“ user / *”,这使我认为user页面的内部别名实际上是user/[uid]...可能必须为此使用PHP:/
Clive

7
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);会做到的
克莱夫(Clive)

1
@Clive像往常一样在评论中
放火

@Clive,只是想为您提供更多答案的建议。一年后,我再次找到了该页面。再次感谢!
hockey2112 2014年

Answers:


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 2012年

您的代码和Clive的代码的组合:全局$ user; return arg(0)=='user'&& is_numeric(arg(1))&&!arg(2)&& $ user-> uid == arg(1); 再次感谢!!!
uwe
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.