24 October, 2010
A few months ago as our organization was just starting to use CiviCRM, Dave Greenberg recommended that we look at CiviCase as a solution for our admissions team to keep track of prospective students. As a collection of activities associated with a client, CiviCase looked like a great way to record our interactions with potential students as we made initial contact, followed up, received communication from them, sent more info, and then accepted their applications. From a DB point of view, yes, it is a nearly perfect way to store that information. But from a UI point of view, we had a long way to go before our admissions team would be able to painlessly get the data in, work with and update it once it was there, and then be able to get it back out in the form of reports. Here's what we did to make that happen (and more!):

Getting the Data In

Creating a case for a new prospective student is simple: just log in to... Read more
03 October, 2010

Today at the Bristol Code sprint a few of us made a concerted effort on getting making Giftaid 'plug and play' for Civi.

Our starting point is code written by Millertech and our aim is to get it into a state that we can package it as a Drupal module.  Once we've done that, we're hopeful that we'll be able to package it for Joomla also.

We're having to make a few improvements to Civi's hooks, and some modifications to the existing functionality to enable us to package it up, but the benefits are obvious: much easier installation and thus wider uptake of the module, and thus higher CiviCRM adpotion in the UK :)

We spent most of the morning familiarising ourselves with the code and discussing the necessary changes we would need to make.  This threw up some difficult problems (I'll spare you the details) but the result was this outline of...

Read more
24 September, 2010
By michal
Filed under v3.3, Extensions

Slight change in plans - I was promising the recipe on packaging payment processors, but we'll do custom reports first. They are second in the hierarchy of complexity after custom searches, and they smoothly introduce small new concept that will be described below.

 

Again, you need the very custom report first - a php class, as it is handled right now. Usual custom report is made of PHP class and the template. Once we have it, we can go ahead and package it.

 

In order not to repeat the information which was already described on packaging custom searches, here's quick summary:


  •  prepare the info file (see the sample file at the end of this blog post). The key that we'll choose is: org.civicrm.report.grant

  • ...
Read more
21 September, 2010
By michal
Filed under v3.3, Extensions

Continuing the series, let's look at packaging payment processors. Before digging in the text below, make sure you're up to date with previous blog posts: on info file format and on packaging custom search.

 

We'll start as previously, by creating a directory named exactly the same as unique key that we're choosing for our extension. Let's use example of Google Checkout payment processor - both the key and the name of directory will be org.civicrm.googlecheckout.

 

Now, we need to create the info.xml file. Since this process has been described in detail before, going straight to final effect:

... Read more
21 September, 2010
By michal
Filed under v3.3, Extensions

As promised previously, here is the first recipe for creating your own CiviCRM extension. We'll start with the easy one - let's create an extension providing a custom search.

 

First, you obviously need to create your custom search, as described in documentation. Once you have the PHP class and the template, you can start packaging it. Let's say you will be doing an activity search. You need to prepare the info file as per description in previous blog post. Please note some details around info file has changed a bit since it was originally published - that's caused by integrating some of the feedback from blog comments. The info file structure shown...

Read more
09 September, 2010
By michal
Filed under v3.3, Architecture, Extensions

This blog post is outdated. For latest information about how to create extension, please refer to Extensions Wiki Page.

 

It had to happen sooner or later - CiviCRM is growing with with variety of functionality, where people can plug in their own, custom pieces and make CiviCRM more tailored to their needs. Most prominent examples at the moment include payment processors, custom searches and custom reports. Don't confuse it with "larger scale" customisation, like writing Drupal modules which - using API and hooks - modify CiviCRM behaviour. We're talking about well defined, self-contained pieces of code which throw in some useful functionality into your existing installation. As of now, it's a bit of a hassle to install them - you need to put files in proper places, register them using administrator section and so on: nothing...

Read more