Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [smarty]Parsowanie fragmentu kodu!
Forum PHP.pl > Forum > Przedszkole
koszal
Witam! Czy można w smarty sparsować jakiś fragment kodu z poziomu pliku php? Przykład: chciałbym, aby mój skrypt pokazywał po zalogowaniu panel użytkownika (zawierający jego login, link do profilu itd.), ale żeby nie można było go zmieniać z poziomu szablonów (powinien być przekazywany do szablonu jako ciąg znaków). Pozdrawiam
NoiseMc
Mozesz normalnie jako zmienna podstawic HTML.
  1. <?php
  2. $loginHtml = "<form ....><input .... /></form>";
  3. $smarty->assign ("loginHtml", $loginHtml);
  4. ?>

  1. Formularz logowania:
  2. {$loginHtml}
  3. </body>

... ale nie powinno sie tak robic, cokolwiek jest HTML-em i odpowiada za prezentacje powinno byc w szablonie

PS: Cos stripslashes chyba nie dziala ^^
koszal
Mam jeszcze jedno pytanie: czy można przekazać tablicę do includowanego pliku szablony w smarty?

Powiedzmy, że sytuacja jest zbliżona do tej:

  1. <?php
  2. // index.php
  3.  
  4. (...)
  5.  
  6. $cos = array('cos1', 'cos2', 'cos3');
  7. $smarty->assign('cos', $cos);
  8. ?>


  1. <!-- index.tpl -->
  2.  
  3. {include file="cos.tpl" cos=$cos}


  1. <!-- cos.tpl -->
  2.  
  3. {$cos}
  4. {$cos[0]}
  5. {$cos[1]}
  6.  
  7. (...)


i podany przykład pozwoli mi się dostać tylko do pierwszego argumentu $cos. Chyba ze coś spieprzyłem.
NoiseMc
W ten sposob podajesz oiektowi $smarty dane i obiekt ten ma je caly czas. Potem mozesz je wyswietlac w templatce parsowanej z $smarty->display('plik.tpl');, jezeli plik.tpl includuje inne pliki to przypisane zmienne beda dostepne rozniez w tych plikach.
  1. <?php
  2. $smarty->assign ("zmienna", "Tekst");
  3. ?>

  1. <!-- index.tpl -->
  2. Zmienna: {$zmienna}
  3. {include file="plik.tpl"}

  1. <!-- plik.tpl -->
  2. Ta sama zmienna: {$zmienna}
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.