This module provides a method to manage one to many relations between nodes using a taxonomy vocabulary to assign meaning to each relation. Only one level of parent/child relationships is actually supported.

Child nodes are displayed in tabs on the parent node, and can be created edited, cloned or deleted directly from there. The labels for these tabs are defined by the terms of a particular vocabulary assigned to children nodes.

Nodes of a particular content type can be configured to become parents of nodes of another type from the Content Type Edit form. It is required that child nodes are previously configured with a fieldgroup that contains two fields: a node reference that will hold the relation with its parent and a taxonomy field that will hold the term that assigns meaning to the relation.

This module has been sponsored by Gamefila and is published here at Drupal with the aim to be useful to anyone else, but no feature requests will be accepted as the current functionality is frozen and based on sponsor requirements. Please, use it only as an example or additional resource for your own implementations. Only support to understand the exact features it currently provides or questions on how it works are provided.

Requirements:

Builtin support for:

  • Node Clone ("Clone" tab for child nodes).
  • Node Relationships ("Relationships" tab for child nodes).
  • Content translation ("Translate" tab for child nodes, with additional support for i18n).
  • Internationalization (translation of content types and taxonomies).

Configuration:

  • Create a taxonomy vocabulary with terms (no freetagging, no hierarchy) that will be used to assign meaning to the content relations.
  • Now, we need two different content types. One will be the parent type, and the other one will be the child type. Both content types can be defined with as many fields as needed, but the child content type needs a fieldgroup with the following fields:
    • Node reference used to link children with their own parent node.
    • Content taxonomy field used to contain the term that gives meaning to the relation. This field should be associated to the previously defined vocabulary.
  • Go to Administer -> Content management -> Content types and edit the type that you have chosen to hold your parent nodes. You'll find a collapsible fieldset that allows you to choose the type of the children nodes. If you cannot see options here, then please review the previous steps.
  • Go to Administer -> Content management -> Content types -> Parent type -> Manage Fields. You can drag the Subnodes by taxonomy widget to any position in the node edit form.

Usage:

  • Once all configuration steps have been done, you'll see a new fieldgroup in node view pages and node edit forms for your parent content types that show child nodes in tabs. Being the tab label the name of the corresponding term.
  • Users with appropriate permissions can create children nodes by just adding tabs to the new Subnodes by taxonomy widget. Nodes can be edited, added or removed from here. Also, the node clone module is supported.

Project Information

Downloads