When the Olympic Peninsula Tourism Commission came to Freelock Computing to convert their static HTML site into a newly designed, Drupal-driven CMS, I'm not going to lie, a few drops of drool fell from my mouth. We tend to label ourselves a little outdoorsy and most of us love to travel, so the opportunity to design and build a website in our neck of the woods that we could not only explore new methods such as Geo-mapping but also actually use as normal visitors was exciting. And having a staff that knew where they were going made that process that much easier.
Freelock turned to McKinnon Design to create a fresh design to build on their current image and capture the uniqueness that is the Olympic Peninsula. Due to the complexity of features and layouts, we worked hand in hand with Peter to design each aspect, tossing ideas off of each other and throwing out options to see what stuck. The result was a simple design that enhanced the user experience without overwhelming the visitor. That ensured that a visitor would have their interests perked without feeling overwhelmed. We were able to use Imagecache and Views Slideshow to get a few of the eye-candy pieces on the site, including the glowing thumbnails and rounded corners on the homepage.
Then came the development ideas.
We wanted a site that was organized, clean and tied together by location. We flirted with the idea of using the infant Geo Module as opposed to the mature Location Module, but quickly abandoned that avenue when we offered help in developing the module and the response was send money. So we went with Location and its multiple pages of bugs, seriously, pages, but in the end it proved to be a good choice. We tackled a couple of feature requests within the module, including a proximity filter for the Views 2 module which allowed us to display the nodes within a set amount of miles from the current node being displayed. You can see an example of this use in the blocks on the right of this page. We were also able to use some of the existing Google Maps Modules to display the location of various nodes based on their taxonomy.
The second major idea for the site was to create a travel itinerary creation tool. Users are able to add content such as hotels or wine tastings into their backpack, then save and share the itinerary with others. We used the Flag Module as the base, and then created a custom module that allowed flagged nodes to be set as a Node Reference in a new content type called Itinerary. The result was a shopping cart style node selection tool that could be saved and referenced in the future.
Lastly, we experimented quite a bit with Views 2, really pushing it to its limit. We were able to master much of what Views 2 has to offer in terms of creating relationships, filters and fields. We created a couple of custom modules to help us filter nodes using Location tables, but complicated it even further by using relationships. We used it as the power behind the slideshow and as a calendar. We also use it to manage much of the content in the site admin area.
The complexity of the site really allowed us to get our hands dirty with Views, CCK, and Location and we learned some valuable lessons about the limits of each.
- Location CCK - You had better understand what its limits are before using this. We felt it was closest to the "Drupal way" when we started, but definitely ran into roadblocks later on when trying to use this module with Node Import, Views, and Google Maps.
- Flag Module - What a find for us, nice little module with a lot of flexibility
- Imagecache - We pushed the envelope with Imagecache on this one, with backgrounds on scaled images, rounded corners, changing JPGs to PNGs and back to JPGs. The module is a bit finicky, but if you can pull through, its a workhorse.
- Stay away from modules that create content types, examples are Location (using the default Location functionality as opposed to Location CCK), Event (don't get me started), and the 100 Image gallery managers out there. You can do most everything within the CCK/Views realm and the site, and what you cannot do within those you should be able to with a little code.
If you would like more information on any of the items we have talked about or would like to see how Freelock can help with your own project, feel free to contact us!
Good luck and good travels!