Drupal 8 Breadcrumbs - Add the Current Page

Breadcrumbs are a pain point in Drupal 7. If you don’t know how breadcrumbs are supposed to work, go read this. The crumb should start with home and continue through to an unlinked crumb of the current page. Crumbs were implemented poorly, and breadcrumbs were difficult to modify in a module. Further, they were based on items in the menu. The breadcrumbs didn’t even allow you to edit the home title or include the current page title as an unlinked crumb.

Read On →

Drupal 8 Configuration Workflow Best Practices

Don’t store site configuration in the database during development because putting configuration in the database makes configuration difficult to track in version control. Instead, use the file system! Putting configuration in a database also makes it more difficult to restore, compare, sync, deploy, modify, and review the site config. Drupal 8 uses Yml files for configuration which are a perfect format for file-based configuration. In fact, this is the only method for storing configuration in BackdropCMS because BackdropCMS uses JSON files to store site configuration.

Read On →

Drupal 8 Development Best Practices

These core concepts apply to Drupal 8 site builds. However, many often apply to the other major web framework from WordPress to Node projects. Many of these ideas are documented on Drupal.org as well. I’m rewriting them here because I disagree with the documentation in several key areas. Use The Same Development Environment Everyone on your team should have exactly the same development environment. Using the same development environment ensures that the project runs exactly the same for each team member working on a project.

Read On →

Drupal 8 Site Building Best Practices

I’ve taught an beginners course during Drupal Global Training Days many times in portland, and I give students an introduction to Drupal 8 for site builders. I spend the day simplifying Drupal for new developers. But once you’re beyond the basics of the interface, there are many different ways to accomplish a task in Drupal and Drupal 8 only adds to the choices. So, if you’re a Drupal developer looking to craft easier to maintain Drupal 8 sites, this series is for you.

Read On →

Joining ThinkShout

I’m excited to announce that I’m joining the ThinkShout team as a senior software enginer. ThinkShout is a mission-driven team that delivers engaging work for some amazing non-profit organizations. ThinkShout caught my eye a couple years ago when they launched the RedHen CRM platform for Drupal. I was impressed not only because RedHen is free and open source, but because Sean Larkin took the time to walk us through working with the CRM inside the Drupal platform.

Read On →

Wordpress vs Drupal for Complex Sites

Dries, the creator of Drupal recently started a conversation about WordPress vs. Drupal. This is the first time I’ve read a great discussion about the pros and cons of each platform. John Eckman, the founder of one of the best WordPress agencies responded well on his blog. John’s experience with the two communities seems similar to my own because I’ve also been an active participant in both communities. In fact, 3 years ago, I considered myself a WordPress expert.

Read On →

Join me at the Devsigner conference in Portland this May: designers and developers join forces!

Devsigner is celebrating the cross-overs, the multi-disciplinarians, the coders who paint and the designers who send pull requests — and those who want to develop some new left-right brain skills. We’re looking for folks to break out of their familiar meetup silos and apply their knowledge across the crafts of development and design. Join me at Devsigner in Portland, Oregon, May 23-25! Tickets are now on sale, and session submissions are open until this Friday, May 2!

Read On →

Improving Drupal Frontend Performance

Steve Sounder’s is an authority on web performance. He writes about everything from front end performance to browser performance. As a front end developer, it’s easy to get lost in tasks that don’t matter. There’s a saying in software development, “Don’t optimize until you need to.” In frontend development, that doesn’t apply because we don’t write complex algorithims. But, it’s important to make sure we focus our time and attention on the right stuff.

Read On →

Mysqldump and mySQL/Mariadb import of Microsoft Word Special Characters Windows 1251 (Latin1)

I needed to export and import a WordPress database from Dreamhost. So, I logged in via command line dumped the files with: mysqldump -u user -p > databases.sql I then copied those files to the new server and ran mysql -u user -p < databases.sql Everything was going great until I loaded a blog post with Microsoft Word special quote marks in it. Arrg! I managed to get the files with quotes intact out of dreamhost with this: mysqldump --default-character-set=latin1 -u user -h host.example.com -p > databases.sql However, In Mariadb on the new server Microsoft special characters were still wrong on the new server after the import!

Read On →

Drupal 7 AJAX Forms

Using AJAX to update a Drupal 7 form could be easier. The documentation on this feature is extremely verbose, and I had a difficult time piecing together a working example. So, here’s the code to modify the values of a second field when the value of the first is selected. The code below will use the taxonomy_voc drop down to control the product model drop down values. This code does not work with field widgets that define their own AJAX.

Read On →