Last updated November 16, 2015. Created on March 11, 2009.
Edited by iStryker, raxin, Pierre.Vriens, manningpete. Log in to edit this page.

Comparison of Node Ordering Modules

The standard ordering for lists of nodes and or entities in Drupal is first by the "sticky" attribute and then by the created date. Many content modules have some facility to change this ordering, but only for their content type. The modules described here attempt to provide a more controllable ordering in a variety of ways.

Outline Designer

The Outline Designer is an enhancement to the core-optional books module packaged with Drupal. It provides a drastically improved UI as well as additional functionality that can help books be a more attractive, simple option then fully configuring other projects. This in use with projects like Menu Block can help you structure site outlines and node hierarchies rapidly. This project has been created as part of the ELMS initiative.

For more info please see the Outline Designer project page.


The Weight module uses the "sticky" attribute by altering its value to include the node's weight. This has the advantage of making the standard node ordering automatic with no further changes. The disadvantage is that modules that check the sticky attribute for 0 or 1 (FALSE or TRUE) may not work properly, although the module will decode the two values upon a full node load.

For more info please see the Weight project page.


Using taxonomy, individual nodes can be classified multiple ways. See
Taxonomy: A way to organize content for a comprehensive description. To continue the analogy from there, Nodeorder allows you to say that "this node should appear towards the top of the list of composers but towards the bottom of the list of seventeenth century."

Upon installation, Nodeorder adds a column called weight_in_tid to the term_node table. On each Vocabulary's edit page, Nodeorder adds an "Orderable" checkbox. If this is checked, users with the correct permissions will be able to order nodes within any of the terms in that vocabulary.

For more info please see the Nodeorder project page.


Provides a simple UI to manually order any queue. Additionally, it allows nodes to be added and removed from queues without needing edit permissions to the node. Nodes can be added to queues either from a queue management tab or by links on the node teaser. Nodequeue provides a robust Smartqueue API so module developers can create customized queues that are specific to particular users, or to Organic Groups.

For more info please see the Nodequeue project page

See also Entityqueue project page


Rows of a table or an HTML list can be moved via drag-and-drop to build hierarchical structures. Child nodes of parents can be hidden via javascript. Paging is fully supported since rows can be dragged from one page to another.

The default implementation uses a database table to save the information. Additional handlers can be implemented to save the information elsewhere. Currently there are two additional implementations: CCK-Handler and Flag-Weights-Handler.

For more info please see the DraggableViews project page.

Flag Weights

Flag Weights module is an add-on to the excellent Flag module, that adds the ability to set a weight against each flagged item. The module does not provide any UI as such, other than integrating with Draggable Views module to allow drag'n'drop reordering or flagged content. This might be used for prioritising a wishlist, etc.

For more info please see the Flag Weights project page.

Sortable Grid Views Plugin

Provides a simple UI to manually order any grid styled view where items can be moved via drag-and-drop. Sortable Grid Views Plugin is very similar in its goals to Draggable views, yet a lot simpler as there is no hierarchy management. It doesn't depend on Draggable Views though.

For more info please see the Sortable Grid Views Plugin project page

JQGRID - View integration

This module provides views integration for the jqGRid jQuery plugin, which provides advanced interaction controls to HTML tables such as dynamic pagination, on-the-fly filtering, and column sorting and inline editing

This module also support AJAX to handle very large table.

For more info please see the JQGRID - View integration


This module provides:

  1. Birds-eye view of all nodes published on your frontpage and all nodes waiting to be published giving editors complete control
  2. Drag and drop interface to sort nodes
  3. Drag and drop interface between tables to quickly publish nodes
  4. Locking selected nodes into selected positions
  5. Schedule nodes to be published in the future within the same interface.
  6. Shows all users currently online on the page.

For more info please see the Nodeflow



  • ctools
  • entity
  • entityreference
  • views


  • Adds new Queues entity
  • Revisionable
  • Support multiple Bundles
  • Support reference to any Entity/Bundle
  • Full State Machine Support (Queues Workbench)
  • Supports Revision Scheduler Module (Queues Workbench)
  • Revision Revert Operation
  • Revision Delete Operation
  • Revision Publish Operation (Queues Workbenc integration)
  • Revision Unpublish Operation (Queues Workbenc integration)

For more info see Queues

Drupal-related comparison

Feature Outline Designer Weight Nodeorder Nodequeue DraggableViews Flag Weights Sortable Grid Views Plugin JQGRID Nodeflow Queues
Drupal 8.x dev dev
Drupal 7.x dev
Drupal 6.x dev
Drupal 5.x
Last official release 2014-Oct-14 2015-Apr-29 2014-Oct-01 2015-Jun-06 2015-Mar-03 2012-Oct-10 - 2012-Aug-21 2014-May-08 -
Usage (as of December 2014) ~1200 ~41500 ~3400 ~55000 ~53000 ~430 ~680 ~121 19 No usage stats on Github
Documentation Handbook Handbook
README.txt Handbook
Demonstration Video No No No No No No No No No
Architecture Upgrades Book outline interface Sticky-encoding Adds a field to term_node table ? Views style plugin Add-on to Flags module Views style plugin Views style plugin Node listing using views with AJAX drag and drop New revisionable entity with reference to any Entity/Bundle
Additional database tables 0 - purely usability / functionality upgrade 2 - weight_settings & weight_weights 0 - adds a field to term_node table Yes 1 - used for none FieldAPI implemenation 0 - adds to flag module table Yes Yes Yes Yes

Services provided

Feature Outline Designer Weight Nodeorder Nodequeue DraggableViews Flag Weights Sortable Grid Views Plugin JQGRID Nodeflow Queues
Reordering page Drag and drop, duplication of book outlines, AJAX version of book module, context menu Uses core node admin page Drag and drop Drag and Drop interface for D6, Custom Javascript interface for D5 Any view API only, or see integrating with draggable views Drag and drop Drag and drop Drag and drop Drag and drop
Feature blocks Inherited from book module N/A None Inherited from views None None None None Views
Supports Managing Translated Nodes ? ? ? Yes, either by tying translations to the original or by ignoring translations and letting admins manage them as separate nodes ? ? ? ? ? ?
Security Drupal core-optional books module Drupal core, 'assign node weight', 'administer nodes', 'administer site configuration' Drupal core Separates permissions for ordering nodes from editing them Views permission, plus 'Allow Reordering' ? Views permission Views permission Drupal core Permissions: Administer queue types, Administer queues, and per-queue type permissions: %type_name: Edit any queue, and %type_name: Create queues
Settings Yes Yes Yes Yes Yes N/A Yes Yes Yes Yes
Views support
Translation template supplied N/A N/A

Looking for support? Visit the forums, or join #drupal-support in IRC.


BenStallings’s picture

Thank you for this page. However, I'm not clear on why the core Book module is not included in this comparison.

NancyDru’s picture

A) it is not a contrib.
B) it is not a more general purpose node ordering feature.

However, if you feel strongly about it, join the Doc team and add it to the page.

BenStallings’s picture

Thanks, Nancy, but if I knew enough about this issue to be on the doc team, I wouldn't be looking for an answer to this question, because I'd already know the answer. :-) I'm asking the question, not because I want to contribute the answer, but rather because I came here looking for the answer.

I came to this page to find out how various node-ordering modules compare to the Book module, which I'm already using and understand. I am not using and do not understand the other modules you're describing in this page. The page helps me to understand how they differ from each other, but not how they differ from the Book module. The page also doesn't say it is limited to contrib modules, nor what is meant by a "more general purpose node ordering feature." More general purpose than what? The Book module? Or something else? I'm confused.

Thanks again.

NancyDru’s picture

Yes, more general purpose than Book. Right now, RealLife™ is screaming at me, so I don't have the time to devote to adding Book here (frankly, it was an oversight when this was started because not that many people use Book).

The only one here that I personally am responsible for is Weight, which I took over some time ago. It is a relatively simple module that adds weighting (similar to Book) to any node. It does so by encoding the weight into the Sticky field so that standard Drupal queries should work without any "fiddling." It's not perfect because some modules don't do "standard" queries, and some actually look at the sticky field and get confused. But those are few, and easily fixed when identified.

hansfn’s picture

Maybe it's worth while to mention Views in the introduction? You can use Views to order nodes (by any parameter). I could have added something myself, but I haven't used any of the node ordering modules so I can't really compare them with Views ...

Happy Drupaling!

Renee S’s picture

Also one-to-many relationships. Anything relying on book can only be in a hierarchy once. Nodequeue, for instance, allows nodes to be in multiple hierarchies.

candelas’s picture

It would be interesting to know which of these modules support entities.
For what i have learned, draggable views, flags, nodequeue and flags (they adjust to my needs) dont support them yet.
thanks for the documentation :)

//trying to answer one question for each one that i make.
//this way, drupal will be more friendly and strong

naught101’s picture

Entity collection is probably what you're looking for, although it isn't very widely used yet, so it might still have a few bugs.

colan’s picture

If anyone has any input into the differences between Entity Collection and Entityqueue, please comment over at #2205857: Explain difference between EQ & Entity Collection (or merge them).

wwwjaylee’s picture

They do virtually the same thing, although Entityqueue is clearly more popular at the moment. I think it's more important to be able to distinguish between these two modules against Flag and Flag Lists:

MrPaulDriver’s picture

I have just finished a project using the Sortable Grid views plugin and report back that it is very good indeed.

An example use case would be for sorting a grid of gallery images, but it is much more flexible than this.

My client was turned off by Draggable Views because he needs to sort very long lists of nodes. With the Sortable Grid, this was made very easy because the user in not endlessly scrolling up and down to sort a view.

Currently there are some minor issues which need resolving, but potentially the Sortable Grid could be a very worthy alternative to Draggable Views. To this end I am sure the maintainer would welcome some development help to make it even better.

Take a look

Paul Driver
Ilkley, West Yorkshire, UK

zekeweeks’s picture

The sidebar is blocking the ability to read the most important table for this node. I'd normally fix this by giving the table a maximum width and overflow: auto; styles, but can't do it with the filtered HTML rules applied to the body field. I'm not sure about the best way to address the problem - I hesitate to move the table far down the page past the sidebar, since it's such important information.