【问题标题】:Add custom form data to Drupal module without using CCK fields在不使用 CCK 字段的情况下将自定义表单数据添加到 Drupal 模块
【发布时间】:2013-01-03 19:57:32
【问题描述】:

我对 Drupal 7 很陌生,所以请耐心等待。我创建了一个带有 JQueryUI 选项卡的 jQueryUI 拖放界面。我的问题是我找不到正确的钩子来将此自定义界面添加到管理界面。像这样(样机)http://onlinemedia.rmcad.edu/sandBox/screenshot/screen-shot.jpg

我找到的所有示例都使用 CCK 字段。 CCK 字段很棒,但它们没有我想要的这种自定义功能,还是没有?

任何帮助将不胜感激。

J

【问题讨论】:

    标签: drupal drupal-7 drupal-modules cck


    【解决方案1】:

    cck 是 drupal 6,而不是 7。要添加到节点创建表单,您可以使用 hook_form_alter 或 hook_form_ID_alter。 查看表单 api 文档,了解如何在任一挂钩中向表单对象添加内容。

    【讨论】:

    • 在添加自定义html,css和javascript时,这是实现此功能的正确方法吗?函数 hook_form_ID_alter(&$form, &$form_state, $form_id) { $form['dragDropImages'] = array( '#markup' => t('
      • test
      • test 2
      • test 3
      • test 4
      • test 5
      '), '#prefix' => '
      ', '#suffix' => '
      ', ); } j
    • 是的,这将添加到表单中,尽管您实际上不需要添加前缀和后缀,只需将它们放在标记中即可。
    【解决方案2】:

    从您的模型中,我了解到您打算将此拖放界面添加到内容类型。

    如果是这种情况,我建议您先添加适当的fields。一旦节点被保存,这些将有助于以 Drupal 方式存储数据。

    一旦您对收集所需数据的字段感到满意,请创建一个模块并使用hook_form_FORM_ID_alter 挂钩通过更改这些字段来集成您的“界面”,即表示层。

    【讨论】:

      【解决方案3】:

      如果您不想添加 CCK/Field 组件来存储数据,如何创建自己的数据库表并将自定义数据存储在其中?

      这种方法很长,但我在一个非常大而复杂的项目中使用它效果很好。

      您将需要一个带有安装脚本的自定义模块,其中包含您的自定义数据库表的详细信息。

      请原谅,但我不记得更改节点编辑表单的钩子,但这是您输入实现 drag-'n'-drop 元素的代码的地方。 p>

      然后,您可以在提交节点编辑表单时完全保存设置,但我认为实现一些 AJAX 将设置保存到您的自定义数据库表中可能会更好。因此,当一个组件被放入它的最终存放位置时,您可以使用 AJAX 将该信息保存到数据库中。

      当用户返回编辑该页面时,您只需加载您的自定义设置并将它们应用到 drag-'n'-drop 功能,它们之前的配置将可见他们。

      我希望这是有道理的,它可以帮助你。

      【讨论】:

        猜你喜欢
        • 2012-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多