我使用Drupal 7,并希望这样做,但如果我需要使用Drupal 6,我会这样做。我有一个Drupal 7网站,我允许“顾问”创建认证用户。我是一个管理员在网站上,所以我看到和可以做任何事情。“顾问”所能做的就是创建和编辑经过身份验证的用户。是否有一种方法可以使视图显示特定顾问在登录时创建的用户?
如果你不明白我在说什么,让我这么说吧。我是网站的管理员,所以我可以做任何事情。我创建了一个名为顾问的用户角色。还为用户提供了一个经过身份验证的角色。顾问可以创建经过身份验证的用户。我有顾问1,顾问1创建了10个用户。我也有顾问2。顾问2创建了3个用户。我想要一个页面(很可能是用视图构建的--我以前在其他网站上使用过视图,所以我对它们很熟悉)--我想要一个Advisor 1一旦登录就可以登录的页面,它可以显示他们创建的所有10个用户。顾问1不会看到顾问2创建的用户。
这个是可能的吗?如果能在这方面提供任何帮助,我们将不胜感激。提前谢谢你。
发布于 2014-10-11 15:24:58
我已经实现了类似的东西,我可以给你一些指导。首先,drupal 7不存储用户创建者的信息。因此,为了跟踪这一点,您需要将一个自定义字段附加到用户以保存此信息。
在这种情况下,您必须确保每个创建者只能在这个字段中插入自己,而不是其他任何人,否则您必须找到一种自动填充该字段的方法。我建议您使用字段权限模块来设置该字段的权限(用户可能甚至不应该有视图,创建者不应该更改它等等)和计算场模块,以便在创建时自动填充字段(如creator_field),例如使用创建者的uid。
最后,在创建视图时,可以使用creator_field上登录的用户添加上下文过滤。
你也应该看看有机组织。我没有用过,但可能会有帮助
希望能帮上忙。
已更新
添加
global $user;
$entity_field[0]['value'] = $user -> uid;到计算字段设置中的计算代码(PHP),并将值作为整数存储在“数据库存储设置”中。然后,在您的视图中,您应该添加一个带有creator_field上下文过滤器的用户视图。在上下文过滤器设置中,必须在“当筛选值不在URL”部分中,从登录用户中设置“->”用户ID。
发布于 2014-10-12 15:27:32
在Drupal 7中,可以通过向用户配置文件中添加一个指向用户创建者的字段(使用实体引用模块)来相对容易地做到这一点。Profile2可以提供在配置文件上使用此字段的快捷方式,但是如果这是您需要添加到配置文件中的唯一定制,那么在自定义模块中这样做会更干净。
可以将视图(视图模块)配置为输出以当前登录用户为创建者的用户列表。
您还需要为user_access添加类似的逻辑,以允许/限制概要文件编辑(如果当前用户是概要文件中引用的用户)。如果您计划拥有不同的管理级别,权限挂钩也可能很有用。
令牌模块应该通过将当前用户插入到字段中来为新用户插入此值。或者您可以在保存用户之前完成此操作。会有一些类似的事情:
function mymodule_user_presave(&$edit, $account, $category) {
if ($account->is_new) {
global $user;
$created_by = $user->uid;
$edit['created_by'] = $created_by;
}
}祝好运。
https://stackoverflow.com/questions/26310627
复制相似问题