Report on CiviCRM usage, as seen on twitter


We conducted a research to see how often someone tweeted about a page powered by CiviCRM in the past month and a half. We analysed 858 tweets by 612 users about 163 sites, some big names like oxfam or the red cross, some for tiny organisations.

These sites cover an amazingly wide range of topics: homeless, food, transgender, environment, sport, political parties, pets, public health NGOs, independant movies, gender equality, education, cancer, anti weed prohibition...


Developers: we want your input. Database layer improvement in sight (?)



We are having a discussion on the API group about the current limitations of the framework used in civicrm for the ORM and DB layer (pear DB_DataObject and DB... ).

If you are not familiar with the BAO/DAO structure, you might want to read this blog  post (written in 2006) first.

Beside a general dislike of the existing framework that show its age, we have identified several issues:

I can haz API ?


Some improvements on permissions and the API are landing on 3.4.2 and 4.0.2.

On the previous versions, the permissions where not enforced (on php and smarty) and checked on the same permission "access civicrm" for the rest and ajax no matter the operation and entity.


New tools to automate the configuration and staging/production migration

Have you ever clicked a few zillion time on the admin interface to create a lot of groups, tags, values for a custom field... ?

Have you ever screamed having to do the same tedious tasks you did on the staging one more time on the production site?

Have you cursed the import wizard after having clicked again and again on the next button ?

Live from the Party of European Socialists Council

The PES -who sponsored the development of the badge feature- used civievent for the first time at a big scale: their council in warsow. You might see some bits of it in the news, like the greek prime minister that just finished his speech, but only on this blog will you know more about part of the logistic of such a big event, and how civicrm helped it.

We put in place 3 different registrations, one for the journalist, one for the representatives and guests of the national parties and the last one for the activists.

Improve your workflow with ajax: one click activity status changing

Hi all,


For the training in london, we wanted a simple example that illustrates how to customise and improve civicrm for specific usages using the ajax interface. I'm sharing the result with you, hoping you will find it useful.

One common workflow we have is to change the status of an activity from "scheduled" to "complete". The default way is to click on edit, go to the full form, change the status, save, and go back to the list of activities

We are going to improve it with a "one click click complete": on the list of activities, we transform the status column into an action (when "scheduled"), and when I click on it, it changes it to Completed, without changing screen. For that, we are using the ajax interface and the activity api. Copy the template templates/CRM/Activity/Selector/Activity.tpl into your override directory, and add a few lines of jQuery at the top:

  jQuery(function ($){
    .attr("title","Change the status to completed")
    .click (function () {
      var activity_id = aid.replace("crm-activity_", "");
      cj().crmAPI ('activity','update',{id:activity_id,status_id:2}, 
       {callBack: function(result,settings){
          if (result.is_error == 1) {
            return false;
          } else {
Oh, it's magic! What does it do in detail ? Well, you should attend a developer training, you will discover it, and way more ;) X+