I spent last Thursday and Friday at the Open Source CMS Conference (OSCMS 2007) - hosted by Yahoo! in Sunnyvale. It was a high-energy gathering of smart folks who are passionate about software and open source - with an especially large concentration of Drupal developers and integrators.
Gregory Heller from CivicActions joined me in presenting a session on CiviCRM on Friday morning. Despite the fact that we were scheduled opposite Dries Butaert (Drupal founder) - we had a good showing. I gave folks an overview of CiviCRM - with an emphasis on CMS integration approaches (profiles, user registration, APIs and hooks). Then Greg showed off live examples of each of these techniques on some of the cool sites that CivicActions has developed using CiviCRM.
- Algore.org: Registration profile implemented as a standalone form in a block. This site also uses Organic Groups integrated with CiviCRM and features a "baseball bat" style contributions progress meter ("CiviThermometer").
- DefectiveByDesign.org: Uses a "Count Block" module to display a block with current counts of group members for selected groups.
- Jim Hightower : Incorporates a "User Referrer" module which uses a CiviCRM hook to inject the referring URL for each newly registering user into the CiviCRM contact Source field.
- Creative Commons International Database : This site also uses hooks to automatically notify an assigned CC staff member whenever the information for one of their jurisdictions is updated. Ethan Kizcek (of CivicActions) has also built a cool Process Matrix Report for CC - which uses CiviCRM APIs to interpret and format a set of custom field values which represent progress through a work-flow.
Given that all the sessions were multi-tracked, I didn't get to attend a number of presentations that I was interested in - but I did learn and see some cool stuff. Highlights:
- PHP founder Rasmus Lerdorf did a keynote session to kickoff the conference. He covered some cool and useful tools and techniques for profiling and optimizing PHP applications. Then he provided a sobering look at cross-site scripting techniques (XSS) - and some tools for prevention. You can check out his presentation here
- Joomla! Overview - Hagen Graf covered the history and organization of Joomla! and previewed some of the cool new stuff in the forthcoming 1.5 release. A number of core Joomla! developers were in the room - and contributed their thoughts on Joomla!'s differentiation and their goals for 1.5 (more flexibility, more integration hooks, and maintain the ease of use that Joomla! is known for). We also heard a bit about how the project is organized into defined working groups which are responsible for different functional areas (e.g. Development, QA, Documentation, Infrastructure). They also have specific "moderators" for each of their regional support forums. I didn't have time to drill down more into how this works - but I suspect there's things we can learn from Joomla! about scaling and promoting community involvement.
- Drupal Search API and Views - Robert Douglass deconstructed Drupal's Search API - explaining the various components which are involved in indexing and searching. The approach which allows components (e.g. node and user) to inject their own rules into a shared indexing engine may have some applicability to our efforts to improve CiviCRM search capabilities. Doug Green then demonstrated how Views could be used to quickly define highly customized search filters. I plan on spending more time digesting and exploring Views and CCK as we work on giving folks more powerful and flexible ways to mine all the data that is collected on CiviCRM sites.
I've attached a copy of the Powerpoint slides from our CiviCRM session, as well as code snippets for the CivicActions "features" to this blog post. And...you can browse all the sessions and (for many of them) download materials at the OCSM Conference site.