7

当您使用 Content Creation Kit 在 Drupal 中创建新的内容类型时,您会自动在生成的表单中获得 Title 和 Body 字段。有没有办法删除它们?

4

5 回答 5

5

如果您不是开发人员(或者您想缩短开发过程),另一种可能的解决方案是利用 auto_nodetitle 模块。自动节点标题将让您创建生成节点标题的规则。这些可以是编程规则、被替换的标记或只是静态文本。如果没有别的,值得一看。

于 2008-09-18T05:51:42.077 回答
3

要删除正文编辑类型,请展开“提交表单设置”并将正文字段标签留空。对于标题,您可以将其重命名为另一个文本字段。如果您真的不需要任何文本字段,您可以创建一个自定义模块,例如称为 foo,并创建函数 foo_form_alter(),它在 $form['type'][' 时将 $form['title'] 替换为#value #value'] 是您的节点类型。

于 2008-09-18T05:08:52.210 回答
3

无需安装任何东西:
编辑内容类型时,按“编辑”
(在编辑|管理字段|显示字段菜单上)
点击提交表单设置

在正文字段标签上:
将其留空,它将删除正文字段。

于 2010-06-17T22:23:20.860 回答
2

如果您不是开发人员(或者您想缩短开发过程),另一种可能的解决方案是利用 auto_nodetitle 模块。自动节点标题将让您创建生成节点标题的规则。这些可以是编程规则、被替换的标记或只是静态文本。如果没有别的,值得一看。

并添加到威廉奥康纳的解决方案......

不幸的是,该模块的文档记录很差。在我看来,它只有在你使用 PHP 时才真正有效。勾选“Evaluate PHP in Pattern”并在“Pattern for the title”字段中输入如下内容:

<?php echo $node->field_staff_email[0]['email']; ?>

或者:

<?php echo $node->field_staff_name[0]['value'] . '-' . gmdate('YmdHis'); ?>

...我有一个内部名称为“field_staff_email”的字段,并且正在使用 CCK 电子邮件模块——因此使用了“电子邮件”类型。或者,我有一个内部名称为“field_staff_name”的字段,它只是一个普通的文本字段——因此使用了“值”类型。最后的 gmdate() 调用是为了确保唯一性,因为您可能有两个或多个工作人员命名相同的事物。

我发现这一切的方法是首先尝试:

<?php print_r($node); ?>

...这当然给出了疯狂的结果,但至少我能够解析输出并弄清楚如何在这里正确使用 $node 对象。

请注意,如果您使用这些 PHP 例程中的任何一个,那么您最终会在 Drupal Admin 中的内容列表中显示与您编写 PHP 代码完全相同的条目。这就是我不单独使用 gmdate() 的原因,因为这样可能很难找到我的记录进行编辑。

另请注意,您可能能够在 gmdate() 上使用 Base-36 转换来减少输出的大小,因为 gmdate('YmdHis') 相当长。

于 2009-07-28T20:08:46.430 回答
0

最初的答案都很好。正如标题部分的另一个想法......如何为 cck 节点类型创建自定义模板文件。您将 node.tpl.php 复制到 node-TYPE.tpl.php,然后编辑新文件并删除呈现标题的位置。(不要忘记清除缓存)。

这样做意味着每个节点仍然有一个标题,因此对于内容管理,您不会留下空白标题或类似的东西。

于 2011-01-26T18:45:15.833 回答