Getting started

cc: Drupal Consultants Mailing List

Here's some code:

git clone git://github.com/matt2000/profile.git

(make sure you're getting the 'civicrm' branch -- i'm new to github and not sure how to direct you beyond that.)

I would NOT call this a proof-of-concept. Merely a silly Saturday experiment. On install, the profile2_civicrm module reads the Contact.xml database schema definition from CiviCRM, and creates the fields using Drupal 7 Field API on the Profile2 'main' profile entity.

In reality, this is almost definitely the wrong thing to do; we'd probably want to create our base tables with Schema API and add an EntityController (both of which can also be automated from CiviCRM's XML, if it seems like a good idea to do so.) Field API would be used just for adding 'custom' fields to our Entities. But I already know how to use SchemaAPI and wanted to practice more with Fields, so this was my exercise for the day.

You can see here a roadmap for the kind of code work I think is needed to get Drupal CRM off the ground:

http://www.dropcrm.org/

Please forgive the rough start there; we're just starting to get organized. Feel free to jump in and help flesh out ideas; all pages are wiki'd. Let's be realistic; we're not going to have a release in a month. A year or more to 1.0rc is not an unreasonable expectations. But based on the discussions I've had since DCSF, there are more than enough people who know that it's time to start breaking the dependency on external systems in order to build the best possible CRM for Drupal.

For more golden code & places to help out, see:

http://drupal.org/project/profile2
http://drupal.org/project/entity
http://drupal.org/project/issues/views?text=&status=All&priorities=All&c...
http://drupal.org/project/issues/date?text=&status=Open&priorities=All&c...
http://github.com/Vertice/features
http://github.com/damz/postaladdress
http://github.com/drupalcommerce/drupalcommerce