gpt4 book ai didi

forms - 如何在 Drupal 中隐藏用户编辑表单上的某些字段?

转载 作者:行者123 更新时间:2023-12-04 17:01:25 25 4
gpt4 key购买 nike

所以我有三种类型的用户——管理员、洛杉矶管理员和用户。我正在尝试对其进行设置,以便管理员和 LA 管理员无法编辑用户的用户名、密码和时区。我说的是管理员的默认用户编辑表单,表单 ID 是“user-profile-form”。

我创建了一个自定义模块,但这似乎不起作用。知道我可能做错了什么吗?

甚至 var_dump 似乎也没有输出。我已清除缓存并验证模块已启用。

 function profile_change_form_alter(&$form, $form_state, $form_id) {
if ($form_id === 'user-profile-form') {
var_dump ($form);

hide($form['account']['pass']);
hide($form['account']['current_pass_required_values']);
hide($form['account']['current_pass']);
}
}

最佳答案

如果您使用 hide()您将删除该字段,但 hide 更多的是用于“延迟”字段渲染...就像您隐藏它一样,但是(在模板文件中)您在其他地方打印它。
因为,如果您稍后不打印它,它将不会在页面中呈现,不会被保存,如果它是强制性的,您将收到验证错误等等。

如果你想隐藏它,所以用户看不到它,但你希望表单保留字段的先前值,使用类似:

$form['field_yourfield']['#access'] = FALSE;

如果您希望它可见但已禁用(用户无法更改它的值),则:
$form['field_yourfield']['#disabled'] = TRUE;

关于forms - 如何在 Drupal 中隐藏用户编辑表单上的某些字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17071064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com