【发布时间】:2009-12-17 08:23:14
【问题描述】:
我尝试在 drupal 中创建一个自定义内容类型,但没有必要的功能,例如 Title、Menu settings 和 Revision Information, URL aliases 附带它,我真的不想要它..因为它对用户没有任何意义.. 我怎样才能隐藏所有这些东西,只保留我只想要这个自定义内容类型的字段(比如 CCK 中的 3 个字段)? 谢谢..
【问题讨论】:
我尝试在 drupal 中创建一个自定义内容类型,但没有必要的功能,例如 Title、Menu settings 和 Revision Information, URL aliases 附带它,我真的不想要它..因为它对用户没有任何意义.. 我怎样才能隐藏所有这些东西,只保留我只想要这个自定义内容类型的字段(比如 CCK 中的 3 个字段)? 谢谢..
【问题讨论】:
您可以使用auto_nodetitle 模块自动生成标题,这也使您可以从节点提交表单中删除标题字段。
正如其他人在上面提到的,大多数其他表单元素无论如何都不会出现在非管理员用户面前。
【讨论】:
使用 auto_nodetitle 模块,您可以隐藏它,而不是删除它。然后,只需分配一个标题,如“your-content-type-nid”,这样每个节点都会不同(nid 会不同)。 这将是一个比空标题更好的标题。
【讨论】:
你需要做一些事情来做你想做的事。其中之一是添加其他人建议的模块 auto_nodetitle 。您可以通过从自定义内容类型的编辑屏幕中删除“正文字段标签”来隐藏“正文”。最后,您必须对 CCK 字段进行正确的设置。
如果您有希望他们能够编辑的 CCK 字段和不希望他们编辑的其他字段,则需要在模块管理页面的 CCK 部分中启用内容权限模块。完成后,您可以转到角色权限页面并设置哪些角色可以访问哪些字段。虽然权限可能会向用户隐藏 CCK 字段,但您还可以通过内容类型编辑屏幕的“显示字段”部分控制预告片、节点和 RSS 视图中的字段。
【讨论】:
菜单设置、修订信息和 URL 别名类型信息是管理员的东西。如果您创建一个没有管理员权限的新用户,我很确定他们不会看到它。
【讨论】:
可以使用 hook_form_alter 尝试以下类似的操作。
函数 my_module_form_alter(&$form, $form_state, $form_id) {
if($form_id='company_node_form'){
$form['menu']['#prefix'] ='<div style="display:none">';
$form['menu']['#suffix'] ='</div>';
$form['revision_information']['#prefix'] ='<div style="display:none">';
$form['revision_information']['#suffix'] ='</div>';
$form['author']['#prefix'] ='<div style="display:none">';
$form['author']['#suffix'] ='</div>';
$form['options']['#prefix'] ='<div style="display:none">';
$form['options']['#suffix'] ='</div>';
}
}
【讨论】:
您可能想尝试 NodeFormCols 模块。它做了几件方便的事情,其中包括添加一个管理表单按钮,该按钮允许您隐藏输入表单中的大多数字段。
【讨论】: