Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Szablon z bazy
Forum PHP.pl > Forum > PHP
sebekzosw
W systemie pobieram szablon HTML z bazy i wyświetlam normalnie na stronie, jednak chciałbym zapisać w bazie taki szablon z kodem smarty. W jaki sposób wymusić wywołanie tego kody w smarty, żeby się pokazał wynik a nie np {$zmienna}? Kiedyś było coś takiego jak eval, nawet w sumie działało ale teraz nie chce ruszyć. ma ktoś jakieś pomysły?
nospor
No przecież smarty ma metodę fetch(), która wykonuje kod smarty. Jeśli ta metoda działa tylko na plikach, to dopisz do niej kawałek by działał na tekstach i po sprawie
sebekzosw
Dzięki za pomoc, to będzie pomocne. Tylko trzeba też wziąć pod uwagę, że za pomocą:

  1. return $smarty->fetch('szkic.tpl');


a szkic.tpl zawiera:

  1. <div>{$danezbazy}</div>


a

  1. $danezbazy = '<a href="">{$test}</a>';


kiedyś przechodził taki myk:

  1. <div>{$danezbazy|eval}</div>


ale teraz coś nie działa. Jakiś pomysł jest na taki problem?
nospor
Coś chyba przekomplikowałeś ten swój system, skoro szablon masz i w plikach i w bazie. Po co ci to? Jesteś pewien ze nie da się tego zrobić bardziej po ludzku?


Wracając do problemu:
$danezbazy = '<a href="">{$test}</a>';
Właśnie na tym masz zrobić fetch
$smarty->fetchTekst($danezbazy);

I wynik tego fetch masz przypisac do smarty:
$smarty->assign('danezbazy',''tutajwynikfetch);
sebekzosw
tzn w systemie zrobiłem możliwość dodawania modułów. Jeden nazywa się "własny kod HTML" - gdzie mogę wpisać jakiś blok, menu czy coś jako html lub formularz logowania. I teraz jak wysyłam formularz logowania to w Smarty mogę dodać warunek czy jest jakiś komunikat bo błędnym logowania. A tak to nie mógłbym dodać komunikatu nad formularzem ;-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.