![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Na początek - jak to wygląda obecnie:
1. Istnieje główny szablon opisujący cały układ strony, czyli <html>, <head>, <body> 2. Główny szablon dołącza szablony modułów (np. newsy, artykuł, komentarze) 3. Można dołączyć dowolną liczbę szablonów (np. artykuł, a potem podsystem komentarzy) Aktualnie przekazanie danych do szablonu wewnątrz modułu odbywa się tak: Wewnątrz index.php dołączanie głównego szablonu: Wszystko działa. Chcę ulepszyć system szablonów, aby kod stał się bardziej przejrzysty, ale bez dodatkowego narzutu czasowego i pamięciowego. Pojawiają się pytania: 1. Czy szablony powinny mieć dostęp do wszystkich danych przekazanych do pola $szablony->dane, czy powinno się przekazywać dane konkretnym szablonom (inne nie miałyby do nich dostępu)? 2. Obecnie główny szablon jest wywoływany w przestrzeni globalnej, czyli ma dostęp do wszystkich zmiennych zadeklarowanych globalnie. Nie przekazuje mu się żadnych danych do obiektu, lecz tworzy zmienne w index.php. Chcę to zmienić. Jakiś pomysł? 3. Trzeba wykryć, kiedy dołączyć szablon modułu, a kiedy wyświetlić szablon błędu 404 "strona nie istnieje". Obecnie w index.php: Nietypowe rozwiązanie, ale za to w modułach wystarczy zwykła instrukcja "return" ![]() 4. Nie mogę stworzyć takiej listy: główny szablon, szablon modułu 1, szablon modułu 2... bo najpierw dołączy się szablon główny z pustą zawartością, a po zamknięciu </html> pozostałe szablony. Jest na to kilka technik, a jaką polecacie w tym przypadku? Wcześniej było tak i wszystko działało: http://pastebin.com/6Sx8hLkE Zacząłem zmiany - obecnie wygląda to tak: http://pastebin.com/cpHDGcTZ A wtedy moduły przekazują szablonom dane tak - pewnie nie jest to najlepszy pomysł: Co zmienić, co ulepszyć, a może zmiany są niepotrzebne, jeśli wszystko działa? Ten post edytował WebCM 9.12.2011, 22:05:20 -------------------- „Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Wg mnie, szablony powinny miec dostęp tylko i wyłącznie do zmiennych, które do nich wysyłasz (u Ciebie to $szablony->dane, z tego co zauważyułem). Każdy szablon, bez względu na to czy jest to szablon główny czy tylko wycinek odpowiadający za pokazanie artykułu, powinien mieć dostęp do wszystkich zmiennych/danych, wysyłanych do widoku.
Ale najpierw, zanim cokolwiek będziesz z nimi robił, to postaraj się napisać coś, co będzie Ci sklejało wszystkie szablony w jeden plik html. Sam napisałeś, że Ci skleja ale nie tak jak powinno, czyli kończy sie plik głównego szablony </html> i dopiero masz resztę. Jest na to kilka rozwiązań. Przykłądowe to takie, gdzie na samym początku małych szablonów masz deklarację po którym szablonie większym, ma dziedziczyć mały, i w tedy, w odpowiednim miejscy w większym szablonie go wklejasz - np, pakujesz cały mały szablon do odpowiedniej zmiennej, i wyświetlasz tą zmienną w głownym szablonie. Radzę popatrzeć jak są zrobione systemy szablonów. Podpatrzeć na rozwiązania tam zastosowane. Np, TWIG jeśli nie za trudne, lub w zwykłym CodeIgniter. Przeglądanie kodu to dobra nauka. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 04:21 |