chevron-left chevron-right

Piotr Nalepa Frontend, architecture and AI

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

This version
blog.piotrnalepa.pl/2009/11/15/joomla-porady-odnosnie-struktury-szablonu-dla-cms-joomla
Published
Author
, Staff Software Engineer
Category
Joomla!
Feedback
Write to me · Post on X

This post is 16 years old. Browsers and tools may have changed since then, so check the code against current documentation before you use it.

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. Example 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. Example 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. Example 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. Example 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. Example 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. Example 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.

Share
Feedback

About the author

Staff Software Engineer

I've been writing this blog since 2009 and building for the web professionally for 14 years. Today I lead the frontend of the Cosmos platform at Bishop Fox, where I've been since day one of the project. Before that I worked at OLX, KUDO, Auto1 and eZ Systems. Here I write about what I've learned in practice: JavaScript, TypeScript, React, CSS and frontend architecture. I've also spoken at conferences across Poland and Europe. Got a question or an idea for a post? Let me know!