chevron-left chevron-right

Piotr Nalepa Frontend, architektura i AI

[Joomla] Jak osadzić moduł w szablonie artykułu?

Ta wersja
blog.piotrnalepa.pl/2012/11/07/joomla-jak-osadzic-modul-w-szablonie-artykulu
Opublikowano
Autor
, Staff Software Engineer
Kategoria
Joomla!
Uwagi
Napisz do mnie · Napisz na X

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

Dzisiejszy wpis będzie dotyczył osadzania modułów w kodzie szablonu dla CMS Joomla! 2.5.
Jak wiadomo, Joomla! jest jednym z najpopularniejszych CMS-ów na świecie i wiele osób tworzy strony WWW w oparciu o ten system. Jak większość CMS-ów ma swoją logikę tworzenia szablonów. Standardowo, w szablonie możemy korzystać z możliwości dowolnego określania pozycji modułów i komponentów na stronie. Lecz to może być nie wystarczające, gdy chcielibyśmy umieścić specyficzny moduł bezpośrednio w kodzie jakiegoś elementu na stronie, np. artykułu.

Sekcja 1Template overrides w Joomla!

Z pomocą przychodzi nam template overrides, czyli system/metoda nadpisywania widoków komponentów czy modułów zainstalowanych w systemie Joomla! Pokrótce, nadpisywanie widoków w Joomla! polega na skopiowaniu odpowiednich plików z widokami do katalogu szablonu. Na zdjęciu poniżej można zobaczyć gdzie w strukturze komponentów treści Joomla! można znaleźć kod związany z widokiem artykułu.

Gdzie można znaleźć widok artykułu w Joomla!

Widok znajduje się w pliku default.php. Kopiujemy go do odpowiedniego katalogu w katalogu szablonu. W tym przypadku to będzie: html/com_content/article/.

Gdzie wstawić plik widoku szablonu

W ten sposób mamy gotową podstawę, aby przejść do momentu wstawiania pozycji modułu bezpośrednio w szablonie artykułu.

Sekcja 2Wstawianie modułu do szablonu artykułu w Joomla!

Na początku musimy się dostać do obiektu dokumentu, który jest generowany przez Joomla! To pozwoli na wygenerowanie pozycji modułu w dowolnym miejscu kodu widoku artykułu.

Przykład 1PHP
1
2
3
4
5
6
<?php
    $document	= &JFactory::getDocument();
    $renderer	= $document->loadRenderer('modules');
    $options	= array('style' => 'xhtml');
    $position	= 'modul-w-artykule';
?>

Gdy mamy przygotowane ustawienia wybranej pozycji modułów, to możemy je wywołać w dowolnym miejscu szablonu artykułu za pomocą następującego kodu:

Przykład 2PHP
1
<?php echo $renderer->render($position, $options, null); ?>

Tym sposobem cel został osiągnięty i wybrana pozycja modułów znajduje się tylko i wyłącznie w szablonie artykułu.

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ć!