To explore the tech world, though mostly focusing on iOS, Django, and Drupal development Sometimes it isn’t the perfect that gets in the way of the good, but the revolutionary gets in the way of the evolutionary.

IDEs for Drupal and more

For the company I am employed at, we are maturing in our development skills and in the complexity of the website projects we embark on. Since coming on with the company in January, we have all been using HomeSite as our development tool. But since it has lots of shortcomings as just a really good text editor, I decided to test out a few other IDEs to recommend my company switch to. I compared Eclipse with the PDT (PHP Development Tools) plug-ins and ActiveState's Komodo (while passing on Zend Studio, since we do develop in PHP, we are branching out into other languages as well. The following is the comparison and recommendation that I sent to our COO for consideration. Any comments or further options are welcome so I can update my full recommendation.

Google Maps, Drupal and Dog Parks

I am always so amazed at how Drupal lets me get straight to the new/important stuff. With the great Google Maps module, Views and Imagecache with Thickbox for galleries and some custom material, I was able to throw together a local dog parks site for my wife (the regional maps and actual dog park pages are further along). Since all these cool modules were already contributed, I was able to work quickly on a tool to let other sites embed the content we have collected (hopefully the point of differentiation from other such sites). This is where using Drupal really let me shine as a developer. I can quickly get to the point of the new/exciting development, since so much ground has already been broken with Drupal core and contributed modules. Read on for a fuller explanation.

Santa Clara Dog Park Site

So I have been working on a dog parks mapping site for my wife the last few months. It has been slowly getting to the place we wanted. But one night I had a fun idea about how to spread the word concerning the site.

Pirate Day so easy with Drupal

Lost in all the shuffle of not getting to go to the DrupalCon in Barcelona, I will try to squeeze in the another reason for using Drupal. With the pirate module for Drupal, we can instantly update our content for the International Talk Like a Pirate Day. Now at we didn't want to impose the pirate speak if it was not welcome, but all I had to do was edit the module slightly to place a $_SESSION variable and tie it into the theme. So we have a link up in the corner that will turn ON/OFF the pirate speak across the site at will on a per user basis. Instant variety on our site, due to the awesome community of Drupal. Due to the efforts, we are listed on the 2007 TLAP Day page as going pirate. Full Relaunch Explained

How To Do, is a community sharing their expertise to solve people’s problems. After 6 months of specifications, migrations, module development, theme designing and beta testing, we are please to announce the full relaunch of

In my full d.o. posting,, I detail the following points:

  • What we left behind - a homespun based CMS
  • Out of the box suprises - what the non-developers were happily surprised with in Drupal
  • How Drupal decreases our development cycles - from from core to contributed modules
  • Using the Google AdSense API
  • How we are looking forward to D6 -multi-lingual, here we come
  • Giving back to the d.o. community - committed core and contributed patches
  • How we did it - some highlights for the obligatory "what went into the site"

I have also written up a long example of how the Drupal framework greatly reduced the development cycle time for new features through a mix of contributed modules and custom code. Enjoy. -Greg

When to Drupal, for forms???

When Drupal experts are so scarce, choosing how to implement a new multi-step third party form for a Drupal site can be tricky. Our in house talent is stretched with current projects, and our trusted outside contractors are not up to speed on Drupal. So we were faced with either creating the new forms with a pure PHP implementation that lives along side the Drupal site (with a shorter timeline), or finding and vetting a new Drupal contractor that know the form API inside and out, or rearranging other priority projects and complete the form integration in house.

These are the choices, what have other site managers done? This is our story.

Beta Launch of in Drupal

For the last few months, I have been working to port an ASP/MSSQL site in Drupal. How To Do is a site were everyday experts can share their knowledge. We completely redesigned the look of the site, migrated the 4000+ articles into 200+ categories, and 600+ current contributors.

Technically we are still in Beta, but mostly the work left do to is optimizing the code, streamlining workflow and editorial processes, and tweaking the design. When we launch out of beta, I will be supplying a case study, and a more complete technical breakdown of the site (which includes Google AdSense API implementations, custom category pages, custom profile pages for contributors, heavily laden CCK node/theming for the actual articles, extensive use of the workflow module with custom actions among other item).

Enjoy. Feedback and comments are always appreciated.

Things you can learn by just reading....

Yes, this is yet another Pro Drupal Development post. It is a great book, any serious up and coming Drupal dev should read it end to end, and then read it all again.

But first I wanted to hit the criticism that I have heard, such as 'Why did core devs write a book for $30 instead of posting handbook pages?'. The thinking behind this is that since Drupal is free software (as in freedom to alter the open source code), all help associated with Drupal must also be free, as in free from charge. There are numerous books written for proprietary software, and the hard working authors expect a return for their efforts. So is it if someone writes a book about an open source project, then they have to donate the efforts for free???? Of course not!

I am actually glad to have purchased the book and in a certain sense donated back to the core devs who keep pushing the limits of what Drupal can and should do.

Playing Catch in Drupal, where are the Forums?

In Dries', The State of Drupal, talk at the 2007 OSCMS Summit, he mentioned a few things that Drupal needs to play catch up on. The chief one that resonated with me is how the Drupal forum module is rather undeveloped compared to the other cool features and innovations that Drupal 4.7 and 5.x have delivered.

Drupal Hook needed, hook_message_alter

As I have been working on the functional implementation for a new community Drupal site, I have been seeing the need to customize many of the core Drupal messages (the drupal_set_message function), as required by the needs of the site. A typical example would be when a contact message has been sent, the default message is 'The message has been sent.' An small change might be to 'Thank you, your message has been sent.' A more dynamic change would be 'Thank you Greg, your message has been sent'.

The first change could be accomplished using the locale module methodologies found in But there are two short-comings to this method. First, even though all core modules use t() for the text to make it translation ready, many contributed modules do not. Second, the translation method only allows for string replacements, not dynamic insertions. Granted some of the messages place the user's name or other dynamic information into the message, but the basic idea is that you can only change what is given you, you can't add to it. The contact message is a perfect example, there is no way to add the user's name to the message.

That is why I am going to propose a new drupal hook, hook_message_alter($message_id = NULL, $message = NULL, $type = 'status'). This function would return the new $message. It would hook into the drupal_set_message function. All messages would invoke this hook, giving designers and developers the ability to customize those messages completely to suit their site.

Syndicate content