Drupal Commerce,如何控制产品表单中的自定义表单字段?

时间:2016-02-23 20:16:34

标签: forms drupal-7 drupal-modules drupal-commerce

我正在开发一个自定义模块,在插入,更新或删除产品后,必须向Web服务发送一些信息。

为了确保Web服务所需的所有字段都存在,我已经决定该模块应该是负责将它们放入产品表单的模块。我通过扩展commerce_product_product_form函数实现了它。

但是现在,我注意到我添加的字段的值没有保存,所以我认为我必须在模块中定义一个自定义表来存储附加信息。

我从AutoSKU那里获取了关于如何保存和加载“产品类型”表单数据的示例。但是,我没有找到的是如何做,或者为产品表单保存和加载数据的钩子是什么。

所以,我的问题是:

  • 我正在考虑创建一个新表来存储我需要的附加信息,还是可以将其作为商业模块处理的现有例程的一部分来实现?

  • 如果模块必须使用自定义表来保存和加载数据,那么我应该使用哪些钩子来附加表单数据并将其保存到模块表中?

    < / LI>
  • 如果我可以使用商业例程存储信息,那么定义自定义表单的方式和/或钩子应该是什么?

  • 你能否告诉我是否有任何关于如何实现这个目的的例子?我看过一些模块,但基本上所有模块都修改了现有字段的行为,它们不添加新字段,据我所知。我审查的模块是:

  • commerce_custom_product

  • commerce_dressing_room
  • commerce_fancy_attributes
  • commerce_tickets

我想通过使用商业和Drupal最佳实践来实现这一目标,但我需要尽快完成此模块。因此,与此同时,我将把数据保存到自定义表中,并将其他信息加载到commerce_product_product_form挂钩中,并将信息保存在commerce_product_save挂钩中。

为了加载我使用hook_commerce_product_load和hook_entity_load尝试的数据,但由于某种原因,调用似乎永远不会发生(我向Watch Dog发送一些信息,但它从未显示过),我也试过清除缓存而没有任何改变。

任何帮助都会受到赞赏。

先谢谢

1 个答案:

答案 0 :(得分:0)

在正常使用应用程序(每小时/每天)期间是否会创建这些字段?或者它们是否仅在开始时添加(初始化过程)?

如果是后者,你可以创建一个类似于许多模块的模块安装脚本(module-name.install)。

您是否考虑过将字段添加到内容类型?