我的内容类型可以包含无限的嵌入字段集field_foo
实例,每个集合包含两个字段:field_foo_bar
和field_foo_baz
。
我想修改此内容类型的节点创建表单,以使用现有节点上相同字段的值预先填充field_foo
。
默认情况下,节点创建表单包含:
FIELD FOO
FOO BAR [ ]
FOO BAZ [ ]
......我想设置,例如:
FIELD FOO
FOO BAR [Bar value #1]
FOO BAZ [Baz value #1]
FOO BAR [Bar value #2]
FOO BAZ [Baz value #2]
我该怎么做?我觉得我错过了一些直截了当的东西。
我试图简单地克隆hook_form_alter()
中的空字段集合并更改field_foo_bar
和field_foo_baz
值以适应,但这会导致添加/删除行和调整多个增量的问题,权重等让我觉得我正在咆哮错误的树。
答案 0 :(得分:0)
由于字段集实际上是实体,您是否可以使用hook_entity_insert()来检查正在插入的实体是否是字段集合的实例,如果是,则设置值。
答案 1 :(得分:0)
hook_form_alter是执行此操作的正确方法。如果发生其他问题,那是因为您没有正确填充字段,或者因为另一个模块也在您之后编辑字段。在前一种情况下,请查看hook_node_insert中提交的格式。在模块的后一种情况change the weight中,它最后触发并确保您的更改覆盖任何其他模块。