从内容类型的创建/编辑表单页面中删除cck字段显示的代码是什么?
答案 0 :(得分:5)
将“#access
”字段设置为“0
”或“FALSE
”。
例如,这会从站点信息页面中删除“站点任务”字段:
function example_form_system_site_information_settings_alter(&$form, &$form_state){
$form['site_mission']['#access'] = 0;
}
(其中“example”是自定义模块的名称)
另一个例子,这次它从添加/编辑页面形式中删除了Sticky选项:
function example_form_page_node_form_alter(&$form, &$form_state){
$form['options']['sticky']['#access'] = 0;
}
您可能已经知道,但您需要知道要更改的表单的ID(和结构)。
大多数情况下,hook_form_THEID_alter(&$form, &$form_state)
是修改特定表单的好地方,但是在调用此挂钩后会创建一些字段,因此在这种情况下,您需要使用泛型hook_form_alter(&$form, $form_state, $form_id)
代替。
如果你不知道结构甚至表单id(并且不想安装Devel module),你可以使用这个snipplet,这样当你查看你想要的页面时修改,它将在页面顶部显示表单ID及其结构。
function example_form_alter(&$form, $form_state, $form_id){
echo "<h1>Form ID: $form_id</h1>";
echo "Form Structure: <pre>".print_r($form, true)."</pre>";
}
(其中“example”是自定义模块的名称)。
顺便说一句,如果您只是想阻止普通用户修改仅限管理员字段,则只需使用Field Permissions module即可。
答案 1 :(得分:0)
选中此代码段http://drupal.org/node/336355#comment-1192845并使用之前评论['#access'] = FALSE