Jednou z najväčších výhod Joomla je možnosť rozširovať jej funkcie bez toho, aby ste museli meniť samotné jadro systému. Ak potrebujete formulár, galériu, rezervačný systém, nový blok obsahu alebo špeciálne spracovanie článkov, riešením býva rozšírenie – extension.
Pri práci s Joomla sa pritom najčastejšie stretnete s tromi pojmami: komponent, modul a plugin. Všetky tri rozširujú možnosti systému, no robia to rozdielnym spôsobom.
Oficiálna dokumentácia Joomla zaraďuje komponenty, moduly a pluginy medzi základné typy rozšírení spolu so šablónami a jazykovými balíkmi. Každý typ má v systéme inú úlohu.
Najjednoduchšie si rozdiel zapamätáte takto:
Komponent = hlavná funkcia stránky.
Modul = menší blok obsahu alebo funkcie.
Plugin = funkcia, ktorá reaguje na udalosť alebo mení správanie systému.
Čo je Joomla rozšírenie
Joomla už v základnej inštalácii obsahuje množstvo funkcií, no nie každý web potrebuje to isté.
Firemná stránka môže potrebovať formuláre a katalóg služieb. Internetový obchod potrebuje produkty a objednávky. Portál môže vyžadovať diskusiu, komentáre alebo komplexnejšie vyhľadávanie.
Takéto funkcie možno pridávať prostredníctvom rozšírení (Extensions).
Rozšírenia pritom nie sú iba produkty tretích strán. Aj veľká časť samotnej Joomla je vytvorená rovnakým modulárnym spôsobom. Dokumentácia rozlišuje medzi core extensions, ktoré prichádzajú priamo s Joomla, a rozšíreniami tretích strán, ktoré sa inštalujú dodatočne.
Medzi najznámejšie typy patria:
- komponenty,
- moduly,
- pluginy,
- šablóny,
- jazykové balíky.
Joomla pozná aj ďalšie technické typy, napríklad balíky, knižnice alebo súbory.
Komponent: hlavná aplikácia stránky
Komponent (Component) je spravidla najrozsiahlejší typ Joomla rozšírenia.
Oficiálna dokumentácia opisuje komponenty ako hlavné funkčné jednotky Joomla, ktoré možno prirovnať k samostatným malým aplikáciám.
Ak si Joomla predstavíme ako operačný systém, komponent možno prirovnať k programu, ktorý v ňom spustíte.
Príklady komponentov
Samotná Joomla obsahuje komponenty napríklad pre:
- články,
- kontakty,
- používateľov,
- menu,
- značky,
- vyhľadávanie.
Externý komponent môže vytvoriť napríklad:
- internetový obchod,
- rezervačný systém,
- katalóg nehnuteľností,
- kalendár udalostí,
- diskusné fórum,
- systém inzercie,
- helpdesk,
- adresár firiem.
Komponent teda zvyčajne rieši ucelenú funkčnú oblasť webu.
Komponent často obsahuje frontend aj backend
Komplexnejší komponent má dve časti.
Backend
V administrácii môžete napríklad:
- pridávať záznamy,
- upravovať nastavenia,
- definovať kategórie,
- nastavovať oprávnenia,
- spravovať používateľské dáta.
Frontend
Návštevník vidí výsledok, napríklad:
- zoznam produktov,
- detail udalosti,
- rezervačný formulár,
- katalóg,
- kontaktnú stránku.
Publikácia Developing Extensions for Joomla! 5 opisuje komponent ako najkompletnejší typ Joomla rozšírenia a prirovnáva ho k samostatnej webovej aplikácii. Komponenty zároveň typicky pracujú s vlastnými dátami a často majú administratívnu aj verejnú časť.
Na stránke je spravidla jeden hlavný komponent
Pri načítaní bežnej Joomla stránky tvorí jej hlavný obsah výstup jedného komponentu.
Môže to byť napríklad:
com_content– články,com_contact– kontakty,- komponent internetového obchodu,
- komponent kalendára.
Výstup komponentu sa následne vloží do hlavnej oblasti šablóny. Dokumentácia Joomla tento proces opisuje tak, že šablóna obsahuje miesto pre výstup komponentu a samostatné oblasti pre moduly.
Modul: menší blok na stránke
Modul (Module) je menšie a flexibilnejšie rozšírenie určené predovšetkým na zobrazovanie určitých častí stránky.
Oficiálna dokumentácia Joomla charakterizuje moduly ako ľahké rozšírenia používané na menšie časti webovej stránky, ktoré sa zvyčajne nachádzajú okolo hlavného výstupu komponentu.
Typickými modulmi sú:
- hlavné menu,
- prihlasovací formulár,
- najnovšie články,
- vyhľadávanie,
- vlastný text alebo HTML,
- bannery,
- breadcrumb navigácia,
- zoznam populárnych článkov.
Modul potrebuje pozíciu
Moduly sa obvykle umiestňujú do pozícií definovaných šablónou.
Šablóna môže obsahovať napríklad pozície:
menu
sidebar
top
bottom
footer
Konkrétne názvy závisia od šablóny.
Kniha The Joomla 4 Templates vysvetľuje, že šablóna okrem vzhľadu definuje aj pomenované pozície, do ktorých Joomla načítava publikované moduly.
Jeden modul môžete zobraziť iba tam, kde ho potrebujete
Modul nemusí byť viditeľný na každej stránke.
Môžete napríklad nastaviť:
Najnovšie články
- iba na úvodnej stránke,
Kontaktné údaje
- iba v sekcii Kontakt,
Súvisiace bezpečnostné články
- iba na stránkach bezpečnostnej sekcie.
Priradenie modulov sa v Joomla často riadi podľa položiek menu.
Jeden typ modulu môže mať viac inštancií
To je ďalší dôležitý rozdiel.
Môžete mať napríklad jeden typ modulu Menu, ale vytvoriť z neho viac samostatných modulov:
- Hlavné menu,
- Menu v päte,
- Mobilné menu,
- Používateľské menu.
Rovnako môžete mať viac vlastných modulov s rozdielnym obsahom a umiestnením.
Plugin: funkcia pracujúca na pozadí
Plugin je od komponentu a modulu odlišný.
Zvyčajne nevytvára samostatnú stránku a často ani viditeľný blok. Namiesto toho reaguje na udalosti systému a vykonáva určitú úlohu.
Joomla používa udalosťami riadený systém, v ktorom sa plugin môže prihlásiť k určitej udalosti a vykonať kód, keď táto udalosť nastane. Dokumentácia opisuje tento mechanizmus ako spôsob komunikácie medzi komponentmi, modulmi a pluginmi prostredníctvom udalostí.
Čo môže plugin robiť
Plugin môže napríklad:
- meniť alebo spracovať obsah článku,
- reagovať na prihlásenie používateľa,
- vykonávať autentifikáciu,
- dopĺňať funkcie editora,
- reagovať na uloženie obsahu,
- meniť systémové správanie,
- pridávať vlastné polia,
- spracovať špeciálny zápis v texte,
- komunikovať s externou službou.
Predstavte si napríklad plugin, ktorý v texte nájde špeciálny zápis a nahradí ho výsledným obsahom.
Používateľ nemusí vidieť samotný plugin. Vidí iba výsledok jeho činnosti.
Rozdiel medzi modulom a pluginom
Práve tieto dva pojmy si používatelia často zamieňajú.
Pomôže jednoduchá otázka:
Má sa niečo zobraziť ako samostatný blok na stránke?
Ak áno, pravdepodobne ide o modul.
Má sa niečo vykonať pri určitej udalosti alebo zmeniť správanie Joomla?
V takom prípade ide pravdepodobnejšie o plugin.
Príklad: prihlásenie používateľa
Modul Login môže návštevníkovi zobraziť:
- používateľské meno,
- heslo,
- tlačidlo Prihlásiť.
Plugin môže na pozadí zabezpečovať samotný spôsob autentifikácie.
Používateľ teda pracuje s modulom, zatiaľ čo plugin vykonáva určitú systémovú úlohu.
Rozdiel medzi komponentom a modulom
Aj tu môže pomôcť jednoduchý príklad.
Predstavme si web s kalendárom udalostí.
Komponent udalostí
Komponent môže zabezpečovať:
- správu udalostí,
- kategórie udalostí,
- detail udalosti,
- registrácie,
- administráciu,
- ukladanie údajov do databázy.
Modul udalostí
Modul môže na úvodnej stránke zobrazovať:
Najbližšie udalosti
napríklad iba päť najbližších termínov.
Modul teda nemusí nahrádzať samotný komponent. Často iba zobrazuje vybranú časť jeho dát na inom mieste stránky.
Komponent, modul a plugin môžu spolupracovať
V praxi jedno Joomla rozšírenie často pozostáva z viacerých častí.
Predstavme si rozsiahly rezervačný systém.
Jeho balík môže obsahovať:
Komponent
Spravuje:
- rezervácie,
- zákazníkov,
- termíny,
- nastavenia,
- databázové údaje.
Modul
Na úvodnej stránke zobrazí:
Voľné termíny
Plugin
Môže napríklad:
- reagovať na vytvorenie rezervácie,
- odoslať údaje externej službe,
- zmeniť obsah stránky,
- doplniť integračnú funkciu.
Pre používateľa to môže vyzerať ako jeden produkt, technicky však ide o niekoľko rôznych Joomla rozšírení spolupracujúcich medzi sebou.
Praktický príklad: spravodajský web
Predstavme si informačný portál.
Komponent článkov
Hlavný obsah zabezpečuje štandardný komponent Joomla pre články.
Zobrazuje napríklad článok:
Joomla vydala novú bezpečnostnú aktualizáciu
Modul
V pravom paneli sa môže nachádzať modul:
Najnovšie články
a pod ním ďalší:
Najčítanejšie články
Plugin
Plugin môže napríklad automaticky spracovávať určitý obsah článku alebo rozširovať možnosti editora.
Návštevník vidí výslednú stránku ako jeden celok, hoci ju v skutočnosti skladá viacero samostatných častí systému.
Ako spolupracujú so šablónou
Šablóna určuje, kde sa jednotlivé prvky zobrazia.
Zjednodušene môže výsledná stránka vyzerať takto:
Hlavička
- modul menu
Hlavná oblasť
- komponent článkov
Pravý panel
- modul najnovších článkov
- modul prihlásenia
Päta
- vlastný modul
- modul menu päty
Pluginy pritom môžu na pozadí ovplyvňovať správanie jednotlivých častí.
Tento princíp je dobre viditeľný aj v schéme fungovania Joomla šablóny: Joomla načíta údaje a následne vloží výstup komponentu a modulov do miest definovaných šablónou.
Kde sa rozšírenia spravujú
V administrácii Joomla môžete nainštalované rozšírenia spravovať prostredníctvom systémových nástrojov.
Po inštalácii sa jednotlivé typy objavia na rôznych miestach administrácie.
Komponent môže napríklad vytvoriť novú položku v časti Komponenty.
Modul budete konfigurovať v správe modulov.
Plugin nájdete v správe pluginov.
Každý typ má totiž odlišnú úlohu a tomu zodpovedá aj spôsob administrácie.
Ako rozpoznať, čo potrebujete
Pri hľadaní riešenia sa môžete riadiť niekoľkými otázkami.
Potrebujem novú komplexnú funkciu alebo aplikáciu?
Napríklad:
- obchod,
- rezervačný systém,
- galériu,
- adresár,
- kalendár.
Najčastejšie hľadáte komponent.
Potrebujem niečo zobraziť na určitej časti stránky?
Napríklad:
- menu,
- banner,
- prihlasovací formulár,
- zoznam článkov,
- kontaktné údaje.
Pravdepodobne potrebujete modul.
Potrebujem zmeniť alebo doplniť správanie Joomla?
Napríklad:
- reagovať na prihlásenie,
- upravovať články,
- vykonať určitú činnosť pri udalosti,
- integrovať ďalšiu službu.
Pravdepodobne ide o plugin.
Rýchle porovnanie
| Vlastnosť | Komponent | Modul | Plugin |
|---|---|---|---|
| Hlavná úloha | komplexná funkcia alebo aplikácia | menší blok obsahu | reakcia na udalosť alebo zmena správania |
| Vlastná stránka | spravidla áno | spravidla nie | spravidla nie |
| Zobrazuje sa v pozícii šablóny | nie ako bežný modul | áno | nie |
| Môže mať vlastnú administráciu | často áno | jednoduché nastavenia | nastavenia pluginu |
| Používateľ ho vždy vidí | zvyčajne jeho výstup | áno, ak je publikovaný | často nie |
| Typický príklad | obchod | najnovšie články | autentifikácia |
| Zložitosť | zvyčajne najvyššia | menšia | závisí od funkcie |
Jednoduchá analógia
Predstavte si Joomla ako hotel.
Komponent je reštaurácia
Je to veľká samostatná časť hotela s vlastnou funkciou, personálom a pravidlami.
Modul je informačná tabuľa vo vestibule
Zobrazuje konkrétnu informáciu na vybranom mieste.
Plugin je automatický systém
Napríklad mechanizmus, ktorý pri otvorení dverí zapne svetlo. Návštevník nemusí vedieť, že existuje – jednoducho vidí výsledok jeho činnosti.
Analógia nie je technicky úplná, ale dobre vystihuje základný rozdiel.
Rozšírenie nemusí patriť iba do jednej skupiny
Pri sťahovaní produktu môžete naraziť napríklad na označenie:
Component + Modules + Plugins
To nie je chyba.
Vývojár môže vytvoriť jeden inštalačný balík obsahujúci viacero rozšírení, ktoré spolu tvoria jeden funkčný systém.
Publikácia Developing Extensions for Joomla! 5 sa práve preto venuje samostatne vývoju komponentov, modulov a pluginov a ukazuje, ako jednotlivé časti využívajú spoločnú architektúru Joomla.
Nie každú funkciu treba riešiť ďalším rozšírením
Pri Joomla môže vzniknúť pokušenie inštalovať doplnok na každý problém.
Nie je to vždy dobrý postup.
Pred inštaláciou sa oplatí overiť:
- či funkciu už neobsahuje samotná Joomla,
- či sa nedá vytvoriť existujúcim modulom,
- či ju neposkytuje používaná šablóna,
- či skutočne potrebujete komplexný komponent.
Každé ďalšie rozšírenie znamená ďalší kód, ktorý treba:
- aktualizovať,
- kontrolovať,
- zabezpečiť,
- preveriť pri upgrade Joomla.
Preto je výhodné používať iba rozšírenia, ktoré majú na webe jasný účel.
Na čo si dať pozor pri výbere rozšírenia
Nezáleží iba na tom, či potrebujete komponent, modul alebo plugin.
Pri externom rozšírení skontrolujte najmä:
- kompatibilitu s vašou verziou Joomla,
- pravidelnosť aktualizácií,
- podporu aktuálnych verzií PHP,
- reputáciu vývojára,
- dokumentáciu,
- bezpečnostnú históriu,
- dostupnosť podpory,
- možnosť budúceho upgradu.
Ak je rozšírenie dostupné v Joomla Extensions Directory (JED), získate aspoň základné miesto, kde môžete preveriť jeho informácie. Joomla je navrhnutá ako rozšíriteľný systém, ale kvalita jednotlivých produktov tretích strán sa môže výrazne líšiť.
Najdôležitejší rozdiel v jednej situácii
Predstavme si, že chcete na web pridať systém podujatí.
Komponent
spravuje samotné podujatia.
Modul
zobrazí päť najbližších podujatí na úvodnej stránke.
Plugin
pri vytvorení udalosti vykoná ďalšiu automatickú činnosť.
Šablóna
určí, ako budú všetky tieto prvky vizuálne vyzerať.
Takto spolu jednotlivé vrstvy Joomla vytvárajú výsledný web.
Zhrnutie
Komponenty, moduly a pluginy majú spoločné to, že patria medzi Joomla rozšírenia, ale ich úlohy sú rozdielne.
Komponent je najčastejšie hlavnou funkčnou aplikáciou stránky a spracúva jej hlavný obsah.
Modul je menší a flexibilný blok, ktorý možno umiestniť na vybranú pozíciu šablóny a zobrazovať iba na určitých stránkach.
Plugin pracuje najmä prostredníctvom udalostí Joomla a rozširuje alebo mení správanie systému, často bez toho, aby mal vlastný viditeľný výstup.
Ak si nie ste istí, ktorý pojem použiť, položte si tri otázky:
Potrebujem samostatnú aplikáciu? → Komponent.
Potrebujem blok na stránke? → Modul.
Potrebujem, aby Joomla na niečo reagovala alebo niečo automaticky vykonala? → Plugin.
Po pochopení tohto rozdelenia začne byť oveľa jasnejšia nielen inštalácia rozšírení, ale aj samotná architektúra Joomla.
