Macok
3.01.2009, 20:14:34
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
3.01.2009, 22:54:14
Macok
3.01.2009, 23:01:44
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
3.01.2009, 23:06:37
memory
3.01.2009, 23:07:41
chodzi ci o takei cos Kontakt.php - wyswietl ci sie kontakt.tpl ,artykuly.php - wyswietl ci sie artykuly.tpl ?
Macok
3.01.2009, 23:25:35
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
3.01.2009, 23:38:50
ale to chyba normlane tak mi sie wydaje
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
4.01.2009, 00:18:08
Dzięki!
Właśnie o coś takiego mi chodziło, rzeczywiście można się pozbyć w ten sposób jednego if'a

Jeżeli ktoś zna jeszcze jakiś sposób albo poradnik dot. projektowania stron w smarty to niech pisze.
Jeszcze raz dzieki memory.
decha-design
5.01.2009, 03:33:07
Ja osobiście dziele sobie szablon na 3 ...
<?php
$smarty -> display('header.tpl');
$smarty -> display($sth.'.tpl');
$smarty -> display('footer.tpl');
?>
i wtedy sobie zmieniam tylko zmienna $sth w zaleznosci od potrzeb ...
Macok
5.01.2009, 16:19:43
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
5.01.2009, 16:29:46
tak, smarty "sklei" te 3 szablony :-)
decha-design
5.01.2009, 16:34:52
ogolnie mówiąc? tak
blooregard
5.01.2009, 16:40:06
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
5.01.2009, 20:48:10
a może tak:
w pliku index.tpl
<?php
{include file=$v_srodek_strony} ?>
w pliku np. artykuly.php
<?php
$o_smarty->assign('v_srodek_strony','tresc/artykul_1.tpl');
?>
w pliku artykul_1.tpl znajduje się treść artykułu.
Macok
6.01.2009, 15:01:51
To już było 2 razy ale dzieki
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.