Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [smarty] zamieniaj zmienną na funkcję
nitro18
post
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


Chciałbym skorzystać ze smarty. Jednak mam problem.

Kiedy następuje wczytanie szablonu tag {menu} powinien zostać zamieniony przez zawartość funkcji menu()
jednak po zastosowaniu poniższego kodu nie działa. w pliku menu.php są także skrypty php więc otwieranie fread() mi sie nie opłaca.

Proszę o pomoc, z góry dziękuję.

  1. <? 
  2. //szablon
  3. $f=fopen("szablon.htm", "r");
  4. $szablon=fread($f, filesize("szablon.htm"));
  5.  
  6. function menu(){
  7. @include 'menu.php';
  8. }
  9.  
  10. $szablon = eregi_replace("{menu}", menu(), $szablon);
  11.  
  12.  
  13. echo $szablon;
  14. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
krowal
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Jakieś głupie podejście macie do tego. Do szablonów nic innego niż treść/tablica/liczba nie przekażesz, więc cokolwiek Twoja funkcja menu() robi to niech to robi tak żeby zwracać wynik w postaci jednej zmiennej np.
  1. <?php
  2. function menu(){
  3. while(jakis warunek){
  4. $text .= jakis tekst;
  5. }
  6. return $text;
  7. }
  8. ?>

W ten sposób utworzysz podczas działania funkcji ciąg który potem umieszczasz w szablonie za pomocą smarty w sposób zależny od typu zmiennej oczywiście (tablice możesz potraktować foreach'em).
  1. <?php
  2. $smarty->assign('menu', $text);
  3. $smarty->display('szablon.tpl');
  4. ?>


Ten post edytował krowal 18.09.2007, 13:45:08
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 16:38