Smarty trieb mich gerade fast in den Wahnsinn. Man kann im PHP Code eine Smarty Variable so erzeugen:
$smarty->assign('order-by-date', $order_by_date);
Die debug Methode zeigt auch das dem Smarty die Variable $order-by-date übergeben worden ist, doch wenn man diese if-Bedingung aufstellt ist die nie erfüllt:
{if ($order-by-date == true}
{$foobar}
{/if}
Es hat eine halbe Stunde gedauert in der ich in meinem Code den Fehler gesucht habe, bis mir eingefallen ist, dass die Variable doch kein Minuszeichen enthalten dürfen. Gut man ist selber schuld wenn man total müde codet, aber warum verdammt noch mal meckert mir Smarty eine falsch benannte Variable nicht an? *seufz*
UPDATE: Die if-Bedingung war natürlich im PHP Syntax und nicht im Smarty. Habe ich nun korrigiert.