【Drupal】删除及隐藏 node form 表单中的一些栏目

在 Drupal 默认的 node-form 内容录入表单除了已经有 标题 内容 以外还有一些不常使用的栏目如:日志 版本 菜单 等平常并不容易用到,但一大堆栏目出现在 node-form 表单中对用户来说会显得不大友好,这里提供一些代码可以去掉或隐藏掉一些平常不会用到的 node 表单栏目如 Revision information 栏目 Authoring information 栏目 Publishing options 栏目等等:

用于隐藏 node-form 表单的代码需要放置于主题的 template.php 文件中:

// node-form for Drupal 5.x ...
function phptemplate_node_form($form) {
	$form['log']['#access'] = FALSE;
	$form['menu']['#access'] = FALSE;
	return $form;
}

// node-form for Drupal 6.x ...
function phptemplate_node_form($form) {
	$form['menu_settings']['#access'] = FALSE;
	$form['revision_information']['#access'] = FALSE;
	return $form;
}

上面代码分别被用于 Drupal5 和 Drupal6 其实只是表单的 name 做了一些变化,需要注意的是有些表单元素是不可以设置其 access 为 false 的例如 Publishing options 就不可以一旦 Publishing options 被设置 access false 的话会导致节点默认的 Published 或是 Promoted to front page 值为空从而使节点不能被正常显示,要隐藏 Publishing options 除使用访问控制(User Access)设置以外还可以使用 CSS 将涉及节点管理功能的几个栏目隐藏也可以达到效果,具体可以在你的主题 CSS 中添加 #node-form .admin { display:none; } 即可实现隐藏节点管理的几个表单栏目并且不影响表单提交功能。

其实利用主题函数覆写还可以实现将几个提交按钮(button)与表单内容相分离的效果,例如设计师需要将整个表单栏目部分添加修饰而为 提交 预览 等几个按钮做单独的修饰,这个时候就可以用上面的主题覆写函数使用 drupal_render($form[‘submit’]) 单独获得按钮元素用来输出。