Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [OPT 1.x] Eval w pliku tpl
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
Inscure
Witam,

Na wstępie proszę nie krzyczeć, że piszę odnośnie wersji 1.x.
Przejdźmy do rzeczy:

chciałbym wywołać eval() w pliku tpl.
Nie mogę zrobić tego w pliku php, gdyż wtedy treść wyświetli mi się w momencie przypisywania wartości przez assign (jak niżej);

$tpl->assign('data', eval($_POST['content']));


Ma ktoś jakiś pomysł?
Adi32
A nie mógłbyś najpierw wywołać funkcję eval() a potem ładować do smarta?

poza ty z tego co pamiętam to eval musi mieć na końcu średnik

  1. eval ('$eval = '.$jakas tam.';');
  2.  
  3. $tpl->assign('data', $eval);
Inscure
Nie mogę zbytnio w ten sposób.

Zmienna którą chcę wsadzić do eval to $_POST['content'].
Pochodzi ona z textarea, w którym znajduje się następujący przykłądowy kod:

Kod
$zmienna = 5;
echo $zmienna.'tekst';


Chodzi o to, żeby zrobić podgląd dodawanego, dynamicznego (z kodem PHP) panelu.
Wartośc wpisana w textarea musi się wyświetlić w odpowiednim miejscu otoczona kodem html z pliku tpl.

Dlatego wnioskuję, że jedyny sposób to coś typu eval w pliku tpl.


EDIT:


Pracując nad innym projektem, dośc przypadkowo znalazłem rozwiązanie.

Wykonujemy eval() ale w pliku TPL, a nie PHP, czyli

PLIK PHP

Kod
$zmienna = 'echo $zmienna;';


Kod
$tpl->parse('plik.tpl');


PLIK TPL

Kod
{php} eval($zmienna); {/php}


I działa jak trzeba smile.gif
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-2024 Invision Power Services, Inc.