SeaDUG presentation online

Error message

  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /usr/www/users/gdd/heyrocker/includes/
  • Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2405 of /usr/www/users/gdd/heyrocker/includes/

The video of the presentation I did with my co-worker Gary Love has been published.

I don't think it came off as well as it could have, but people seemed to like it. I was a little disorganized. Originally this was supposed to be myself (engineer), Gary (business owner), and Sean Carberry (designer). Gary was going to do 20 minutes on our evaluation and choice of Drupal, then we were going to split into informal groups based on functional interest. Unfortuantely Sean bailed at the last minute so I had to get up in front of everyone and do my thing as best I could. Rather than run down all my topics one by one, I just said "Here's the areas we worked on, what do you want to hear about?" and off I went.

Some errata:

  • It turns out my bit about security settings is not quite right. One of the things we did with our installation is pulled a bunch of stuff out of Drupal's .htaccess and put it in our httpd.conf which can give you a performance gain. Unfortunately when I did that I forgot to bring over Drupal's blocks for .module, .inc, etc. Not realizing this I ended up writing them all myself. One of my chores now is to get the Drupal one back in there because it is way better than mine (mine still does the job its just not as elegant.)
  • Also I think a couple of my responses to some questions come off as a little flippant, which I chalk up to nervousness on my part.
  • I discuss at one point in the presentation a problem I had with a situation where we had site/dir1/dir2 but I couldn't remember what it was. I remembered this later. As described in the video we have our old content side by side with our new content:


    and there is a symlink to /old from /drupal. Unfortunately this mean all our URLs became /old/... so I wrote a rewrite rule to handle that situation. If a file or directory lives in /old/... then strip /old out of the URL and serve it. This happens before Drupal's similar directive, so old content gets priority. Now picture a situation in which you have


    Lets say I want Drupal to take over foo, but I still want all the content under bar to remain being served by the old site. This is the problem we ran into. Our rewrite rule saw that /old/foo existed so we could never get Drupal to take it over. Conversely we can't delete /foo because we still want the old content under /foo/bar. I finally just harcoded several exceptions in to allow those specific situations to fall through to Drupal. Just another example of why I don't recommend moving a site over to Drupal piecemeal.

Anyways if you have any comments or corrections let me know.

I wrote two chapters of this book - Drupal 7 Module Development and I co-wrote it with Matt Butcher, Larry Garfield, Matt Farina, Ken Rickard, and John Wilkins. Go buy a copy!
I am the owner of the configuration management initiative for Drupal 8. You can follow this work at the dashboard on

I used to work at NodeOne in Stockholm, Sweden. NodeOne is the largest pure Drupal consultancy in Europe. They have built websites for clients like IKEA, SFBio, and Möbler. If you need some work done get in touch!