Tutorials

DDEV, Docksal, and Lando: A Comparison

Published March 20, 2018
Over the past year or so, I've been looking to replace my standard local development environment with a Docker-based solution. I've been evaluating DDEV , Docksal , and Lando (listed alphabetically), trying to figure out not only was the best for me, but also the best for me to teach and recommend to the hundreds of folks I teach both long-form and full-day Drupal workshops to each year. As I've test-driven each of these three options, I've been periodically posting tutorials on various related topics . As a long-time Mac OS X user, my previous go-to local development stack has

Drupal 8 Development on Windows - Best Practices?

Published February 3, 2018
Over the past several weeks, I've been working with three of the more well-known Docker-based local development environments that involve a Drupal focus: Docksal , DDEV , and Lando . The goal is to not only to figure out which one I prefer, but also to figure out which our two long-form online Drupal training classes should potentially standardize on. Our classes are often comprised of folks from all different technical backgrounds, so it is important that we not only teach them tools that Drupal professionals use, but also something that folks of myriad of skill levels can easily consume

Setting up Xdebug with Lando and PhpStorm

Published January 27, 2018
Over the past few months, I've been test-driving various Docker-based local development environments with two goals in mind. First, as my "daily driver" for consulting work - I've been a long-time MAMP Pro user and I've been feeling for a long time that I need to modernize my local development tools. Second, I'm trying to figure out what is the most ideal local development environment for students of both our 12-week Drupal Career Online class (starts March 19) and our 6-week Mastering Professional Drupal Development Workflows with Pantheon (starts February 26) courses. One of the necessary skills for a professional

Testing local Drupal site emails with Lando and Mailhog

Published January 21, 2018
Over the past few months, I've been evaluating three Docker-based local development environments trying to figure out which is best not only for me, but also for students of our long-form Managing Professional Drupal Development Workflows with Pantheon (next semester starts February 17) and Drupal Career Online (March 26) classes. I've been test driving Docksal (actually, I've been using it for over a year), DDEV Community , and Lando (I'm a recovering Kalabox user) trying to figure out where the "sweet spot" is for flexibility, ease of use, documentation, Windows-compatibility (we routinely have students on Windows machines), performance, and some

Installing Drupal Console in an Existing Drupal 8 Project

Published March 10, 2017
is a fantastic tool for helping to write Drupal 8 modules; of that there is little debate. Its "generate" functionality takes much of the pain out of setting up the scaffolding for many types of Drupal 8 modules, and in the process that alone saves developers a significant amount of time. When using Drupal Console, module developers usually don't have to worry too much about basic "use" statements, PSR-4 directory structures and file names, annotations, and much boilerplate code that is normally part of the development process. Here at DrupalEasy, we're such big fans of Drupal Console, we've designed our

Drupal 6 to Drupal 8(.1.x) Custom Content Migration

Published April 30, 2016

Note: This blog post is based on Drupal 8.1.x. It is an updated version of a previous tutorial based on Drupal 8.0.x. While the concepts are largely the same as 8.0.x, a refactoring of the core migrate modules took place in Drupal 8.1.x (migrations will become plugins in 8.1.x). This updated tutorial updates the previous example to work with Drupal 8.1.x, as well as demonstrates how to specify a migration group and run the migration with Drush. If you're familiar with the previous tutorial, you may want to skip to the "Rolling up our sleeves" section below. Even if you're

Drupal 6 to Drupal 8(.0.x) Custom Content Migration

Published March 20, 2016

Note: This blog post is based on Drupal 8.0.x. While the concepts will remain the same in 8.1.x, the code examples will no longer be valid because migrations will become plugins in 8.1.x. See the updated blog post here. Even if you're only casually acquainted with Drupal 8, you probably know that the core upgrade path to Drupal 8 has been completely rewritten from the ground-up, using many of the concepts of the Migrate and Drupal-to-Drupal migration modules. Using the Migrate upgrade module, it is possible to migrate much of a Drupal 6 (or Drupal 7) site to Drupal 8

Relaunching DrupalEasy.com on Drupal 8

Published February 18, 2016

It's been a long time coming, so we are really happy to announce that DrupalEasy.com recently relaunched on Drupal 8 (8.0.3, to be precise)! Our previous site was also our original - built on Drupal 6 with more than its fair share of cruft. As we thought about what our new site should be, we made the easy decision that it should be focused on two things: our Drupal Career Online 12-week training program and an expanded focus on tutorials, videos, and quicktips for Drupal developers looking to up their game. It of course provides, what we hope, is easy

X Marks the Spot: A Beginner's Guide to Online Maps in Drupal

Published March 7, 2014

Mapping address data in Drupal can be confusing, if only because of the great number of contributed modules available that involve online maps. Picking the right module (or combination of modules) is challenging - especially for site builders who are new to mapping in Drupal. In this tutorial, we'll utilize the popular and well-supported [Geofield](http://www.drupal.org/project/geofield) module as one of the key ingredients in the common task of entering address data and having it displayed on an interactive map. This tutorial contains step-by-step instructions for accomplishing this task, as well as a screencast demonstrating all of the steps.

A Sneaky (Previously Undocumented?) Views' Feature

Published May 9, 2013

I rencently spent a few quality hours with the Views interface trying to figure out how to add an Organic Groups Group ID contextual filter to a Views display and have the display's title overridden based on the value of the contextual filter. Actually, it's easy to do if you don't mind having the actual Group ID integer in the title. But, like most people, I actually wanted the Group name in the title of my display. It took me more time that I'd care to admit, as well as some guidance from the most excellent maintainer of the Organic Groups module, Amitai Burstein, but eventually, I discovered a simple solution that didn't involve additional relationships, contextual filters, fields, or trickery. Well - maybe not the "trickery" part. The solution involved what I consider to be a previously undocumented feature (at least to me!) of the Views module.

Import and Map Over 5,000 Points of Interest in 45 Minutes

Published April 29, 2013

At Florida DrupalCamp 2013, I presented a session (video included) that demonstrated how to utilize the Feeds, Feeds Tamper, Address field, Geofield, and other modules to create a fully-functional website for searching for Farmers Markets anywhere in the United States. While the session's intent was to inspire people as to what Drupal can do in a very short amount of time, this blog post will focus on the details of the process.

Give your comments a shelf life

Published January 30, 2013

Doug Hercules ( dhercjr on drupal.org) is a graduate of the 2012 class of the DrupalEasy Career Starter Program and currently working as an intern with DrupalEasy. This week I was tasked with learning how to automatically close comments on a node two weeks after the node is created. We initially looked into a couple modules that did this well, Comment closer and Comment commander , but since neither is quite ready for Drupal 7, we decided this would be a good opportunity for me to learn more about the Rules module. Maintained by Wolfgang Ziegler ( fago ) and Klaus Purer ( klausi ), this module allows you to define actions that are triggered automatically on various Drupal events as they occur. This blog post will walk you through how I accomplished this task.

POOF! I've cloned a website!

Published January 15, 2013

Doug Hercules ( dhercjr on drupal.org ) is a graduate of the 2012 class of the DrupalEasy Career Starter Program ( http://drupaleasy.com/dcsp ) and currently working as an intern with DrupalEasy. This week I had the opportunity to clone a website from a git repository using Quickstart . Quickstart is a really quick, pre-made PHP Drupal development environment in a VirtualBox , which allows you to install a virtual machine to run Linux on your Windows PC. I've only gone through the process of cloning a site into Quickstart once before, and this time I thought I’d document it in my blog for myself and anyone else who might want to do this in the future. The general idea is this - there’s a site that I need to work on that is stored in a remote git repository. I want to get a copy of the site up-and-running inside Quickstart. To get started, I downloaded Quickstart, installed VirtualBox, then imported the Quickstart file into it.

Leveraging WebEnabled.com's Remote Git Repositories - for Beginners

Published October 31, 2012

Using Git to move the code base of a Drupal site from a local development environment to a hosting provider (or vice-versa) is a necessary skill that most Drupal site builders should have. Configuring and utilizing a remote Git repository can be an especially daunting task for people who don't have a strong background with version control systems.