by balazs.wittmann / 26 March, 2015
Table of contents Introduction The email sending process The Mail System module Mail System Settings New Class New Setting Frequently used mail system classes DefaultMailSystem DevelMailLog MaillogMailSystem HTMLMailSystem MimeMailSystem MandrillMailSystem Transactional and bulk emails Transactional emails Bulk emails Do it yourself Outsourcing the task What about Drupal 8? Conclusion Introduction

Email sending in Drupal is actually pretty simple. Basically you only have to deal with two steps if you want to send an email to someone:

Define your email properties (like subject, body, headers, etc.) in an appropriate hook_mail() implementation.

Call drupal_mail() with your parameters for the actual email sending.

That’s all, however, in the case... Read more

by kvantomme / 26 March, 2015

Drupal has all the elements to build a custom content model that can mirror a DITA specialisation. The really exciting thing is that this data model can be built from the UI, without a single line of code. While there are considerable drawbacks to the usability of the resulting interface, the fact that this is a free and open source implementation means that those who have more time than money could use this implementation as a starting point to build a DITA CCMS that accommodates an arbitrary specialisation.

I am really excited about this because for the first time it is now feasible to build a completely free and open source CCMS for DITA, or for any other XML language for that matter. Such a starting point would enable a community of DIY technical writers to bootstrap a full... Read more

by kvantomme / 11 March, 2015

If we want to prevent a global climate disaster we have to act now! That is what Robin Chase, the cofounder and the first CEO of Zipcar, told us last year at NYCcamp. But she didn’t just give a speech about our impending doom, after pressing the urgency she went on to give a really inspiring talk about the power that we, the Drupal community have to do something about it: we have the tools and the people. Collectively we have proven over and over again that we care about more than just our own profit and Drupal is technologically also a great framework to make the tools that can catalyse global change.

Before I had never believed I could make a significant impact, but now I kept thinking about what I could do to make a difference. A few months after NYCCamp I met Joachim Jacob... Read more

by andras.czovek / 5 March, 2015

Drupal is a great platform for commerce. For simple tasks it’s very easy to get started with the Commerce Kickstart distribution, but there’s no consensus on what to use for more complex features. This means you might need to perform a long research to be able to choose a solution for more complex e-commerce tasks.

In a recent project we needed a solution for recurring payments, so I thought I’d share the results of our research.

Recurring payments

When your customers pay for your service or product periodically, you need recurring payments. Subscriptions are a good example.

For recurring payments you need to handle the following:

Credit card data Subscription management (subscribing, cancelling, upgrading, downgrading) Refunds Dunning Discounts and... Read more
by diana / 5 December, 2014

Part 2 of our series about hosting and playing videos in Drupal explores hosted video solutions in detail, and offers some basic information about using video sharing sites. See part 1 for a short explanation of the most popular Drupal modules for video handling, and an introduction of CDNs and cloud storage services.

Cloud-hosted video solutions

Hosted video platforms are specialized for video storage, transcoding and playback. Unlike CDNs and cloud storage services, they already include the transcoding software, and also have additional features like players (for different devices), playlists, ads, live streaming or DRM (Digital Rights Management).

As they are highly optimized solutions for video hosting and playback, we’ll introduce one of the most popular solutions... Read more

by diana / 3 December, 2014

When you are first faced with the task of hosting and playing videos in Drupal, the number of different approaches and solutions might seem overwhelming. Where to store the videos? What is the difference between CDNs, cloud storage services and hosted video solutions? Which Drupal modules to use with which service? This blog post walks you through the basics of hosting and playing videos in Drupal:

Part 1 tells you about the most popular Drupal modules for video handling, and introduces CDNs and cloud storage services. Part 2 explores hosted video solutions in detail, and offers some basic information about using video sharing sites. Drupal modules

Let’s start with some of the most popular Drupal modules for video handling.

Media module: A widely used Drupal module... Read more
by hairqles / 29 August, 2014

If you ever had to configure custom field permissions in a project that had a ton of custom content types with a bunch of different fields, you probably ended up wishing for a tool that would make this process less boring and error-prone. This is why I wrote Field Permission Patterns, a module that takes the hassle out of configuring custom fields. In this post I tell you more about the usage and configuration options of Field Permission and Field Permission Patterns.

In a project not long ago, I had to update about 50 custom field permission settings. This monkey job was so boring, that I soon realized I would be better off writing a Drupal module for this task. I did, called it Field Permission Patterns and shared it on

What I built on: the Field Permissions... Read more
by kvantomme / 11 August, 2014

In open source, something magical happens when like-minded people meet. You find out somebody else is dealing with a similar problem, you combine ideas and before you know it an ad hoc working group has formed to fix the problem. It's a public secret that at Drupalcon the good stuff happens in the BOF sessions.

As the Drupal community has grown we've seen new community events spring up that catered to whole groups of people that before weren't able to meet and talk:

The Drupal Developer Days: a hack fest that has become more and more defined as one of the best opportunities to be part of an epic code sprint. The Drupal CXO days: a 2-day in depth peer-to-peer networking and knowledge exchange event where the owners and managers of Drupal consultancies share their experiences... Read more
by kvantomme / 2 July, 2014

There is a lot of excitement in the Drupal community about Behat, especially from more advanced teams that are investing in their Devops infrastructure. It now even looks like Behat might some day make it into Drupal core. I guess that is why several Web development teams that use BDD (Behavior-Driven Development) have asked me how WalkHub relates to Behat. I’ve written a longer post on the WalkHub blog that explains how it could be done, and what the benefits would be. In this post I will focus on how WalkHub could help the community complete the creation of Behat tests for all of Drupal core and contrib.

Already today some of the biggest Drupal projects get specified in Behat: analysts work with the customer to define a full set of acceptance criteria and those then become... Read more

by kvantomme / 27 June, 2014

If you’ve installed your own WalkHub you’ve been able to use the Walkthrough recorder for a few weeks now. But yesterday after adding a few UX improvements we’ve now also released the Walkthrough recorder on With it, it is now extremely easy to create Walkthrough tutorials:

Click a record button in your browser (either on our website, browser plugin or site plugin) Do the task you want to create a Walkthrough for (so no need to think about how you want to present it) Review the Walkthrough and optionally add a customised description in the in place editor And you are ready to share

If you want to try it out, just log in on and you’ll see a red record button in the top right corner. If you don’t yet have an account, sign up for our newsletter... Read more