A peek into the world of Doctrine and CiviCRM

A few of us have started exploring how we can integrate Doctrine into future versions of CiviCRM. A large part of this work was initiated by Peter Haight from Giant Rabbit who explained his thinking and approach in this blog post on Persistence Refactoring. One of our goals for the next few releases of CiviCRM is to improve the technology backbone that Civi is based on. It made sense to most of us to start from the database layer and then move outwards and using doctrine and working with peter seemed a good logical next step.

We decided to spend 3 weeks (till mid january) on various exploratory sprints and try and answer a few questions and see how things are done in the doctrine/symfony world of things. We also decided to start adopting more scrum - like technques and iterate on a weekly basis. Our goal is to come up with a list of things that we are curious about going forward and work on some potential answers during the week. So without further ado, here are some of the things that we decided to investigate and research this week:

Community Tuneup Session: A report back

At CiviCon, Gunner from Aspiration Tech facilitated a session with the entire community soliciting feedback, discussion and comments on the project. It was a good opportunity for everyone to give feedback on the state of the project, things that we are doing a good job with, and things that we can improve. We ended up doing a collaborative grouping of the feedback in various categories and sorting the comments.

Some of the positives that are worth highlighting include:

Reflections from CiviCon

We had our 4th CiviCon in San Francisco a few days back. It was a very well attended event with very high quality sessions. We hope to have most of the videos online in the next few weeks. I'm quite keen on watching all the sessions that I had to miss. There were lots of highlights for me personally during this event, i'll make an attempt to recreate some of them here:

  • The quality of the talks I attended were very high. Most groups are using CiviCRM very creatively and pushing the limits in multiple ways. We need to continue on increasing the extensibility thus giving developers / integrators more choice.
  • The quality of the Birds of a Feather session was very high. Unfortunately these were not recorded. Jim's talk on how they use Civi for theatre registration and season passes at BACT, Peters talk on CiviMobile and Rachna and Jason's talk on PopVox, CiviCRM and Advocacy were super impressive. A blog post on Popvox and CiviCRM is coming soon, definitely opens up the wide world of advocacy and contacting your congress-person/senator for CiviCRM users.

CiviCRM 2011 Accomplishments and Highlights

CiviCRM had a very successful year in 2011. The project grew significantly in different areas and we made progress on a few long standing issues. The biggest change in our opinion is the increase in community involvement across all aspects of the project.

 

  • We had 1 major release  which supported Drupal 6, Joomla 1.5 (v3.4) and Drupal 7, Joomla 1.6 (v4.0). We also had 13 minor releases in 2011. A chart of the types of organizations using CiviCRM can be found here along with the usage of various components.
  • We held the 2nd North America CiviCon in Chicago which was organized by Young-Jin Kim from  Emphanos. The 1st CiviCon Europe was held in London and organized by Michael McAndrew, Third Sector Design and David Moreton, Circle Interactive. Each of the conferences had 100+ attendees. We also held user and developer training, and code sprints around these conferences

CiviCRM Sprint from Dec 12th - 16th in NL and on #civicrm

Continuing our amazing productivity during sprints, we introduce our 9th and final sprint of the year. This sprint is being held at the offices of De Goede Woning in Netherlands from Dec 12th - Dec 16th. A big thanks to the sponsors  - De Goede Woning - for offering facilities, bosworX for installing WiFi and to Erik H and Erik B from EE-atWork for sponsoring the food, drink and accommodations.

Introducing hook_civicrm_searchColumns: Modify search results to meet your needs

We've been having a great gathering and an incredibly productive code sprint at wonderful Cawthorpe, UK. Thanx to Dave Moreton from Circle Interactive for organizing the logistics and making this event possible.

Over the past few weeks, at least 6 people have asked a very similar question on the forums. I want to extend the results from the Contact / Contribute / Member search form and display these fields instead of my least favorite fields. For example, users want to see the organization and job title of their contacts in the search form instead of country and post code. Or the total amount someone has contributed to the organization as part of the contribution search results. We had a few ways of doing this, but not very elegant.

I wanted to address and solve this during the code sprint. I looked at the code and initially came up with two hooks: one for the search headers and one for the search results. In a conversation with Kurund, we figured that one hook was a lot easier for downstream developers. I took a closer look and found an even better place to introduce the new hook: hook_civicrm_searchColumns. This will be part of 3.4.6

Basically, in the hook you modify the headers and values and inject / modify both the arrays as you see fit. The search templates currently are hard-wired to what it is going to display. So in some cases you might need to customize the search template also. You can work around this if you are keeping the same columns and overwriting the values in the array.

CiviCRM San Francisco Code Sprint Recap

On Tuesday and Wednesday of this week we had the a CiviCRM Code Sprint in San Francisco. We had a total of 9 participants over 2 days: Arthur from the WikiMedia Foundation, Micah from Electronic Frontier Foundation, Coleman and Brylie from Woolman - Sierra Friends Center, Peter and Adam from Giant Rabbit, Stacy from elMobile and Dave and Lobo from CiviCRM.