chevron-left chevron-right

Piotr Nalepa Frontend, architektura i AI

[Joomla!] Porady odnośnie struktury szablonu dla CMS Joomla!

Ta wersja
blog.piotrnalepa.pl/2009/11/15/joomla-porady-odnosnie-struktury-szablonu-dla-cms-joomla
Opublikowano
Autor
, Staff Software Engineer
Kategoria
Joomla!
Uwagi
Napisz do mnie · Napisz na X

Ten wpis ma 16 lat. Od tego czasu przeglądarki i narzędzia mogły się zmienić, więc zanim użyjesz kodu, sprawdź go z aktualną dokumentacją.

W dzisiejszym artykule omówię kilka kwestii projektowania szablonów dla systemu CMS Joomla! 1.5.
Dotyczą one znaczników, których Joomla! używa do wstawiania różnych modułów w szablonie.


  1. Przykład 1PHP
    <div><jdoc :include type="component" /></div>

    Przeznaczony jest do wstawiania do szablonu treści strony, to znaczy różnego rodzaju widoku artykułów, kategorii, galerii zdjęć. Ogólnie rzecz biorąc, w tym miejscu się pojawia treść strony, ale nie moduły.


  2. Przykład 2PHP
    <div><jdoc :include type="modules" name="user1" style="xhtml" /></div>

    Przeznaczony jest do wstawiania pozycji modułów do szablonu strony. W takie miejsca można wstawiać na przykład moduł koszyka, systemy menu, najnowsze wiadomości, itd., itp.
    Należy tez wspomnieć, że atrybut style może mieć inne wartości na przykład chrome czy table.
    Chrome służy do oznaczania nietypowych stylów modułów, zdefiniowanych przez projektanta szablonu.
    Table oznacza moduł zbudowany na bazie tabeli, a styl xhtml oznacza moduł beztabelkowy.
    Dodatkowo są dostępne opcje: none, horz, rounded, outline.

  3. Jeśli chcemy wykorzystać zmianę struktury szablonu zależnie od wyświetlanego komponentu Joomla! możemy zastosować następujący kod.


  4. Przykład 3PHP
    if (JRequest::getVar('option') == 'com_virtuemart') { ... }

    Taki kod może zmienić wygląd strony zależnie od wyświetlonego komponentu. W tym przypadku mamy do czynienia z komponentem Virtuemart. W przypadku widoku na stronę startową (główną) wpisujemy: "com_frontpage".


  5. Przykład 4PHP
    $id = JRequest::getVar('id');
    if(( $id == 46 ) && JRequest::getVar('view') == 'article') { ... }

    Taki zapis pozwala zmienić strukturę szablonu zależnie od artykułu.
    ID artykułu można pozyskać z kreatora linków menu na zapleczu strony.
    Należy pamiętać, aby najpierw stworzyć taki link w jakimś menu zanim zaczniemy się do niego odnosić.


  6. Przykład 5PHP
    $id = JRequest::getVar('id');
    if(( $id == 40 OR $id == 45 ) &amp;&amp; JRequest::getVar('view') == 'category' &amp;&amp; JRequest::getVar('layout') == 'blog' )) { ... }

    Taki zapis odnosi się do widoku na kategorie z wpisami na bazie blogu


  7. Przykład 6PHP
    <div><jdoc :include type="module" name="search" /></div>

    Taki zapis pozwala nam wstawić w daną pozycję na stronie moduł konkretnego typu. W tym przypadku mamy moduł wyszukiwarki (mod_search). Na podobnej podstawie można wstawiać innego rodzaju moduły.

Zdaję sobie sprawę z tego, że to jest tylko część możliwości tworzenia instrukcji warunkowych dla szablonów Joomla! 1.5, ale już dzięki tym kilku instrukcjom możecie tworzyć naprawdę zaawansowane szablony.

Udostępnij
Uwagi

O autorze

Staff Software Engineer

Piszę na tym blogu od 2009 roku, a strony i aplikacje webowe tworzę zawodowo od 14 lat. Obecnie w Bishop Fox prowadzę frontend platformy Cosmos, od samego początku projektu. Wcześniej pracowałem m.in. w OLX, KUDO, Auto1 i eZ Systems. Piszę tu o tym, czego nauczyłem się w praktyce: o JavaScripcie, TypeScripcie, Reakcie, CSS-ie i architekturze frontendu. Występowałem też jako prelegent na konferencjach w Polsce i Europie. Masz pytanie albo pomysł na wpis? Daj znać!