Każde forum phpBB opiera się na systemie szablonów, który definiuje wygląd i układ strony – od nagłówka po listę postów. Współczesne wersje phpBB (od 3.2 wzwyż) korzystają z systemu szablonów Twig, dzięki czemu edycja motywów jest dużo bardziej elastyczna, czysta i bezpieczna niż dawniej.
W tym poradniku pokażę, jak działa Twig w phpBB, jak dziedziczyć układy, tworzyć własne bloki i zmienne, a także jak modyfikować style w sposób w pełni zgodny z aktualizacjami systemu.
1. Jak działa system szablonów w phpBB
Szablony w phpBB to połączenie:
- plików HTML/Twig – odpowiadających za układ strony,
- plików CSS – definiujących styl,
- plików językowych – zawierających teksty interfejsu.
Silnik Twig działa jak warstwa pośrednia między PHP a HTML – pozwala wstawiać zmienne, warunki, pętle i fragmenty kodu w czysty, logiczny sposób.
Na przykład:
{% if S_USER_LOGGED_IN %}
<p>Witaj, {{ USERNAME }}!</p>
{% else %}
<p>Musisz się zalogować, aby zobaczyć zawartość.</p>
{% endif %}
Dzięki temu można w prosty sposób dostosować wygląd forum bez ingerowania w logikę PHP.
2. Struktura stylu w phpBB
Każdy styl znajduje się w katalogu:
/styles/nazwa_stylu/
Standardowy motyw prosilver ma taką strukturę:
/template/ – pliki Twig (HTML)
/theme/ – arkusze CSS i grafika
/imageset/ – ikony, emotikony (starsze wersje)
/style.cfg – konfiguracja stylu
Aby stworzyć własny styl, nie musisz kopiować wszystkiego z prosilvera – możesz dziedziczyć z niego układ i nadpisywać tylko wybrane pliki.
3. Dziedziczenie stylu (parent themes)
W pliku style.cfg możesz określić styl nadrzędny:
# Informacje o stylu
name = "CustomLight"
copyright = "Autor: phpBB3-Mods.pl"
style_version = 1.0.0
phpbb_version = 3.3.12
parent = prosilver
Dzięki temu phpBB automatycznie korzysta z plików prosilver, a Ty musisz zmienić tylko te elementy, które chcesz dostosować – np. nagłówek, stopkę lub CSS.
To ogromna zaleta, bo przy aktualizacji forum nie musisz przepisywać całego motywu.
4. Gdzie znajdują się główne pliki szablonów
Najczęściej modyfikowane pliki w katalogu /template/ to:
overall_header.html– nagłówek strony, menu, logo, meta tagi,overall_footer.html– stopka forum,index_body.html– strona główna forum,viewforum_body.html– lista tematów w dziale,viewtopic_body.html– widok tematu (posty),memberlist_view.html– profil użytkownika.
Każdy z nich zawiera znaczniki Twig ({{ }} i {% %}), które phpBB wypełnia danymi z bazy.
5. Tworzenie własnego bloku Twig
Załóżmy, że chcesz dodać w stopce blok informacyjny z datą i nazwą witryny.
W pliku overall_footer.html możesz dodać:
<div class="custom-footer">
<p>{{ SITENAME }} – {{ CURRENT_TIME }}</p>
</div>
Zmienne SITENAME i CURRENT_TIME są wbudowane w phpBB i dostępne globalnie w każdym szablonie.
Jeśli chcesz dodać własną zmienną, możesz to zrobić w rozszerzeniu lub event listenerze (np. core.page_footer).
Przykład listenera:
$template->assign_var('CUSTOM_MESSAGE', 'Forum działa na phpBB3-Mods.pl');
A następnie w szablonie:
<p class="custom-msg">{{ CUSTOM_MESSAGE }}</p>
6. Dziedziczenie bloków i layoutów
Twig obsługuje dziedziczenie layoutów, co pozwala unikać duplikacji kodu.
Przykładowy layout bazowy (base.html):
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}Forum{% endblock %}</title>
</head>
<body>
<header>
{% block header %}{% endblock %}
</header>
<main>
{% block content %}{% endblock %}
</main>
<footer>
{% block footer %}{% endblock %}
</footer>
</body>
</html>
A teraz inny plik, który z niego dziedziczy:
{% extends "base.html" %}
{% block title %}Strona główna – Forum{% endblock %}
{% block content %}
<h1>Witaj na forum!</h1>
<p>Miłego dnia!</p>
{% endblock %}
W phpBB można stosować podobne podejście, szczególnie przy tworzeniu szablonów dla rozszerzeń.
7. Dodawanie własnych plików Twig w rozszerzeniu
Każde rozszerzenie może zawierać własne szablony w katalogu:
/ext/autor/nazwa_rozszerzenia/styles/all/template/
Przykład – chcemy stworzyć stronę z komunikatem.
Tworzymy plik message_body.html:
<!-- INCLUDE overall_header.html -->
<section class="message">
<h2>Informacja</h2>
<p>{{ CUSTOM_MESSAGE }}</p>
</section>
<!-- INCLUDE overall_footer.html -->
A w kontrolerze rozszerzenia:
$template->assign_var('CUSTOM_MESSAGE', 'To jest wiadomość z rozszerzenia.');
echo $template->set_filenames(['body' => 'message_body.html']);
page_header('Wiadomość');
page_footer();
Dzięki temu strona wczyta się z pełnym nagłówkiem i stopką forum, zachowując styl główny.
8. Używanie warunków i pętli Twig
Twig pozwala dynamicznie sterować zawartością strony.
Przykłady:
Warunek:
{% if S_USER_LOGGED_IN %}
<p>Witaj, {{ USERNAME }}!</p>
{% else %}
<p><a href="{{ U_LOGIN_LOGOUT }}">Zaloguj się</a></p>
{% endif %}
Pętla:
<ul>
{% for forum in loops.forumrow %}
<li>{{ forum.FORUM_NAME }}</li>
{% endfor %}
</ul>
To właśnie dzięki pętlom phpBB renderuje listę forów, tematów, użytkowników itp.
9. Modyfikowanie CSS i motywu
Wszystkie style CSS znajdują się w katalogu /theme/.
Najczęściej edytowane pliki to:
colours.css– kolory i tło,common.css– ogólne style layoutu,links.css,buttons.css– elementy interfejsu.
Po każdej zmianie należy odświeżyć cache stylu:
ACP → Dostosowywanie → Style → Odśwież.
Bez tego phpBB może wczytywać stare wersje CSS.
10. Dobre praktyki przy modyfikacji szablonów
✅ Nigdy nie edytuj oryginalnego stylu „prosilver” – zamiast tego dziedzicz po nim.
✅ Używaj folderu „event” w stylach, by dodawać fragmenty HTML przez eventy (overall_header_head_append.html, overall_footer_after.html).
✅ Zawsze testuj zmiany na kopii stylu.
✅ Czyść cache po każdej edycji szablonów.
✅ Zachowuj strukturę plików Twig – phpBB wymaga określonych nazw i lokalizacji.
11. Co przyniesie przyszłość – Twig 4 w phpBB 4.0
W zapowiadanej wersji phpBB 4.0 silnik Twig zostanie zaktualizowany do Twig 4, co przyniesie:
- jeszcze lepszą wydajność,
- wsparcie dla komponentów (Twig Components),
- mniejsze zużycie pamięci przy dużych forach.
Nowy system stylów ma też umożliwić tryb ciemny (dark mode) i łatwiejsze dziedziczenie layoutów.
Podsumowanie
System Twig w phpBB to nowoczesny i potężny sposób na tworzenie własnych motywów i modyfikowanie wyglądu forum bez ryzyka utraty kompatybilności.
Dzięki:
- dziedziczeniu layoutów,
- wbudowanym zmiennym,
- eventom szablonowym i czystemu kodowi,
możesz tworzyć profesjonalne style, które wyglądają świetnie i działają stabilnie nawet po aktualizacji phpBB.
Twig sprawia, że phpBB staje się nie tylko systemem forum, ale pełnoprawnym frameworkiem do budowy spójnych, estetycznych i elastycznych interfejsów.





Leave a Reply