December 2015

Easily pull down a production Drupal site with drush sql-sync and drush rsync

Both of these drush commands are awesome on their own, but they really need a wrapper script to become workhorses. I built this script to refresh a local Drupal environment with 1 command. You can choose file folder sync, databases, or both. This assumes you have working Drupal installations on both ends already (minus the database). So once you're setup with your settings files and Drupal codebase, you'd run this to populate the site. Click here for the Github repository. Summary:

Quick Node Clone module for Drupal 8

I've created an interim solution to the lack of the node_clone module for Drupal 8. During a project at work, I created a custom module with very similar functionality so I ended up making it a contrib Sandbox project at Drupal.org. I don't have any community module releases yet, so it's currently up for project review. Click here to check out the project!

The state of your custom Drupal 8 projects in 2015

Drupal 8 was just released! Awesome! Unfortunately, the state of contrib is a warzone, as usually happens after a big Drupal point release. Even more so now that everything has changed. The reality is that if you're doing something custom, you're not going to be able to take a contrib module like Rules, Relation, etc and use it how it is (yet). Thankfully with the Object Oriented approach in D8, you can extend classes of contrib modules that are unfinished and implement your own custom functionality. Gone are the long, complex module files from hell with little structure.

Creating links with custom classes in Drupal 8 modules

If you're getting a little frustrated with the new Drupal::l function in D8, which is actually going to be changed to Link in Drupal 9, here's how to create a link with class attributes right now. Attributes like link classes used to be defined on the l() function in Drupal 7, but are now passed into the Url() function as extra options.

Here's the ugly truth in how you link to something within module procedural code. You'll want to put the "use Drupal\Core\Url" at the top of your file: