Wtyczka Artykuły – Wpinacz modułów (Content – Load Modules)
pozwala osadzać moduły bezpośrednio w treści artykułu, a także w innych miejscach obsługujących wtyczki treści np. we własnym module.
Możesz wstawiać moduły według ID, pozycji lub nazwy systemowej, a także określić styl wyświetlania i – przy loadmodule – opcjonalny tytuł.
Uwaga: W poniższych przykładach przed komendami dodano kropkę . tylko po to, aby nie wywoływać modułów w tym artykule, a jedynie pokazać ich składnię. W realnym użyciu kropkę należy usunąć.
Szybki skrót składni:
.loadmoduleid 1
.loadposition user1
.loadmodule mod_login
.loadmodule mod_login,module title,style
Włączenie wtyczki
- Przejdź do Rozszerzenia → Wtyczki.
- Wyszukaj Artykuły – Wpinacz modułów (Content – Load Modules).
- Upewnij się, że wtyczka jest włączona.
Według ID modułu
Gdy znasz ID modułu (kolumna ID na liście modułów):
.loadmoduleid 1
Według pozycji
Aby wyświetlić wszystkie moduły przypisane do pozycji (np. user1):
.loadposition user1
Według nazwy systemowej
Gdy znasz nazwę systemową (np. mod_login):
.loadmodule mod_login
Tytuł i styl (dla loadmodule)
Możesz wskazać tytuł modułu i styl wyświetlania (np. xhtml, none):
.loadmodule mod_login,Formularz logowania,none
Gdzie działa?
- Artykuły – podstawowe zastosowanie.
- Moduł „Własny HTML” – włącz opcję Obsługa dodatków w ustawieniach modułu.
- Inne miejsca obsługujące wtyczki treści (np. opisy kategorii).
Przykład: Galeria
.loadmodule mod_phocagallery,Moja Galeria,xhtml
Przykład: Baner w treści
.loadposition reklama_art
Przykład: Formularz kontaktowy
.loadmoduleid 12
Wskazówki i rozwiązywanie problemów
- Jeśli moduł się nie pojawia, sprawdź czy jest opublikowany oraz przypisany do odpowiednich pozycji menu (lub do wszystkich).
- W module „Własny HTML” ustaw opcje Obsługa dodatków → Tak, aby wtyczki treści były renderowane.
- Użyj stylu
none, gdy chcesz „goły” output bez ramek szablonu modułu.
Praktyczny przykład: Jak ustawić dwa moduły obok siebie w Joomla 6 (bez zmiany szablonu)
Częsty scenariusz w Joomla 6: masz pozycję typu main-top i chcesz w niej wyświetlić dwa moduły w jednym wierszu (np. 50/50), ale nie chcesz edytować plików szablonu ani robić override'ów. Da się to zrobić "czysto" – przez jeden moduł-kontener, który wczyta pozostałe moduły w siatce Bootstrap.
Poniżej gotowe rozwiązanie krok po kroku.
Dlaczego same "klasy modułu" często nie wystarczą?
Wiele szablonów (również Cassiopeia) renderuje moduły w pozycji jeden po drugim jako bloki. Nawet jeśli ustawisz na module w-50, to bez rodzica typu flex/grid moduły nadal będą układały się pionowo.
Żeby uzyskać układ "obok siebie", potrzebujesz kontenera, który narzuci layout (row + col-* w Bootstrap). I tu właśnie przydaje się moduł-kontener.
Rozwiązanie: moduł-kontener w main-top + {loadposition}
1) Włącz wtyczkę do ładowania modułów w treści
W panelu Joomla:
- System → Wtyczki
- znajdź: Artykuły - Load Module (w PL: "Artykuły - Wpinacz modułów")
- ustaw: Włączone
- Możesz wybrać jeden z trzech styli (Czysty kod, jeden element DIV, Wiersze tabeli jednokolumnowej)
To umożliwia używanie w treści tagów typu i {loadmoduleid ...}.
2) Utwórz 2 "właściwe" moduły (te, które mają być obok siebie)
Załóżmy, że to będą:
- Moduł A (lewy)
- Moduł B (prawy)
Ustaw im pozycję na taką, której szablon nie renderuje, np.:
main-top-leftmain-top-right
Ważne:
- Moduły muszą być opublikowane
- Muszą mieć przypisanie do odpowiednich pozycji menu (jeśli moduł ma się pokazywać tylko na wybranych stronach)
3) Utwórz moduł-kontener w pozycji main-top
- Dodaj nowy moduł typu Własny HTML / Custom
- Pozycja:
main-top - W treści wklej:
<div class="row g-3">
<div class="col-12 col-md-6">{.loadposition main-top-left}</div>
<div class="col-12 col-md-6">{.loadposition main-top-right}</div>
</div>
Co to daje:
- na telefonie:
col-12→ moduły jeden pod drugim - od szerokości
md:col-md-6→ dwa moduły obok siebie po 50%
Chcesz "zawsze obok siebie" (także mobile)? Użyj:
col-6icol-6
Chcesz 2/3 + 1/3? Użyj:
- lewy:
col-12 col-md-8 - prawy:
col-12 col-md-4
Typowy błąd: moduły pokazują się podwójnie
Jeśli widzisz moduł dwa razy, to prawie zawsze oznacza, że:
- moduł jest opublikowany w pozycji renderowanej przez szablon (np.
main-top) - i dodatkowo jest ładowany przez
/{loadmoduleid ...}
Naprawa:
- moduły A i B zostaw w "ukrytych" pozycjach (
main-top-left/rightalboload-only) - w
main-topzostaw tylko moduł-kontener
{loadposition} czy {loadmoduleid}?
{.loadposition main-top-left}– wczytuje wszystkie moduły przypisane do danej pozycji (najczytelniejsze w tym scenariuszu).{.loadmoduleid 123}– wczytuje jeden konkretny moduł po ID (przydatne, jeśli nie chcesz tworzyć osobnych pozycji).
W praktyce do układu 2-kolumnowego najwygodniej jest użyć {loadposition}.
Podsumowanie
To rozwiązanie jest dobre, bo:
- nie zmieniasz szablonu,
- możesz sterować układem tylko z panelu Joomla,
- Bootstrapowe
row/col-*daje przewidywalny, responsywny efekt, - łatwo przenosisz to na inne pozycje lub strony.
Jeśli chcesz, napisz jaki szablon i jakie dokładnie moduły układasz (np. slider + tekst / dwa banery / formularz + mapa), a dopasuję gotowy snippet pod Twoje breakpointy i odstępy (np. bez gapów lub z inną szerokością kolumn).