[PHP] Smarty -> kompilacja do zmiennej

0

gdy daję $smarty->display('costam.tpl'); skompilowany wynik wywala mi bezpośrednio na ekran (jak echo). Ja jednak chciałbym dostać wynik w posiaci zmiennej, ponieważ kod wyjściowy chcę jeszcze przekonwertować na jeden z trzech formatów (ISO / UTF / WIN), wybrany przez użytkownika oraz przy okazji pozbawić \n i \r...

próbowalem w smarty.class.php zamienić wszystkie echo na moje_echo, ale to nic nie daje - chyba kod drukujacy jest gdzies indziej :-|

moze w smarty jest jakas funkcja drukujaca do zmiennej? jak nie to podpowiedzcie co mam zmienic, zeby smarty korzystalo z mojego kodu echo :)

EDIT: doszedlem wlasnie, ze smarty nie korzysta z echo, ale include... czy da sie zrobic cos, aby wynik z include zamiast byc drukowanym, byl zapisywany do zmiennej?

0

nie uzywalem nigdy smarty wolalem napisc wlasny system obslugi szablonow ale skoro display wysyla juz wynikowy szablon o ile oczywiscie tak dziala mozesz zrobic tak:

ob_start();
$smarty->display('costam.tpl');
$wynik = ob_get_contents();
ob_end_clean();

ale na pewno smarty ma metode ktora zwraca Tobie wynik w pamieci a nie bezposrednio na wyjscie

0

heh zawsze zastanawiałem się, do czego służy to ob_ :D
tyle razy mi to było potrzebne, a ja kombinowałem pod górkę...

big thx :)

0

Czy naprawdę tak trudno sięgnąć do manuala????

$result = $smarty->fetch( 'template.tpl' );
0

ozesz... kilka razy przewertowalem ta funkcje a nie domyslilem sie do czego ona konkretnie sluzy... A zajrzec do menuala konkretnie pod to haslo nie przyszlo mi do glowy - myslalem ze to wewnetrzna funkcja klasy

zmylilo mnie to i tego tresc:
void display ( string template [, string cache_id [, string compile_id]])
oraz samo zastosowanie include w kodzie... ale wielkie dzieki i za to roziwazanie, bo jest ono bardziej odpowiednie :). ob_* przyda sie w innych sytuacjach :-]

PS: ZAWSZE przed zadaniem pytania czytam manuala, google i wyszukiwarke na forum - czasem jednak cos przeocze :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1