I need a node scheduling system a bit more complex than the scheduler module provides.

I want to be able to define arbitrary pages with arbitrary positions in which scheduled nodes can be displayed.
Imagine a magazine style home page or other landing pages with various node blocks on each page, possibly via the panels module. I want to be able to schedule nodes to be displayed into these blocks.

I am thinking that via an admin page you would define these pages, what positions exist on the page and what node types can be displayed in the position. I imagine a NODE_PAGE_SCHEDULER_CONSTRAINTS table (page, position, node_type) which would store this information.

Then from any node edit page for a node type with legally defined page positions site administrators would be able to select scheduling start dates. I imagine in the node edit form a section would render with a select box for available pages, a select box for available positions once you had selected the page and finally a start and end date for which the node would be scheduled to that position. An add schedule button would add another row of select boxes and scheduling dates so that you could define any number of schedules to different page positions at different times for a given node. I imagine a NODE_PAGE_SCHEDULE table (nid, page, pos, start_timestamp, end_timestamp) would store this information.

To set up the display blocks for scheduling page position I would make the NODE_PAGE_SCHEDULE table available through the views module with a default scheduler view. View filters would filter only nodes scheduled for specific pages and positions. A page view of this query could be used to examine the scheduling for a specific page position into the future (it might be nice to provide a short-cut action to remove a node from a schedule here). A block view displaying only one node with the same query but filtered for the current time would be used to render the actual scheduled node.

Does anyone know how I might achieve this same functionality through existing modules?

If not I am going to write it. Does anyone have any comments on the functionality as planned?
Ideas for changes,. Necessary added features?

Regards,

Christopher Hamersley
www.hemisphere3.com

Comments

notauseranymore’s picture

I would imagine in the same admin screen for the module you would want to be able to select user roles which could access scheduling for a specific page position.

Would anyone find a module like this useful?

XiMac’s picture

Using Views+panels+taxonomy (defining some views with taxonomy of "places")

  1. Define a taxomomy of places in your pages (Up, left column, right column, and so on ... - check Panels configuration first or create your own Panels Templates)
  2. Define some Views Blocks attached to this "places" taxomony, with the order (and filters) you need
  3. In Panels, use this blocks to attach this views Blocks to different zones of the page

Next time you want to create a content, you could use the "Places" taxonomy created to attach this content to a specific zone of a specific page (define different taxonomy - one per page- with places), and Scheduled for publish options (if run, scheduled dont run for me and i'm looking why is bothering me).

I use this trick to create different frontpages for different channels. The module Frontpage is also an excelent complement to add.

XiM