Drupal Workflow
While Drupal has become a strong contender in the open-source CMS world, it still faces its share of criticism. And while some of these complaints may be valid, I take issue with one in particular - the argument that Drupal is not well-suited for quick site builds. On the contrary, as with so many other things, it's all about workflow.
Now, I'm not saying there isn't a learning curve to Drupal, because there definitely is. But as with any learning curve, the investment pays off. Because once you wrap your head around the fundamentals of Drupal - it's core components and key contributed modules, the path to building sites of all sizes can become very quick indeed
WORKFLOW
So, let's cut to the chase. Here's the workflow I've come to use for building a custom site in Drupal:
1. Page.tpl.php and .info file templates - The foundation of any Drupal site, most of these files contain very similar information and architecture. Having one (or more) on hand is an excellent starting point for quick builds. This way, only a few minutes are spent tweaking what's there for a specific site's needs, and then the foundational HTML/PHP document that powers your site is done. After awhile, you'll probably start gathering other templated files (node.tpl.php, etc.) as well, but the basic page template and info file are the essentials.
2. Site Information - Under Site Configuration in the Admin section, this piece takes literally seconds to update, but the name and email address sections in particular are key here.
3. Modules - If you've scoped out your site well, enabling modules should be as easy as clicking checkboxes and maybe doing some slight configuration. And remember, only enable what is necessary so your site is as lightweight as possible.
4. Roles and permissions - Even for the simplest site, I suggest quickly create an admin role and assigning it all permissions. After hearing too many horror stories about losing the User 1 role (role automatically created with full permissions), I respect the advice to make this backup. Again, if you've scoped out your site well, you will know what roles are needed here.
5. Content Types - Using CCK and related modules, you can quickly create whatever the client needs to add content to the site (news, events, galleries, blog, etc.). Also, once you establish a library of these content types, turn on the Content Copy module to import/export them quickly between sites.
6. URL aliases - If you're using Pathauto to automatically create clean url's, it's better to think of the last part of step 5. If you're like me, and are a fan of very clean, logical url's, then this is a crucial step to speeding up the site build. Before you add any content to the site, jump over to your automatic alias settings and make sure all of your content type url aliases are preconfigured (e.g., blog = /blog/title-of-entry, page = /title-of-page, store item = /store/department/item-name, etc.). You can adjust these settings at any time, but they are not retroactive. And since this is about speedy workflow, I wanted to stress the importance of doing this part early.
7. Date formats - If you are using the date module for events or the like, take a quick minute to go through your dates and change/add them as needed. Since you'll be using them in many places, it makes sense to knock this one out early.
8. WYSIWYG/File uploader - Ok, so this one can be a bit tricky. If you are in need of a wysiwyg editor (and let's face it, most clients want one), take the time to familiarize yourself with Input Formats, wysiwyg modules (CKEditor, Tiny MCE, Wysiwyg API, etc.) and maybe most importantly, the HTML filters available. Once you have a setup in place, this step will become quick and easy, so getting it in place is a good goal to have early on. I am currently using CKEditor, IMCE and Better Formats to provide a smooth content entry experience for clients.
9. Themes > Submitted By - Another quick, but useful step is to turn off the submitted by info for your content nodes (drill-down pages for blog entries, news articles, etc.). You should know quickly which of these items will need this info and which will not.
10. Views, Blocks, Panels - If you like Drupal, chances are you like CCK and Views. While CCK helped you create the content types in step 5, Views give you quick and easy ways to display that content pretty much any way you want. Once you become familiar with the UI, you'll be knocking out the dynamic parts of your site in no time. And as with CCK, you can import/export views to speed up the building process even further. When your views are completed, it's only a matter of organizing them using the block interface, Panels or a combination of the two.
And that's it! If you're new to Drupal, this list may seem intimidating compared to other simpler CMS options out there. But the reality is, the process becomes so quick once you're accustomed to these steps. Not only that, but Drupal has other contributed modules that I haven't even delved into here (see Fusion/Skinr, Features, Pressflow) for spinning up sites with many of these pieces and more pre-configured. Very impressive stuff.
So, I hope this article helps you either find a good development workflow for yourself in Drupal or at least allays some fears regarding this process. I know my workflow is ever-changing, and as always, I welcome feedback from others regarding theirs. Here's to quick, powerful and scalable site building!
Add new comment