I've wanted to sit down and investigate the Feeds module for awhile. Fortunately, it's now at a state that it's almost ready for production environments as it's in alpha 12 right now. So what does feeds do exactly? Think Views but for cross-site content sharing. And instead of just drupal, think anything that can put content out in any format anywhere.
Feeds is the successor to the popular Feed API which won out over Leech and all kind of RSS based modules. Feeds lets you setup criteria by which you are importing content from one site to another either from a file or a web address. This allows you to tell Feeds what you're mapping and what the data source is.
This, combined with Views Bonus Pack, is a killer app in itself. You can essentially use one site to output content correctly and dump it into another. Trying to migrate content from an old CMS? It'll let you map those fields too. It's currently not as robust as a CMIS or SCORM type of format, but it's highly customizable and plays nicely with CCK / taxonomy.
The video will show a quick demo of how this could work but you can essentially create a mirror copy of one site within another. And did I mention that it will sync them on cron runs? Since I didn't get to it much in the video, here's a list of possible use-cases for this project:
- You want to move from one CMS to Drupal
- You want to move between versions of Drupal w.o. needing to upgrade a site while still moving content
- You want to move users (yeah, it can do them too)
- You want to import nodes / data from a cvs, rss, xml or most any kind of file format
- You want to MIRROR site content (or parts of site content) in a master-slave relationship.
- You want your dev content to stay in sync with a live copy without affecting the live environment
Trust me, this project will one day move into ELMS as part of the standard installation. I can already imagine its usefulness to an instructor to "borrow" content from another site, while maintaining changes made to that original copy of content. Or even just simple calender dissemination across all sites. Views can then use the data locally to render it in a consistent way!