我需要一个允许同时创建多个相关节点的表单。所有节点都涉及CCK字段。
我想尽可能多地使用CCK的内置验证,提交,输入窗口小部件和安全功能。
在Drupal 6中实现这一目标的最佳方法是什么?是否有“最佳实践”或文档?
以下是我可以看到的3种可能性。我很乐意反馈这些是否有效,或者是否有更好的选择。
如果找到documentation on re-using the standard node creation form,但未提及同时创建多个节点。
使用hook nodeapi和hook form_alter记录在advomatic网站的帖子中,但特定方法descrube似乎要求使用'dummy'字段污染其中一个内容类型。
非常感谢你的帮助!
答案 0 :(得分:3)
有些人提出了一个很好的解决方案。
http://www.advomatic.com/blogs/jonathan-delaigle/multiple-nodes-single-node-submission
答案 1 :(得分:0)
为什么不使用hook_nodeapi来处理某些内容类型的节点创建。
只需设置测试条件以查看$ node-> type ='foo',然后运行一个函数,使用预定义字段中的值创建两个节点或多个节点。您甚至可以将hook_nodeapi设置为仅在$ op几乎准备好将节点插入数据库时运行,从而确保对象在传递到需要创建的新节点之前已经通过适当的验证运行。
http://api.drupal.org/api/function/hook_nodeapi/6此页面列出了$ op变量的所有可用操作以及它们的作用。
我希望有帮助
答案 2 :(得分:0)
如果第二种类型 bar 只需要用户提供一两个额外的输入(字段),我会按照您的方法进行操作。
但鉴于你的澄清,似乎 foo 和 bar 是完全不同和复杂的,所以你的方法二看起来更合理。
将两个表单连接成一个并隐藏要从 foo 字段(或节点创建后)填充的 bar 字段。在表格验证和提交功能中,您必须再次分离表单,以便您可以单独调用标准验证/提交处理程序。
我还没有这样做,所以我不确定这会对cck功能有多好,但是我希望它能够很好地尝试一下。