This is a companion module for Nodequeue.

This module provides a smartqueues based on avaliable content types. It adds a subqueue per node of selected content type to hold an ordered queue for nodes of another types. Any of these types can be used for smartqueues as well to hold additional levels of nodes grouping. So you can build very complex informational structures powered by handy Nodequeue's features and integration.

Requires: Nodequeue 2.x

Usage

With this module installed it's possible to create following node relationships:

nodetype A-----------> queue [use nodetypes B and C]
|                     |
+--> node[type A] <=> +--> subqueue
|                     |    +--> node[type B]
|                     |    +--> node[type B]
|                     |    +--> node[type C]
+--> node[type A] <=> +--> subqueue
|                     |    +--> node[type C]
|                     |    +--> node[type B]
|                     |    +--> node[type C]
...                   ...  ...

Multi-level hierarchies:

nodetype A -----> queue [use nodetypes B and C]
|                |
+--> node[A] <=> +--> subqueue        nodetype B --> queue [use nodetypes D]
|                |    +--> node[B] ---^ <==========> +-->subqueue
|                |    |                              |   +--> node[D]
|                |    |                              |   +--> node[D]
|                |    |                              |   +--> node[D]
|                |    +--> node[C]                   +-->subqueue
|                |    |                              |   +--> node[D]
...              ...  ...                            ... ...

Several smartqueues

:

taxonomy vocabulary 1 --> queue [use nodetypes A and C] (Smartqueue for Taxonomy)
|                        |
+--> term 1 <==========> +--> subqueue        nodetype A --> queue [use nodetypes B]
|                        |    +--> node[A] ---^ <==========> +-->subqueue
|                        |    |                              |   +--> node[B]
|                        |    |                              |   +--> node[B]
|                        |    |                              |   +--> node[B]
|                        |    +--> node[C]                   +-->subqueue
|                        |    |                              |   +--> node[B]
...                      ...  ...                            ... ...

UPDATE for use cases:

More concrete examples at the instance of meecect.

UPDATE for 1.2 Beta2:

You can define per-queue custom PHP code for additional node filtering. This code evaluates on every pair of nodes which relationship can be established, it should return TRUE to filter out (do not include) candidates.

Variables are avaliable:
$queue — nodequeue object;
$sq_node — subqueue node object (not fully-loaded, just nid, type and title);
$node — candidate node object.
Do not include <?php ?>

 

Note: Nodereference field from CCK and Category have a similar functions for building one-to-many nodes relationship based on content types.

Russian: Описание и обсуждение модуля по-русски на drupal.ru

Project Information

Downloads