CivicActions at DrupalCamp Asheville: It’s All About Balance

The principle of balance has been at the heart of CivicActions culture since its inception -- so we’re proud to serve as sponsors for DCAVL this year, helping bring this valuable event to the Asheville community where 10% of the workforce is remote.

2017-07-10T12:32:02+00:00 Categories: Drupal|

Lessons Learned: The “Why” and “How” of Drupal Contributions

Why Contribute? I am ashamed to admit: for the longest time I used Drupal (heck, even complained about it) but contributed absolutely nothing back. It occurred to me that, not only did I learn technical and marketable skills thanks to Drupal, my Drupal experience directly corresponded to opportunities that supported [...]

2017-03-31T06:19:53+00:00 Categories: Drupal|

CivicActions at the Tech Women Community conference

I have the honor of being asked to present at the Tech Women Community conference in Tuxtla-Gutierrez, Chiapas, Mexico at 6pm tomorrow evening (12/7/16).  The presentation is about the Drupal Content Management System, and how to quickly leverage it for various projects. The conference is several days long, and it [...]

2017-03-31T06:19:53+00:00 Categories: Drupal, Events, Nonprofit|

15 sessions you won’t want to miss at BADCamp 2016

CivicActions is excited to both attend and sponsor the 10th year of BADCamp! We’re headed out tomorrow to get our booth set up and can’t wait to meet and mingle with all the wonderful people who are drawn to this event. We are constantly struck by the dedication, creativity, and [...]

2017-03-31T06:19:53+00:00 Categories: Drupal, Events|Tags: |

A First Look at the Backdrop CMS

Backdrop aims to step in and serve developers and end-users who want to continue doing things mostly the Drupal 7 way, but not fall behind the new technology (or product support) curve.

2017-03-31T06:19:57+00:00 Categories: Drupal, Drupal 8|Tags: |

CiviCRM and Drupal Commons

FosterClub, the national network for young people in foster care, is upgrading their Drupal 5 site to a Drupal 7/Commons distribution that includes CiviCRM as a backend 'database' for member tracking, event coordination, mailings and more.

2017-03-31T06:19:58+00:00 Categories: Drupal|Tags: |

Time Travel with Linux and Drupal

To recreate an older environment without compromising your current stack, LXC is a lightweight virtualization method that allows you to run different versions of Linux in separate containers.

2017-03-31T06:19:59+00:00 Categories: DevOps, Drupal|Tags: |

Welcome, Holly!

CivicActions is incredibly excited about the announcement that Holly Ross will be joining the Drupal Association as Executive Director and what it means for the Drupal community.

2016-06-25T00:20:39+00:00 Categories: Drupal|Tags: |

Search API: The New Face of Search in Drupal

Affinity Bridge's Katherine Bailey and Tom Nightingale gave an awesome introduction to the Search API module at the recent Vancouver Drupal User Group's meeting. Affinity Bridge was using the Drupal 6 Searchlight module previously. Searchlight had three things going for it: You could plug it into the popular Apache Solr [...]

2017-03-31T06:20:00+00:00 Categories: Drupal, How-To|

Free And Open Source Alternatives To Proprietary SaaS Offerings

With this week's announcement that Blackbaud will buy Convio there have been many questions whether this will be good or bad for the nonprofit organizations both companies count as their clients. We have often had clients and other nonprofit organizations we come into contact with us ask about the open [...]

2017-03-31T06:20:00+00:00 Categories: Drupal|

Drush screencast: core-quick-drupal command

A new command in Drush 5 is the core-quick-drupal command (alias "qd") - the purpose of this command is to get you running in Drupal with zero setup. All you need is php-cgi and the PDO sqlite driver - you don't need MySQL or Apache running at all. Running the command [...]

2017-03-31T06:20:02+00:00 Categories: Drupal, How-To|

Using HTML5 with Drupal, Today!

Recently, I blogged about Drupal's plans to integrate HTML5 into its next release. However, version 8 of Drupal is at least a year away. What's a Drupal dev to do, if they want to start using HTML5 right now? There are a variety of tools and techniques. Let's look at [...]

2017-03-31T06:20:03+00:00 Categories: Drupal, Mobile|

Filtering A View By A List Of Nodes With Checkboxes

One of our clients manages a Masters program and has a list of participating schools from around the globe. Because the program is similar at each institution, but has different admission and tuition requirements, the client wanted us to develop a tool for prospective students to easily compare each school. [...]

2017-03-31T06:20:06+00:00 Categories: Drupal|

Creating A Low Bandwidth Theme In Drupal

One of our clients has a large world-wide user base, in many locations where Internet access is limited. In addition to developing for mobile browsers, they also wanted a “low bandwidth” version of the site, optimized for older computers and dial-up connections. Using a handy module and some theming tricks, [...]

2017-03-31T06:20:06+00:00 Categories: Drupal, Theming|

What the Frack is Bitcoin and Can I Use it with Drupal?

Bitcoin is peer-to-peer digital currency. Like Napster or Limewire, it does not rely on a central trusted issuer, but upon a network. Currently, one bitcoin is worth about $0.90 US. Why would you want to bother with bitcoin? There are many good reasons, not the least of which is to [...]

2016-03-22T08:06:23+00:00 Categories: Drupal|

Report on Content Management Systems Powering Foundation Websites

Last month while conducting research for an upcoming report on Foundations and their use of Twitter, we started looking at what Content Management Systems (CMS) were running Foundations' websites. Our curiosity lead us to look at the top 885 Foundations with websites (based on endowment size), utilizing the Wappalyzer browser [...]

2017-03-31T06:20:10+00:00 Categories: Drupal|

Advanced Voting with the Decisions Drupal Module

One of the reasons I'm excited to vote this week is the introduction of Ranked Choice Voting in my hometown of Oakland, California. I like Ranked Choice Voting because it allows voters to express their preferences in a more complete way than if they could only vote for one candidate. [...]

2017-03-31T06:20:11+00:00 Categories: Drupal|

CiviCRM Custom Field Option Lists Now Supported by Views Filters

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 [...]

2016-03-16T02:39:42+00:00 Categories: Development, Drupal|

Drupal 7 – Faster Than Ever

CivicActions has been working with Google's “Make the Web Faster” project team to make some (last minute) improvements that make Drupal 7 faster. What do we mean by “faster” - this word can have many meanings, but here we simply mean the response time for end users, also sometimes called [...]

2017-03-31T06:20:12+00:00 Categories: Drupal|

Defining Custom Node Content Types In A Module

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 [...]

2017-03-31T06:20:14+00:00 Categories: Development, Drupal|

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

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 [...]

2017-03-31T06:20:14+00:00 Categories: Development, Drupal, Mobile|

Overview of Google authentication methods

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 [...]

2017-03-31T06:20:15+00:00 Categories: Development, Drupal|

WYSIWYG Tips And Tricks

WYSIWYG (what you see is what you get) editors can be tricky to configure properly, and most clients have to have them, for good reason too, who wants to hand code html?  In this short post I'll explain a few tips and tricks to get your WYSIWYG configuration dialed in. [...]

2017-03-31T06:20:16+00:00 Categories: Drupal|

Google Chart API Module

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 [...]

2017-03-31T06:20:16+00:00 Categories: Development, Drupal|

Image FUpload: A Multi-Image Upload Module for Imagefield

The Image FUpload module is an add-on to the Image and CCK's Imagefield modules, and allows you to upload multiple images at once with just a few simple clicks. You can use it with both single-value and multi-value imagefields, and it will automatically create the nodes for you. The Image [...]

2017-03-31T06:20:17+00:00 Categories: Drupal|

A Conceptual Roadmap for Ubercart CiviCRM Integration

With the D7UC Initiative gaining steam and excepting brainstorming ideas, I figured it was a good time to map out my idea for Ubercart and CiviCRM integration. I realize that many may cringe at the mention of uniting these two applications, for all their complexities, yet I see it as [...]

2017-03-31T06:20:17+00:00 Categories: Drupal|

Ubercart: modifying checkout panes

The Ubercart module is one of the best e-commerce options for Drupal currently. It is very user friendly and highly flexible with administrators having control over the product catalogue, payment gateways and email notifications. Site administrators also have control over which checkout panes are displayed during checkout and the order [...]

2017-03-31T06:20:18+00:00 Categories: Drupal|

Migrate module: file handling

So you're migrating pages and users from another CMS to Drupal using the Migrate module, but how do you handle all those file attachments? This example will cover taking the input filename and adding it to an imagefield on a Drupal content type. However, this should work in exactly the [...]

2017-03-31T06:20:18+00:00 Categories: Drupal|

Modifying your site’s email “From” header

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 "webmaster@example.com" or "noreply@example.com". However in a lot of mail clients, when the email reaches your inbox, it appears as being [...]

2017-03-31T06:20:18+00:00 Categories: Development, Drupal|

iDrupal: Manage Your Drupal Website From iPhone

iDrupal is a project aimed to manage your Drupal websites from iPhone and iPod touch. This project is designed for: iDrupal module to act as a bridge for communication between your iPhone and drupal website iDrupal_ui theme to for your iPhone browser iPhone application which is yet to be released [...]

2017-03-31T06:20:21+00:00 Categories: Drupal, Mobile|

Drupal Gotchya: Cache_get() Returns Expired Items

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 [...]

2016-03-15T09:08:32+00:00 Categories: Development, Drupal|

Using Chaos Tools module to create exportables

Recently I created a patch for the migrate module so you can export content sets, paste them into your module and have them automatically imported. This works in much the same way as Views handles default views in code, with the version in the database overriding the version in code. [...]

2017-03-31T06:20:21+00:00 Categories: Drupal|

AJAX-ifying Drupal Node Forms

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 [...]

2017-03-31T06:20:22+00:00 Categories: Development, Drupal, How-To|

Can’t Add CSS, JS, RSS Icon Or Set Title Or Messages In Preprocess Page?

Often you want to add CSS files, scripts, feed icons or even set Drupal's page title from the theme layer. The most obvious place to call Drupal's functions for these tasks is probably in a page preprocess function. However calling the following Drupal API functions from a theme or module's [...]

2017-03-31T06:20:22+00:00 Categories: Drupal, Theming|

Drush 2.0 released – Screencast 1: Installing Drush and getting started

After a long period of development the Drush team (myself, and the multi-talented rockstars Moshe Weitzman and Adrian Rossouw) have finally released Drush 2.0. This is a milestone in many ways - the core of Drush has been completely rewritten (some parts of it twice over!) since the last stable [...]

2017-03-31T06:20:22+00:00 Categories: Drupal|

Drupal 6 vs. Drupal 7 Performance (and Comments vs. Nodes)

I've been doing quite a bit of work recently trying to improve performance in Drupal 7. This has included both reducing the raw number of queries run per page, particularly those generated by node_load() and drupal_lookup_path(), and also trying to track down some PHP bottlenecks. In January, I compared nodes [...]

2017-03-31T06:20:24+00:00 Categories: Drupal|

Creating A Basic User Profile: Tips and Tricks

We've created many sites with user profiles, and every site seems to have a few differences, but there are certain best practices which I would like to share. Module Requirements This article concerns user profiles in Drupal 6, and recommends that you have the following modules installed: CCK Content Profile [...]

2017-03-31T06:20:24+00:00 Categories: Drupal|

Vertical Tabs In Drupal 7 Core! How Open Source Does Usability – The Process

Vertical tabs are finally in Drupal core! A week ago Angie "webchick" Byron committed a large patch from #323112 Vertical Tabs to Drupal 7 core. This change is quite possibly the most significant usability enhancement to Drupal 7 to date. Two of the three formal usability tests did usability testing [...]

2017-03-31T06:20:25+00:00 Categories: Drupal|

jQuery.dashboard() Plugin

The jQuery.dashboard() plugin for jQuery provides a framework that makes it easy for web application developers to create highly configurable dashboard-like user interfaces (similar to iGoogle) in their web applications. Jump straight to the demo. jQuery.dashboard() requires jQuery UI 1.7's (the new 1.6rc6) Sortable library, which in turn requires jQuery [...]

2017-03-31T06:20:27+00:00 Categories: Drupal|

Creating An SEO Strategy, Part 5: Community

In this fifth and final article in our series on creating an SEO strategy we will tackle the topic of community. Websites are not like the "field of dreams" -- if you build it, they won't necessarily come. Certainly if you do everything right up to this point: write good [...]

2017-03-31T06:20:28+00:00 Categories: Drupal, SEO|

Creating An SEO Strategy, Part 4: Code – Drupal Tips

In Part 3 of Creating An SEO Strategy we discussed ways of writing better HTML markup in your content. In this part of the series, we will discuss some Drupal specific modules and tips, as well as other resources for learning more about SEO. Drupal Configuration Set your website name [...]

2017-03-31T06:20:29+00:00 Categories: Drupal, SEO|

Authenticated Users Do Not Inherit Anonymous Role Permissions

Contrary to common belief, Drupal's Authenticated user role does not inherit permissions given to the Anonymous user role. However, it is important to note that all other roles do inherit permissions given to the Authenticated user role. So if you gave a permission to the Authenticated user role, it is [...]

2016-03-16T02:22:28+00:00 Categories: Drupal|

Drupal Developer Tips for Getting the Most out of Open Source

I recently suggested that the way we approach new development is the most important factor in determining the long term value of our work. But just how can developers using Drupal make the most of open source by ensuring that participating and contributing is an essential part of our daily [...]

2017-03-31T13:53:05+00:00 Categories: Development, Drupal|

AJAX pagers for Drupal 7

One of the many great things about working at CivicActions is that we get a stipend for work we do for the community. This month I decided to use some of my stipend time to code up a proposed solution for Drupal core for dynamically loading paged content. Why should [...]

2017-03-31T06:20:32+00:00 Categories: Drupal|

Drupal 7 – The New Database Layer

Have I ever told you how much I love data? After listening to Larry Garfield's talk Drupal Databases: The Next Generation, I now love data more than ever! The database layer for Drupal 7 has been completely rewritten to take advantage of PHP's PDO extenion. Not only does it allow [...]

2017-03-31T06:20:34+00:00 Categories: Drupal|

How To Rebuild The Menu In Drupal 6

To rebuild the menu in Drupal 6 you have to go to admin/build/modules. In Drupal 5 the menu is cached in the cache_menu table, so it is easy to invoke a menu-rebuild by emptying the table with a simple mysql command like TRUNCATE cache_menu;. (I have a handy script that [...]

2017-03-31T06:20:34+00:00 Categories: Drupal|

Modules for building Drupal wikis

For many sites a standard Drupal content type with open permissions and revisions will do enough of the 'wiki-thing' for many situations. However, there are a bunch of other wiki-like behaviors that you might (on some sites) want to add additional functionality or usability - here is a summary of [...]

2017-03-31T06:20:35+00:00 Categories: Drupal|

Drupal Node Search: Overview and Filter Link Technique

Part one of a six part series on Drupal's search functionality. This installment will discuss node module's responsibilities in Drupal searching, show how to create contributed modules which take advantage of node module's indexing methods, and discuss some pending patches for improving this flexibility. Search Module and general search overview [...]

2017-03-31T06:20:50+00:00 Categories: Drupal|

jQuery hook, event message passing, callback function

Do you like Drupal's hook functionality? Maybe this jQuery extension could serve as a way to replicate that that functionality. Currently I use the extension below to allow the extension of existing libraries I've written. Let's say in your library you write : if (confirmed){ $('#css-id').hide( function(){ $.hookExecute('css_id_hidden'); } ); [...]

2017-03-31T06:20:54+00:00 Categories: Drupal|

Drupal Programming Trick – Add an element before/after another element in form_alter

Drupal Forms API (FAPI) provides hook_form_alter for modifying the contents of any form. This is possibly the most powerful feature that Drupal offers developers. It allows any module to change the form of any other module, thus allowing any custom/contrib modules to add or remove features from the UI of [...]

2017-03-31T06:20:54+00:00 Categories: Drupal|

Add or Change Text on any Drupal page

I just worked on an old 4.6.x site and had to add text to the user page. This was a challenging task on 4.6.x, so I thought I'd write about the various ways one can add text to a Drupal page, and about this specific solution. hook_form_alter. In any custom [...]

2017-03-31T06:20:58+00:00 Categories: Drupal|