用于 varchar 字段的 Drupal 文本模块多行小部件

Drupal text module multiline widget for varchar field

如果我错了请纠正我,但是如果每个节点有多个字段,数据库中的 varchar 更适合性能。现在,如果我 select 多行文本 - 我会自动在数据库中获取文本字段,这是我不想要的。

为了在文本字段中获得多行,我可以修改 text.module 并通过这样的一个额外的词获得我想要的内容:

而不是:

function text_field_widget_info() { return array( ... 'text_textarea' => array( ... 'field types' => array('text_long'), ... ), ... 更改为:

function text_field_widget_info() { return array( ... 'text_textarea' => array( ... 'field types' => array('text_long', 'text'), ... ), ...

换核心模块当然不好。 有什么优雅的方法可以在我自己的模块中挂接和扩展文本模块而不重写小部件 - 我可以告诉我不仅允许文本区域 text_long,还允许文本吗?

您可以执行 hook_field_widget_info_alter() 来更改类型。不要忘记清除缓存以使更改可见。

还有 a module for Text area widget for text fields now which implements hook_field_widget_info_alter() 与 Aurimas Rekštys 对 Web-Beest 的回答的评论完全相同。这对于希望安装贡献模块而不是创建或添加到他们自己的自定义模块的任何人都非常有用。