This project is not covered by Drupal’s security advisory policy.

Note: This project will not be ported to Drupal 6 or 7. It is also not really recommended for production use. Similar functionality to what is in this module is provided by FeedAPI and Feed Element Mapper. If anyone wants to take over as maintainer of this module, please let me know.

Nodeshare allows you send nodes from one Drupal site to another.

It accomplishes this by replicating a node object in its entirety on a remote Drupal site using only HTTP (as opposed to XML parsing, database trickery, and so forth). If widely available syndication methods like RSS feeds are sufficient for your content sharing needs, then this module might be overkill for you. But if you find you need to preserve some of the more complex data structures present in a Drupal node (like CCK fields, file attachments, user associations, and so on) when moving content between sites, Nodeshare may be what you're looking for.

Nodeshare encodes nodes as JSON objects and uses HTTP POST to send them to remote sites. This means you could be sending to another site which lives on your own server, or to a site entirely unrelated to your local network. As long as the access keys match, it doesn't matter. Nodeshare allows you to flexibly map remote and local content types and taxonomy vocabularies, handles comment counts, and a host of other logistical concerns.

Some scalability concerns have been taken into account. Rather than stacking a series of POST requests in a single hook_nodeapi execution, nodeshare saves requests to a queue database table and includes an external daemon (written in PHP) to process and send these requests without adding significant execution time to the Drupal node form submission.

Nodeshare is intended for intermediate to advanced site administrators. In order to get any use out of it, you will need to build a companion module to actually define the situation in which nodes are sent (it didn't seem worthwhile to go overboard trying to guess at every possible use case -- after all, any site complex enough to need Nodeshare probably has a unique set of requirements anyway). A simple example module is provided to demonstrate how this is done.

There is a simple API for Nodeshare which includes a hook that other modules can implement to react to node transactions and a few functions to send nodes and retrieve previous destinations and origin information.

Development has been supported by the Observer Media Group.

Project information

Releases