When the HTML code needs to change
"Okay, we've looked at the changes you can make to the CSS classes, and for fields, the HTML tag wrapping the field output. Another place that you already know we can put CSS if we have to is the field rewrites. In fact, I have seen you being very creative in using field rewrites to combine fields in ways I would never have thought of.
However, let's say you need to do something more than you can with a field rewrite or that you don't want to have this kind of logic in your view; your option then becomes modifying the theme template to change the HTML code at this level.
Of course, there are some modifications that require more logic, perhaps coupled with database manipulations that go beyond what can be done with templates. These should be done in a custom module rather than in a template. The rule of thumb is that you can put conditionals and loops into templates and can do a reasonable amount of string and math manipulations in templates, but once you...