I just want to make a quick post; during a break from working on the Views module, which has a bit of complexity and I've had a lot of other things occupying my time, I quickly wrote and released the Node Queue module. I don't think it's terribly obvious what it does and what its utility is, so I want to sort of pitch it out here.
In a lot of ways, Node Queue duplicates some of the functionality one might get by using taxonomy, but it does so in a way that's a little more intuitive from an administrator's perspective, and allows flexibility with what to do with it. In essence, an administrator creates a queue, and admins put nodes in that queue. What is actually done with the queue is highly configurable, but the most obvious uses are to display a block with titles, or to display a list of teasers including that queue. But that isn't all it can do.
Some sites might want to have a 'lead article'. One could do this with a taxonomy tag, but that requires editing the post. One could also do this by using 'sticky', but that both requires editing the post AND that your front page is the basic node list. Not necessarily what one wants either. An admin can create a node queue with a maximum size of one; when a lead article is placed into the queue, the previous lead article is automatically removed from it. Alternatively, the queue can be much longer, where only the most recent item in the queue is the lead article, but everything else in the queue is available historically.
It works well when combined with my dashboard module, where a lead article is in the top portion, and in the left a list of items in the queue and in the right portion some other featured content.
Another obvious use is to place several articles into a queue, and choose one of them randomly and put it in a block or in a position similar to the lead article. The module provides all of this functionality through exposed functions for PHP snippets.
Finally, the thing I hope to do, but isn't completed yet and I admit I'm not sure when I'll do it because I'm not quite sure the best way to design it yet, is to integrate this with the workflow module to provide a publishing queue.
The easiest way to describe it is that on my site, AssignBlame.com, I have a feature called the 'Goat of the Week'. Ideally, I actually have one of these articles every week. Ideally I have even more in the hopper, ready to go. Using this queue, I can place nodes in that queue, and the publishing module would, at the specified witching hour, take the next node in the queue and move it to a different queue. That different queue exposes the most recent one as the Goat of the Week, and provides a link to older members of that queue. This could actually easily be accomplished if the workflow module provided cron support, but it doesn't yet. In fact, writing this paragraph has just put me a little closer to propertly designing it than I was when I started the paragraph. Hooray for that!
In any case, commentary is appreciated! Or hey, if you use this module give me a shout. The more I know the stuff I produce gets used, the more like I'll be to provide extensions if they become necessary!
Comments
I will try it out.
I will try it out. The features you mentioned are definatly something I am looking into having on my website. Especially the timed queue feature you mentioned will be added later. I really want to be able to have things publish automatically for daily or weekly features or featuretts that are being done. That way work can be done when time permits and I don't have major deadlines to meet for stories and articles like that.
I know this thread is kind
I know this thread is kind of moldy, but I was just trying to grok the node queue module-- the obvious first question being why not just use taxonomy-- and after some length of time searching, I found this excellent explanation. Just a suggestion, but you described the module so beautifully here you might want to include it on the project page. The project page describes what NQ does, but doesn't mention the why not taxonomy piece, which this page does perfectly. I wish every module had this level of detail. Thanks...