Идея интересная. Надо будет над ней подучать. Только здесь момент сразу:
$out=$smarty->fetch($tpl); $ouput=$out;
Лучше сразу $ouput=$smarty->fetch($tpl);
Но с выводом надо будет поиграться. Элементарно скорее всего в $smarty->fetch($tpl) просто не будет виден результат процессора, так как assign ты еще не сделал.