我需要一个允许同时创建多个相关节点的表单。所有节点都涉及 CCK 字段。
我想尽可能/实用地使用 CCK 的内置验证、提交、输入小部件和安全功能。
在 Drupal 6 中完成此任务的最佳方法是什么?任何地方都有“最佳实践”或文档吗?
以下是我可以看到的 3 种可能性。我很想反馈这些是否可行,或者是否有更好的选择。
1.
- 从内容类型 foo 的标准节点创建表单开始。
- 通过添加内容类型栏的字段来修改表单,使用钩子 form_alter [可以直接插入内容类型栏的 cck 小部件吗?]
- 提交表单时使用自定义提交处理程序创建 bar 类型的节点[可以调用标准 cck 处理程序吗?还是我需要“手动”构造节点对象,进行自己的验证并使用 node_save?]
2.
- 创建一个新的自定义表单,用于连接相关内容类型的“正常”节点创建表单。
- 然后根据需要使用钩子 form_alter 修改表单。
- 允许标准的 cck 提交处理程序来完成创建节点的工作。
3.
- 从头开始创建自定义表单
- 在我自己的提交处理程序中创建节点,使用节点准备、节点保存等。
如果找到关于重用标准节点创建表单的文档,但没有提到同时创建多个节点。
advomatic 网站上的一篇文章中记录了使用钩子 nodeapi 和钩子 form_alter,但特定方法 descube 似乎需要使用“虚拟”字段污染其中一种内容类型。
非常感谢您的帮助!