[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.
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/.
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.