创建在Drupal单自定义窗体多个CCK节点(Create multiple CCK nodes w

2019-09-21 12:01发布

我需要一个形式,这将允许在同一时间几个相关节点的创建。 所有节点都涉及CCK领域。

我想用尽可能多的CCK内置的验证,提交,输入小部件和安全功能可能/实用。

什么是在Drupal 6完成这一任务的最好方法是什么? 是否有“最佳实践”或文档的任何地方?

这里有3种可能性,我可以看到。 我喜欢上是否有任何的这些会工作的反馈,或者有更好的选择。

1。

  • 开始与内容类型foo的标准节点创建形式。
  • 通过添加对内容类型栏的字段,使用钩form_alter修改形式[CCK可以为内容类型栏部件直接插入?]
  • 使用自定义的处理程序提交表单时,提交[可在标准CCK处理函数中调用创建类型栏的节点? 或者我需要“手动”构造节点对象,做我自己的验证,并使用node_save?]

2。

  • 创建地连接了“正常”节点创建的相关内容类型形成一个新的,自定义表单。
  • 然后使用钩form_alter修改形式是必要的。
  • 允许标准CCK提交处理程序做创建节点的工作。

3。

  • 从头开始创建自定义窗体
  • 在我自己的提交处理程序创建节点,使用节点准备节点保存等

如果发现在重新使用标准的节点创建表单文件没有提及,但同时创建多个节点。

使用钩nodeapi和钩form_alter被记录在advomatic的网站后,但具体的方法descrube似乎需要污染的内容类型与“虚拟”的领域之一。

非常感谢您的帮助!

Answer 1:

该advomatic家伙贴出一个很好的解决了这个。

http://www.advomatic.com/blogs/jonathan-delaigle/multiple-nodes-single-node-submission



Answer 2:

为什么不使用hook_nodeapi来处理某些内容类型的节点创建。

只是设置测试条件,看是否节点 - $>类型=“富”,然后运行一个函数来创建两个节点或然而,许多使用来自所述预定义字段的值。 你甚至可以设置hook_nodeapi只有当$ op是几乎可以直接在节点插入到数据库,从而确保已通过适当的验证上需要创建新的节点传递之前运行的目标运行。

http://api.drupal.org/api/function/hook_nodeapi/6此页面已为$运变量和他们做什么都可以操作的列表。

我希望帮助



Answer 3:

如果第二类型的酒吧 ,只需要一个或两个来自用户的附加输入(场),我会去你的方法之一。

但考虑到你的澄清似乎foo酒吧有足够的不同而复杂的,所以你的方法有两个似乎更合理。

拼接两种形式为一体,并隐藏你想从foo的领域来填充字段(或节点,创建后)。 在形式验证和提交功能,你将不得不再度分开的形式,这样就可以调用标准的验证/两个分别提交处理程序。

我还没有这样做,所以我不知道如何好,这将与CCK的功能发挥,但我希望它的工作相当不错,给它一个尝试。



文章来源: Create multiple CCK nodes with single custom form in Drupal