Materiał do egzaminu INF.03 — systemy zarządzania treścią

CMS: WordPress i Joomla!

Instalacja i konfiguracja systemów WordPress i Joomla!, zarządzanie treścią, użytkownikami i rolami, motywy, wtyczki i szablony, multimedia, SEO oraz bezpieczeństwo i kopie zapasowe serwisu.

8lekcji
2zadań praktycznych
16pytań „Sprawdź się”
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.

SystemCechy
WordPressnajpopularniejszy 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
Drupalbardzo elastyczny, duże i złożone portale
PrestaShop, Magento, WooCommercesystemy sklepów internetowych (e-commerce)
Moodleplatforma 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 CMSWady CMS
szybkie uruchomienie stronyczęste aktualizacje i ataki (popularność systemu)
edycja treści bez znajomości HTMLryzyko niezabezpieczonych wtyczek
wiele gotowych motywów i wtyczekwolniejsze działanie niż prosta strona statyczna
praca zespołowa i roleograniczenia gotowych szablonów
Wymagania hostingu

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.

Sprawdź się — zadanie 1

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.

Sprawdź się — zadanie 2

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.php i uzupełnić go ręcznie.
Fragment wp-config.php
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 / plikZawartość
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.phpkonfiguracja bazy i klucze bezpieczeństwa
.htaccessreguły Apache, m.in. adresy przyjazne
Po instalacji

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.

Sprawdź się — zadanie 1

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.

Sprawdź się — zadanie 2

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

ElementOpis
Wpisytreści chronologiczne (aktualności, blog); przypisane do kategorii i tagów; widoczne w kanałach RSS
Stronytreści stałe, niezwiązane z czasem (O nas, Kontakt); mogą być hierarchiczne
Kategorie i tagitaksonomie porządkujące wpisy (kategorie hierarchiczne, tagi płaskie)
Mediabiblioteka obrazów, plików audio/wideo i dokumentów; tekst alternatywny, tytuł, opis
MenuWygląd → Menu: układ odnośników do stron, kategorii i adresów, przypisanie do lokalizacji motywu
Widżetyklocki w obszarach motywu (pasek boczny, stopka)
Komentarzemoderacja, ochrona przed spamem
Rola użytkownikaUprawnienia
Administratorpełne zarządzanie serwisem, wtyczkami, motywami i użytkownikami
Redaktorpublikuje i zarządza wszystkimi treściami
Autorpublikuje własne wpisy
Współtwórcapisze własne wpisy, ale ich nie publikuje (wymagają zatwierdzenia)
Subskrybenttylko 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.
Sprawdź się — zadanie 1

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.

Sprawdź się — zadanie 2

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 motywuRola
style.cssstyle motywu; nagłówek z nazwą, autorem i wersją identyfikuje motyw
index.phpgłówny szablon (wymagany) – wyświetla listę wpisów
header.php, footer.php, sidebar.phpnagłówek, stopka, pasek boczny dołączane przez get_header(), get_footer(), get_sidebar()
single.php, page.php, archive.php, front-page.phpszablony pojedynczego wpisu, strony, archiwum, strony głównej
functions.phpfunkcje motywu: rejestracja menu, obszarów widżetów, skryptów i stylów
Pętla WordPressa (The Loop) w szablonie
<?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(); ?>
functions.php: menu i style
<?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.
Sprawdź się — zadanie 1

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.

Sprawdź się — zadanie 2

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żenieZabezpieczenie
przestarzały rdzeń, motywy i wtyczki z lukamiregularne aktualizacje (po kopii zapasowej, najpierw na wersji testowej)
złamanie hasła administratorasilne hasła, uwierzytelnianie dwuskładnikowe, ograniczenie liczby prób logowania
złośliwe lub pirackie wtyczki i motywyinstalacja tylko z oficjalnych źródeł
domyślne ustawieniazmiana nazwy konta admina i prefiksu tabel, wyłączenie edytora plików
brak szyfrowaniacertyfikat SSL i wymuszenie HTTPS
utrata danychkopie zapasowe plików i bazy

Kopia zapasowa serwisu

  • Kopia plików (całego katalogu, przede wszystkim wp-content i wp-config.php) oraz bazy danych (eksport SQL z phpMyAdmin lub mysqldump).
  • 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 siteurl i home) i zapisz ponownie bezpośrednie odnośniki.
Pamiętaj

Zainstalowany, ale nieaktualizowany CMS jest najczęstszą przyczyną włamań. Aktualizuj rdzeń, motywy i wtyczki oraz usuń to, czego nie używasz.

Sprawdź się — zadanie 1

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.

Sprawdź się — zadanie 2

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

Szacowany czas: 90 minZakres: Lekcje 1–5Forma: działająca lokalna instalacja i krótki opis

Zadanie

Zainstaluj lokalnie WordPress (XAMPP/WAMP) i przygotuj serwis wizytówkę biura podróży.

Założenia

  • Utwórz bazę wp_biuro i 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łypodstawowa treść; należą do kategorii i mogą być wyróżnione, opublikowane, zaplanowane
Kategoriedrzewo porządkujące artykuły (i inne elementy)
Menu i pozycje menuokreślają strukturę serwisu i typ strony (artykuł, blog kategorii, lista, formularz kontaktowy)
Modułyklocki wyświetlane w pozycjach szablonu (menu, logowanie, najnowsze artykuły, wyszukiwarka)
Komponentyduże rozszerzenia z własnym panelem (kontakty, banery, sklep)
Wtyczkifunkcje działające w tle (edytor, uwierzytelnianie, SEO)
Szablonywygląd witryny i panelu (frontend, backend)
Menedżer mediówbiblioteka obrazów i plików
PanelAdres
Panel administratora Joomla!/administrator
Panel WordPressa/wp-admin
ACL w Joomla!

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.

Sprawdź się — zadanie 1

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).

Sprawdź się — zadanie 2

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.
Fragment pliku templateDetails.xml
<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>
CechaWordPressJoomla!
główny językPHPPHP
bazaMySQL/MariaDBMySQL/MariaDB (także PostgreSQL)
typowe zastosowanieblogi, strony firmowe, sklepyrozbudowane serwisy, wielojęzyczne, z wieloma grupami użytkowników
rozszerzeniawtyczki i motywykomponenty, moduły, wtyczki, szablony
łatwość startubardzo łatwynieco bardziej złożony
Sprawdź się — zadanie 1

Gdzie w Joomla! zmienisz kolory i logo szablonu?

Pokaż przykładową odpowiedź

W System → Style szablonów witryny, w ustawieniach wybranego stylu szablonu.

Sprawdź się — zadanie 2

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, alt opisowy.
  • Adresy przyjazne (SEF): /oferta/wycieczki zamiast ?p=123; wymagają modułu mod_rewrite i pliku .htaccess.
  • Metadane SEO: tytuł strony, opis (meta description), nagłówki h1–h3, mapa witryny sitemap.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ą.
Cache i wydajność

Włącz buforowanie (cache), kompresję GZIP, minimalizację CSS/JS i leniwe ładowanie obrazów. Mniej wtyczek to szybsza strona.

Sprawdź się — zadanie 1

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.

Sprawdź się — zadanie 2

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!

Szacowany czas: 90 minZakres: Lekcje 6–8Forma: działająca lokalna instalacja

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.