![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Problem jest tego typu, że treść strony (zawartość jednego DIV) jest pobierana z bazy. I wszystko fajnie, ale dla jednej strony z "mapą strony" ma być generowana dynamicznie. Wszędzie używam markdowna i treść strony obrabiam ta funkcją.
Co poza dodaniem wyjątku dla tej jednej strony mogę zrobić? Jedyne co mi przyszło do głowy to wstawić warunek sprawdzający czy aktualna strona to "mapa strony" i jeśli tak to nie pobieram treści z bazy tylko generuje "mapę strony". Tylko, że to bardzo nieefektywne i brzydkie rozwiązanie. Jak to inaczej, sprytniej zrobić? pozdro |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Błędy kierujesz po prostu do innego szablonu i modyfikujesz lekko widok, tak jak to robię:
Oczywiście są to błędy typu: brak pliku .cfg, brak bazy, brak strony etc. Błędy poszczególnych modułów (np. brak artykułu) należy wyświetlać na podobnej zasadzie korzystając z szablonu tego modułu. A co do tego: Cytat Czy jest inne wyjście niż napisanie dwóch niemalże identycznych szablonów? - jest - ja wykorzystuje dziedziczenie, można teraz pójść dwutorowo:1. Szablon defaultowy jest dziedziczony i dostępny wszędzie, natomiast dla wybranej kategorii typu 1/1.1/1.1.5 ustawiasz szablon x z inną stopką, który może być dziedziczony np. dla kategorii 1/1.1/1.1.5/1.1.5.2 lub nie, zależy jak ustawisz settings tego szablonu - jednak nie jest to optymalne (dublowanie kodu html, gdy zmienisz np. doctype to musisz zmieniać dwa szablony) 2. Lepiej stopkę zaimplementować jako coś, co ja nazywam "panelem" - panele tym się różnią od modułów, że ich treść jest generowana statycznie (są to po prostu fragmenty kodu html). Definiujesz nowy panel, nazywasz go "stopka default", włączasz mu dziedziczenie i includujesz w szablonie głównym jako {stopka}, natomiast dla kategorii x przypisujesz inny panel o tej samej nazwie zmiennej (każdy panel może mieć inną nazwę zmiennej wykorzystywaną w szablonie, w którym jest implementowany) - silnik strony jest tak pomyślany, że ważniejsze są zmienne przypisane bezpośrednio niż odziedziczone, w ten sposób stopka przypisana bezpośrednio nadpisze tą defaultową (IMG:style_emoticons/default/smile.gif) Cytat Czy wszystkie konstrukcje można kończyć w sposób endkonstrukcja czy tylko foreach, zamias {} używać słów? - chodzi tylko o czytelność kodu i wyraźne oddzielenie PHP od HTML tak, aby laik edytujący tylko HTML nie wysypał nam strony (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 10:33 |