Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [smarty]Parsowanie fragmentu kodu!
koszal
post 18.07.2007, 15:26:58
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.04.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
NoiseMc
post 18.07.2007, 15:52:27
Post #2





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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 ^^

Ten post edytował NoiseMc 18.07.2007, 15:54:09


--------------------
Go to the top of the page
+Quote Post
koszal
post 18.07.2007, 19:00:29
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.04.2007

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
NoiseMc
post 18.07.2007, 19:39:52
Post #4





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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}


Ten post edytował NoiseMc 18.07.2007, 19:40:34


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:04