如何删除 CCK 生成的 Drupal 内容类型中的默认标题和正文字段?

StackOverflow https://stackoverflow.com/questions/89672

  •  01-07-2019
  •  | 
  •  

当您使用内容创建工具包在 Drupal 中创建新的内容类型时,您会自动在生成的表单中获取标题和正文字段。有办法去除它们吗?

有帮助吗?

解决方案

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

其他提示

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

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

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

如果您不是开发人员(或者要捷径开发过程),则另一个可能的解决方案是使用auto_nodetitle模块。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') 相当长。

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

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

哈!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top