Jak osadzać moduły w artykułach Joomla

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

  1. Przejdź do Rozszerzenia → Wtyczki.
  2. Wyszukaj Artykuły – Wpinacz modułów (Content – Load Modules).
  3. 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

Wstawi moduł o ID 1 w miejscu użycia składni.

Według pozycji

Aby wyświetlić wszystkie moduły przypisane do pozycji (np. user1):

.loadposition user1

Zrenderuje każdy moduł przypisany do pozycji user1.

Według nazwy systemowej

Gdy znasz nazwę systemową (np. mod_login):

.loadmodule mod_login

Wstawi pierwszy pasujący moduł tego typu.

Tytuł i styl (dla loadmodule)

Możesz wskazać tytuł modułu i styl wyświetlania (np. xhtml, none):

.loadmodule mod_login,Formularz logowania,none

Nada tytuł Formularz logowania i zastosuje styl none (bez ramek).

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-left
  • main-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-6 i col-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/right albo load-only)
  • w main-top zostaw 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).