![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 125 Pomógł: 0 Dołączył: 17.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Od 2 dni męczę się z OPT i niestety nawet własne instrukcje nie działają tak jak powinny.
Chciałbym, aby dla każdego rodzaju podstrony wczytywany był tylko jeden plik szablonu (wybierany w panelu administracyjnym). Np. standardowa strona tekstowa przetwarza plik "view.tpl". Od autora szablonu zależy, czy strona ma nagłówek, stopkę, itp. - w razie konieczności includuje już w szablonie te elementy (umieszczone w osobnym pliku tpl). Zawartość naszej strony statycznej jest praktycznie niezmienna, więc nie ma sensu pobierać jej z bazy za każdym razem. Może sie natomiast zdarzyć, że autor szablonu będzie chciał (np. w menu) umieścić ramkę zawierającą dane, które muszą być za każdym razem pobrane z bazy. I tutaj jest problem. OPT robi cache całej strony i jej wszystkich includowanych podstron. Ja natomiast chciałbym mieć możliwość dynamicznego dołączenia pliku - żemy system szablonów po staremu włączał pliki dołączone przez standardowe "include" do pliku cache, ale pliki dołączone np. przez "dyn_include" byłyby przetwarzane za każdym razem. W tej chwili zrobiłem (w OPT) dołączanie dynamicznych bloków jako własny znacznik {box} z odpowiednimi parametrami. W php sprawdzam funkcją isCached(), czy musi pobierać z bazy główną część strony, czy ją odczytać z cache. Niestety mój znacznik nawet po ujęciu go w {dynamic} jest "odświeżany" raz na jakiś czas. Mój problem łatwiej będzie zrozumieć na przykładzie: Użytkownik wchodzi na stronę www.strona.pl/artykuly/tytul_artykulu/ Główna część strony (tekst artykułu) jest pobierana z bazy i może być cacheowana - odpowiedzialny jest za to moduł "art" W menu autor szablonu chce umieścić 5 najnowszych newsów (działka modułu "news"). Chciałbym to rozwiązać następująco: Kod {box module="news" params="5|date|desc" var="tablica" cache="0"} System szablonu do zmiennej "tablica" przypisze wynik (dane 5 newsów). Autor szablonu sam zdecyduje jak tą zmienną wyświetlić (lista punktowana, tabelka, itp.). Zależy mi na tym, żeby główna część strony była cache'owana, a box jeśli posiada parametr "cache=0" nie. Być może powinienem to rozwiązać na poziomie cache zapytań do bazy danych? -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:50 |