![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 4.07.2006 Ostrzeżenie: (10%) ![]() ![]() |
Witam, zaczne od pokoazania jak wyglada uklad mojej strony:
index.php
index.tpl
Funkcja require wczytuje mniedzy innymi takie pliki jak ten glowny plik od smartow, polaczenie z baza czy funkcje... W napisanych skryptach nie uzywam require, poniewaz zawsze beda wczytywanie poprzez index, a tam sa juz owe requiry. Wszystko pieknie dzialalo do czasu, az zaczalem tworzyc skrypt logowania. Sam skrypt logowania potrzebowal pliku laczenia z baza, z funkcjami i smartami, ale mam jeszcze jeden plik rozpoczynajacy sesje i nadajacy kilka zmiennych globalnych, ale jak ten plik umieszcze w index require to nie dziala jak nalezy..., czyli tak jakby byl wczytany bezposrednio do skryptu logowania. Tego pliku bedzie potrzebowalo jeszcze kilka innych skryptow... Co robic? Uzywac require z tym plikiem w kazdym skrypcie wymagajacym go? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
A dlaczego chcesz inkludować php do szablonu? Idea szablonu powstała po to, żebyś to co masz załatwić w php załatwił to najpierw a potem dopiero przekazał dane do szablonu i je wyświetlił. A Ty na dodatek mieszając z powrotem to co miało być rozdzielone to jeszcze, z tego co rozumiem wczytujesz gdzieś w środku skrypt, który Ci otwiera sesje. Kompletny bałagan robisz.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 4.07.2006 Ostrzeżenie: (10%) ![]() ![]() |
To jak proponujesz zrobic uklad strony w smarty tak, aby po bokach bylo menu, u gory logo, a na dole stopka, a w zeby w srodku byly wyswietlane wszystkie podstrony?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Normalnie. O tym jaka ma być podstrona decyduję w obrębie php i informację podaję do skryptu, który ewentualnie includuje odpowiedni plik tpl w miejsce podstrony jeśli podstrony mają różne budowy.
Popatrz sobie na bicykle.pl/index09.php Tak właśnie to realizuję. index tpl zawiera szkielet strony. Dostaje info o tym jaki dział się ma wyświetlić. Wczytuje tpl odpowiedniego dla tego działu menu lewego i odpowiednie tpl dla zawartości w zależności jakie informacje dostanie. W szablonach smarty mam tylko pętle warunki i includowanie innych tpl. Żadnego kodu php. Grunt to dobrze przemyśleć tworzenie struktury danych wsadowych dla szablonu i ich obsługę w samym szablonie. Ten post edytował JoShiMa 22.07.2008, 11:13:03 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 4.07.2006 Ostrzeżenie: (10%) ![]() ![]() |
Zastosowalem twoj sposob, ale mam jeszcze 2 pytania.
1: Np. w pliku news.php mialem w petli while
i te zmienne przekazywaly do news.tpl wszystkie zmienne do wyswietlenia (tytul, tresc, itp...), a ze skoro to bylo w petli to sie wyswietlaly wszystkie newsy. Teraz w news.php ucialem new smarty i display a zostawilem same assign, bo index.php wyglada tak:
a index.tpl krótko, zawiera na srodku {include file="$site"} ..i wyswietla sie tylko jeden news. Troche pokopane, no ale moze sa inne sposoby ;/ 2: Jak umieszcze w index.tpl, aby wyswietlalo np. menu.tpl - to wyswietla sam szablon, bo niby jak ma sie zaladowac menu.php? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
..i wyswietla sie tylko jeden news. Troche pokopane, no ale moze sa inne sposoby ;/ No pewnie, że wyświetli się jeden, bo przekazujesz tylko jeden. Jak przekażesz tablicę newsów to w pętli wczytasz tyle razy news.tpl z odpowiednimi parametrami ile razy Ci to będzie potrzebne ![]() 2: Jak umieszcze w index.tpl, aby wyswietlalo np. menu.tpl - to wyswietla sam szablon, bo niby jak ma sie zaladowac menu.php? No nie ma się załadować. menu.php uruchamiasz robisz w obrębie działania twoich skryptów php, wstrzykujesz do szablony dane dla menu a potem w szablonie wczytujesz tpl menu, który te dane zinterpretuje i pokaże to co należy. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 4.07.2006 Ostrzeżenie: (10%) ![]() ![]() |
Znowu mam problem
![]() Nie moge przekazac tablicy newsow w taki sposob (akurat pokazuje na przykladzie innego skryptu)...
i tpl ... pomimo ze to dziala dobrze, bo wczesniej musze zastosowac kilka funkcji na zmiennych z bazym, a potem dopiero moge przekazc szablonowi. Co robic? Mecze sie z tym juz pare godz... EDIT: zrobilem cos takiego i dziala:
...ale wedlug mnie kod wyglada nieestetycznie ![]() Ten post edytował iMax 22.07.2008, 21:10:00 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 415 Pomógł: 46 Dołączył: 26.05.2007 Skąd: Sandomierz Ostrzeżenie: (0%) ![]() ![]() |
zamień while na foreach ... do smarty moim zdaniem jest lepsza ... to samo w *.tpl zamiast section używaj foreach ...
przynajmniej ja tak robie, 0 problemów ... -------------------- Grzegorz 'Decha' Polek »
º http://grzegorzpolek.com º http://www.facebook.com/grzegorz.polek º http://www.lastfm.pl/user/Dechaa ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
zamień while na foreach ... do smarty moim zdaniem jest lepsza ... to samo w *.tpl zamiast section używaj foreach ... przynajmniej ja tak robie, 0 problemów ... Dwie bzdury. foreach jest dobra w jednych przypadkach a while (w php) i section (w tpl) w innych Foreach jest typową pętlą do tablic asocjacyjnych i nie ma sensu stosowac jej na siłę do zwykłych tablic. iMax Nie wydaje Ci się, że ten kod jest sensowniejszy niż to co miałeś do tej pory, czyli poplątanie z pomieszaniem? Clou tkwi w dobrej konstrukcji danych wsadowych tak, alby łatwo je było wyświetlić w formularzu bez zbędnych przekształceń, które można wykonać wcześniej w php. A jak chcesz, żeby było jeszcze ładniej i bardziej elastycznie daj:
Wtedy do tablicy $sources[] będziesz mógł dodawać różne sekcje o różnych podszablonach i wszystkie obsługiwać jedną pętlą section. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:59 |