--=REKLAMA=--

Zrozumieć szablony Joomla!

Z Joomla!WikiPL

(Przekierowano z Poradnik:Zrozumieć szablony Joomla!)

Wszystkie szablony witryny, obsługujące strony odwiedzane przez internautów, znajdują się w katalogu szablonów: /templates. Przykładowo, jeśli Twój szablon nosi nazwę "moj_szablon", to znajdziesz go w katalogu [sciezka_do_Joomla]/templates/moj_szablon.

Wszystkie szablony zaplecza, obsługujące strony administracyjne, znajdują się w katalogu: /administrator/templates. Przykładowo, jeśli Twój szablon nosi nazwę "moj_szablon_admin", to znajdziesz go w katalogu [sciezka_do_Joomla]/administrator/templates/moj_szablon_admin.


Typowa struktura szablonu

Szablon Joomla! jest aplikacją złożoną z zestawu skryptów oraz dodatkowych plików – graficznych, dźwiękowych i innych, które odpowiadają za prezentację treści witryny przez urządzenia odczytujące, np. przeglądarki internetowe. Skrypty definiują układ treści na stronach witryny oraz sposób ich formatowania. Dodatkowe pliki służą do uzyskania planowanych efektów prezentacyjnych.

Podstawowe pliki szablonu

Szablon Joomla! współtworzą w najprostszej wersji co najmniej trzy skrypty:

  • plik templateDetails.xml
Zawiera informacje przeznaczone dla instalatora i menedżera szablonów: opis, instrukcje określające instalatorowi, gdzie i jakie pliki szablonu umieścić podczas instalacji, a w przypadku szablonów dla Joomla 1.5 także parametry oraz definicje pozycji modułów,
  • plik index.php
Definiuje logikę prezentacji, określa rozmieszczenie modułów i komponentów.
  • plik template_css.css w Joomla 1.0, a w Joomla 1.5. nazwa.css
Zawiera reguły definiujące wygląd: krój, stopień, kolor, czcionek, właściwości akapitów i nagłówków, sposób wyróżnienia znaczących słów i fragmentów, formatowanie list itd., a także położenie, rozmiary, tło, obramowanie poszczególnych elementów.

Ten zestaw trzech podstawowych plików uzupełnia jeszcze zwykle czwarty:

  • template_thumbnail.roz (zamiast .roz jeden z formatów graficznych - .jpg, .png, .gif)
Miniatura ilustrująca szablon. Rozmiar obrazu to przeważnie 200x150. Podgląd pokazywany jest w wykazie szablonów po ustawieniu kursora myszy na nazwę szablonu. Dzięki temu administrator ma podgląd na szablon jeszcze przed jego zastosowaniem.

Typowa struktura katalogu szablonu

Mergefrom.png
Zasugerowano, aby z tym artykułem zintegrować artykuł: Typowa struktura szablonu. (dyskusja)

Pliki wszystkich szablonów witryny Joomla! przechowywane są w katalogu /templates/, w odrębnych folderach nazwanych tak jak szablony: /nazwa_szablonu. Pliki wszystkich szablonów zaplecza przechowywane są w odrębnych folderach w katalogu /administrator/templates/.

Joomla 1.0

Compat 10.png Typowy katalog szablonu w Joomla 1.0 zawiera:

  • /css - folder z plikiem lub plikami arkuszy stylów,
  • /images - folder z plikami graficznymi,
  • /js - folder z plikami skryptów javascript nazywany czasem również /javascript ,

W macierzystym katalogu szablonu znajdują się pliki:

  • index.php
  • templateDetails.xml
  • template_thumbnail.png

Oto przykładowa typowa struktura katalogów szablonu w Joomla 1.0:

/templates
   /moj_szablon
      /css
         index.html
         template_css.css
      /images
         index.html
         logo.png
         list.png
         menu_bg.png
         belka.png
      index.html
      index.php
      template_thumbnail.png
      templateDetails.xml

Joomla 1.5

Compat 15.png W typowym katalogu szablonu dla Joomla! 1.5 mamy dodatkowo jeden folder html. Powinien zawierać następujące foldery:

  • /css - folder z plikami .css
  • /html - folder ze skryptami podmieniającymi skrypty rdzenia Joomla! definiujące standardowe widoki
  • /images - folder z plikami graficznymi.

W macierzystym katalogu szablonu znajdują się pliki:

  • index.php
  • templateDetails.xml
  • template_thumbnail.png
  • index.html - chroni katalog przed podglądem
  • component.php - wykorzystywany w wyświetlaniu pojedynczego komponentu (np. index.php?option=com_content&id=11&tmpl=component). Pomijane są wówczas wszystkie moduły
  • favicon.ico
  • params.ini

Oto przykładowa typowa struktura katalogów szablonu w Joomla 1.5:

/templates
   /moj_szablon
      /css
         index.html
         template.css
      /html
         /com_content
            /article
               default.php
               form.php
               index.html
            /category
               blog.php
               blog_item.html
               blog_links.html
               default.php
               default_items.php
               index.html
            editor_content.css
            index.html
            modules.php
            pagination.php
      /images
         logo.png
         list.png
         menu_bg.png
         belka.png
      component.php
      favicon.ico
      index.html      
      index.php
      params.ini
      template_thumbnail.png
      templateDetails.xml

Zgodnie z konwencją stosowaną w systemach UNIX, nazwy katalogów powinny być zapisane bez spacji, a jeśli złożone są z kilku wyrazów, to należy zapisać je razem, np. używając łączników. Ilustracja poniżej przedstawia drzewo katalogu /templates, w którym umieszczone są trzy szablony.

Templates directory rhuk1.png


Do czego służy plik templateDetails.xml?

Funkcje pliku templateDetails.xml

Plik templateDetails.xml do instalacji i konfiguracji szablonu.

Plik templateDetails.xml integruje szablon z Joomla!, przechowuje dane o szablonie oraz instrukcje instalacyjne i konfiguracyjne, jest wykorzystywany przez komponent zaplecza Instalator oraz Szablony.

W Joomla 1.0 plik templateDetails.xml:

  • instruuje instalatora, gdzie i jakie pliki umieścić podczas instalacji,
  • udostępnia szablon – umieszcza go na liście szablonów do wyboru,
  • udostępnia administratorom witryny informacje o szablonie.

W Joomla 1.5 zwiększono konfiguracyjne funkcje pliku templateDetails.xml. Poza zadaniami wymienionymi powyżej plik ten:

  • definiuje pozycje modułów,
  • może definiować parametry i kontrolki umożliwiające ich ustawianie.

Plik templateDetails.xml jest skryptem napisanym w języku XML. Poniższe objaśnienia pomogą rozpoznawać różne sekcje pliku. Dla czytelności pliku każda sekcja jest wyróżniona graficznie, poprzez wcięcia, które jednak dla funkcji pliku nie mają żadnego znaczenia.

W strukturze pliku templateDetails.xml można wyszczególnić kilka sekcji, które zawierają:

  • dane szablonu,
  • katalogi i pliki szablonu,
  • pliki językowe,
  • pozycje modułów,
  • parametry konfiguracyjne.

Podstawowe szczegóły

Na stronie startowej komponentu zaplecza Szablony wyświetlana jest lista zainstalowanych szablonów z kilkoma szczegółowymi informacjami o każdym nich. Informacji o szablonie pobierane są z pliku templateDetails.xml.

Tpl details xml.png

<install version="1.5" type="template">
    <name>rhuk_milkyway</name>
    <creationDate>11/20/06</creationDate>
    <author>Andy Miller</author>
    <authorEmail>rhuk@rockettheme.com.com</authorEmail>
    <authorUrl>http://www.rockettheme.com</authorUrl>
    <copyright></copyright>
    <license>GNU/GPL</license>
    <version>1.0.2</version>
    <description>TPL_RHUK_MILKYWAY</description>

Struktura katalogu

Wszystkie pliki szablonu są wyszczególnione. Każdy plik oznaczony jest pełną informacją o ścieżce rozpoczynającej się w początkowym katalogu szablonu. Informacje te wykorzystuje jedynie instalator szablonu podczas instalacji. Dla działania szablonu nie mają one znaczenia.

Niewielki fragment listy plików w szablonie rhuk_milkyway przedstawiamy poniżej.

    <files>
	<filename>index.php</filename>
	<filename>templateDetails.xml</filename>
	<filename>template_thumbnail.png</filename>
	<filename>params.ini</filename>
	<filename>images/arrow.png</filename>
	<filename>images/indent1.png</filename>
    <files>

Języki

Niektóre szablony mogą zawierać pliki językowe, umożliwiające tłumaczenie stałych umieszczonych w szablonie napisów - etykiet, komunikatów, nazw parametrów. W poniższym przykładzie zadeklarowane są dwa pliki językowe. Pierwszy odnosi się do napisów, które pojawią się na witrynie, a więc będą widoczne dla użytkowników. Drugi, umieszczony w znaczniku <administration>, zawiera etykiety i komunikaty ekranowe, jakie zobaczy administrator w edytorze własności szablonu.

    <languages>
	<language tag="en-GB">en-GB.tpl_beez.ini</language>
    </languages>
    <administration>
	<languages folder="admin">
	    <language tag="en-GB">en-GB.tpl_beez.ini</language>
	</languages>
    </administration>

Pozycje modułów

Możliwe do wykorzystania Pozycje modułów definiowane są następująco.

    <positions>
	<position>breadcrumb</position>
	<position>left</position>
	<position>right</position>
	<position>top</position>
	<position>user1</position>
	<position>user2</position>
	<position>user3</position>
	<position>user4</position>
	<position>footer</position>
	<position>debug</position>
	<position>syndicate</position>
    </positions>

Parametry

Szablon może oferować opcje wyświetlania, które ustawiamy (wybieramy) w edytorze właściwości szablonu. Na przykład szablon rhuk_milkyway umożliwia administratorom wybór wariantu kolorystycznego, ustalenie koloru tła, ustalenie szerokości szablonu.

Tpl params detail.png

Przykład dodawania parametru i jego wartości przedstawiamy poniżej:

    <params>
	<param name="colorVariation" type="list" default="white" label="Color Variation" description="Wariant kolorystyczny">
	    <option value="blue">Niebieski</option>
	    <option value="red">Czerwony</option>
	    <option value="green">Zielony</option>
	    <option value="orange">Pomarańczowy</option>
	    <option value="black">Czarny</option>
	    <option value="white">Biały</option>
	</param>
    </params>

Więcej informacji na temat wykorzystania parametrów:

Definiowanie parametrów w templateDetails.xml
Pobieranie wartości parametrów w pliku szablonu


Do czego służy plik index.php?

Plik index.php jest szkieletem stron witryny. Każda strona Joomla! powstaje z pliku index.php, w którym w miejscu specjalnych instrukcji umieszczane są treści pobrane z bazy danych oraz z plików konfiguracyjnych Joomla!.

Plik index.php zawiera mieszaninę:

  • kodu HTML, który znajdzie się w dokumencie wyjściowym tak, jak został zapisany,
  • kodu PHP, który jest zamieniany na dane opisane znacznikami HTML.

Inaczej mówiąc, każda strona Joomla! powstaje z pliku index.php, w którym w miejscu specjalnych instrukcji umieszczane są treści pobrane z bazy danych oraz z plików konfiguracyjnych Joomla!. Każda wygenerowana strona jest typowym dokumentem (x)HTML.

Plik index.php będzie zapewne zrozumiały dla osób, które tworzyły strony internetowe w HTML. Struktura pliku index.php jest bardzo podobna do struktury plików HTML, a niekiedy można się nawet spotkać ze stwierdzeniem, że jest to „zwykły dokument HTML z fragmentami zapisanymi w języku PHP”. Podobnie jak w pliku HTML mamy w nim dwie główne sekcje <head> i <body>. Zasadnicza różnica polega na tym, że w pliku index.php w miejscach, w których ma się pojawić treść strony znajduje się kod php, jak w przykładzie poniżej.

Tradycyjna sekcja head dokumentu HTML:

<head>
<title>Moja przykładowa witryna</title>
<meta name="title" content="example" />
<link rel="stylesheet" href="www.example.com/css/css.css" type="text/css" />
</head>

I ten sam fragment napisany dla Joomla:

<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>templates/mytemplate/css/css.css" type="text/css" />
</head>

Zamiast części nagłówka niezdefiniowanych w pliku index.php w miejscu instrukcji <jdoc:include type="head" /> oraz fragmentów kodu php zostaną wczytane treści pobrane z bazy danych oraz z plików konfiguracyjnych. W rezultacie oba powyższe skrypty dotrą do użytkownika w postaci takiego samego kodu. Gdy patrzysz na kod witryny Joomla!, wszystkie fragmenty typu <?php coś_tam /> zostaną zastąpione przez zwykły kod HTML.

Dobry projekt szablonu

Plik index.php powinien generować tylko te treści, które zmieniają się przy każdym odświeżeniu strony. Elementy takie jak stylizowanie wyglądu powinny być przeniesione do plików CSS, które są zapisywane w pamięci podręcznej przeglądarek użytkowników. W zamieszczonych tu poradnikach omówimy wszystkie techniczne aspekty tworzenia pliku index.php.

Dlaczego index.php?

Nazwą index.htm oznaczano stronę domową - główną stronę witryny internetowej. W efekcie, gdy ktoś wywołał w przeglądarce witrynę www.przykład.com, otwierana była strona www.przykład.com/index.htm. A ponieważ Joomla! napisany jest w PHP, tym automatycznie serwowanym plikiem jest index.php. Rzecz jest nieco skomplikowana – faktycznie bowiem w przypadku Joomla!, gdy użytkownik wywołuje stronę główną, jest przekierowywany do pliku index.php znajdującego się w macierzystym katalogu domyślnego szablonu.