chevron-left chevron-right

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

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.

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

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

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:

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.