--=REKLAMA=--

Jak działają szablony

Z Joomla!WikiPL

Szablony są przetwarzane w dwóch etapach w pełni wykorzystujących parser PHP, co z kolei zapewnia projektantowi szablonów znaczną elastyczność i umożliwia tworzenie wysoko wydajnego kodu. Szablony są przetwarzane z uwzględnieniem obiektowego modelu dokumentu, zatem obiekt $this jest zawsze instancją klasy JDocument.

Przed rozpoczęciem przetwarzania szablonu, konieczne jest uruchomienie komponentu a wynik musi zostać zapamiętany w buforze do późniejszego wykorzystania.

Przetwarzanie szablonu odbywa się w następujący sposób:

  • Ładowane są parametry szablonu (jeśli istnieją).
  • Ładowany jest język szablonu (jeśli jest wykorzystywany).
  • Joomla 1.5 Jeśli tryb zgodności wstecznej (legacy mode) jest włączony, to zmienne konfiguracyjne kopiowane są jako zmienne globalne.
  • Ładowany jest i wykonywany przez PHP plik szablonu (index.php). Wynik jest zapamiętywany w buforze. To stanowi pierwszy etap dwuetapowego procesu. Całość treści pomiędzy znacznikami <?php i  ?> jest przetwarzana jako kod PHP. Treść znajdująca się poza tymi znacznikami stanowi element wyniku, lecz jest pomijana. Na tym etapie - skoro wynik jest buforowany - nic nie jest wysyłane do przeglądarki użytkownika.
  • Poszukiwany jest plik favicon.ico, najpierw w katalogu głównym Joomla!, a następnie w katalogu głównym szablonów. Plik znaleziony w drugim katalogu nadpisuje plik znaleziony w pierwszym.
  • Wynik buforowany na pierwszym etapie jest teraz przetwarzany przez parser w poszukiwaniu elementów <jdoc:include>. To jest etap drugi procesu. Dla każdego znalezionego elementu jdoc ładowana jest odpowiednia klasa renderująca i wywoływana jej metoda renderująca. Wynik metody renderującej zastępuje element <jdoc:include> w buforze. W przypadku klas renderujących moduły - uruchamiane jest wykonanie modułów i buforowanie ich wyników.
  • Niektóre nagłówki HTML powiązane z konkretnymi szablonami dodawane są do listy nagłówków wysyłanych jako dane wynikowe.
  • Następnie sterowanie jest z powrotem przekazywane do obiektu JApplication, który przejmuje resztę procesu wysyłania już renderowanej strony www do przeglądarki internetowej użytkownika.
© Ten materiał jest dokładnym albo swobodnym tłumaczeniem artykułu http://docs.joomla.org/How_are_templates_executed%3F udostępnionego na licencji JEDL na witrynie: Oficjalnej dokumentacji Joomla!.Pierwszy autor oryginału: Chris_Davenport.

Dziękujemy za wkład

» Stefan Wajda [zwiastun],