--=REKLAMA=--
Wśród rozlicznych zmian Joomla 1.5 przyniósł ze sobą wiele nowości w systemie szablonów. Projektanci szablonów i administratorzy Joomla! zyskali odnowione, potężne narzędzie kształtowania wizualnych aspektów witryn, prostsze a równocześnie elastyczne, umożliwiające – zgodnie z oczekiwaniami – pełną kontrolę nad prezentacyjną warstwą witryny. Poniżej przedstawiamy pokrótce nowe właściwości szablonów w Joomla 1.5
Poniżej przedstawiamy skrótową informację o nowych właściwościach szablonów w Joomla 1.5:
Zastosowanie w Joomla 1.5 wzorca projektowego Model-Widok-Kontroler (MVC) zaowocowało konsekwentnym oddzieleniem warstwy logicznej, warstwy danych i warstwy prezentacji. W efekcie kod HTML, CSS i inne elementy odpowiedzialne za prezentację oddzielono od warstwy logicznej i umieszczono w całości w plikach obsługujących szablony. Takie rozwiązanie daje projektantom pełną kontrolę nad wyglądem witryn bez ingerencji w źródłowy kod Joomla!. Projektanci mogą nie tylko swobodnie korzystać ze wszystkich możliwości kształtowania wyglądu oferowanych przez współczesne technologie, ale mogą:
Problemy projektantów i administratorów Joomla! z dostosowaniem swoich projektów do standardów sieciowych określanych przez W3C i inne instytucje standaryzujące, w tym standardów dostępności, a powodowane przez kod rdzenia Joomla!, wraz z Joomla 1.5 odchodzą w przeszłość. Wprawdzie wciąż w kodzie Joomla! mamy do czynienia ze spuścizną czasów, gdy nie można się było obejść bez stosowania tabel do rozmieszczania treści, ale każdy projektant i administrator może się tych pozostałości łatwo i bezboleśnie pozbyć.
Twórcy Joomla! umożliwili prostą metodę podmiany domyślnych widoków (template overrides, layout overrides) oraz – wśród trzech szablonów dostarczanych z instalatorem Joomla! – umieścili szablon Beez z kompletem skryptów zastępujących oryginały. Istotą rozwiązania jest mechanizm „podmiany” skryptów rdzenia Joomla! skryptami szablonu. Generując strony witryny Joomla! sprawdza najpierw, czy w katalogu aktualnego szablonu znajdują się skrypty definiujące standardowe widoki. Gdy je znajdzie, posługuje się nimi, przygotowując wynikowy dokument HTML, w przeciwnym przypadku korzysta z oryginalnych skryptów.
Możliwość podmiany dotyczy wszystkich przypadków zastosowania w kodzie Joomla! tabel do rozmieszczania elementów treści (nie tylko modułów, co było już możliwe w Joomla 1.0, ale też stron prezentujących artykuły i treści standardowych komponentów oraz elementu drobnego, acz często używanego – paska paginacji, ułatwiającego przemieszczanie się między stronami).
Oczywiście, możliwość zmiany widoków nie dotyczy tylko możliwości zastępowania tabel innymi elementami (x)HTML, ale pozwala na manipulowanie rozmieszczeniem tych elementów na stronach Joomla!, których nie można konfigurować w ustawieniach parametrów.
Zapewnieniu zgodności ze standardami i zwiększeniu dostępności sprzyjają ponadto:
W Joomla 1.0 o mechanizmach personalizacji wyglądu można było co najwyżej pomarzyć. Oczywiście, stosując specjalne skrypty, projektanci udostępniali użytkownikom pewne możliwości dostosowania szablonu do swoich preferencji. W Joomla 1.5 te niewielkie możliwości wzrosły w sposób w zasadzie nieograniczony dzięki możliwościom konfiguracji sparametryzowanych aspektów wyglądu. Aby zapewnić administratorom i użytkownikom witryny wybór między szerokościami strony dostosowanymi do rozdzielczości monitora, między układem jedno- lub wielokolumnowym, między różnymi wariantami kolorystycznymi, itp., wystarczy zdefiniować odpowiednie arkusze stylów oraz umieścić w skrypcie konfiguracyjnym szablonu sekcję parametrów, definiującą opcjonalne rozwiązania.
W Joomla 1.5 można korzystać z szablonów przygotowanych dla Joomla 1.0, ale nieodzownym warunkiem ich obsługi jest włączenie trybu zgodności wstecznej. Przełączenie w tryb zgodności wstecznej spowoduje, że Joomla 1.5 będzie „rozumieć” i poprawnie interpretować instrukcje i rozwiązania właściwe dla Joomla 1.0, ale zaniechane w Joomla 1.5.
Włączenie trybu zgodności wstecznej polega na opublikowaniu specjalnego dodatku systemowego Spuścizna [Legacy]. Choć jest to rozwiązanie dozwolone, to nie jest najlepsze, nie tylko że nieco obniża sprawność działania Joomla!, ale nie pozwala skorzystać w pełni z nowych właściwości szablonów. Stąd zalecane jest opracowanie nowego szablonu albo unowocześnienie starego do reguł stosowanych w Joomla 1.5.
Przeprojektowany framework Joomla 1.5 zawiera warstwę JApplication, która oferuje kilka obiektów i metod odnoszących się w szczególności do szablonów, do wykorzystania w głównych plikach szablonu - index.php (i ewentualnie innych). Przykładowo:
<jdoc:include type="head" />
w miejsce stosowanego w szablonach 1.0.x <?php mosShowHead(); ?>
,
<?php echo $mainframe->getCfg('sitename');?>
w miejsce stosowanego w 1.0.x <?php echo $mosConfig_sitename; ?>
<?php defined( '_JEXEC' ) or die( 'Restricted index access' ); ?>
w miejsce stosowanego w 1.0.x <?php defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' ); ?>
,
<?php echo JURI::base();?>
w miejsce stosowanego w 1.0.x <?php echo $mosConfig_live_site; ?>
.
W j Pozycje stosowane w szablonie są teraz deklarowane w pliku templateDetails.xml. Na przykład,
<positions> <position>top</position> <position>left</position> </positions>
Numer wersji Joomla jest teraz deklarowany w szablonie. Na przykład, <install version="1.5" type="template">
zastąpiło znane z 1.0.x '<mosinstall type="template">
.
Dla szablonów można definiować konfigurujące je parametry. Deklarujemy je w pliku templateDetails.xml, a domyślne wartości przechowujemy w pliku params.ini, który - podobnie jak plik templateDetails.XML jest jednym z plików szablonu. Parametry można konfigurować na zapleczu w edytorze szablonu, a także "w locie", korzystając z Javascript.
Standardowy system ramek ('wyglądu') zdefiniowany w kodzie modułów i komponentów oraz paginacji może być nadpisany przez szablon. Pliki definiujące domyślne wyglądy każdego komponentu i modułu znajdują się w katalogach modules/mod_modulename/tmpl oraz components/com_componentname/views/layout/tmpl. Standardowe ramki paginacji zdefiniowane są w pliku </tt>pagination.php</tt>. Projektant może umieścić w katalogu szablonu własne skrypty modyfikujące standardowe rozwiązania.
Zmodyfikowano sposób sprawdzania ilości modułów, które administratorzy włączyli w pozycji modułu. Znana z szablonów 1.0.x funkcja mosCountModules została zastąpiona funkcją $this->countModules oraz warunkami, które można dodać w instrukcji sterującej, korzystając z operatorów '+', '-', 'or' oraz 'and', e.g. if ($this->countModules('left or right') == 1). Metodę tę można wykorzystać przy projektowaniu kolumn składanych (np. ukrywania lewej lub prawej kolumny, gdy nie zawierają treści).
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/.
Typowy katalog szablonu w Joomla 1.0 zawiera:
W macierzystym katalogu szablonu znajdują się pliki:
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
W typowym katalogu szablonu dla Joomla! 1.5 mamy dodatkowo jeden folder html. Powinien zawierać następujące foldery:
W macierzystym katalogu szablonu znajdują się pliki:
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.
System szablonów (w katalogu /templates) został rozszerzony tak, by można włączyć więcej plików CSS oraz nadpisujących standardowe rozwiązania plików modules.php i component.php. Można włączyć do swego szablonu kilka plików CSS. Na przykład:
<link rel="stylesheet" href="templates/system/css/system.css" type="text/css" /> <link rel="stylesheet" href="templates/system/css/general.css" type="text/css" />
System szablonów wzbogacono o dwie biblioteki Javascript, do których można się odwołać we własnych szablonach. Na przykład:
<script type="text/javascript" src="media/system/js/mootools.js"></script> <script type="text/javascript" src="media/system/js/caption.js"></script>
Do szablonu włączono więcej standardowych stron błedów błędów (403.php i 500.php). Dodano również nową instrukcję - <jdoc:include type="message" /> - umieszczającą w szablonie obszar prezentacji komunikatów błędów. Instrukcja musi być umieszczona w pliku index.php szablonu, aby wyświetlać komunikaty błędów i powiadomienia systemowe.