Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Smarty] Projektowanie strony
Forum PHP.pl > Forum > PHP
Macok
Od niedawna swoje strony tworzę z użyciem smarty i mam pewien problem z ich projektowaniem.
Powiedzmy, że ktoś wchodzi do działu artykuły na mojej stronie.
Muszę mieć 2 instrukcje warunkowe - pierwszą w pliku index.php, która podczas wejścia do działu z artykułami zainkluduje plik php, który pobierze z bazy artykuły.
Druga instrukcja warunkowa musi być w pliku index.tpl i w razie wejścia do tego działu inkludować szablon tpl, np. art.tpl
W jaki sposób poradzić sobie z tym bardziej elegancko (z 1 instrukcją warunkową)?
Może jest jakaś strona z poradnikiem jak projektować strony przy użyciu Smarty?
memory
w demo (example) w smartach masz ladnie to pokazane.

http://pl.wikibooks.org/wiki/PHP/Smarty
http://binboy.sphere.pl/index.php?show=132
Macok
Tak, ale tam pokazują stronę której jedynym zadaniem jest wyświetlanie artykułów, a na mojej ma być conajmniej kilka podstron i stąd te instrukcje warunkowe.
chyzio
http://gajdaw.pl/smarty/
memory
chodzi ci o takei cos Kontakt.php - wyswietl ci sie kontakt.tpl ,artykuly.php - wyswietl ci sie artykuly.tpl ?
Macok
Właśnie nie do końca, użytkownik zawsze wchodzi na index.php, tylko metodą GET przekazywana jest strona która ma się wyświetlić.
W zależności od wartości zmiennej site (przekazywanej w get) wyświetlają się albo artykuły, albo newsy itd.
I stąd te instrukcje warunkowe.
memory
ale to chyba normlane tak mi sie wydaje smile.gif
Ja np. daje w smartach potem <div id="lewa">{include_php file="/public_html/$funkcja"}</div> wtedy nie musze if wpisywac.
gdzie $funkcja jest odpowiednim GET
Macok
Dzięki!
Właśnie o coś takiego mi chodziło, rzeczywiście można się pozbyć w ten sposób jednego if'a smile.gif
Jeżeli ktoś zna jeszcze jakiś sposób albo poradnik dot. projektowania stron w smarty to niech pisze.
Jeszcze raz dzieki memory.
decha-design
Ja osobiście dziele sobie szablon na 3 ...

  1. <?php
  2. $smarty -> display('header.tpl');
  3.  
  4. $smarty -> display($sth.'.tpl');
  5.  
  6. $smarty -> display('footer.tpl');
  7. ?>


i wtedy sobie zmieniam tylko zmienna $sth w zaleznosci od potrzeb ...
Macok
Dzieki.
I wtedy smarty tak jakby "sklei" te szablony w 1?
Czyli w pliku header.tpl masz
Kod
<html>
...

A w footer
Kod
...
</html>

tak?
_olo_1984
tak, smarty "sklei" te 3 szablony :-)
decha-design
ogolnie mówiąc? tak haha.gif
blooregard
Ewentualnie w szablonie smarty możesz miec tak (powiedzmy, że jest to index.tpl):
Kod
{include file="header.tpl"}

...

{include file=$filename}   <- do $filename w pliku .php przypisujesz odpowiedną zmienną w zależności od podstrony, np: $smarty->assign("filename", $filename);

...

{include file="footer.tpl"}
nigraS
a może tak:

w pliku index.tpl
  1. <?php
  2. {include file=$v_srodek_strony}
  3. ?>


w pliku np. artykuly.php
  1. <?php
  2. $o_smarty->assign('v_srodek_strony','tresc/artykul_1.tpl');
  3. ?>


w pliku artykul_1.tpl znajduje się treść artykułu.
Macok
To już było 2 razy ale dzieki tongue.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-2025 Invision Power Services, Inc.