Think! - User Engagement Blog
What You Should Know About Drupal Contrib Modules
June 19, 2009 - Ronn Abueg
You should know....
Views, Panels, and CCK are the foundation of all modern Drupal sites -- They do all most of the work for you
- tip: Reality check -- build as much of a site as you can using JUST contrib and core. Make sure your first question is "How can I implement this with existing modules like views, CCK and panels? Then, and only then, once you establish a gap, produce custom code. Custom code should only be used if you can prove that you were not able to use Views and CCK to create the equivalent functionality.
- tip: Learn how views export module works. It's bundled with views and allows you to literally turn your views into "versionable code".
- tip: Panels and blocks are a powerful combination. Learn it.
- see: Listing of "Essential Drupal Modules"
- see: Panels Video Tutorial from Oregon state Univ.
- see: Views + CCK Tutorial
Static nodes can be exported using the node_export module
- see: Install Profile API for importing node exports
CCK types can be exported and imported with content_copy module, ships with CCK
- tip: Again, the Install Profile API module makes importing CCK types easy.
i18n + views is the easiest way to build a multilingual site
- tip: Use the views language filters to build language aware views
Image module is one of the longest running, and best supported modules ever
- tip: If you're not using image module to handle your uploaded images, think again.
imagecache module is the long-run simplest way to handle multiple image sizes
- tip: Sure, there's a little configuration pain up front but your site will be extremely flexible
That pathauto is almost always the easiest SEO win
- see: Pathauto tutorial, a fairly good one
logintoboggan module solves 80% of the registration related requests from the client
- see: LoginToboggan Project on Drupal.org
admin_menu module makes administering and building Drupal sites easier and faster It is more attractive that simplemenu (and more logical and Acquia supported!)
- see: Admin Menu on Drupal.org
Managing Taxonomy Exports with Drupal
June 18, 2009 - James Andres
Hi Drupalites, A recurring pain point in my Drupal development has been managing the vocabularies and terms in Drupal. I tried using the Taxonomy XML module, but found it much too complicated for everyday tasks. Without further hesitation I am proud to unveil Taxonomy Export!
OpenWeb Vancouver 2009
June 16, 2009 - Daniel Quinn
I attended my first ever OpenWeb conference yesterday and as per company policy, I have to report on and share what I learnt, so what better way to do so then to make a blog post for all to read? ;)
What You Should Know About Drupal File Management
June 01, 2009 - James Andres
You should know...
How to manage javascript
- tip: jQuery plugins can be downloaded to sites/all/js for easier management
- tip: Custom plugins should be either attached to a custom module or custom theme. The choice is based on whether the plugin helps a module, or purely acts at the design layer.
- eg: A plugin that adds DHTML UI elements for a block should live in the module that creates the block.
- eg: A plugin that adds DHTML navigation for the site would reside in the theme
WorkAtPlay.com How It Was Made: The Flip and Scale Effect
May 29, 2009 - James Andres
There has been great reception to the Work at Play website design and effects. We have received several emails from intrepid geeks wondering how we pulled off all that cool jQuery eye-candy. After writing a few of these "how it was made" emails I think a blog post is in order. Without further delay, here is the behind the scenes story on WorkAtPlay.com!
The Flip and Scale Effect
On the WorkAtPlay.com homepage we use the jQuery Flip! plug-in in combination with some custom animations to give the "Flip & Scale" effect. This is a little more complicated than one might think, and deserves some explanation:
- User clicks on a work sample tile image.
- The click is caught using a standard jQuery
$(elem).click()handler. - Due to how the Flip! plug-in works it isn't possible to just flip the work sample tile directly. Instead we replace the tile with an empty div of the same colour and perform the flip on that new div. We call the new empty div the "flip_side" because it will actually become the flip-side of the work sample tile.
- The flip_side div is placed using absolute positioning directly on top of the work sample tile. The work sample tile is then hidden with CSS to keep it out of the way.
- Now, finally, the Flip! plug-in is triggered on the flip_side div.
- When the flip_side div is finished flipping the Flip!
onEndcall-back is triggered. We use theonEndcall-back to insert the content for the work sample's "flipped side". This content is cleverly ready and waiting inside a hidden part of the original work sample tile (view source on the WorkAtPlay.com home-page to see for yourself). Oh, we insert the content with a basic$(flip_side).html(flip_content.html()) - Ok, so far we've got a div called flip_side that contains the right content. But it's still really small and the content is all scrunched up. How do we make it bigger? The scale effect is solved by the jQuery
$(elem).animate()method plus some handy CSS positioning - The tricky part of the scale effect is figuring out how big it should scale and to what X and Y pixel co-ordinates it should move to. This is accomplished by the following formulas:
- flipped_side.top =
$('#work-page .wrapper').offset().top - flipped_side.left =
$('#work-page .wrapper').offset().left - flipped_side.width =
$('#work-page .wrapper').width() + 1 - flipped_side.height =
Math.ceil($('.work-sample').length / NUM_WORK_SAMPLE_COLS) * $('.work-sample:first').height()
- flipped_side.top =
What You Should Know About Drupal's Development Only Modules
May 28, 2009 - James Andres
Development modules are great when you are building a Drupal deployment. But, there are a few things you should know. You should know ...
How to use devel to its full potential
- see: Devel Project on Drupal.org
- tip: Enable the devel block for quick access to developer features
- tip: Instead of writing code like var_export($node); use the dev render and dev load pages generated by devel. Just log in as admin visit a node and click the tab.
- tip: Unless you really need it ... don't bother with the query logging features of devel. You should turn on the Slow Query Log in MySQL to automatically discover queries that are slowing down your code.
- tip: Learn how to generate users and nodes using devel. It's REALLY handy and you can quickly create data that mimicks a production environment (Instead of nodes that just say 'test this' and 'test that')
How to use coder module
- tip: Validate your custom modules and themes often to ensure your syntax is Drupal standard.
Converting modules from 5.x to 6.x is not that hard with the deadwood module
How to ensure development modules NEVER make it to live
- tip: Use subversion hooks to delete, yes literally delete, the sites/all/modules/development directory every time you do a live release. This ensures that there is no way these modules can be enabled.
Anything to add?
What You Should Know About Drupal Update / Upgrade Management
May 26, 2009 - James Andres
Drupal should NOT be installed with the "downloaded and unzip" method.
- Check Drupal core out from CVS. See Moshe Weitzman's Drupal Best Practices
- The core "Update Status" module is a life saver. See the Update Status project homepage on Drupal.org - which is in core as of Drupal 6.x. Enable the email notification feature on all live sites, sit back and wait for your Drupal sites to tell you when they need an upgrade.
- Using the install_profile_api module is a great way to update/upgrade Drupal. Check out the Install Profile API project on Drupal.org
- Every change to the system should be done with a hook_update_N() See: http://www.tributemedia.com/blogs/james_glasgow/updating_drupal See: Updating tables: hook_update_N() functions See: Dark arts of Deploying Drupal by Drupal Guru Jeff Eaton
The Three Drupal Commandments
May 26, 2009 - Jordan Willms
It is not as if these were passed down from Mount Sinai, but they are still pretty darn important for any Drupal based project or website.
Here are the three commandments that govern any work that our teams do with Drupal. Doing so increases quality, and minimizes costs (something that we know our partners appreciate in this economic climate).
16 things to check before launching a CMS based website (e.g. Drupal)
May 20, 2009 - Jordan Willms
It is always smart to sanity check a website before deploying it into a production environment. Whether this is a brand new website, or a upgrade to an existing website, there are a laundry list of things to check before proceeding. Humans are forgetful people. Checklists are not. That is why Work at Play created a "Before Launch Checklist" are part of our Process Library (which we'll slowly be publishing out over this blog as time goes by) Here is the checklist (which can also be downloaded in PDF above). This is by no means an exhaustive list.
Design
- If this is a website, does it have a custom favicon?
- Has the entire site been proof read? Who did it?
- Have you checked all the standard browsers? FF/IE/Safari/Chrome?
- Does the site still work with Javascript off? Who tested this?
- Are all pages W3C standards compliant? Who checked?
- Have all design assets been packaged for delivery to the client? (e.g. PSDs, FLAs, etc)
SEO Basics
- Are titles SEO friendly? Are meta title & description added?
- Does the client have an analytics package? Has the code been integrated?
- If the is an XML Sitemap, has the XML sitemap been submitted?
- Is the page's title in an H1 tag? (Not the site name!)
Drupal/CMS (if applicable)
- Make sure automated tasks are setup (i.e. cron or cron.php)
- Have development modules been deactivated removed from the production website?
- Is this an upgrade? Has the maintenance page been styled? Has the client been notified about the outage?
- Are on-screen error messages disabled?
- Are performance settings turned on? Caching? Compression?
- Is there a backup strategy for files & database?
This checklist is living document -- please let us know anything you believe we are missing and we'll improve the list. 
Work at Play on Virtual Goods News about Aria Partnership
May 14, 2009 - Jordan Willms
Our friends at Aria were featured with us in Virtual Goods News yesterday. This was the official announcement of our partnership to further develop Velocity, the integrated virtual goods management and billing system. Check out the article on Virtual Goods News
On User Engagement, Digital Experience and the Intersection of Marketing & Technology.
Recent blog posts
- Latest work: Hotwheels.com
- Spotlight on Crowdsourcing
- We've joined the ranks of the Profit 100
- What is user engagement anyway? (part 2)
- Canucks Social Powered By Work at Play's DEQQ Platform
- Be our guest - Lunch & Learn, April 13th
- Fluid Web Typography - SXSWi 2010
- Spotlight on Augmented Reality
- What is user engagement anyway? (Part 1)
- 2009 Work at Play Website Retired