Spis treści
Wiele stron i sklepów internetowych powstaje na gotowych systemach zarządzania treścią. W kwalifikacji INF.03 należy umieć zainstalować, skonfigurować i administrować dwoma najpopularniejszymi systemami: WordPress i Joomla!. Na egzaminie sprawdza się znajomość pojęć (wpis, strona, komponent, moduł), struktur plików i bazy oraz ustawień w panelu.
Ćwicz na lokalnej instalacji w XAMPP lub WAMP. Każda lekcja kończy się pytaniami „Sprawdź się”, a każda część zadaniem praktycznym.
Część A
CMS i WordPress
Rola systemów zarządzania treścią, instalacja i konfiguracja WordPressa, treści, motywy, wtyczki i bezpieczeństwo.
Część A, lekcja 1
Czym jest system zarządzania treścią (CMS)
CMS (Content Management System) to aplikacja internetowa, w której treść strony tworzy się i edytuje w panelu, bez pisania kodu HTML. System oddziela treść (zapisaną w bazie danych) od wyglądu (szablonu), więc zmiana szablonu nie wymaga przenoszenia treści.
| System | Cechy |
|---|---|
| WordPress | najpopularniejszy CMS na świecie; blogi, serwisy firmowe, sklepy (WooCommerce); ogromna liczba wtyczek i motywów; PHP + MySQL/MariaDB |
| Joomla! | uniwersalny CMS dla rozbudowanych serwisów: elastyczne typy treści, wielojęzyczność, szczegółowe uprawnienia (ACL); PHP + MySQL |
| Drupal | bardzo elastyczny, duże i złożone portale |
| PrestaShop, Magento, WooCommerce | systemy sklepów internetowych (e-commerce) |
| Moodle | platforma e-learningowa |
Funkcje CMS
- zarządzanie treścią: strony, wpisy, kategorie, tagi, media,
- panel administratora chroniony hasłem (
/wp-admin,/administrator), - użytkownicy i role z różnymi uprawnieniami,
- szablony (motywy) i rozszerzenia (wtyczki, moduły, komponenty),
- menu, widżety, formularze, wyszukiwarka, komentarze,
- SEO: adresy przyjazne, mapa strony, meta tagi,
- wersje roboczy/opublikowany, harmonogram publikacji.
| Zalety CMS | Wady CMS |
|---|---|
| szybkie uruchomienie strony | częste aktualizacje i ataki (popularność systemu) |
| edycja treści bez znajomości HTML | ryzyko niezabezpieczonych wtyczek |
| wiele gotowych motywów i wtyczek | wolniejsze działanie niż prosta strona statyczna |
| praca zespołowa i role | ograniczenia gotowych szablonów |
WordPress i Joomla! wymagają serwera WWW (Apache lub Nginx), PHP w aktualnej wersji z rozszerzeniami (mysqli/pdo_mysql, mbstring, curl, gd, zip) oraz bazy MySQL lub MariaDB. W ustawieniach PHP zadbaj o memory_limit i upload_max_filesize.
Do czego służy panel administratora w CMS?
Pokaż przykładową odpowiedź
Do zarządzania treścią, wyglądem i ustawieniami serwisu przez użytkowników z odpowiednimi uprawnieniami, bez ręcznej edycji plików.
Jakie technologie serwerowe są potrzebne do uruchomienia WordPressa?
Pokaż przykładową odpowiedź
Serwer WWW (Apache/Nginx), PHP i baza danych MySQL lub MariaDB.
Część A, lekcja 2
Instalacja i konfiguracja WordPressa
- Pobierz archiwum z wordpress.org i rozpakuj je w katalogu serwera (
htdocs/mojastrona). - W phpMyAdmin utwórz pustą bazę (kodowanie
utf8mb4_unicode_ci) oraz użytkownika z prawami do tej bazy. - Otwórz adres strony w przeglądarce – uruchomi się kreator: język, dane bazy (nazwa, użytkownik, hasło, host
localhost, prefiks tabel), potem nazwa witryny, konto administratora i adres e-mail. - Kreator zapisze plik konfiguracyjny
wp-config.php; można też skopiowaćwp-config-sample.phpi uzupełnić go ręcznie.
define('DB_NAME', 'wp_firma');
define('DB_USER', 'wp_uzytkownik');
define('DB_PASSWORD', 'SilneHaslo!2026');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
$table_prefix = 'wpx_'; // zmiana domyślnego prefiksu wp_ utrudnia część ataków
define('WP_DEBUG', false); // w produkcji wyłącz wyświetlanie błędów
| Katalog / plik | Zawartość |
|---|---|
wp-admin/ | kod panelu administratora |
wp-includes/ | rdzeń systemu |
wp-content/ | motywy (themes), wtyczki (plugins), wysłane pliki (uploads) – to katalog należy zawsze zachować w kopii |
wp-config.php | konfiguracja bazy i klucze bezpieczeństwa |
.htaccess | reguły Apache, m.in. adresy przyjazne |
Ustaw w Ustawienia → Bezpośrednie odnośniki strukturę „Nazwa wpisu” (adresy przyjazne), w Ustawienia → Ogólne strefę czasową, usuń przykładowe wpisy i wtyczki, a dla konta admina użyj nazwy innej niż „admin” i silnego hasła.
Jakie dane trzeba podać w kreatorze instalacji WordPressa?
Pokaż przykładową odpowiedź
Nazwę bazy, nazwę użytkownika i hasło do bazy, adres serwera bazy (zwykle localhost) i prefiks tabel, a następnie tytuł witryny oraz dane konta administratora.
W którym pliku zapisane są dane dostępowe do bazy WordPressa?
Pokaż przykładową odpowiedź
W wp-config.php w głównym katalogu instalacji.
Część A, lekcja 3
Treść, media, menu i użytkownicy w WordPressie
| Element | Opis |
|---|---|
| Wpisy | treści chronologiczne (aktualności, blog); przypisane do kategorii i tagów; widoczne w kanałach RSS |
| Strony | treści stałe, niezwiązane z czasem (O nas, Kontakt); mogą być hierarchiczne |
| Kategorie i tagi | taksonomie porządkujące wpisy (kategorie hierarchiczne, tagi płaskie) |
| Media | biblioteka obrazów, plików audio/wideo i dokumentów; tekst alternatywny, tytuł, opis |
| Menu | Wygląd → Menu: układ odnośników do stron, kategorii i adresów, przypisanie do lokalizacji motywu |
| Widżety | klocki w obszarach motywu (pasek boczny, stopka) |
| Komentarze | moderacja, ochrona przed spamem |
| Rola użytkownika | Uprawnienia |
|---|---|
| Administrator | pełne zarządzanie serwisem, wtyczkami, motywami i użytkownikami |
| Redaktor | publikuje i zarządza wszystkimi treściami |
| Autor | publikuje własne wpisy |
| Współtwórca | pisze własne wpisy, ale ich nie publikuje (wymagają zatwierdzenia) |
| Subskrybent | tylko własny profil i czytanie |
- Edytor blokowy (Gutenberg) buduje treść z bloków: akapit, nagłówek, obraz, galeria, kolumny, przycisk, wideo.
- Obrazy: wgraj plik w odpowiednim rozmiarze, uzupełnij tekst alternatywny; system tworzy miniatury i kopie w różnych rozmiarach.
- Wersje robocze i harmonogram: wpis może być szkicem, oczekiwać na zatwierdzenie lub mieć zaplanowaną datę publikacji.
- Strona główna: Ustawienia → Czytanie – statyczna strona lub lista najnowszych wpisów.
Czym różni się strona od wpisu w WordPressie?
Pokaż przykładową odpowiedź
Wpis jest treścią chronologiczną, przypisaną do kategorii i tagów (np. aktualności), a strona – treścią stałą, niezwiązaną z datą (np. Kontakt) i może być zagnieżdżona.
Która rola pozwala pisać wpisy, ale wymaga ich zatwierdzenia przez innego użytkownika?
Pokaż przykładową odpowiedź
Współtwórca (contributor).
Część A, lekcja 4
Motywy, wtyczki i własny szablon
Motyw (szablon) odpowiada za wygląd witryny, a wtyczka dodaje funkcje (formularze, SEO, sklep, kopie zapasowe, bezpieczeństwo). Instaluje się je z katalogu w panelu (Wygląd → Motywy, Wtyczki → Dodaj nową) albo wgrywając plik .zip.
| Plik motywu | Rola |
|---|---|
style.css | style motywu; nagłówek z nazwą, autorem i wersją identyfikuje motyw |
index.php | główny szablon (wymagany) – wyświetla listę wpisów |
header.php, footer.php, sidebar.php | nagłówek, stopka, pasek boczny dołączane przez get_header(), get_footer(), get_sidebar() |
single.php, page.php, archive.php, front-page.php | szablony pojedynczego wpisu, strony, archiwum, strony głównej |
functions.php | funkcje motywu: rejestracja menu, obszarów widżetów, skryptów i stylów |
<?php get_header(); ?>
<main>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<article>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p class="data"><?php the_date(); ?> | <?php the_category(', '); ?></p>
<?php the_excerpt(); ?>
</article>
<?php endwhile; else : ?>
<p>Brak wpisów.</p>
<?php endif; ?>
</main>
<?php get_footer(); ?>
<?php
add_action('after_setup_theme', function () {
register_nav_menus(['glowne' => 'Menu główne']);
add_theme_support('post-thumbnails');
add_theme_support('title-tag');
});
add_action('wp_enqueue_scripts', function () {
wp_enqueue_style('moj-styl', get_stylesheet_uri(), [], '1.0');
});
- Motyw potomny (child theme) dziedziczy po motywie nadrzędnym i pozwala go modyfikować bez utraty zmian przy aktualizacji.
- Wtyczki pobieraj z wiarygodnych źródeł, sprawdzaj oceny, datę ostatniej aktualizacji i zgodność z wersją systemu; nieużywane usuwaj, nie tylko wyłączaj.
- Typowe wtyczki: formularze (Contact Form 7), SEO (Yoast, Rank Math), sklep (WooCommerce), cache, bezpieczeństwo, kopie zapasowe.
Do czego służy motyw potomny?
Pokaż przykładową odpowiedź
Pozwala zmieniać wygląd i funkcje motywu bez modyfikowania jego plików, więc aktualizacja motywu nadrzędnego nie nadpisze zmian.
Który plik motywu WordPressa jest wymagany?
Pokaż przykładową odpowiedź
index.php (oraz style.css z nagłówkiem motywu).
Część A, lekcja 5
Aktualizacje, kopie zapasowe i bezpieczeństwo CMS
| Zagrożenie | Zabezpieczenie |
|---|---|
| przestarzały rdzeń, motywy i wtyczki z lukami | regularne aktualizacje (po kopii zapasowej, najpierw na wersji testowej) |
| złamanie hasła administratora | silne hasła, uwierzytelnianie dwuskładnikowe, ograniczenie liczby prób logowania |
| złośliwe lub pirackie wtyczki i motywy | instalacja tylko z oficjalnych źródeł |
| domyślne ustawienia | zmiana nazwy konta admina i prefiksu tabel, wyłączenie edytora plików |
| brak szyfrowania | certyfikat SSL i wymuszenie HTTPS |
| utrata danych | kopie zapasowe plików i bazy |
Kopia zapasowa serwisu
- Kopia plików (całego katalogu, przede wszystkim
wp-contentiwp-config.php) oraz bazy danych (eksport SQL z phpMyAdmin lubmysqldump). - Wtyczki do kopii (UpdraftPlus, Duplicator, All-in-One WP Migration) wykonują obie i pozwalają przenieść serwis na inny serwer.
- Po przeniesieniu serwisu zmień adresy w bazie (opcje
siteurlihome) i zapisz ponownie bezpośrednie odnośniki.
Zainstalowany, ale nieaktualizowany CMS jest najczęstszą przyczyną włamań. Aktualizuj rdzeń, motywy i wtyczki oraz usuń to, czego nie używasz.
Dlaczego przed aktualizacją CMS wykonuje się kopię zapasową?
Pokaż przykładową odpowiedź
Aktualizacja może zepsuć serwis (niezgodność wtyczki lub motywu). Kopia pozwala szybko przywrócić poprzedni stan.
Co trzeba skopiować, aby w pełni zabezpieczyć serwis oparty na WordPressie?
Pokaż przykładową odpowiedź
Pliki serwisu (zwłaszcza wp-content i wp-config.php) oraz bazę danych.
Zadanie praktyczne
Serwis firmowy w WordPressie
Zadanie
Zainstaluj lokalnie WordPress (XAMPP/WAMP) i przygotuj serwis wizytówkę biura podróży.
Założenia
- Utwórz bazę
wp_biuroi użytkownika w phpMyAdmin, zainstaluj WordPress z własnym prefiksem tabel; ustaw bezpośrednie odnośniki „Nazwa wpisu”. - Dodaj strony: Strona główna, O nas, Oferta, Kontakt (z formularzem przez wtyczkę), a także 3 wpisy w dwóch kategoriach z obrazem wyróżniającym i tekstami alternatywnymi.
- Skonfiguruj menu główne (strony + kategoria), układ stopki z widżetami i wybierz motyw; wprowadź własny kolor i logo przez Customizer.
- Utwórz użytkowników: redaktora i współtwórcę i sprawdź ich uprawnienia.
- Wykonaj kopię zapasową (eksport bazy + kopia
wp-content) i opisz kroki odtworzenia na innym serwerze.
Ocenie podlegać będzie
- poprawna instalacja i konfiguracja,
- struktura treści i menu,
- role użytkowników,
- dostępność (alt, kontrast),
- kopia zapasowa.
Wskazówki
- Obraz wyróżniający ustawisz w panelu wpisu (po prawej).
- Kopia: eksport bazy w phpMyAdmin + spakowany katalog serwisu.
- Lekcje 2–5.
Część B
Joomla!, multimedia i SEO
Instalacja i panel Joomla!, szablony i rozszerzenia oraz multimedia, adresy przyjazne i wielojęzyczność.
Część B, lekcja 6
Instalacja i panel Joomla!
Instalacja Joomla! przebiega podobnie jak WordPressa: rozpakowanie plików w katalogu serwera, utworzenie bazy i uruchomienie instalatora w przeglądarce (nazwa witryny, konto Super User, dane bazy, kodowanie). Po instalacji usuwa się katalog installation (instalator robi to automatycznie).
| Pojęcie Joomla! | Opis |
|---|---|
| Artykuły | podstawowa treść; należą do kategorii i mogą być wyróżnione, opublikowane, zaplanowane |
| Kategorie | drzewo porządkujące artykuły (i inne elementy) |
| Menu i pozycje menu | określają strukturę serwisu i typ strony (artykuł, blog kategorii, lista, formularz kontaktowy) |
| Moduły | klocki wyświetlane w pozycjach szablonu (menu, logowanie, najnowsze artykuły, wyszukiwarka) |
| Komponenty | duże rozszerzenia z własnym panelem (kontakty, banery, sklep) |
| Wtyczki | funkcje działające w tle (edytor, uwierzytelnianie, SEO) |
| Szablony | wygląd witryny i panelu (frontend, backend) |
| Menedżer mediów | biblioteka obrazów i plików |
| Panel | Adres |
|---|---|
| Panel administratora Joomla! | /administrator |
| Panel WordPressa | /wp-admin |
Joomla! ma rozbudowany system uprawnień (ACL): grupy użytkowników (Public, Registered, Author, Editor, Publisher, Manager, Administrator, Super User) i poziomy dostępu do treści. Możesz np. ukryć artykuł przed niezalogowanymi.
Czym różni się komponent od modułu w Joomla!?
Pokaż przykładową odpowiedź
Komponent to duże rozszerzenie realizujące główną treść strony (np. artykuły, kontakty), a moduł to mniejszy blok wyświetlany w pozycji szablonu (np. menu, wyszukiwarka).
Jaka grupa w Joomla! ma pełne uprawnienia?
Pokaż przykładową odpowiedź
Super User (Super Administrator).
Część B, lekcja 7
Szablony i rozszerzenia Joomla!
- Szablon zawiera pliki
index.php,templateDetails.xml(opis i pozycje modułów),css/,images/; ustawienia stylu (kolory, logo) zmieniasz w System → Style szablonów witryny. - Pozycje modułów (np.
sidebar-right,footer) przypisujesz z poziomu Moduły, określając na jakich stronach menu mają być widoczne. - Rozszerzenia instaluje się w System → Instaluj → Rozszerzenia z pliku ZIP, katalogu lub adresu URL.
- Zastąpienia (template override) pozwalają zmienić wygląd gotowego komponentu bez edycji jego plików.
<extension type="template" client="site">
<name>mti_szablon</name>
<version>1.0</version>
<files>
<filename>index.php</filename>
<folder>css</folder>
</files>
<positions>
<position>menu</position>
<position>sidebar-right</position>
<position>footer</position>
</positions>
</extension>
| Cecha | WordPress | Joomla! |
|---|---|---|
| główny język | PHP | PHP |
| baza | MySQL/MariaDB | MySQL/MariaDB (także PostgreSQL) |
| typowe zastosowanie | blogi, strony firmowe, sklepy | rozbudowane serwisy, wielojęzyczne, z wieloma grupami użytkowników |
| rozszerzenia | wtyczki i motywy | komponenty, moduły, wtyczki, szablony |
| łatwość startu | bardzo łatwy | nieco bardziej złożony |
Gdzie w Joomla! zmienisz kolory i logo szablonu?
Pokaż przykładową odpowiedź
W System → Style szablonów witryny, w ustawieniach wybranego stylu szablonu.
Jak zainstalujesz nowe rozszerzenie w Joomla!?
Pokaż przykładową odpowiedź
W panelu administratora: System → Instaluj → Rozszerzenia i wgranie pliku ZIP, wskazanie katalogu lub adresu URL.
Część B, lekcja 8
Multimedia, SEO i wielojęzyczność w CMS
- Import multimediów: obrazy wgrywasz do biblioteki, a wideo osadzasz z platform (adres wklejony w blok lub kod
iframe) – ogromne pliki wideo lepiej nie trzymać na własnym hostingu. - Optymalizacja obrazów: właściwy format i rozmiar, kompresja, wymiary dostosowane do układu,
altopisowy. - Adresy przyjazne (SEF):
/oferta/wycieczkizamiast?p=123; wymagają modułumod_rewritei pliku.htaccess. - Metadane SEO: tytuł strony, opis (
meta description), nagłówki h1–h3, mapa witrynysitemap.xml,robots.txt. - Wielojęzyczność: Joomla! ma ją wbudowaną (języki treści i powiązania artykułów), WordPress – przez wtyczki (Polylang, WPML).
- Dostępność w CMS: hierarchia nagłówków, teksty alternatywne, kontrast motywu, opisy odnośników, obsługa klawiaturą.
Włącz buforowanie (cache), kompresję GZIP, minimalizację CSS/JS i leniwe ładowanie obrazów. Mniej wtyczek to szybsza strona.
Co to są adresy przyjazne (SEF)?
Pokaż przykładową odpowiedź
Czytelne adresy URL oparte na tytułach i strukturze serwisu (np. /oferta/wycieczki) zamiast parametrów (?id=123); są wygodniejsze dla użytkowników i lepsze dla wyszukiwarek.
Czego dotyczy plik robots.txt?
Pokaż przykładową odpowiedź
Wskazuje robotom wyszukiwarek, które części serwisu mogą, a których nie powinny indeksować.
Zadanie praktyczne
Serwis szkolny w Joomla!
Zadanie
Zainstaluj lokalnie Joomla! i przygotuj serwis informacyjny szkoły.
Założenia
- Utwórz bazę i zainstaluj Joomla! z własnym kontem Super User; włącz adresy przyjazne.
- Stwórz drzewo kategorii: Aktualności, Dla uczniów, Dla rodziców oraz po 2 artykuły w każdej, z obrazami i tekstami alternatywnymi.
- Skonfiguruj menu główne (strona główna jako blog wyróżnionych artykułów, listy kategorii, formularz kontaktowy) oraz moduły: menu, wyszukiwarkę i najnowsze artykuły.
- Zmień kolory i logo w stylu szablonu; utwórz grupę użytkowników „Redaktorzy” z prawem edycji tylko artykułów Aktualności.
- Wypisz porównanie: dwie różnice między Joomla! a WordPressem na przykładzie własnego serwisu.
Ocenie podlegać będzie
- instalacja i konfiguracja,
- poprawna struktura kategorii i menu,
- moduły i szablon,
- uprawnienia grup,
- wnioski z porównania.
Wskazówki
- Strona główna to pozycja menu typu „Artykuły wyróżnione”.
- Uprawnienia ustawisz w Użytkownicy → Grupy oraz opcjach kategorii.
- Lekcje 6 i 7.