14 November, 2011
By sfyn
We've been offering CiviCRM consulting and hosting on a per-client basis for some time now, and as we have grown, we have started to feel the need for greater automation and consistency in our hosting offerings and contracts. Koumbit is currently in the midst of developing a comprehensive hosted CiviCRM offering, with the support of a few courageous clients. On the technical side our solution is intimately linked to the Drupal frontend and the Aegir hosting system. The aegir hosting system is primarily designed to host multi-site drupals. Once configured on a server, aegir handles many aspects of site deployment, from database creation to virtual host configuration. It also allows for the easy cloning of existing sites and the migration of sites from one Drupal codebase to another. At Koumbit we use Aegir to partially automate minor and security updates of Drupal and CiviCRM. Koumbit has participated in the... Read more
28 October, 2011
By jalama
Filed under CiviCRM, Drupal

Recently we spent some time cleaning up the code base for Drupal's Views module in CiviCRM. This will be reflected in the 4.1 release of CiviCRM, at this point this was all written for Drupal 7, though should be portable to Drupal 6. There were a couple new features thrown in but much of this will focus on making the code base a little more efficient and easier to read.

The two major tasks were:

Break up the civicrm.views.inc file into separate files for each component. This is referring to the file that holds the Views related hooks (ie hook_views_data() and others) to allow the CiviCRM and Views modules to work together. Over the past couple years this file has grown to an unweildy 7,000+ lines. The lions share of the 7,000+ lines of code was the call to hook_views_data(). That function has been broken into 7 files, one for each CiviCRM Component (Core, Contribute...

Read more
18 October, 2011

I recently completed a conversion of about 8 years of history from a 5 year old Blackbaud Kintera site to a Drupal CiviCRM solution. Confused yet? Don't worry, all we be revealed in time. As a way of giving back, I am planning to share my experiences good and bad, what worked, what did not, what I learned and what I will and won't do next time.

Let's start with a little background. I have been the technology consultant for Women in Development, New York (www.widny.org) for the past 8+ years now. I started out as a member, graduated to a board member and in the end became their consultant. I have been with this organization since before they had a formal database to manage their members and before they had their first website. Back then, I used my own mail servers to send out their mass emails, my how the times have changed. In addition, to selecting and managing their original database solution, maintaining their first website and...

Read more
16 October, 2011
I've just released the stable 2.0 version of the Drupal Webform CiviCRM Integration module and wanted to share some of the cool new things you can do with it. Version 1, which I wrote earlier this year, was basically built for a single purpose: you could have a user fill out a webform, and their contact record (name, address, email, etc.) would be created/updated and an activity of the form submission would be logged. That alone is pretty darn useful, but suggestions from users, the advent of API v3, and a commission from the core team got me setting sights higher for the next release.

New Features in Version 2

  • Handling multiple contacts and contact types

    Instead of processing a single contact per form submission, you can now have as many contacts on the form as you like, and they don't all have to be individuals. A simple use for this would be to allow a person to fill out their own...
Read more
28 September, 2011
By cpc

As a freelancer, here are a few notes and an overview on how I solved a client's contacts consolidation when the data came from external sources:

My Use Case
- Client had ongoing events and conferences over several years which meant there were databases and mailing lists all over the place (many of which had crossover).
- I set up ongoing JSON exports of the contact data from the external sites, which could be queried by date range to get the latest changes.
- I had a contact consolidation script on the CiviCRM end, that took these JSON exports, and loaded them into Civ via the API.
- About 5 different source sites created about 1200 contacts

A Few Challenges
- The documentation can be quite scattered and it was difficult sometimes to find the right versions. I really pity whoever has to deal with this challenge though!
- It took me much longer than it should have to learn how to activate the API...

Read more
13 September, 2011
Filed under CiviCRM, Drupal
At NS Web Solutions, we recently got a chance to work on a cool project for one of Pogstone's clients. Thanks to this client's generosity, we expect soon to release a Drupal module which will provide a feed of each user's assigned activities in iCalendar format, ready to be subscribed to from with Google Calendar and/or Outlook.
 

Key features

Here's a short list of what you can expect from this module:
  • General description: Users can access an iCal feed of their upcoming (future) Activities, suitable for subscription via Google Calendar, Microsoft Outlook, and/or similar software
  • Activities are represented as VEVENT objects, matching applicable properties (DTSTART, DTEND based on duration, etc.) where possible and appending names of any other asignees to the DESCRIPTION property
  • Feed includes activities...
Read more
31 August, 2011
By jamie
Filed under API, Drupal
I hope Michal will forgive me for typing during his Developer training presentation on tests. Since I heard the presentation at CiviCon, I instead tried, as an exercise based on what we learned this morning, to create a custom group and custom field via the install hook in a Drupal module. Here are the results...
 

function civicrmtest_install() {
  civicrm_initialize();
  require_once 'api/api.php';
  $params = array(
    'version' => 3,
    'extends' => array('Individual'),
    'title' => 'JamieGroup',
    'is_active' => 1,
  );
  $result = civicrm_api('CustomGroup','Create',$params);
  if($result['is_error'] == 1) {
    drupal_set_message('Error creating Custom Group');
    drupal_set_message($result['error_message']);
  } else {
    $value = array_pop($result['values']);
    $custom_group_id = $value['id'];
    variable_set('civicrmtest_custom_group_id',$custom_group_id);
    $params = array(
      'version' => 3,
      'label' => 'JamieField',
      '...
Read more
29 August, 2011
By Eileen
Filed under v3.4 and v4.0, Drupal

The transition to Drupal 7 is probably the biggest challenge this year for the Drupal community. As discussed in previous blogs the intention has been that 3.4 would be the last release supporting Drupal 6. Unfortunately many sites aren't ready to upgrade to Drupal 7. The hidden risk of this is that if a sizeable portion of CiviCRM sites are not using 4.1 then the number of people testing, fixing & enhancing 4.1 will be much reduced. The cost of not having a drupal 6 release is likely to be higher than the cost of having one - even for Drupal 7 and Joomla! sites.

 

One of the things we have looked for at the codesprint has been Tim Otten's suggestion of supporting Drupal 6 as a separate CMS (like Joomla! & WordPress). The good news is that we think that a Drupal 6 release for 4.1 is a realistic option. Of course resources will continue to be a problem so please commit to helping or...

Read more
25 August, 2011
By jamie
Filed under CiviCampaign, Drupal, Sprints

If you are running Drupal, the process of configuring CiviCampaign will be a lot easier with the 3.4.6 release. The CiviCRM Engage Drupal module has always provided an xml configuration file which, if imported, setup many default custom fields designed to make CiviCampaign really shine. Previously, the process for importing it required looking up your site key, the absolute unix path to an xml file on the server, and your Drupal username and password. These pieces had to then be combined into an extraordinarily long and error-prone URL which you had to place into your browser. And, you also had to create several contact subtypes and fiddle with several other CiviCRM configuration settings. Now - all of these steps are done automatically by simply enabling the Civicrm Engage module from within Drupal. Furthermore, Eileen has exposed a number of ways to configure the behavior of the Walklist and Phonelist reports in the upcoming release - including the ability to:

  • ...
Read more
24 August, 2011

In May, Giant Rabbit relaunched CompassPoint Nonprofit Services’ website and CRM, transitioning them away from a proprietary CMS and CRM to a Drupal/CiviCRM solution.  We came across a lot of unique requirements and challenges throughout the transition process.  This post will focus on one feature that required significant customizations to CiviCRM:  A multiple event registration shopping cart.

 

The Goal

CompassPoint offers a large selection of workshops and trainings for nonprofits throughout the year.  On their old proprietary platform, individuals were able to add events to a shopping cart and pay for them in a single transaction.  In addition to their workshop offerings, CompassPoint also organizes a number of conferences throughout the year, with each conference containing a number of sessions for the attendee...

Read more