【发布时间】:2015-05-05 17:52:57
【问题描述】:
我是 Drupal 的新手,我设置节点页面并为各种角色分配了编辑权限。在编辑选项中,我有一个带有下拉选项的选择列表字段红色绿色蓝色黄色
我正在查看的是限制每个角色查看下拉列表中的项目。
示例: 学生角色将看到 红蓝
教师角色将看到 红绿
管理员角色将看到 红绿蓝黄
我搜索过,似乎实体引用是要走的路,但我无法正确设置它。 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并激活它。
【问题讨论】:
-
下拉列表放在哪里?以什么形式?
-
它是一个节点,在编辑选项中我有一个选择列表字段
-
在 $form 数组中找到您的字段和选项数组,并根据用户角色删除不需要的值。但要小心——这对于创建新节点是可以的,但要考虑编辑。如果已经选择了当前用户不允许的选项怎么办? (或者你用权限解决了这个问题)......