Introducing Accessible Continuous Integration

By | April 5th, 2016|Categories: Development, DevOps, User Experience|Tags: |

It’s time to evolve Continuous Integration beyond technical problem solving into a practice based on serving those we build the tools for. Continuous Integration is ready to undergo the transformation needed for broader adoption, that it may reach its full potential.

Bringing the U.S. Web Design Standards to Drupal

By | March 2nd, 2016|Categories: Design, Development, Drupal, Government, Theming|Tags: , |

Since Drupal powers a large number of federal websites, it was a no-brainer for CivicActions to start thinking of how to port the U.S web design standards into Drupal themes.

Introducing CivicActions Labs

By | November 19th, 2015|Categories: Culture, Design, Development|Tags: |

We’re pleased to announce the launch of CivicActions Labs, an initiative to provide our team with sanctioned time outside of project work to innovate and design products that will streamline our workflow and improve our practices.

Dockerizing Drupal for Project Development and Testing

By | January 28th, 2015|Categories: Development, Drupal 8, Testing|Tags: |

Docker has quickly become the favorite virtualization tool for many people, and at CivicActions we created a basic docker framework to facilitate our development processes.

Civicrm and Sendgrid email api v2-v3 upgrade fix

By | December 22nd, 2014|Categories: Development, How-To|

A client using Civicrm recently approached us with a problem: bounced emails, sent through the Sendgrid email service were no longer reporting as bounced. All emails, regardless of status, were reporting as being successful. Our custom module (D6 integration) was attempting to extract data from the post, thusly: $_POST['job_id'] Unfortunately, [...]

Module Development in Drupal 8

By | August 31st, 2013|Categories: Development, Drupal 8, How-To|

AJ shares learnings from porting custom Drupal 7 modules to Drupal 8.

Alternatives To Go Daddy For Domain Registration

By | April 11th, 2011|Categories: Development, How-To|

I think all of us at CivicActions were disgusted by Go Daddy CEO Bob Parsons' vacation video featuring him murdering an elephant in Zimbabwe (and the subsequent butchering of that elephant by local villagers wearing Go Daddy hats overdubbed with the song Hells Bells). Bob Parsons has exhibited some pretty [...]

CiviCRM Developer Training

By | October 24th, 2010|Categories: Development, Nonprofit|

CiviCRM is a powerful, free and open source (AGPL-licensed) web-based contact relationship management (CRM) system that focuses on the needs of non-profits. A growing number of CivicActions' clients employ CiviCRM to support membership and contribution management, events, group mailings and report generation. With every release, CiviCRM is adding features and [...]

CiviCRM Custom Field Option Lists Now Supported by Views Filters

By | September 8th, 2010|Categories: Development, Drupal|

My work with CivicActions recently provided the opportunity to create a minor, but much needed improvement to CiviCRM which has just been made available to everyone in the recent CiviCRM 3.2.3 release. CiviCRM records have been available to Drupal's Views module for some time, but the use of Custom Fields [...]

Making the Credit Card CVV Field Optional in CiviCRM

By | August 13th, 2010|Categories: Development|

We have a client that wanted to be able to process donations when the Credit Card's CVV numbers were not available. I had thought this field was mandatory, and indeed, CiviCRM's AuthorizeNet payment processor package requires it. But after talking with AuthorizeNet (the company) we discovered that the field is [...]

Defining Custom Node Content Types In A Module

By | May 27th, 2010|Categories: Development, Drupal|

What're you crazy!? Haven't you ever heard of the CCK module? Yes, it's true CCK coupled with views will allow one to create, manipulate and display custom content. Combined with hook_nodeapi, the cck/views combo is can be extremely powerful and flexible. 99% of the time these two modules are sufficient [...]

How To Set Up An SVN Repository In 7 Simple Steps

By | May 25th, 2010|Categories: Development, How-To|

Update: We've been using (and recommend) git for version control since around 2011. We leave this post available because it seems popular. For some time now, I've wanted to have an svn set up on my shared web host similar to what we have here at civicactions.  Having to make [...]

Tutorial & Code: Developing Apps For iPhone/iPad/Android Using Drupal As Base System

By | May 2nd, 2010|Categories: Development, Drupal, Mobile|

Last week I posted some initial resources related to my DrupalCon San Francisco session Developing Apps for iPhone/iPad/Android using drupal as Base System. Here is what you need to connect your Drupal site to Titanium App: Titanium Developer iPhone SDK Drupal basic installation Services Module Modified Version of json_server module [...]

Adding Custom Breadcrumbs to Views Pages

By | March 30th, 2010|Categories: Development, How-To|

Recently I needed to add custom breadcrumbs to views 2 generated pages. Now we were using excellent custom_breadcrumbs 1.x to add custom breadcrumbs on site. At that time I discovered that 1.x version of custom_breadcrumbs do not support views generated pages and 2.x version of module (which supports views) is [...]

Sharing Our Client Questionnaire for Website Development

By | March 22nd, 2010|Categories: Development, How-To|

A thread began a few days ago on the Drupal Consultants list regarding Client Questionnaires. Not long ago, Ian and I went through our own Client Questionnaire with the intention of supporting a client with a new project. In the end we simplified our original laundry list of questions to this much shorter [...]

Overview of Google authentication methods

By | March 2nd, 2010|Categories: Development, Drupal|

There are a number of different authentication methods available for integrating with Google Apps. These include OpenID, OAuth and SAML amongst others. At a first glance, it's not always entirely clear on the differences between them and when you may wish to use one over another. Here's a brief overview [...]

Google Chart API Module

By | January 24th, 2010|Categories: Development, Drupal|

I was recently asked to take some civicrm demographic data from various groups and graph the data so that a visual comparison could be made between groups. In the course of looking for some graphing/charting technique that would integrate well with drupal & civicrm I discovered the google chart api [...]

Modifying your site’s email “From” header

By | October 9th, 2009|Categories: Development, Drupal|

By default, all email sent from your site uses the site email address configured at admin/settings/site-information as the "from" address. On most sites this is set to something generic, like "[email protected]" or "[email protected]". However in a lot of mail clients, when the email reaches your inbox, it appears as being [...]

Drupal Gotchya: Cache_get() Returns Expired Items

By | July 28th, 2009|Categories: Development, Drupal|

cache_get() returns $cache objects even if the cached item is stale (expired). The cached data will not be rebuilt every hour in the following example: /** * Builds complicated data for the monkey grip. */ function custom_monkey_grip_data() else return $data; } ?> Instead, it's cached data will persist in the [...]

AJAX-ifying Drupal Node Forms

By | June 20th, 2009|Categories: Development, Drupal, How-To|

Recently, for the first time with Drupal 6, I needed to create a form where a variable number of fields could be added to it by simply clicking a 'Add more' button. I wanted to design a node form where users could create a custom compilation album of their favourite [...]

The Most Important Decision In Developing A Drupal Site: Contributed Vs. Custom Development

By | November 19th, 2008|Categories: Development, Drupal|

When developing in Drupal, should we hack something together that's specific to a site? Or should we instead take the time to do things "right" by improving existing modules or writing our own new modules to contribute to the community? When is one of these options better than the other? [...]

Using CSS to wrap long fieldset legends

By | September 16th, 2008|Categories: Development, How-To|

In a recent project I encountered a very long legend in a fieldset from a node add/edit form. Instead of wrapping, it forced its way into the right-hand sidebar and was generally causing a mess of the layout. In looking into this I discovered that legends don't wrap by default, [...]

Web Apps as Desktop Apps; Prism, Web-Runner &

By | August 31st, 2008|Categories: Development, Testing|

With applications moving to the web, the desktop web browser is becoming more and more the center of users' attention. Consider for a moment what percentage of time you spend in Firefox or other web browsers compared to other programs or applications that run in your desktop – or use [...]

Comparison of Virtual Machines for Mac OS X; VMware, VirtualBox, Parallels, Q

By | August 31st, 2008|Categories: Development, Testing|

This article describes briefly what Virtual Machines are, why they are useful, and compares some VM software for Mac OS X: As web developers, it is often our responsibility to ensure that the websites we build are accessible by users of any common web browser and operating system. Since some [...]