One of the most frustrating things to deal with as a Drupal programmer can be Ubercart. Often, you need to complete a simple task such as sending an additional email, or giving a user a new role, and your options are to use Rules, Conditional Actions or just program it yourself.

Rules or Conditional Actions allow you to execute PHP, but sometimes you don't want to store your php code in an unformatted text field in the database. Enter hook_order(). One of Ubercart's primary hooks for getting stuff done.

Aegir is wizardry, pure and simple. Once you’ve got it set up and running there’s almost no excuse not to have all of your sites on it.

There are plenty of great tutorials on moving your existing site into Aegir like Dboettger’s tutorial or Aegir’s Community tutorial but they assume that you’re pretty handy with the command line.

If you don’t feel comfortable with the command line or you don’t want to mess with it you can still pull the migration off.

NOTE: This post describes the very simple process of starting a custom module. The purpose is to use this as a basis for all other custom modules created in Drupal 6 or Drupal 7.