Struktura plików Joomla – co znajduje się w poszczególnych katalogach

joomla

Struktura plików Joomla może na początku wydawać się skomplikowana, ale dobre zrozumienie tego, co znajduje się w poszczególnych katalogach, ułatwia administrację, rozwój i rozwiązywanie problemów. Znajomość podstawowych folderów pozwala szybciej lokalizować pliki językowe, szablony, rozszerzenia czy elementy odpowiedzialne za bezpieczeństwo. To także pierwszy krok do świadomego wdrażania zmian, optymalizacji wydajności i tworzenia własnych rozszerzeń, które poprawnie integrują się z całym systemem CMS.

Główna struktura katalogów Joomla po instalacji

Najważniejsze katalogi w katalogu głównym

Po świeżej instalacji Joomla w katalogu głównym witryny (najczęściej /public_html/ lub /htdocs/) pojawia się kilka kluczowych folderów. Każdy z nich pełni określoną funkcję i odpowiada za inny fragment działania systemu.

  • administrator – katalog odpowiedzialny za zaplecze administracyjne. Zawiera pliki interfejsu panelu admina, moduły i komponenty używane tylko w panelu, a także szablon zaplecza.
  • components – folder z komponentami działającymi w części frontowej witryny. Każdy komponent ma tu własny katalog, np. com_content dla artykułów.
  • modules – katalog modułów wyświetlanych na froncie, np. moduł menu, wyszukiwarki, logowania. To tutaj znajdują się pliki odpowiedzialne za ich logikę i widoki.
  • plugins – miejsce na wtyczki, czyli rozszerzenia, które „wstrzykują” własne działania w różne miejsca systemu (np. przy zapisie artykułu, logowaniu, wysyłce maila).
  • templates – katalog z szablonami frontowymi, odpowiadającymi za wygląd strony dla użytkownika. Każdy szablon ma własny katalog z plikami układu, CSS i grafikami.
  • images – domyślne miejsce przechowywania obrazów używanych w treści, banerach i modułach. Może być porządkowany w podrzędne katalogi, np. /images/banners.
  • media – katalog na różnego rodzaju zasoby multimedialne i pliki systemowe, często używany przez komponenty i edytory WYSIWYG.

Oprócz folderów Joomla tworzy również pliki PHP w katalogu głównym (index.php, configuration.php i inne), których rola jest pomocnicza i konfiguracyjna. Jednak to właśnie wymienione katalogi stanowią główny szkielet struktury, którego zrozumienie jest kluczowe dla efektywnej pracy.

Pliki konfiguracyjne w katalogu głównym

W katalogu głównym znajdują się też ważne pliki, które nie są katalogami, ale odpowiadają za działanie całej instalacji. Warto wspomnieć o kilku z nich:

  • configuration.php – centralny plik konfiguracji Joomla, zawierający dane dostępu do bazy i podstawowe ustawienia. Jego błędna edycja może unieruchomić stronę.
  • index.php – główny punkt wejścia dla frontu strony, który ładuje rdzeń CMS, uruchamia routing i wyświetla widok odpowiedniego komponentu.
  • robots.txt – plik regulujący dostęp robotów wyszukiwarek do katalogów witryny, istotny z punktu widzenia SEO i indeksowania.
  • .htaccess – plik konfiguracyjny serwera Apache (lub odpowiednika w Nginx), pozwalający wymusić przyjazne adresy, przekierowania czy dodatkowe reguły bezpieczeństwa.

Choć w tym tekście skupiamy się głównie na katalogach, świadomość istnienia tych plików jest ważna, ponieważ często łączy się z nimi rozwiązania problemów wydajnościowych i bezpieczeństwa oraz poprawne działanie funkcji przyjaznych adresów URL.

Uprawnienia i bezpieczeństwo katalogów

Struktura katalogów łączy się ściśle z uprawnieniami na serwerze. Nieprawidłowe ustawienia mogą ułatwić atak lub utrudnić działanie systemu. Standardowo:

  • katalogi powinny mieć uprawnienia 755, aby były dostępne dla serwera, ale z ograniczeniem dla innych użytkowników;
  • pliki najczęściej mają uprawnienia 644, co pozwala na ich odczyt, ale nie na modyfikację przez nieautoryzowane procesy;
  • katalog z plikami tymczasowymi oraz cache powinien być zapisywalny, aby poprawnie działały aktualizacje i buforowanie.

Dobre zarządzanie uprawnieniami folderów podnosi poziom bezpieczeństwo instalacji Joomla i ogranicza ryzyko nieautoryzowanej modyfikacji plików przez złośliwe skrypty.

Zaplecze administracyjne – katalog administrator

Struktura komponentów administracyjnych

Katalog administrator zawiera wszystkie elementy panelu zarządzania stroną. Po wejściu do tego folderu można zauważyć między innymi:

  • /components – odpowiedniki komponentów frontowych, ale przeznaczone dla zaplecza. Przykładowo com_content w tym katalogu zawiera widoki oraz kontrolery używane przy edycji artykułów w panelu admina.
  • /modules – moduły panelu administracyjnego, np. skróty, menu nawigacyjne, powiadomienia systemowe.
  • /templates – szablony zaplecza, odpowiadające za układ i wygląd panelu administracyjnego.

Podział ten odzwierciedla architekturę Joomla: komponent zwykle składa się z części frontowej i administracyjnej, stąd ich obecność w dwóch różnych miejscach. Rozróżnienie tych struktur ułatwia debugowanie, ponieważ wiadomo, czy dana funkcja należy do interfejsu użytkownika, czy do panelu admina.

Szablony panelu administracyjnego

W katalogu /administrator/templates znajdują się szablony odpowiedzialne za wygląd CMS od strony osoby zarządzającej. Zazwyczaj zawierają:

  • pliki PHP generujące widoki (np. index.php, layouty modułów i elementów menu),
  • arkusze styli CSS, odpowiadające za kolorystykę i układ panelu,
  • pliki JavaScript wspomagające interakcje, np. rozwijane menu, okna modalne.

Zmiana lub modyfikacja tych szablonów umożliwia dostosowanie panelu do konkretnych wymagań redakcji, np. uproszczenie interfejsu dla mniej zaawansowanych użytkowników. Zwykle jednak ingeruje się w nie ostrożnie, aby nie utrudnić aktualizacji wielu rozszerzeń.

Języki w zapleczu – katalog language

W katalogu administrator znajduje się również podkatalog /language. To tutaj trzymane są pliki tłumaczeń interfejsu panelu admina. Struktura jest podobna do tej znanej z frontu, ale dotyczy wyłącznie tekstów zaplecza. Pliki językowe mają rozszerzenie .ini i nazwy nawiązujące do kodu języka, np. pl-PL.com_content.ini.

Dzięki tej separacji możliwe jest niezależne tłumaczenie części frontowej i administracyjnej. Administrator może pracować w języku polskim, podczas gdy użytkownik zobaczy stronę np. po angielsku lub odwrotnie. Własne rozszerzenia, aby były kompletne, powinny dostarczać osobne pliki językowe zarówno dla panelu, jak i frontu strony.

Ustawienia globalne i pliki pomocnicze

Zaplecze administracyjne korzysta z dodatkowych plików konfiguracyjnych i bibliotek umieszczonych m.in. w /administrator/includes czy /administrator/helpers. Zawierają one:

  • funkcje pomocnicze do generowania formularzy, list i filtrów,
  • logikę autoryzacji i uprawnień użytkowników,
  • mechanizmy odpowiedzialne za instalację, aktualizację i odinstalowanie rozszerzeń.

Przy diagnozie problemów z instalacją komponentu lub zapisem ustawień globalnych warto prześledzić właśnie te katalogi. Znajomość ich zawartości przydaje się programistom budującym własne rozszerzenia zarządzane z panelu administratora.

Komponenty, moduły, wtyczki – katalogi extensions

Komponenty – katalog components

Katalog components w części frontowej jest miejscem, gdzie mieszczą się wszystkie główne rozszerzenia typu komponent. Każdy komponent ma zazwyczaj formę katalogu o nazwie rozpoczynającej się od com_, np.:

  • com_content – obsługa artykułów i kategorii treści,
  • com_contact – moduł kontaktów i formularzy kontaktowych,
  • com_users – zarządzanie użytkownikami od strony frontu.

Wewnątrz katalogu danego komponentu znajdują się pliki modelu, widoków i kontrolerów, a także szablony wyświetlania. Zrozumienie struktury konkretnego komponentu jest kluczowe, jeśli chcemy go nadpisać, rozbudować lub diagnozować błędy. Często w tym miejscu tworzy się własne override’y lub dodatkowe widoki.

Moduły – katalog modules

Katalog modules zawiera rozszerzenia odpowiedzialne za wyświetlanie mniejszych elementów strony, jak menu, stopka, boksy informacyjne czy listy najnowszych artykułów. Każdy moduł także posiada swój katalog, zazwyczaj nazywany mod_nazwa, przykładowo:

  • mod_menu – obsługa menu nawigacyjnego,
  • mod_login – formularz logowania użytkownika,
  • mod_languages – przełącznik języków dla strony wielojęzycznej.

W strukturze modułu znajdziemy plik PHP z główną logiką, pliki językowe powiązane z modułem oraz pliki tmpl z układami. Modyfikacje wyglądu modułu zwykle wykonuje się poprzez nadpisania w szablonie (overrides), a nie bezpośrednią edycję plików w katalogu modules, co ułatwia przyszłe aktualizacje Joomla.

Wtyczki – katalog plugins

Katalog plugins jest podzielony na grupy wtyczek, np. authentication, content, system, user i inne. W każdej grupie znajdują się katalogi poszczególnych wtyczek. Przykładowe grupy i ich zastosowanie:

  • content – wtyczki integrujące się z treścią artykułów (np. wstawianie galerii, tagów, przycisków udostępniania),
  • authentication – wtyczki odpowiadające za sposób logowania (np. LDAP, dwuskładnikowe logowanie),
  • system – wtyczki działające globalnie, np. do cachowania, przekierowań czy filtrowania żądań.

Wtyczki często są najprostszą metodą rozszerzenia funkcjonalności Joomla. Ich struktura w katalogu plugins pozwala łatwo zidentyfikować grupę i rolę konkretnej wtyczki. Dzięki temu wiemy, gdzie szukać przyczyn problemów takich jak brak działania przycisków w edytorze czy nieprawidłowe przekierowania.

Instalacja i aktualizacja rozszerzeń

Podczas instalacji nowych rozszerzeń Joomla kopiuje pliki do odpowiednich katalogów: komponenty do /components i /administrator/components, moduły do /modules oraz /administrator/modules, a wtyczki do /plugins. Często tworzony jest też folder w /media na zasoby dodatkowe, takie jak obrazy czy skrypty.

Zrozumienie, gdzie trafiają pliki po instalacji, pomaga kontrolować spójność systemu. W razie awarii lub niedokończonej instalacji można ręcznie sprawdzić, czy wszystkie elementy znajdują się w odpowiednich miejscach. Ułatwia to również ręczne usuwanie pozostałości po starych lub nieaktualnych rozszerzeniach, które mogą powodować konflikty lub spowalniać wydajność witryny.

Szablony, multimedia i języki – personalizacja wyglądu i treści

Szablony frontowe – katalog templates

Katalog templates jest jednym z kluczowych miejsc dla osób zajmujących się frontendem. Każdy szablon ma swój katalog, w którym znajdziemy m.in.:

  • index.php – główny plik układu szablonu, decydujący o rozmieszczeniu modułów i głównej treści,
  • folder css – arkusze styli odpowiedzialne za wygląd, kolory, fonty i marginesy,
  • folder html – miejsce na overrides widoków komponentów i modułów,
  • obrazy i inne zasoby specyficzne dla danego szablonu.

Pliki overrides w /templates/nazwa/html pozwalają zmieniać sposób wyświetlania wybranych elementów Joomla bez modyfikacji oryginalnych plików w katalogach components czy modules. Dzięki temu zachowujemy możliwość bezpiecznej aktualizacji rdzenia, a jednocześnie mamy pełną kontrolę nad wyglądem i strukturą HTML poszczególnych widoków.

Multimedia – katalogi images i media

Folder images to domyślne miejsce na grafiki używane w treściach strony: zdjęcia artykułów, ilustracje w modułach, banery. Dobrą praktyką jest tworzenie struktury podkatalogów, np. /images/artykuly, /images/slider, aby ułatwić zarządzanie plikami oraz uniknąć chaosu.

Katalog media służy natomiast jako bardziej uniwersalne repozytorium zasobów, często wykorzystywanych przez różne rozszerzenia. Może zawierać:

  • pliki multimedialne (audio, wideo),
  • zasoby specyficzne dla rozszerzeń (ikony, skrypty, style),
  • pliki edytorów WYSIWYG, np. obrazy przycisków czy motywy.

Konsekwentne rozdzielenie własnych materiałów graficznych od plików rozszerzeń ułatwia późniejsze migracje, wykonywanie kopii bezpieczeństwa oraz porządkowanie zasobów, gdy strona rośnie i powiększa się jej biblioteka mediów.

Pliki językowe – katalog language

Katalog language zawiera pliki tłumaczeń interfejsu frontowego. Struktura jest zazwyczaj podzielona na foldery odpowiadające kodom języka, np. pl-PL, en-GB. W każdym z nich znajdują się:

  • globalne pliki językowe, np. pl-PL.ini,
  • pliki językowe komponentów, modułów i wtyczek, np. pl-PL.com_content.ini, pl-PL.mod_menu.ini.

Dzięki temu Joomla może dynamicznie zmieniać teksty w zależności od języka wybranego przez użytkownika. Pliki te są kluczowe przy tworzeniu stron wielojęzycznych oraz przy pełnej spójności interfejsu. Własne komponenty i moduły również powinny posiadać odpowiednie pliki językowe, aby umożliwić łatwe tłumaczenie ich zawartości bez ingerencji w kod źródłowy.

Nadpisywanie tłumaczeń i personalizacja języka

Joomla umożliwia tworzenie tzw. overrides językowych, czyli własnych tłumaczeń dla istniejących stałych językowych. Choć mechanizm ten jest konfigurowany z poziomu panelu administracyjnego, to efekty zapisują się w odpowiednich plikach w katalogu language lub jego podrzędnych. Znajomość tej struktury pozwala np. przenieść niestandardowe tłumaczenia między instalacjami czy środowiskami testowymi i produkcyjnymi.

Rozsądne zarządzanie plikami językowymi i ich nadpisaniami zapewnia nie tylko spójny interfejs użytkownika, ale także ułatwia utrzymanie strony przy aktualizacjach i rozbudowie o nowe funkcje. Dzięki temu można uniknąć sytuacji, w której po instalacji rozszerzenia część tekstów pozostaje w innym języku niż reszta witryny.

Cache, logi i pliki tymczasowe – zaplecze techniczne Joomla

Katalog cache – buforowanie zawartości

Katalog cache przechowuje tymczasowe dane generowane przez Joomla w celu przyspieszenia ładowania strony. W zależności od konfiguracji może zawierać:

  • zbuforowane fragmenty HTML generowane przez komponenty,
  • dane dotyczące zapytań do bazy danych,
  • cache modułów i wtyczek.

Regularne czyszczenie tego katalogu, czy to z poziomu panelu, czy ręcznie, może rozwiązać problemy z widocznością nowych zmian po aktualizacjach. Jednocześnie prawidłowo skonfigurowane cache znacznie poprawia szybkość działania strony, co ma wpływ zarówno na komfort użytkownika, jak i na pozycjonowanie w wyszukiwarkach.

Katalog logs – rejestrowanie zdarzeń i błędów

Katalog logs (w nowszych wersjach często wskazywany w konfiguracji jako miejsce zapisu logów) służy do przechowywania plików z informacjami o błędach, ostrzeżeniach i innych zdarzeniach systemowych. Mogą to być:

  • logi błędów PHP,
  • logi prób logowań i autoryzacji,
  • logi działania rozszerzeń i zadań cyklicznych.

Analiza zawartości tego katalogu jest niezwykle pomocna przy diagnozowaniu problemów z wydajnością, bezpieczeństwem czy funkcjonowaniem poszczególnych komponentów. Administratorzy i programiści powinni okresowo przeglądać logi, aby wyłapać nieprawidłowości zanim doprowadzą do poważniejszych usterek.

Katalog tmp – pliki tymczasowe i instalacje

Katalog tmp jest miejscem, gdzie Joomla przechowuje pliki tymczasowe, w tym paczki instalacyjne rozszerzeń podczas ich instalacji i aktualizacji. Znajdują się tu także różne dane robocze generowane przez system w trakcie działania.

Ważne jest, aby katalog tmp był zapisywalny (odpowiednie uprawnienia), ponieważ w przeciwnym razie instalacja nowych rozszerzeń może kończyć się błędami. Okresowe czyszczenie tego katalogu pomaga utrzymać porządek i zwalnia miejsce na serwerze, ale powinno być wykonywane z rozwagą, najlepiej z użyciem narzędzi dostępnych w panelu administracyjnym.

Kopie zapasowe i migracje a struktura katalogów

Znajomość katalogów cache, logs i tmp jest istotna także przy wykonywaniu kopii zapasowych i migracjach. Często nie ma potrzeby archiwizowania zawartości cache czy plików tymczasowych, co pozwala zmniejszyć rozmiar backupu. Z kolei logi mogą być cenne dla administratorów, ale zazwyczaj nie są krytyczne dla przywrócenia działania strony.

Podczas migracji na inny serwer lub domenę kluczowe jest zachowanie spójności między plikami Joomla a bazą danych. Świadomość, które katalogi zawierają dane użytkowników, treści i konfigurację, a które jedynie pliki generowane tymczasowo, umożliwia lepsze planowanie procesu przenosin oraz minimalizuje ryzyko utraty ważnych informacji.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz