我对Drupal很新,我设置节点页面并为各种角色分配了编辑权限。在编辑选项中,我有一个选择列表字段,下拉选项为红绿蓝黄色
我所关注的是限制每个角色查看下拉列表中的项目。
实施例: 学生角色会看到 红蓝色
教师角色会看到 红绿色
管理员角色会看到 红绿蓝黄色
我搜索并且看起来像实体参考是放弃的方式,但我无法正确设置它。 A.细节一步一步的帮助将非常感激
更新:代码需要帮助
DONE!
以下为我工作......
我的表单名称是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并激活它。
答案 0 :(得分:2)
如果它是一个简单的选项列表字段,那么您最简单的选项可能是使用hook_form_alter或hook_form_FORM_ID_alter自己改变编辑表单(hook_from_FORM_ID_alter更好,因为它只会针对该特定表单运行)。<登记/> 如果您使用分类参考字段,则可以使用taxonomy access或taxonomy access lite。
答案 1 :(得分:0)
您可以创建自定义模块。在此模块中,您应该在显示之前实现hook_form_alter()拦截表单,列出当前用户的角色(在$ user - &gt;角色中),然后筛选您不希望显示的所有选项。< / p>