Question

Is there a way of creating a composite field that can have multiple values, with each value having another group of composite values?

E.g. we want to have this structure at the end:

  • Group 1 (unlimited number of groups)
    • Child field (unlimited children for each group)
    • Child field
    • ...
  • Group 2
    • Child field
    • Child field
    • ...
  • ...

Is this possible at all for a custom module that defines a CCK field? If so, can someone push me in the right direction?

Was it helpful?

Solution

this is a very know and debated issue in the drupal world.

this feature is called cck "multigroup" and it looks it's pretty difficult to implement. there are a lot of posts in the drupal forum about this, i suggest you to start here:

http://drupal.org/node/494100

it's a kind of "hidden" feature in the cck module. looking in the module directory, you will find instructions here:

cck/modules/content_multigroup/README.txt
Edit: Ongoing work on the multigroup module has moved to the experimental CCK 3.0 branch.

in the meantime you can try to deal with it using the flexifield module (but it's kinda hackish, i won't use it in production)

OTHER TIPS

I ended up creating my own "Cost/Product" CCK compound field based on this excellent tutorial with example modules: http://poplarware.com/es/articles/cck_field_module

I haven't figured out yet how to pull out a specific sub-field, such as cost, in Views. I only get the entire ": $" compound.

For Drupal 7+, you probably want to check out the Field collection module, or Field group if multiples aren't necessary.

This issue is pretty old, but I just happened across it. I would think the way to handle it for now would be with a second cck type for the children, and the groups as a node_reference field. So you'd have:

MasterType

  • group field
    • unlimited per node
    • each one, a reference to a ChildType node

ChildType

  • child field
    • unlimited per node
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top