我如何根据用户角色隐藏列表条目 Drupal 7
How can i hide list entries based on user roles Drupal 7
我是 Drupal 的新手,我设置了节点页面并为各种角色分配了编辑权限。在编辑选项中,我有一个 select 列表字段,其中包含下拉选项 红色 绿色 蓝色 黄色
我正在查看的是限制每个角色查看下拉列表中的项目。
示例:
学生角色将看到
红蓝
教师角色会看到
红绿
管理员角色将会看到
红绿蓝黄
我搜索了一下,实体引用似乎是可行的方法,但我无法正确设置它。 A. 非常感谢详细的步骤帮助
更新:代码需要帮助
完成!
以下对我有用...
我的表单名称是 cal_form,字段名称是 field_color
function mymodule_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'cal_form':
global $user;
//check role
if (in_array('student', $user->roles)) {
//student role will not see the following entries
unset($form['field_color'][LANGUAGE_NONE]['#options']['green']);
unset($form['field_color'][LANGUAGE_NONE]['#options']['yellow']);
}
break;
}
}
将上面的 php 代码添加为 mymodule.module 并激活它。
您可以创建自定义模块。在这个模块中,您应该实现 hook_form_alter() 以在显示之前拦截表单,列出当前用户的角色(在 $user -> roles 中),然后过滤所有您不想显示的选项。
如果它是一个简单的选项列表字段,那么您最简单的选择可能是使用 hook_form_alter or hook_form_FORM_ID_alter 自己更改编辑表单(hook_from_FORM_ID_alter 更好,因为它只会 运行 特定形式)。
如果您改为使用分类参考字段,则可以使用 taxonomy access or taxonomy access lite.
我是 Drupal 的新手,我设置了节点页面并为各种角色分配了编辑权限。在编辑选项中,我有一个 select 列表字段,其中包含下拉选项 红色 绿色 蓝色 黄色
我正在查看的是限制每个角色查看下拉列表中的项目。
示例: 学生角色将看到 红蓝
教师角色会看到 红绿
管理员角色将会看到 红绿蓝黄
我搜索了一下,实体引用似乎是可行的方法,但我无法正确设置它。 A. 非常感谢详细的步骤帮助
更新:代码需要帮助
完成!
以下对我有用...
我的表单名称是 cal_form,字段名称是 field_color
function mymodule_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'cal_form':
global $user;
//check role
if (in_array('student', $user->roles)) {
//student role will not see the following entries
unset($form['field_color'][LANGUAGE_NONE]['#options']['green']);
unset($form['field_color'][LANGUAGE_NONE]['#options']['yellow']);
}
break;
}
}
将上面的 php 代码添加为 mymodule.module 并激活它。
您可以创建自定义模块。在这个模块中,您应该实现 hook_form_alter() 以在显示之前拦截表单,列出当前用户的角色(在 $user -> roles 中),然后过滤所有您不想显示的选项。
如果它是一个简单的选项列表字段,那么您最简单的选择可能是使用 hook_form_alter or hook_form_FORM_ID_alter 自己更改编辑表单(hook_from_FORM_ID_alter 更好,因为它只会 运行 特定形式)。
如果您改为使用分类参考字段,则可以使用 taxonomy access or taxonomy access lite.