Theme preprocess functions: An Introduction
How many times has this happened to you:
You're theming a Drupal site, writing your CSS and making a few changes to the tpl files here and there. Everything is going great, then suddenly you realize you need to change one of those things that starts with a "$" inside those funny-looking <?php ?> tags. Panic!
"Crap! Where does <?php print $content; ?> come from?! How do I change it?!"
"Crap! I need to have an extra CSS class on this body tag that depends on the taxonomy of the node on the page! Is that possible?!"
or perhaps even...
"Crap! I need a dropdown on a node edit form to change the way how a differet image field is rendered! How can I get that working?!"
Sound familiar? Preprocess functions are the diplomats of Drupal themes. They are the missing link between what happens in the modules, and what gets sent to the template files.
Goals: In this session, we'll dispel PHP fears, and get our feet wet with a little code that goes a long way to helping out with improving the flexibility of our theme.
Prerequisites: Some experience with Drupal theming, general understanding of the templating system, good understanding of HTML and CSS, some basic familiarity with PHP.
If you have a good grasp on the topics from from my proposed introduction to theming session, this is probably for you.
I've presented this session at BADCamp 2009, DrupalCon San Francisco 2010, DrupalCon Copenhagen 2010, BADCamp 2010, SandCamp 2011, DrupalCamp Colorado 2011, and DrupalCon Denver 2012 to much joy and fanfare.