Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Smarty podstawianie
Forum PHP.pl > Forum > Przedszkole
gaden
Witam.
Mam następujący problem.
Mam taki oto szablon, index.htm
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>{$tytul}</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. </head>
  5. <!--tabelka glowna-->
  6. <table width="100%" border="0" align="center">
  7. <tr>
  8. <td>&nbsp;</td>
  9. </tr>
  10. <tr>
  11. <td><h1 align="center">{$banner}</h1></td>
  12. </tr>
  13. <tr>
  14. <td>&nbsp;</td>
  15. </tr>
  16. <tr>
  17. <td align="center"> {$tresc} </td>
  18. </tr>
  19. </body>
  20. </html>


A tutaj plik index.php
  1. <?php
  2.  
  3. require_once 'c:phpsmartylibsSmarty.class.php';
  4.  
  5. $smarty = new Smarty;
  6.  
  7. $smarty -> assign('tytul', 'Wydziałowy portal informacji!');
  8. $smarty -> assign ('banner', 'Wydziałowy portal informacji');
  9.  
  10.  
  11.  
  12. if( ($_GET['action'] == &#092;"\") ){
  13. $szablony = file_get_contents(&#092;"templates/powitanie.htm\");
  14.  }
  15. else 
  16. {
  17. $sciezka[ ] = &#092;"./\";  
  18. $strona = $_GET['action'];
  19. for ($i=0;$i<count($sciezka);$i++) {
  20. if (file_exists (&#092;"$sciezka[$i]$strona.php\")){ 
  21. // warunek sprawdzania istnienia pliku w tablicy \"lista\" w porownaniu z wywolaniam GET
  22. include (&#092;"$sciezka[$i]$strona.php\");
  23.  $szablony = file_get_contents(&#092;"templates/$strona.htm\"); 
  24.  
  25. }
  26. else
  27. $szablony = file_get_contents(&#092;"templates/$strona.htm\");
  28. }
  29. }
  30. $smarty -> assign ('tresc', $szablony);
  31. $smarty -> display('index.htm');
  32.  
  33. ?>


Jeżeli chce podstawić za {$tresc} jakiś plik statyczny html to chodzi.

Problem pojawia się wówczas jeżeli w miejscu {$tresc} chce podstawić szablon, który jest uzupełniany danymi z bazy danych (np. dane użytkowników wpisane do pól formularza odpowiednio, sformatowanych,itd.). To nie działa tak jak powinno, tzn. wyświetla się szablon, ale bez podstawionych zmiennych.

Porszę o małe wskazówki. Z góry dziękuję za pomoc.

Pozdrawiam
MaKARON
opisowo (nie mam czasu /praca!/ przegladac twojego kodu):

Kod
$smarty->assign( 'do_wlaczanego_do_glownego_zmienna1', 'wartosc1' );
$smarty->assign( 'do_wlaczanego_do_glownego_zmienna2', 'wartosc2' );

$wyjsciowyWlaczany = $smarty->fetch( 'szablon_wlaczany_nie_glowny.tpl' );

$smarty->assign( 'body_czy_jakos_tak', $wyjsciowyWlaczany );
$smarty->assign( 'inne_zmienne_glownego', 'asdf' );

$smarty->display( 'index.tpl' );


mam nadzieje ze moj kod opisowy jest zrozumialy smile.gif
Pozdrowienia
Fipaj
A może {include file=$plik} (tzn. nie pamiętam czy ten atrybut to akurat file, przecztaj w smartty-manualu)
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.