【问题标题】:Drupal using views with CCK custom fieldsDrupal 使用带有 CCK 自定义字段的视图
【发布时间】:2010-03-29 15:20:43
【问题描述】:
我有一个 Drupal 站点,它使用与特定用户相对应的特定类型节点 (person_id) 的自定义字段。我想创建一个视图,以便在登录时,用户可以看到带有person_id 的“标记”节点列表。我的视图工作正常,网址为my-library/username,但用不同的用户名替换username 会显示带有该用户标记的所有节点的列表。我想要做的是阻止用户更改 URL 并查看其他用户的标记节点。我怎样才能做到这一点?有没有什么地方我可以规定该页面的唯一有效参数是与当前登录用户的用户名对应的参数?
【问题讨论】:
标签:
drupal
cck
custom-fields
【解决方案1】:
person_id = uid?
在这种情况下,使用 user:uid 添加参数,然后在 Validation options 中选择 PHP Code,仔细阅读该字段的注释:
输入返回 TRUE 的 PHP 代码或
错误的。不返回与 FALSE 相同,
所以一定要退货,如果你
不想声明参数
无效的。不使用 。这
验证的参数将是
"$argument" 和视图将是
“$ 视图”。你可以改变论点
通过设置“$handler->argument”。
添加此代码:
global $user;
$account = user_load('name'=>arg(1));
$handler->argument = $user->uid;
return $account->uid == $user->uid;
【解决方案2】:
我不确定您是如何设置视图的,这提供了一些不同的选项来解决此问题。一种可行的方法是将默认参数设置为记录的用户 ID/用户名,并从 url 中删除该参数。
或者,您可以创建自己的过滤器,这需要使用视图 API 进行一些工作,但提供更多控制权。