1

我有一个 Drupal 站点,它使用person_id与特定用户相对应的特定类型节点 ( ) 的自定义字段。我想创建一个视图,以便在登录时,用户可以看到带有“标记”的节点列表person_id。我的视图工作正常,my-library/username但用username不同的用户名替换的 url 显示了带有该用户标记的所有节点的列表。我想要做的是阻止用户更改 URL 并查看其他用户的标记节点。我怎样才能做到这一点?有没有什么地方我可以规定此页面的唯一有效参数是与当前登录用户的用户名对应的参数?

4

2 回答 2

2

person_id = uid?在这种情况下,使用 user:uid 添加参数,然后在 Validation options 中选择 PHP Code,仔细阅读该字段的注释:

输入返回 TRUE 或 FALSE 的 PHP 代码。无返回与 FALSE 相同,因此如果您不想声明参数无效,请务必返回某些内容。不使用 。验证的参数是“$argument”,视图是“$view”。您可以通过设置“$handler->argument”来更改参数。

添加此代码:

global $user;
$account = user_load('name'=>arg(1));
$handler->argument = $user->uid;
return $account->uid == $user->uid;
于 2010-03-29T21:46:00.223 回答
1

我不确定您是如何设置视图的,这提供了一些不同的选项来解决这个问题。一种可行的方法是将默认参数设置为记录的用户 ID/用户名,并从 url 中删除该参数。

或者,您可以创建自己的过滤器,这需要使用视图 API 进行一些工作,但提供更多控制权。

于 2010-03-29T15:46:15.423 回答