【问题标题】:Drupal Custom CCK field with multiple child fields具有多个子字段的 Drupal 自定义 CCK 字段
【发布时间】:2009-10-28 22:27:12
【问题描述】:

有没有办法创建一个可以有多个值的复合字段,每个值都有另一组复合值?

例如我们希望最后有这个结构:

  • 第 1 组(组数不限)
    • 子字段(每组不限孩子)
    • 子字段
    • ...
  • 第 2 组
    • 子字段
    • 子字段
    • ...
  • ...

对于定义 CCK 字段的自定义模块,这是否可能?如果是这样,有人可以将我推向正确的方向吗?

【问题讨论】:

    标签: drupal drupal-6 cck


    【解决方案1】:

    这是 drupal 世界中一个非常知名且备受争议的问题。

    这个特性被称为 cck “multigroup”,它看起来很难实现。 drupal 论坛上有很多关于这个的帖子,我建议你从这里开始:

    http://drupal.org/node/494100

    这是 cck 模块中的一种“隐藏”功能。查看模块目录,您会在此处找到说明:

    cck/modules/content_multigroup/README.txt
    编辑:正在进行的多组模块工作已移至实验阶段 CCK 3.0 分支。

    与此同时,您可以尝试使用flexifield 模块来处理它 (但它有点 hackish,我不会在生产中使用它)

    【讨论】:

    • 那么如果不使用 alpha 质量的代码,真的没有办法做到这一点吗?即使我要编写自定义 CCK 字段类型?
    • 这就是事实。不管怎样,传闻中,最新的 cvs 版本的 cck 多组子模块看起来有些稳定。如果你想自己重现这样的行为,有太多的问题需要处理(想想即使 cck 开发人员也无法完成这个“简单”任务的事实!)
    • 将 CCK 3.x 与其他模块一起使用时会遇到什么冲突?我应该去看看会发生什么吗?
    • 所以我安装了带有多组的 CCK 3,它确实不能满足我的需要。我想要多个具有名称的组,然后每个组包含多个孩子。我发现我不能在另一个多组中嵌套一个多组。它似乎只是为了将字段组合在一起,而不是创建嵌套结构。
    • 事实上你不能。它甚至在弹性域项目页面中声明:“弹性域具有多组没有的两个功能是能够在多值弹性域内拥有一个多值域”
    【解决方案2】:

    我最终根据这个带有示例模块的优秀教程创建了自己的“成本/产品”CCK 复合字段:http://poplarware.com/es/articles/cck_field_module

    我还没有弄清楚如何在 Views 中提取特定的子字段,例如成本。我只得到整个“:$”化合物。

    【讨论】:

    • 以上链接非常可行。
    【解决方案3】:

    对于 Drupal 7+,您可能需要查看 Field collection 模块,如果不需要多个模块,则可能需要查看 Field group

    【讨论】:

      【解决方案4】:

      这个问题很老了,但我只是碰巧遇到它。我认为现在处理它的方法是为孩子使用第二种 cck 类型,并将组作为 node_reference 字段。所以你有:

      主类型

      • 组字段
        • 每个节点无限制
        • 每一个,一个对 ChildType 节点的引用

      子类型

      • 子字段
        • 每个节点无限制

      【讨论】:

      • 虽然这完全可行,但尝试训练用户以这种方式工作绝对是一场噩梦。
      • 这绝对不是理想的,但是[节点关系][1] 模块可以帮助一些。它在叠加层中提供创建和添加以及搜索和添加功能。 [1]drupal.org/project/noderelationships
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多