Skip to Content


Drupal Easy: DrupalEasy Podcast 145: Route vs. Root vs. Roots (New Tech Cities - Steve Burge)

Planet Drupal - 23 February 2015 - 8:05pm
Download podcast 145

Steve Burge (steveburge), founder of joins Andrew, Ted, and Mike to talk about a new blog post series about cities transforming themselves into tech-friendly places with smart investment and forward thinking leaders. We also dive head-first into's content strategy, the evolution of forums, and various ways to pronounce the word "route". Picks of the week includes some free videos, BackDrop on Pantheon, and DrupalCon India.

read more

Categories: Drupal

Drupalize.Me: More Drupal 8 Insights

Planet Drupal - 23 February 2015 - 6:00pm

Last month, we posted a survey regarding your plans for learning Drupal 8. This was a follow-up to a similar survey we posted back in May, 2014. The responses we received in both instances were remarkably consistent, which is reassuring as we begin to publish our Drupal 8 tutorials. Here are a few big take-aways from our Drupal 8 surveys and some insight into our plans for Drupal 8 tutorials.

Categories: Drupal

Cheeky Monkey Media: Drupal Association Board of Directors - At-Large Position

Planet Drupal - 23 February 2015 - 4:48pm

This year the Drupal Association Board of Directors has an opening for a single director At-Large position. With this opening, the association reached out to the community to allow anyone to self nominate for the position. As of the closing of the nomination round, there were 24 candidates, from 14 different countries, which I think is an incredible testament to the community.

When I saw this opportunity, I decided to ...Read More

Categories: Drupal


New Drupal Modules - 23 February 2015 - 4:29pm

This is an experiment

Categories: Drupal

DrupalCon News: Come Discuss the Future of Drupal at Core Conversations

Planet Drupal - 23 February 2015 - 3:42pm

Core Conversations is a place for people actively working on and contributing to Drupal core to meet, discuss and plan the future of Drupal.

Drupal 8 is very close to having a stable upgrade path, and the number of remaining critical issues is steadily decreasing. The timing of DrupalCon LA means that the focus on talks should be on the future of Drupal, either the short term of 8.1.x, or the future of 8.y.x, or even as far as Drupal 9.

Categories: Drupal

Dcycle: Continuous integration with Circle CI and Docker for your Drupal project

Planet Drupal - 23 February 2015 - 1:58pm

Continuous integration (CI) is the practice of running a series of checks on every push of your code, to make sure it is always in a potentially deployable state; and to make sure you are alerted as soon as possible if it is not.

Continuous integration and Drupal projects

This blog post is aimed at module maintainers, and we'll look at how to use CI for modules hosted on I'll use as an example a project I'm maintaining, Realistic Dummy Content.

The good news is that has a built-in CI service for hosted modules: to use it, project maintainers need to click on the "Automated Testing" tab of their projects, enable automated testing, and make sure some tests are defined.

Once you have enabled automated testing, every submitted patch will be applied to the code and tested, and the main branches will be tested continually as well.

If you're not sure how to write tests, you can learn by example by looking at the test code of any module which has automated testing enabled.

Limitations of the QA system

The system described above is great, and in this blog post we'll explore how to take it a bit further. Drupal's CI service runs your code on a new Drupal site with Drupal 5.3 enabled. We know this by looking at the log for a test on Realistic Dummy content, which contains:

[13:50:02] Database backend [mysql] loaded. ... [simpletest.db] => [test.php.version] => 5.3 ...

For the sake of this article, let's say we want to use SQLite with php 5.5, and we also want to run checks from the coder project's coder_review module. We can't achieve this within the infrastructure, but it is possible using Docker, CircleCI, and GitHub. Here is how.

Step 1: get a local CoreOS+Docker environment

Let's start by setting up a local development environment on which we can run Docker. Docker is a system which uses Linux containers to run your software and all its dependencies in an isolated environment.

If you need a primer on Docker, check out Getting Started with Docker on Servers for Hackers (March 20, 2014), and A quick intro to Docker for a Drupal project.

Docker works best on CoreOS, which you can install quite easily on any computer using Vagrant and VirtualBox, as explained at Running CoreOS on Vagrant.

Step 2: Add a Dockerfile to your project

Because, in this example, we want to run tests which require changing things on the server, we'll use the Docker container management system to simulate a Ubuntu machine over which we have complete control.

To see how this works, download the latest dev version of realistic_dummy_content to your CoreOS VM, take a look at the included files ./Dockerfile and ./scripts/ to see how they are structured, then run the test script:


Without any further configuration, you will see tests run on the desired environment: Ubuntu with the correct version of PHP, SQLite, and coder review. (You can also see the results on CircleCI on the project's CI dashbaord if you unfold the "test" section -- we'll see how to set that up for your project later on).

Setting up Docker for your own project is just a question of copy-pasting a few scripts.

Step 3: Make sure there is a mirror of your project on GitHub

Having test results on your command line is nice, but there is no reason to run them yourself. For that we use continuous integration (CI) servers, which run the tests every time someone commits something to your codebase.

Some of you might be familiar with Jenkins, which I use myself and which is great, but for open source projects, there are free CI services out there: the two I know of, CircleCI and Travis CI, synchronize with GitHub, not with, so you need a mirror of your project on GitHub.

Note that it is possible, using the tool HubDrop, to mirror your project on GitHub, but it's not on your account, whereas the CI tools sync only with projects on your own account. My solution has been to add a ./scripts/ script to Realistic Dummy Content, and call it once every ten minutes via a Jenkins job on my personal Jenkins server. If you don't have access to a Jenkins server you can also use a cron job on any server to do this.

The mirror of Realistic Dummy Content on GitHub is here.

Step 4: Open a CircleCI account and link it to your GitHub account

As mentioned above, two of the CI tools out there are CircleCI and Travis CI. One of my requirements is that the CI tool integrate well with Docker, because that's my DevOps tool of choice.

As mentioned in Faster Builds with Container-Based Infrastructure and Docker (Mathias Meyer, Travis CI blog, 17 Dec. 2014), it seems that Travis CI is moving towards Docker, but it seems that its new infrastructure is based on Docker, but does not let you run your own Docker containers.

Circle CI, on the other hand, seems to provide more flexibility with regards to Docker, as explained in the article Continuous Integration and Delivery with Docker on CircleCI's website.

Although Travis is a great, widely-used tool (Drush uses it), we'll use CircleCI because I found it easier to set up with Docker.

Once you open a CircleCI account and link it to your GitHub account, you will be able to turn on CI for your mirrored project, in my case Realistic Dummy Content.

Step 5: Add a circle.yml file to your project

In order for Circle CI to know what to do with your project, it needs a circle.yml file at the root of your project. If you look at the circle.yml file at the root Realistic Dummy Content, it is actually quite simple:

machine: services: - docker test: override: - ./scripts/

That's it! Commit your circle.yml file, and if mirroring with GitHub works correctly, Circle CI will test your build. Debug any errors you may have, and voilà!

Here is the result of a recent Realistic Dummy Content build on CircleCI: unfold the "test" section to see the complete output: PHP version, SQLite database, coder review...


We have seen how you can easily add Docker support to make sure the tests and checks you run on your code are in a controlled environment, with the extensions you need (one could imagine a module which requires some external system like ApacheSolr installed on the server -- Docker allows this too). This is one concrete application of DevOps: reducing the risk of glitches where "tests pass on my dev machine but not on my CI server".

Tags: planetblog
Categories: Drupal

Orbital Cache Nuke

New Drupal Modules - 23 February 2015 - 1:30pm



Version / Author
1.0 Justin Slattery

This module allows asynchronous remote cache invalidation between replicated Drupal environments. Available for Drupal 7.

See this blog post for details on how it works and integration.

Categories: Drupal

Duplemail - Email Address Username Filtering

New Drupal Modules - 23 February 2015 - 12:16pm

The purpose of this module is to provide for duplicate email address checking for domains that allow extraneous characters to be placed inside usernames and be treated as different email addresses. For example:

Categories: Drupal

tombola: Making a Drupal Distribution #1

Planet Drupal - 23 February 2015 - 8:59am

Recreating and simplifying a multiple site platform by creating a re-usable distribution.

#1 Getting started.

Categories: Drupal

valechatech: Hack Proof your drupal site

Planet Drupal - 23 February 2015 - 6:51am

Security of the Drupal website is a important stuff for the site owners, site developers.This blog post has my presentation at the Drupal Camp Mumbai that  intended for Drupalers who want to avoid security loop holes while writing code or architecting solutions. We delved into common security issues that ails custom code and has both vulnerable and secure code snippets.This is mostly about my encounters and experience after doing 50+ project application reviews and also a good guideline for new contributors.

Hack Proof Your Drupal Site from Naveen Valecha

Next article:  A guide to review Project Applications.
Categories: Drupal

Mark Shropshire: Charlotte Drupal Drive-in 2015 Wrap-up

Planet Drupal - 23 February 2015 - 6:49am

Last Saturday (February 21st, 2015), thirty-five Drupalers joined together at Classic Graphics for the sencond annual Charlotte Drupal Drive-in. The day was full of presentations, BOFs, and general chatting about Drupal and related web technologies.

The day-long, un-conference-style event was the brainchild of Thomas Lattimore. After CharDUG wasn't able to pull together the human resources to repeat the success of DrupalCamp Charlotte 2012, Thomas mentioned that he had an idea. Since he knew organizers had limited time to commit to planning and he wanted to host an un-conference-style event, allowing for simpler planning than a full-blown Drupal camp. You can learn more about his concept on the DruaplEasy Podcast.

The event started with breakfast goodies, a welcome to the event, a thank you to our sponsors, and session pitches. The list of pitched ideas quickly grew to enough items to easily fill the day with sessions. The organic nature of the event and Classic's space allowed for sessions to split into multiple rooms so individuals had great session options.

1 day ago by Mark Shropshire

The session schedule was planned for the day after all the ideas were pitched. The scheduled sessions included the following:

Lunch allowed attendees to chat about the morning sessions and meeting each other. Also, Design Hammer provided a $50 Amazon gift card to giveaway during the lunch break.

From my perspective, the event was a success. The format allowed for a relaxed atmosphere where beginner and seasoned Drupalers alike were able discuss their projects, ideas, and questions. While much of the group was from the Charlotte metro area, we also had attendees from Asheville and the Raleigh/Durham, NC area. I also count this event as a success when all of the event volunteers were able to attend the sessions and enjoy the event. Keeping the event simple is key to this success!

1 day ago by Mark Shropshire

I would like to thank Classic Graphics, Design Hammer, and our individual sponsors (@bayofodeke, @deetergp, and @shrop for supporting the Charlotte Drupal Drive-in. Also, thanks to all those who attended and led sessions. Looking forward to Charlotte Drupal Drive-in 2016!

Blog Category: 
Categories: Drupal

Event Data Store

New Drupal Modules - 23 February 2015 - 4:03am

This module is intended to log events, and aggregate the data so it can be displayed with Views.

It's features exportable, and allows for logging various events with the possibility to add custom ones via a hook.

Note for the aggregation of data to work your sites Cron must be working and configured to happen regularly enough to aggregate data as often as you want.

Categories: Drupal

Annertech: Create the WOW Factor with Drupal - Part 1 of 5

Planet Drupal - 23 February 2015 - 3:16am
Create the WOW Factor with Drupal - Part 1 of 5

Creating 'wow' is something we all need to strive for. It's that extra element of pleasure that someone derives from something we've done. The key to wow is in its unexpected nature. It's in the unexpected pleasure from stylish subtleties in a design that leaves you going "nice!". It's in those clever extra features a user discovers after a while using a site, which they now realise they just love. It's about delivering that little bit more.

Categories: Drupal

Morpht: Migrating ASP.Net users to Drupal 7

Planet Drupal - 22 February 2015 - 10:57pm

One of the trickier aspects of any data migration is migrating users and ensuring that the authentication details which worked on the legacy site also continue to work on the new Drupal site. This article shows how it is done for .Net to Drupal 7.

Categories: Drupal

Chen Hui Jing: Drupal 101: A simple image carousel

Planet Drupal - 22 February 2015 - 6:51pm

The first Drupal 7 project I worked on had to have an image carousel with one of those dot pagers on its homepage. I may have been a Drupal newbie then, but I knew for a fact that Drupal did not come with that function built in.

Now, if you’ve just started out with Drupal, you may not have heard this phrase before, but it really should be on a t-shirt:

There’s a module for that.

Trust me when I say I would definitely wear that. But my point is, the best part about Drupal is its huge library of contributed modules that extend Drupal’s capabilities. So here’s a tip for newbie Drupalists, before you attempt to write a...

Categories: Drupal

Drupal governance announcements: The Community Working Group: What We Do, and How We Do It

Planet Drupal - 22 February 2015 - 6:36pm

In previous posts, we’ve talked about who the Community Working Group (CWG) is and why we’re here, as well some of the work we’ve done around establishing a process for conflict resolution in the Drupal community.

In this post, I’d like to go into more detail about what happens when folks file incident reports with the Community Working Group, and open up the conversation on how we can more effectively address issues that have a larger impact on the Drupal community as a whole.

Currently, the CWG meets once a week over Google Hangout to go through any issues that might have been filed since our last meeting, as well as to discuss ongoing questions and concerns that have been brought to our attention through various channels (reports, individual conversations, etc.) and the overall health of the Drupal community.

As often as possible, we post the minutes of our regular meetings. By necessity, these are somewhat redacted due to the fact that we are often discussing matters of a sensitive nature that have been shared with us in confidence. We also maintain an email list where we discuss ongoing issues and other things that come up in the time between our regular meetings.

When an issue is filed, whether though the Incident Report Form, via e-mail, or in our public issue queue, it goes on the agenda for the next weekly meeting (if the matter is of a serious and immediate nature, CWG members may choose to take immediate action and/or meet outside our normal meeting time). We discuss each item as a group and come to agreement on next steps, then assign someone to follow-up with the individuals in question. If the issue is about something that doesn’t fall within the charter of the CWG, we may refer the matter to another group (e.g., the Technical Working Group or the Licensing Working Group), or reply back to the reporting individual with an explanation.

In cases where there is a dispute between two or more individuals, our general approach is to first gather as much information as possible from all involved parties. In order to ensure that people are able to share their stories with us in an open and honest manner, we do not share any names or other sensitive details outside the group without permission.

Once we have a sufficient level of detail, we meet again as a group to decide how to proceed. Depending on the situation, this may involve one or more CWG members providing mediation between the parties in conflict or suggesting ways that they can resolve the issue themselves. In cases where there is a clear Code of Conduct violation, we will talk directly to the person or persons who engaged in the violation to help them understand the impact of their words and/or actions and to take responsibility for them.

In some cases, we may receive an after-the-fact report about a situation that has already been resolved. In those cases, we review the incident, decide whether further action is necessary, and keep it on file for reference in case something similar happens in the future.

If this sounds long and drawn out, that’s intentional. Unless an issue requires immediate action, our process is designed to enable resolutions that are as thoughtful and permanent as possible. The Community Working Group is not the “Drupal police” and our role is not about deciding “who’s right” and “who’s wrong” in a given situation so much as it is about helping people in our community work together in a mutually respectful way. While many of the items that we tackle are initiated by issues that are reported to us, our process is not exclusively complaint-driven.

The people who volunteer their time serving on the Community Working Group are people with backgrounds in community leadership and conflict resolution who all have been working in the Drupal community for years. We believe that a culture that encourages healthy debate and disagreement is a big part of what gives the Drupal project and community its strength. What we are primarily concerned about are destructive conflicts that violate our shared community values and make the Drupal community a less welcoming place for everyone.

To that end, we’re looking for the community to help us shape our process for addressing systematic patterns of disruptive behaviours that have an impact that goes beyond just those individuals who are directly involved. Please read our proposal and give us your thoughts in the comments section. You can also share your thoughts privately by e-mailing us at drupal-cwg [at]


Categories: Drupal

Web Torrent

New Drupal Modules - 22 February 2015 - 6:31pm

This module implements the web torrent javascript library in your Drupal site. The module currently loads the library on every page via hook_init() and the Libraries module. This is a foundational developers module to add new file distribution capabilities to Drupal web sites.


  • Libraries

Additional Installation Steps:
The Web Torrent minimized javascript file needs to be downloaded to your current libraries folder from the Github page.

Categories: Drupal

Code Karate: Drupal 7 Touch Icons: How to add Apple specific icons

Planet Drupal - 22 February 2015 - 3:35pm
Episode Number: 194

Today, there exist many different options to digest content. One of the most popular options is Apple products like the iPhone and iPad. A unique thing about iOS is that they use specific icons when users want to add your website as a bookmark on their home screens. This icon is then used to quickly launch your website, similar to how you launch a bookmark in your browser.

Normally, websites don't have this icon available so what almost always ends up happening is Apple using a screen shot of the webpage as the icon. Having a generic screen shot can effect your branding message.

Tags: DrupalDrupal 7Drupal PlanetTips and TricksUI/Design
Categories: Drupal

Test Run Extra

New Drupal Modules - 22 February 2015 - 1:04pm

Provides a Drush command similar to the core test-run command, but with additional options to enable the selection of tests by class hierarchy, and the exclusion of specific tests or groups of tests.

Development of this module was funded by BBC Worldwide.

Categories: Drupal

Mandrill Webhooks

New Drupal Modules - 22 February 2015 - 9:23am

Mandrill Webhooks exposes an endpoint, receives data from Mandrill webhooks and makes it available via the Drupal hook: hook_mandrill_webhook($data).
This module also allows for administration of Mandrill Webhooks from the Drupal site via the API.

The endpoint implements the recommended authentication from Mandrill

Categories: Drupal
Syndicate content

about seo