CiviCRM And Drupal Integration

This handbook describes CiviNode, a project of Torenware Networks to better integrate CiviCRM and Drupal. My goal here is both to describe the design assumptions I've made, and to get feedback from other developers about what works for them and what needs changing.

So what are the core pieces of CiviNode?

  • An "easy-to-use" wrapper API for handling common programming tasks that modules using CiviCRM can use.
  • Mirroring of CiviCRM contact information as Drupal node objects (mirroring to users is already a part of CiviCRM)
  • Good support for the Views module (Drupal's "table creation wizard"). If you can see data in CiviCRM, almost always you can put that data into a View.
  • Support for integrating CiviCRM content into content created with the Content Construction Kit (CCK), using Mark Fredrickson's CivicrmData module
  • A flexible access control system for restricting access to contacts in the CiviCRM data store.
  • Integration with Organic Groups based upon membership of contacts in CiviCRM "Smart Groups".
  • An XMLRPC interface used by a JasperReports reporting application, and Java widgets to use with the JasperReports library.

Most of these features are already working in the current builds of CiviNode, although some of the Organic Groups code needs serious revision. I have a sandbox up at http://beta.torenware.com, and I'll give admin access to folks that have need of it. You need to log in to see a lot of the features, since part of the point is that you don't have access to contacts as the anonymous user. You'll also need additional accesses to play with the authentication system, and to set up organic groups.

There's already quite a bit of code, so I've broken down this handbook into sections. I'm looking for your comments, criticisms and suggestions. I'm hoping to make the modules as useful as possible to people who want to use CiviCRM in Drupal, both so people create more applications, and so people create better applications.

Thanks,
Rob Thorne
Torenware Networks