11 March, 2016

Our customer Werk met Zin (Network of job coaches in Flanders) has a Wordpress site and uses CiviCRM to manage their relations and cases. On their Wordpress site they allow users to register for some events, which they solve with the civicrm event info and registration pages.

However, they also allow an individual to request the start of individual job coaching with a form. This should end up in CiviCRM as a special activity with the fields on the website form as custom data. And the Wordpress website is on another server, although that would not make such a big difference. Anyway, we (as in CiviCooP) developed a specific solution that takes the data from the Wordpress website on server A and sends it to CiviCRM on server B. The solution has a Wordpress part and a CiviCRM part.

The Wordpress plugin

This plugin can be found at...

Read more
10 March, 2016

If you're like most leaders of small nonprofits, you want to know where your fundraising stands as compared to other organizations your size. CiviCRM stores a wealth of data, but it might be time-consuming to search for it all. Even then, how will you know you're comparing data apples-to-apples with the rest of the sector?

The survey and extension

This is where the Individual Donor Benchmark Survey comes in. By asking standard questions of small nonprofits across the United States, the survey allows you to see how your organization stacks up against nationwide benchmarks, and you can compare your own results in subsequent years.

AGH Strategies is a sponsor of the project, and we produced a ...

Read more
09 March, 2016
By totten
Filed under API, Architecture, Extensions

Automated tests are important when collaborating with other developers in a large project. Even if you focus your attention on a small piece of the puzzle, your piece depends on other pieces, and others may depend on you. There will be inevitable occasions when a change in one causes an unexpected change or break in another. Automated tests form the first line of defense, providing timely feedback so that problems can be addressed while the material is mentally fresh.

Testing CiviCRM is trickier than testing a basic library -- tests may involve system services (from Civi or the CMS), and CiviCRM developers may use different CMS's, file structures, and URLs. This problem can be mitigated by creating more configuration files (for each extension, test-suite, or installation), but that grows unwieldy with multiple extensions.

We've published some updated documentation and tooling to support tests in extensions. The remainder of this post assumes that you have...

Read more
02 March, 2016
Filed under Extensions

Manage all your volunteer projects from a central dashboard with CiviVolunteer 2.0

Ginkgo Street Labs is proud to announce the availability of CiviVolunteer 2.0 to the CiviCRM community. CiviVolunteer adds volunteer management to the donor tracking, membership management and event registration capabilities of CiviCRM, the Bossie award-winning nonprofit constituent relationship management (CRM) system. This latest release of CiviVolunteer introduces major improvements in functionality over the previous version, released in August 2015.

Here are some of the things you'll find in CiviVolunteer 2.0...

Read more
22 February, 2016
By Eileen
Filed under API, Extensions

Using extensions on 4.7 I discovered that if you add entities but don't define them via hook you can get errors.

 

So, if you have an extension that defines entities you need a hook like the one below

 

/**
 * Implements hook_civicrm_entityTypes.
 *
 * @param array $entityTypes
 *   Registered entity types.
 */
function accountsync_civicrm_entityTypes(&$entityTypes) {
  $entityTypes['CRM_Accountsync_DAO_AccountContact'] = array(
    'name' => 'AccountContact',
    'class' => 'CRM_Accountsync_DAO_AccountContact',
    'table' => 'civicrm_account_contact',
  );
  $entityTypes['CRM_Accountsync_DAO_AccountInvoice'] = array(
    'name' => 'AccountInvoice',
    'class' => 'CRM_Accountsync_DAO_AccountInvoice',
    'table' => 'civicrm_account_invoice',
  );
}
19 February, 2016
Filed under CiviCRM, Extensions, Tips

CiviCooP is working with Emphanos on a nice CiviCRM project (of which I am sure Young-Jin will blog at some point in the near future). As part of this project I developed a specific extension that creates or updates Activity Types, Contact Types, Custom Groups with Custom Fields, Event Types, Groups, Membership Types, Option Groups with Option Values, Relationship Types and Tags from JSON files.

So for example there is a JSON file for activity types which looks like this:

{
  "cont_education_info":{
    "name": "cont_education_info",
    "label": "Continuing Education Info",
    "is_active": 1
  },
  "award_win":{
    "name": "award_win",
    "label": "Award Win",
    "is_active": 1
  },
  "advocate":{
    "name": "advocate",
    "label": "Advocate",
    "is_active": 1
  }
}

When the scheduled job Update is executed it will either create or update all the activity types in the JSON...

Read more
09 February, 2016
Filed under API, Extensions, WordPress

Our customer Werk Met Zin (platform of independent 'job' coaches and trainers in Flanders) use a Wordpress site as a front end and CiviCRM as their back end. There is now one specific instance where an individual can apply for a series of coaching sessions on the website. This has to be passed to CiviCRM and rather than updating the website to Drupal we are passing the data from the Wordpress site to CiviCRM. The company that develops the Wordpress website knows nothing about CiviCRM (and want to keep it that way.) Any remarks and/or suggestions are very welcome, and obiously we will share the solution with the CiviCRM community once it is complete. Here is what we plan to do (and thank you to Werk Met Zin for funding the development and us at CiviCooP for developing.....):

  • create a Wordpress plugin that catches the form (with the save_post action) and...
Read more
18 January, 2016
Filed under CiviContribute, Extensions

I've been working on a few larger CiviCRM migrations lately. Out of that work I've been adding some new pieces to the iATS payment processor extension as well as my more generic recurring payments extension, and here's my story.

The original CiviCRM model for recurring contributions was built around what let's call the Paypal model, which tries as much as possible to give the donor ownership and management of their payments, by managing the recurring schedule and giving donors their own 'account'. This has benefits for donors and also for the organization receiving the donations - e.g. less administration.

But I've found that for many organizations migrating to CiviCRM, this model isn't ideal. For a start, a lot of older regular donors don't want to manage their payments and assume it's the responsibility of the organization. Secondly, having...

Read more
14 January, 2016
Filed under CiviEvent, Extensions

I have just published an extension we (CiviCooP) developed for Coordinatie Vluchtelingen Vrijwilligers Ede (CVVE) CVVE is facilitating the organisation of activities for refugees in Ede. Many activities are organised by willing citizens and CVVE is the bridge between those citizens and the refuees. So to keep track of everything which is going CVVE needed an export of the events in their Google Calendar.

The core civicrm functionality allows an iCal export to Google Calendar but only for public events.CVVE also has non public events. This extension does creates an iCal export including the non-public events. It adds a link http://yourcivicrm.com/civicrm/event/private_ical?reset=1&list=1 which you then could add to your google calendar as an external calendar and then private events will show up in your google...

Read more
13 January, 2016
Filed under v4.6, v4.5, Extensions

Imagine that you’ve created your event in CiviCRM and have built an exceptionally brilliant price set. Your participants have all the choices they need, special timed options manage themselves, and the registrations are rolling in. Now it comes time to see what everyone’s choices are. How do you do that? What report can I use to see a list of participants and all their choices together?

We initially answered this question for one of our clients by building a custom report. It laid out each participant with the important identifying info, price set choices in their own columns. With customized field labels, the report had exactly the information they were looking for. The problem was that their price set needed to change every year for this event, which meant manually tweaking the report each time. While the report provided the full list of participants and choices, it didn’t provide the option to see a subset of the participants or choices.

Enter the Line Item Report...

Read more