per Smarty auf PHP-Klasse zugreifen

chris_sit

Erfahrenes Mitglied
Hallo zusammen,

ich habe mich ein wenig mit Smarty beschäftigt.

per register_function('foo','bar') kann ich reguläre Funktionen ja bequem in meinem Template einbauen und sogar mit Parametern füttern.
Wie muss ich aber vorgehen, um ein Objekt im Template zu instanzieren, bzw. auf dessen Attribute und Methoden zuzugreifen?

Wenn ich den "Umweg" über eine Funktion (in der meine Klasse Instanziert wird) gehe, opfere ich die Trennung von Layout&Logik.

Ich steh irgendwie total auf dem Schlauch, Suche ergab bisher auch keine brauchbaren Treffer.. :confused:

Gruß,
Chris
 
Nachtrag:

was mir eben noch gekommen ist..

PHP:
$foo = new bar();

$smarty->assign(array(
 'para1'=>$foo->get('para1'),
 'para2'=>$foo->get('para2'),
 'para3'=>$foo->get('para3')
 ));

Das könnte klappen (werde ich zumindest gleich probieren) - aber geht es denn noch eleganter?
 
so, das war völlig Banane.. ;)
PHP:
$smarty->assign('foobar',$myObj);

Im Template ist es eigentlich banal
PHP:
{$foobar->attribut} -- bzw
{$foobar->methode para1=$para1}


Da stand ich wohl tierisch auf dem Schlauch ;)
 
Hallo,

ich kann meine Funktion aus einer Klasse nicht aufrufen. Benötige Hilfe, wie Quellcode korrekt auszusehen hat:


In *.php

PHP:
include('function.php');
...
$func	= new Function();
...
$smarty->assign('function', $func);

der Aufruf einer Funktion in der *.tpl

HTML:
<td align="right" ...

bgcolor={$function->getColor($data[3], $data[5], $data[7], $data[9], 
 $data[11]) } > {$data[3]} </td>

...

Wäre nett, wenn mir jemand helfen kann, den Fehler im Quelltext zu beseitigen.
 
Zurück