Totally enforcing separation is an almost impossible ideal. You just shifting logic from the controller to the template engine.<p>For example the paper describes how a designer would handle submenus as follows:<p>To handle submenus, have the template iterate (tail-recursively)
over the list of submenu items if that menu is active.<p><a href=$attr.url$>$attr.title$</a>
$if(attr.active)$
$attr.submenu:menuItem()$
$endif$<p>I prefer to send either an array to the View with the menu items and handle the logic in the template or the controller sending the list in a list with classes and id's embedded. I do not like either of them. Has anyone found a solution? I have also tried transclusion a.l.a. wikipedia to ease some of the pain of separation the designer only having to include this {{menu:top}}.<p>Another pet peeve of mine is that Views are more and more becoming programs (i.e ajax, Javascript?), they do not fit in neatly into a model view controller paradigm.<p>Whatever my comments the paper cited above by tmikew is a MUST read.