2010-08-13 2 views
0

j'envoyer un de mes objets à Smarty comme

$smarty->assign('test', new MyObject) ;
....
$smarty->display('main.tpl');

la classe MyObject a une fonction appelée 'Render' qui retourne un représentation de chaîne de lui-même.

Ainsi, dans main.tpl Je veux rendre cet objet comme

{$test->render()}

Malheureusement, il ne montre rien dans le code HTML. Des suggestions comment je peux faire ce travail?

Thnx beaucoup Jeanluca

Répondre

1

Vous devez utiliser $smarty->register_object().

Référence: Smarty features: Objects

+0

Thats ce que je dois, thnx! Je viens de remarquer que mon code fonctionne. Register_object est-il le moyen préféré pour traiter un objet? –

+1

@Jeanluca Je ne sais pas si 'register_object()' est meilleur ou pire que 'assign_by_ref()'. En PHP 5, ils ne devraient pas faire la différence de toute façon (car les arguments objets sont automatiquement passés par référence). Si vous voulez vous assurer, pour les objets * énormes *, utilisez peut-être 'assign_by_ref()'. –