【问题标题】:Drupal Commerce, How to control custom form fields in the product form?Drupal Commerce,如何控制产品表单中的自定义表单字段?
【发布时间】:2016-02-23 20:16:34
【问题描述】:

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

为了确保 Web Service 所需的所有字段都存在,我决定由模块负责将它们放入 Product 表单中。我通过扩展 commerce_product_product_form 函数实现了它。

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

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

所以,我的问题是:

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

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

  • 如果我可以使用商务例程存储信息,那么定义自定义表单字段的方式和/或挂钩应该是什么?

  • 1234563据我所知。我审查过的模块是:
  • 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 发送一些信息但它从未显示),我也尝试过清除缓存而不任何变化。

任何帮助将不胜感激。

在此致谢

【问题讨论】:

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


    【解决方案1】:

    这些字段是否会在应用程序的正常使用期间(每小时/每天)创建?还是只是在开始时才添加(初始化过程)?

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

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

    【讨论】:

    • 它们必须在正常使用期间创建,当用户创建或修改产品时。我没有考虑将字段添加到内容类型,但我会看看以编程方式添加它们。此时,在内容类型中,我显示了一个选项来了解产品是否将由模块处理,以及一个选择以了解将要显示的字段。
    猜你喜欢
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多