Příklady úprav vzhledů fóra bez editace originálních šablon vzhledů
V tomto článku se podíváme na to, jak upravit vzhled fóra aniž by se musely upravovat originální šablony vzhledu. Výhodou tohoto postupu je to, že si při aktualizaci fóra nebo vzhledu nesmažete provedené úpravy, a že soubory nebudete muset znovu upravovat. Nevýhodou je, že budete muset porozumět tomu, jak fungují „události“ („eventy“) v šablonách.
„Události“ („eventy“) v šablonách
„Události“ („eventy“) slouží k tomu, aby se při instalaci rozšíření nemuseli upravovat originální soubory fóra. „Události“ jsou něco jako spouštěče nebo odkazy - když se zpracovává kód souboru a narazí se na „událost“, tak počítač zpracuje kód, na který odkazuje a pak pokračuje dál. „Události“ můžete najít v php souborech a v šablonách (ve složce styles/vas_vzhled/template). V tomto článku se budeme věnovat pouze „událostem“ v šablonách.
Pokud se občas podíváte do šablon v phpBB 3.1 a vyšším, tak jste si určitě všimli řádků, které vypadají následovně:
<!-- EVENT overall_header_body_before -->
Tyto řádky vždy začínají stejně označením
<!-- EVENT
, za kterým je název „události“. „Události“ se nachází téměř ve všech html souborech (šablonách) a jsou rozmístěny na strategických místech, na kterých se očekává, že by mohl být do šablon přidán nějaký kód. Pokud na nějakém místě „událost“ není, můžete o její přidání požádat vývojáře phpBB.
Události odkazují na soubory, které mají stejný název jako událost s koncovkou html. Například v souboru
styles/vas_vzhled/template/overall_header.html
je velmi používaná událost
<!-- EVENT overall_header_stylesheets_after -->
, pomocí které se dá změnit stylování fóra (to co je v css souborech ve složce
styles/vas_vzhled/theme
), a která odkazuje na soubor
ext/autor_rozsireni/nazev_rozsireni/styles/vas_vzhled/template/event/overall_header_stylesheets_after.html
. Takhle to funguje v případě, že tento soubor existuje - pokud neexistuje, tak „událost“ nic nespustí.
Rozšíření „Insert template code“
Rozšíření „Insert template code“ je velmi jednoduché rozšíření, pomocí kterého lze přes „události“ přidávat do šablon kód.
Rozšíření můžete stáhnout na
GitHubu.
Instalace - Pokud nepoužíváte rozšíření
„Upload Extension“ („Nahrát rozšíření“), tak nahrajte soubory rozšíření do složky
ext/marttiphpbb/inserttemplatecode
a povolte ho v „Administraci“ - „Přizpůsobení“ - „Správa rozšíření“ - „Správce rozšíření“.
Po instalaci rozšíření se podívejte do složky
ext/marttiphpbb/inserttemplatecode/style/all/template/event
, ve které už nějaké „soubory událostí“ jsou. Můžete začít psát kód přímo do nich, nebo si najít pro vaše účely lépe umístěnou „událost“, na základě které si v této složce vytvoříte nový html „soubor události“ (se stejným názvem jako má „událost“).
Některé „soubory událostí“ můžou časem obsahovat více úprav a můžou být nepřehledné. V tomto případě můžete vytvořit ve složce
ext/marttiphpbb/inserttemplatecode/style/all/template/
vlastní soubory (pozor na to, že to není stejná složka jako ta, kam se dávají „soubory událostí“ v šablonách, ale její nadřazená složka). Na tyto soubory musíte odkázat v hlavních „souborech událostí“ tímto kódem
<!-- INCLUDE muj_soubor.html -->
(
muj_soubor.html
nahraďte názvem svého souboru).
Po jakékoliv změně v šablonách, nebo v souborech událostí nezapomeňte v administraci promazat cache fóra.
Na konci tohoto příspěvku můžete najít
seznam různých úprav fóra provedených pomocí rozšíření Insert template code.
xxxxxx
Originální text pro rozšíření Custom Code, které od verze phpBB 3.1.6 nefunguje
Příklady úprav fóra pomocí rozšíření „Custom code“ („Vlastní kód“)
Pomocí rozšíření
„Custom code“ („Vlastní kód“) jde do fóra přidávat html, css nebo javascript kód bez toho, aby se museli upravovat originální soubory fóra. Kód se přidává v administraci rozšíření do souborů, které jsou propojeny s událostmi (eventy) šablon. Krátký úvod do používání tohoto rozšíření najdete
tady.
V tomto tématu najdete příklady úprav fóra pomocí rozšíření „Custom code“ („Vlastní kód“).
Přidání vlastního souboru #
Všechny soubory rozšíření, do kterých se přidává vlastní kód, jsou uloženy ve složce
store/customcode/
. Při instalaci rozšíření je ve výše uvedené složce vytvořeno několik souborů, které jde v administraci upravovat, takže můžete napsat kód přímo do nich. Pokud tam ale chcete napsat něco delšího, je lepší vytvořit soubor nový, na který se potom odkáže v jednom z těch originálních souborů (aby se načetl).
Nový soubor jde vytvořit velmi snadno v administraci rozšíření („Administrace“ - „Rozšíření“ - „Vlastní kód“ - „Správa souborů“), kde ve spodní části najdete pole, do kterého zadáte název souboru a kliknete na tlačítko „Vytvořit soubor“.
Asi na tom moc nezáleží, ale já si pro přehlednost do názvu souborů přidávám předponu
muj_
, protože mám pocit, že se soubory ve „Správě souborů“ řadí podle jejich názvů a takhle zůstanou všechny mnou přidané soubory pohromadě. Kromě toho je dobrý vymyslet název souboru, který vystihuje kód, který se v souboru nachází. Například:
moje_uprava_hlavicky_prosilver.html
mi říká, že se v souboru nachází můj kód, kterým nějak upravuju hlavičku fóra ve vzhledu prosilver.
Odkaz na vlastní soubor #
Po vytvoření vlastního souboru musíte na soubor odkázat z jednoho z originálních souborů rozšíření, aby se načetl. To uděláte tak, že do originálního souboru napíšete následující kód:
Kód: Vybrat vše
<!-- INCLUDE ../../../../../../store/customcode/muj_soubor.html -->
Pozor: v názvech souborů záleží na velikosti písmen.
Pokud napíšete název souboru špatně, tak se vám místo fóra ukáže podobná hláška:
Kód: Vybrat vše
Fatal error: Uncaught exception 'Twig_Error_Loader' with message 'Unable to find template "../../../../../../store/customcode/muj_stajling_fora_Prosilver.html" (looked into: ./styles/prosilver/template, ./styles/prosilver/theme) in "../../../../../../store/customcode/overall_header_stylesheets_after.html" at line 4.' in /xxx/yyy/zzz/forum1_phpBB31/vendor/twig/twig/lib/Twig/Loader/Filesystem.php:202 Stack trace: #0 /xxx/yyy/zzz/forum1_phpBB31/phpbb/template/twig/loader.php(106): Twig_Loader_Filesystem->findTemplate('../../../../../...') #1 /xxx/yyy/zzz/forum1_phpBB31/vendor/twig/twig/lib/Twig/Loader/Filesystem.php(138): phpbb\template\twig\loader->findTemplate('../../../../../...') #2 /xxx/yyy/zzz/forum1_phpBB31/vendor/twig/twig/lib/Twig/Environment.php(265): Twig_Loader_Filesystem->getCacheKey('../../../../../...') #3 /xxx/yyy/zzz/forum1_phpBB31/vendor/twig/twig/lib/Twig/Environment.php(312): Twig_Environment->getTemplateClass('../../../../../...', NULL in /xxx/yyy/zzz/forum1_phpBB31/vendor/twig/twig/lib/Twig/Loader/Filesystem.php on line 202
xxxxxx
Úvod do podmínek v šablonách #
Pomocí podmínek v šablonách lze zobrazit vlastní kód na fóru jen tam, kde to odpovídá zadané podmínce. Tak lze zobrazit kód na základě
zobrazeného vzhledu,
jazyka uživatele,
zobrazené stránky nebo jen
pro určité uživatele.
Podmínky se tvoří pomocí proměnných, jejichž seznam (spíš je to rozcestník) naleznete
tady.
Obecně se podmínky píšou takhle:
Kód: Vybrat vše
<!-- IF PROMĚNNÁ -->
vlastní kód
<!-- ENDIF -->
což znamená, že vlastní kód bude zobrazen, pokud bude splněno to, co je v proměnné.
Např.
<!-- IF S_USER_LOGGED_IN -->
- zobrazí kód pouze pro přihlášené.
Kód: Vybrat vše
<!-- IF not PROMĚNNÁ -->
vlastní kód
<!-- ENDIF -->
V tomto případě bude naopak zobrazen vlastní kód všude mimo to, co je v proměnné.
Např.
<!-- IF not S_USER_LOGGED_IN -->
- zobrazí kód pouze pro nepřihlášené.
Pokud chcete zobrazit kód 1 pro proměnnou 1, kód 2 pro proměnnou 2 a kód 3 pro ostatní proměnné, vytvoříte něco jako tohle:
Kód: Vybrat vše
<!-- IF PROMĚNNÁ_1 -->
vlastní kód 1
<!-- ELSEIF PROMĚNNÁ_2 -->
vlastní kód 2
<!-- ELSE -->
vlastní kód 3
<!-- ENDIF -->
Podmínky jde také kombinovat. Např.:
Kód: Vybrat vše
<!-- IF PROMĚNNÁ_1 and PROMĚNNÁ_2 -->
vlastní kód 1
<!-- ENDIF -->
znamená, že se kód zobrazí tam, kde je splněno to, co je v proměnné 1
a zároveň to, co je v proměnné 2.
Kód: Vybrat vše
<!-- IF PROMĚNNÁ_1 or PROMĚNNÁ_2 -->
vlastní kód 1
<!-- ENDIF -->
znamená, že se kód zobrazí tam, kde je splněno to, co je v proměnné 1
nebo to, co je v proměnné 2.
Občas je lepší podmínky nekombinovat, ale vložit do sebe:
Kód: Vybrat vše
<!-- IF PODMÍNKA_1 -->
<!-- IF PODMÍNKA_2_PROMĚNNÁ_1 -->
vlastní kód 1
<!-- ELSEIF PODMÍNKA_2_PROMĚNNÁ_2 -->
vlastní kód 2
<!-- ELSE -->
vlastní kód 3
<!-- ENDIF -->
<!-- ENDIF -->
Tzn. že u všech tří vlastních kódů musí být splněná podmínka 1 a na podmínce 2 záleží, jestli bude zobrazen vlastní kód 1, 2 nebo 3. Taky si všimněte, že každá podmínka má svůj
<!-- ENDIF -->
. To je dobrý si pamatovat, protože pokud na
<!-- ENDIF -->
zapomenete, vyskočí vám chyba.
U některých proměnných bývá řetězec (v seznamu podmínek jsou mají označení "Type: String"). Např.:
Kód: Vybrat vše
<!-- IF T_TEMPLATE_NAME == 'prosilver' -->
vlastní kód
<!-- ENDIF -->
zobrazí vlastní kód pouze v prosilveru. Pokud ho chcete zobrazit všude mimo prosilver napíšete to takhle:
Kód: Vybrat vše
<!-- IF T_TEMPLATE_NAME != 'prosilver' -->
vlastní kód
<!-- ENDIF -->
Všimněte si změny z
==
na
!=
.
Důležité: Nezapomeňte na ukončovací
<!-- ENDIF -->
(a počáteční
IF
) - vyhodilo by to při testování chyby. Proto je lepší si nechat stránku v administraci, kde upravujete vlastní kód, otevřenou a testovat na nové záložce prohlížeče.
Vlastní kód jen v určitém vzhledu #
Pokud máte na fóru nainstalováno více vzhledů, tak se může stát, že chcete, aby se vlastní kód aplikoval jen na určitý vzhled. To uděláte tak, že v kódu použijete následující podmínku:
Kód: Vybrat vše
<!-- IF T_TEMPLATE_NAME == 'prosilver' -->
vlastní kód
<!-- ENDIF -->
Různý vlastní kód do více stylů různých vzhledů jde přidat nějak takhle:
Kód: Vybrat vše
<!-- IF T_TEMPLATE_NAME == 'prosilver' -->
vlastní kód pro prosilver
<!-- ELSEIF T_TEMPLATE_NAME == 'vzhled_xy' -->
vlastní kód pro vzhled_xy
<!-- ELSE -->
vlastní kód pro ostatní vzhledy, kromě vzhledů prosilver a vzhled_xy
<!-- ENDIF -->
Vlastní kód na základě jazyka uživatele #
Pokud máte na fóru nainstalováno více jazyků, můžete zobrazit uživatelům vlastní kód na základě toho, který jazyk používají. Tzn., že uživatelům, kteří používají např. angličtinu se zobrazí nějaké upozornění (nebo něco jiného) a uživatelé, kteří používají češtinu ho neuvidí.
Stejně jako v případě vzhledů musíte i pro jazyky do kódu přidat podmínku:
Kód: Vybrat vše
<!-- IF S_USER_LANG == 'cs-alt' -->
vlastní kód
<!-- ENDIF -->
To zobrazí vlastní kód jenom těm, kteří používají alternativní češtinu (nebo jazyk s označením cs-alt).
Různé vlastní kódy přidané na základě více jazyků jde přidat nějak takhle:
Kód: Vybrat vše
<!-- IF S_USER_LANG == 'cs-alt' -->
vlastní kód pro uživatele s alternativní češtinou
<!-- ELSEIF S_USER_LANG == 'en-gb' -->
vlastní kód pro uživatele s angličtinou
<!-- ELSE -->
vlastní kód pro ostatní jazyky, kromě alternativní češtiny a angličtiny
<!-- ENDIF -->
Kódy jazyků zjistíte v jazykovém souboru
language/vas_jazyk/common.php
, ve kterém najdete (na skoro začátku souboru) řádek
'USER_LANG'
a za šipkou je označení, které v podmínce použijete.
Vlastní kód na určité stránce #
Vlastní kód jde zobrazit i v závislosti na zobrazené stránce, takže např. uživatel, který je na obsahu fóra (
index.php
) vlastní kód uvidí a druhý uživatel, který čte příspěvky (
viewtopic.php
) vlastní kód neuvidí. Dělá se to opět pomocí podmínek v šablonách, do kterých se napíše pomocí proměnné
SCRIPT_NAME
závislost na názvu skriptu (bez přípony). Vypadá to nějak takhle:
Kód: Vybrat vše
<!-- IF SCRIPT_NAME == 'index' -->
vlastní kód
<!-- ENDIF -->
Tím se zobrazí vlastní kód na obsahu fóra. Všimněte si, že jsem nepoužil příponu
php
. Pokud je
index.php
, kde vlastní kód zobrazit nechcete, můžete to napsat nějak takhle:
Kód: Vybrat vše
<!-- IF SCRIPT_NAME != 'index' -->
vlastní kód
<!-- ENDIF -->
Další skripty (ne všechny) jsou:
ucp
- uživatelský panel
memberlist
- seznam členů
viewforum
- seznam témat
viewtopic
- téma
mcp
- moderátorský panel
faq
-FAQ
Některé z těchto skriptů obsahují i další podstránky, které mají vlastní parametr. Asi nejvíc je to vidět na skriptu
ucp
, kde může být:
ucp.php?mode=register
- registrační stránky
ucp.php?mode=login
- přihlašovací stránka
ucp.php?i=ucp_pm
- soukromé zprávy v uživatelském panelu
Rozšíření Vlastní kód na to myslí a přidává k proměnné
SCRIPT_NAME
i vlastní proměnnou
CUSTOMCODE_PARAM_<parametr>
, pomocí které jde vlastní kód zobrazit téměř kdekoliv ve fóru. Pokud tedy chci zobrazit vlastní kód pouze na registrační stránce, napíšu takovouto podmínku:
Kód: Vybrat vše
<!-- IF SCRIPT_NAME == 'ucp' and CUSTOMCODE_PARAM_MODE == 'register' -->
vlastní kód
<!-- ENDIF -->
která znamená, že se vlastní kód zobrazí:
- pokud je název skriptu ucp -
IF SCRIPT_NAME == 'ucp'
- parametr s názvem mode je register -
CUSTOMCODE_PARAM_MODE == 'register'
V posledním řádku si všimněte části
MODE
a
register
, která je použitá z adresy končící na
ucp.php?mode=register
.
Pokud budete chtít zobrazit vlastní kód na stránce
ucp.php?i=ucp_pm
tak napíšete podmínku takhle:
Kód: Vybrat vše
<!-- IF SCRIPT_NAME == 'ucp' and CUSTOMCODE_PARAM_I == 'ucp_pm' -->
vlastní kód
<!-- ENDIF -->
Všimněte si, že tady je
I
a ne
MODE
Vlastní kód jde zobrazit i v závislosti na fóru. To se hodí třeba k zobrazení různého pozadí hlavičky na různých fórech. Dělá se to pomocí proměnné
S_FORUM_ID
za kterou se doplní ID fóra, které jde zjistit zadresy fóra, kde je parametr
f=
s ID fóra. Např. na následující adrese:
http://www.domena/forum/viewforum.php?f=72
je ID fóra 72 a na následující adrese:
http://www.domena/forum/viewtopic.php?f=74&t=552
je ID fóra 74.
Pokud tedy potřebujete zobrazit vlastní kód pouze ve fóru s ID 32 napíšete takovouhle podmínku:
Kód: Vybrat vše
<!-- IF S_FORUM_ID == '32' -->
vlastní kód
<!-- ENDIF -->
Pokud chcete zobrazit vlastní kód ve více fórech (například na kategorii a jejích podfórech) můžete napsat:
Kód: Vybrat vše
<!-- IF S_FORUM_ID == '32' or S_FORUM_ID == '33' -->
vlastní kód
<!-- ENDIF -->
Vlastní kód jen pro určité uživatele #
Vlastní kód jde zobrazit i na základě různých vlastností uživatelů (např. jestli uživatel je nebo není přihlášený, bot, administrátor, nový člen fóra, moderátor)
dělá se to pomocí proměnných:
S_USER_LOGGED_IN
- přihlášený uživatel
S_REGISTERED_USER
- uživatel je zaregistrován, ale není bot
S_USER_NEW
- uživatel je ve skupině nově registrovaných uživatelů
S_IS_BOT
- uživatel je bot (ve skupině Boti)
U_ACP
- administrátor
U_MCP
- moderátor
S_USERNAME
- jméno uživatele
Pokud tedy chcete zobrazit vlastní kód pouze přihlášeným, vytvoříte následující podmínku:
Kód: Vybrat vše
<!-- IF S_USER_LOGGED_IN -->
vlastní kód
<!-- ENDIF -->
Pokud chcete vlastní kód zobrazit jen nepřihlášeným, použijte tuto podmínku:
Kód: Vybrat vše
<!-- IF not S_USER_LOGGED_IN -->
vlastní kód
<!-- ENDIF -->
Podobně to funguje i pro boty, nové uživatele, administrátory a moderátory. Pokud chcete zobrazit něco jen uživateli xyz tak to napíšete takhle:
Kód: Vybrat vše
<!-- IF S_USERNAME == 'xyz' -->
vlastní kód
<!-- ENDIF -->
Pokud vlastní kód chcete zobrazit všem mimo uživatele xyz, použijte tuto podmínku
Kód: Vybrat vše
<!-- IF S_USERNAME != 'leschek' -->
vlastní kód
<!-- ENDIF -->
Komentáře k souborům #
Pokud chcete do souboru přidat komentář, který se zobrazí v tabulce se soubory v nastavení rozšíření ("Administrace" - "Rozšíření" - "Vlastní kód" - "Správa souborů"), tak na první řádek souboru vložte následující kód:
Poznámky k příkladům úprav fóra #
xxxxxx
POZOR - Původní text pro rozšíření Custom Code, které od verze phpBB 3.1.6 nefunguje
Vlastní kód lze přidat do originálních souborů rozšíření (s označením (U)) nebo do vlastních souborů, na které se vytvoří odkaz v originálním souboru rozšíření. Protože jsem línej a taky abych se zbytečně neopakoval, budu v následujících příkladech popisovat přidání vlastního kódu pouze do originálních souborů, což pro vás bude znamenat, že můžete přidat soubor podle návodu do originálního souboru rozšíření, nebo že si vytvoříte
vlastni_soubor.html
, do kterého kód přidáte a do v příkladu zmíněného souboru napíšete odkaz na vámi vytvořený vlastní soubor s kódem.
Příklad: Pokud uvidíte napsáno:
do souboru overall_header_stylesheets_after.html
vložte následující kód:
bude to znamenat, že můžete vložit svůj kód přímo do výše zmíněného souboru
overall_header_stylesheets_after.html
, nebo si můžete
vytvořit nový soubor, do kterého kód vložíte a pak výše zmíněného do souboru napíšete
odkaz na vámi vytvořený soubor.[/i]
xxxxx
- Kód se přidává do souborů událostí ve složce
ext/marttiphpbb/inserttemplatecode/style/all/template/event/soubor_udalosti.html
. Pokud je v příkladech uveden jen název souboru, tak to znamená, že má být vložen do výše zmíněné složky (přijde mi zbytečné psát celou cestu k souboru).
Kód můžete napsat přímo do souboru události, nebo si vytvořit vlastní soubor, jak je popsáno tady. V příkladech budu uvádět jen hlavní soubory událostí. Jestli si vytvoříte vlastní soubor, záleží na vás.
Originální soubor fóra (ve složce styles/vas_vzhled/template), ve kterém se událost nachází. lze snadno odvodit z názvu souboru události. Např. soubor události overall_header_navbar_before.html
patří k události <!-- EVENT overall_header_navbar_before -->
v souboru overall_header.html
(všimněte si začátku názvu souboru a události).
- Pokud budete chtít do jednoho souboru přidat několik úprav stylů za sebou nemusíte psát:
Kód: Vybrat vše
<style>
nějaký kód
</style>
<style>
nějaký jiný kód
</style>
ale můžete to vložit takhle:
Kód: Vybrat vše
<style>
nějaký kód
nějaký jiný kód
</style>
- Příklady kódů budou psané (pokud nebude uvedeno jinak) pro prosilver, tzn. že pokud používáte jiný vzhled, budete si muset kód upravit, aby se do vašeho vzhledu hodil. Taky to znamená, že pokud používáte na fóru více vzhledů, bude na vás, jestli chcete přidat kód do všech vzhledů, nebo jestli použijete podmínku, aby se kód zobrazil pouze v určitém vzhledu.
xxxxx
POZOR - originální text pro rozšíření CustomCode, které od verze phpBB 3.1.6 nefunguje
Po vložení kódu do souboru nezapomeňte kliknout dole na tlačítko "Uložit a pročistit cache" nebo jen "Uložit" a na následující stránce toto uložení potvrdit. Dokud to nepotvrdíte, tak se kód do souboru nezapíše. Protože se šablony cacheují, je nutné po přidání vlastního kódu pročistit cache (aby se kód zobrazil), nebo kliknout na tlačítko "Uložit a pročistit cache", které se postará o obojí.
U příkladů úprav fóra nebudu psát, že se kód má uložit, protože mi to připadá zbytečné
xxxxx
Seznam úprav fóra pomocí událostí v šablonách#
Změna šířky fóra
Změna barvy pozadí fóra na jinou barvu nebo proužky
Změna loga
Úpravy názvu a popisu fóra (změna barvy textu, vycentrování textu na hlavičce)
Jeden větší obrázek na pozadí hlavičky fóra
Jednoduchý rámeček se textem (pod hlavičkou, jde použít např. na oznámení)
Tlačítka pro přepínání jazyků fóra (pro hosty, v hlavičce nebo v navigaci)
Odkazy na předchozí a další téma
Stylování BBKódů (příklad s BBKódem „C“ - kód na řádku)
[color=green][size=180][b]Příklady úprav vzhledů fóra bez editace originálních šablon vzhledů[/b][/size][/color]
V tomto článku se podíváme na to, jak upravit vzhled fóra aniž by se musely upravovat originální šablony vzhledu. Výhodou tohoto postupu je to, že si při aktualizaci fóra nebo vzhledu nesmažete provedené úpravy, a že soubory nebudete muset znovu upravovat. Nevýhodou je, že budete muset porozumět tomu, jak fungují [uvoz]události[/uvoz] ([uvoz]eventy[/uvoz]) v šablonách.
[color=green][size=150][b][uvoz]Události[/uvoz] ([uvoz]eventy[/uvoz]) v šablonách[/b][/size][/color]
[uvoz]Události[/uvoz] ([uvoz]eventy[/uvoz]) slouží k tomu, aby se při instalaci rozšíření nemuseli upravovat originální soubory fóra. [uvoz]Události[/uvoz] jsou něco jako spouštěče nebo odkazy - když se zpracovává kód souboru a narazí se na [uvoz]událost[/uvoz], tak počítač zpracuje kód, na který odkazuje a pak pokračuje dál. [uvoz]Události[/uvoz] můžete najít v php souborech a v šablonách (ve složce styles/vas_vzhled/template). V tomto článku se budeme věnovat pouze [uvoz]událostem[/uvoz] v šablonách.
Pokud se občas podíváte do šablon v phpBB 3.1 a vyšším, tak jste si určitě všimli řádků, které vypadají následovně:
[c]<!-- EVENT overall_header_body_before -->[/c]
Tyto řádky vždy začínají stejně označením [c]<!-- EVENT[/c], za kterým je název [uvoz]události[/uvoz]. [uvoz]Události[/uvoz] se nachází téměř ve všech html souborech (šablonách) a jsou rozmístěny na strategických místech, na kterých se očekává, že by mohl být do šablon přidán nějaký kód. Pokud na nějakém místě [uvoz]událost[/uvoz] není, můžete o její přidání požádat vývojáře phpBB.
Události odkazují na soubory, které mají stejný název jako událost s koncovkou html. Například v souboru [c]styles/vas_vzhled/template/overall_header.html[/c] je velmi používaná událost [c]<!-- EVENT overall_header_stylesheets_after -->[/c], pomocí které se dá změnit stylování fóra (to co je v css souborech ve složce [c]styles/vas_vzhled/theme[/c]), a která odkazuje na soubor [c]ext/autor_rozsireni/nazev_rozsireni/styles/vas_vzhled/template/event/overall_header_stylesheets_after.html[/c]. Takhle to funguje v případě, že tento soubor existuje - pokud neexistuje, tak [uvoz]událost[/uvoz] nic nespustí.
[color=green][size=150][b]Rozšíření [uvoz]Insert template code[/uvoz][/b][/size][/color]
Rozšíření [uvoz]Insert template code[/uvoz] je velmi jednoduché rozšíření, pomocí kterého lze přes [uvoz]události[/uvoz] přidávat do šablon kód.
Rozšíření můžete stáhnout na [url=https://github.com/marttiphpbb/phpbb-ext-inserttemplatecode]GitHubu[/url].
[b]Instalace[/b] - Pokud nepoužíváte rozšíření [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=537&p=932#p932][uvoz]Upload Extension[/uvoz] ([uvoz]Nahrát rozšíření[/uvoz])[/url], tak nahrajte soubory rozšíření do složky [c]ext/marttiphpbb/inserttemplatecode[/c] a povolte ho v [uvoz]Administraci[/uvoz] - [uvoz]Přizpůsobení[/uvoz] - [uvoz]Správa rozšíření[/uvoz] - [uvoz]Správce rozšíření[/uvoz].
Po instalaci rozšíření se podívejte do složky [c]ext/marttiphpbb/inserttemplatecode/style/all/template/event[/c], ve které už nějaké [uvoz]soubory událostí[/uvoz] jsou. Můžete začít psát kód přímo do nich, nebo si najít pro vaše účely lépe umístěnou [uvoz]událost[/uvoz], na základě které si v této složce vytvoříte nový html [uvoz]soubor události[/uvoz] (se stejným názvem jako má [uvoz]událost[/uvoz]).
[anchor=vlastni_soubory][/anchor]
Některé [uvoz]soubory událostí[/uvoz] můžou časem obsahovat více úprav a můžou být nepřehledné. V tomto případě můžete vytvořit ve složce [c]ext/marttiphpbb/inserttemplatecode/style/all/template/[/c] vlastní soubory (pozor na to, že to není stejná složka jako ta, kam se dávají [uvoz]soubory událostí[/uvoz] v šablonách, ale její nadřazená složka). Na tyto soubory musíte odkázat v hlavních [uvoz]souborech událostí[/uvoz] tímto kódem [c]<!-- INCLUDE muj_soubor.html -->[/c] ([c]muj_soubor.html[/c] nahraďte názvem svého souboru).
Po jakékoliv změně v šablonách, nebo v souborech událostí nezapomeňte v administraci promazat cache fóra.
Na konci tohoto příspěvku můžete najít [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#seznam_uprav]seznam různých úprav fóra provedených pomocí rozšíření Insert template code[/url].
xxxxxx
[mzr][/mzr]
[rozbalto=Originální text pro rozšíření Custom Code, které od verze phpBB 3.1.6 nefunguje][color=green][size=180][b]Příklady úprav fóra pomocí rozšíření [uvoz]Custom code[/uvoz] ([uvoz]Vlastní kód[/uvoz])[/b][/size][/color]
Pomocí rozšíření [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=554&p=974#p974][uvoz]Custom code[/uvoz] ([uvoz]Vlastní kód[/uvoz])[/url] jde do fóra přidávat html, css nebo javascript kód bez toho, aby se museli upravovat originální soubory fóra. Kód se přidává v administraci rozšíření do souborů, které jsou propojeny s událostmi (eventy) šablon. Krátký úvod do používání tohoto rozšíření najdete [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=554&p=974#kratky_navod]tady[/url].
V tomto tématu najdete příklady úprav fóra pomocí rozšíření [uvoz]Custom code[/uvoz] ([uvoz]Vlastní kód[/uvoz]).
[anchor=pridani_vlastniho_souboru][/anchor]
[color=green][size=150][b]Přidání vlastního souboru[/b][/size][/color] [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#pridani_vlastniho_souboru]#[/url]
Všechny soubory rozšíření, do kterých se přidává vlastní kód, jsou uloženy ve složce [c]store/customcode/[/c]. Při instalaci rozšíření je ve výše uvedené složce vytvořeno několik souborů, které jde v administraci upravovat, takže můžete napsat kód přímo do nich. Pokud tam ale chcete napsat něco delšího, je lepší vytvořit soubor nový, na který se potom odkáže v jednom z těch originálních souborů (aby se načetl).
[image]357[/image]
Nový soubor jde vytvořit velmi snadno v administraci rozšíření ([uvoz]Administrace[/uvoz] - [uvoz]Rozšíření[/uvoz] - [uvoz]Vlastní kód[/uvoz] - [uvoz]Správa souborů[/uvoz]), kde ve spodní části najdete pole, do kterého zadáte název souboru a kliknete na tlačítko [uvoz]Vytvořit soubor[/uvoz].
Asi na tom moc nezáleží, ale já si pro přehlednost do názvu souborů přidávám předponu [c]muj_[/c], protože mám pocit, že se soubory ve [uvoz]Správě souborů[/uvoz] řadí podle jejich názvů a takhle zůstanou všechny mnou přidané soubory pohromadě. Kromě toho je dobrý vymyslet název souboru, který vystihuje kód, který se v souboru nachází. Například:
[c]moje_uprava_hlavicky_prosilver.html[/c]
mi říká, že se v souboru nachází můj kód, kterým nějak upravuju hlavičku fóra ve vzhledu prosilver.
[anchor=odkaz_na_vlastni_soubor][/anchor]
[color=green][size=150][b]Odkaz na vlastní soubor[/b][/size][/color] [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#odkaz_na_vlastni_soubor]#[/url]
Po vytvoření vlastního souboru musíte na soubor odkázat z jednoho z originálních souborů rozšíření, aby se načetl. To uděláte tak, že do originálního souboru napíšete následující kód:
[code]<!-- INCLUDE ../../../../../../store/customcode/muj_soubor.html -->[/code]
Pozor: v názvech souborů záleží na velikosti písmen.
Pokud napíšete název souboru špatně, tak se vám místo fóra ukáže podobná hláška:
[code]Fatal error: Uncaught exception 'Twig_Error_Loader' with message 'Unable to find template "../../../../../../store/customcode/muj_stajling_fora_Prosilver.html" (looked into: ./styles/prosilver/template, ./styles/prosilver/theme) in "../../../../../../store/customcode/overall_header_stylesheets_after.html" at line 4.' in /xxx/yyy/zzz/forum1_phpBB31/vendor/twig/twig/lib/Twig/Loader/Filesystem.php:202 Stack trace: #0 /xxx/yyy/zzz/forum1_phpBB31/phpbb/template/twig/loader.php(106): Twig_Loader_Filesystem->findTemplate('../../../../../...') #1 /xxx/yyy/zzz/forum1_phpBB31/vendor/twig/twig/lib/Twig/Loader/Filesystem.php(138): phpbb\template\twig\loader->findTemplate('../../../../../...') #2 /xxx/yyy/zzz/forum1_phpBB31/vendor/twig/twig/lib/Twig/Environment.php(265): Twig_Loader_Filesystem->getCacheKey('../../../../../...') #3 /xxx/yyy/zzz/forum1_phpBB31/vendor/twig/twig/lib/Twig/Environment.php(312): Twig_Environment->getTemplateClass('../../../../../...', NULL in /xxx/yyy/zzz/forum1_phpBB31/vendor/twig/twig/lib/Twig/Loader/Filesystem.php on line 202[/code][/rozbalto]
xxxxxx
[anchor=vlastni_kod_uvod_do_podminek][/anchor]
[color=green][size=150][b]Úvod do podmínek v šablonách[/b][/size][/color] [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_kod_uvod_do_podminek]#[/url]
Pomocí podmínek v šablonách lze zobrazit vlastní kód na fóru jen tam, kde to odpovídá zadané podmínce. Tak lze zobrazit kód na základě [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_kod_jen_v_urcitem_vzhledu]zobrazeného vzhledu[/url], [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_kod_na_zaklade_jazyka_uzivatele]jazyka uživatele[/url], [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_kod_na_urcite_strance]zobrazené stránky[/url] nebo jen [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_kod_pro_urcite_uzivatele]pro určité uživatele[/url].
Podmínky se tvoří pomocí proměnných, jejichž seznam (spíš je to rozcestník) naleznete [url=https://wiki.phpbb.com/Category:Template_Variables]tady[/url].
Obecně se podmínky píšou takhle:
[code]<!-- IF PROMĚNNÁ -->
vlastní kód
<!-- ENDIF -->[/code]
což znamená, že vlastní kód bude zobrazen, pokud bude splněno to, co je v proměnné.
Např. [c]<!-- IF S_USER_LOGGED_IN -->[/c] - zobrazí kód pouze pro přihlášené.
[code]<!-- IF not PROMĚNNÁ -->
vlastní kód
<!-- ENDIF -->[/code]
V tomto případě bude naopak zobrazen vlastní kód všude mimo to, co je v proměnné.
Např. [c]<!-- IF not S_USER_LOGGED_IN -->[/c] - zobrazí kód pouze pro nepřihlášené.
Pokud chcete zobrazit kód 1 pro proměnnou 1, kód 2 pro proměnnou 2 a kód 3 pro ostatní proměnné, vytvoříte něco jako tohle:
[code]<!-- IF PROMĚNNÁ_1 -->
vlastní kód 1
<!-- ELSEIF PROMĚNNÁ_2 -->
vlastní kód 2
<!-- ELSE -->
vlastní kód 3
<!-- ENDIF -->[/code]
Podmínky jde také kombinovat. Např.:
[code]<!-- IF PROMĚNNÁ_1 and PROMĚNNÁ_2 -->
vlastní kód 1
<!-- ENDIF -->[/code]
znamená, že se kód zobrazí tam, kde je splněno to, co je v proměnné 1 [b]a zároveň[/b] to, co je v proměnné 2.
[code]<!-- IF PROMĚNNÁ_1 or PROMĚNNÁ_2 -->
vlastní kód 1
<!-- ENDIF -->[/code]
znamená, že se kód zobrazí tam, kde je splněno to, co je v proměnné 1 [b]nebo[/b] to, co je v proměnné 2.
Občas je lepší podmínky nekombinovat, ale vložit do sebe:
[code]<!-- IF PODMÍNKA_1 -->
<!-- IF PODMÍNKA_2_PROMĚNNÁ_1 -->
vlastní kód 1
<!-- ELSEIF PODMÍNKA_2_PROMĚNNÁ_2 -->
vlastní kód 2
<!-- ELSE -->
vlastní kód 3
<!-- ENDIF -->
<!-- ENDIF -->[/code]
Tzn. že u všech tří vlastních kódů musí být splněná podmínka 1 a na podmínce 2 záleží, jestli bude zobrazen vlastní kód 1, 2 nebo 3. Taky si všimněte, že každá podmínka má svůj [c]<!-- ENDIF -->[/c]. To je dobrý si pamatovat, protože pokud na [c]<!-- ENDIF -->[/c] zapomenete, vyskočí vám chyba.
U některých proměnných bývá řetězec (v seznamu podmínek jsou mají označení "Type: String"). Např.:
[code]<!-- IF T_TEMPLATE_NAME == 'prosilver' -->
vlastní kód
<!-- ENDIF -->[/code]
zobrazí vlastní kód pouze v prosilveru. Pokud ho chcete zobrazit všude mimo prosilver napíšete to takhle:
[code]<!-- IF T_TEMPLATE_NAME != 'prosilver' -->
vlastní kód
<!-- ENDIF -->[/code]
Všimněte si změny z [c]==[/c] na [c]!=[/c].
[b]Důležité[/b]: Nezapomeňte na ukončovací [c]<!-- ENDIF -->[/c] (a počáteční [c]IF[/c]) - vyhodilo by to při testování chyby. Proto je lepší si nechat stránku v administraci, kde upravujete vlastní kód, otevřenou a testovat na nové záložce prohlížeče.
[anchor=vlastni_kod_jen_v_urcitem_vzhledu][/anchor]
[color=green][size=150][b]Vlastní kód jen v určitém vzhledu[/b][/size][/color] [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_kod_jen_v_urcitem_vzhledu]#[/url]
Pokud máte na fóru nainstalováno více vzhledů, tak se může stát, že chcete, aby se vlastní kód aplikoval jen na určitý vzhled. To uděláte tak, že v kódu použijete následující podmínku:
[code]<!-- IF T_TEMPLATE_NAME == 'prosilver' -->
vlastní kód
<!-- ENDIF -->[/code]
Různý vlastní kód do více stylů různých vzhledů jde přidat nějak takhle:
[code]<!-- IF T_TEMPLATE_NAME == 'prosilver' -->
vlastní kód pro prosilver
<!-- ELSEIF T_TEMPLATE_NAME == 'vzhled_xy' -->
vlastní kód pro vzhled_xy
<!-- ELSE -->
vlastní kód pro ostatní vzhledy, kromě vzhledů prosilver a vzhled_xy
<!-- ENDIF -->[/code]
[anchor=vlastni_kod_na_zaklade_jazyka_uzivatele][/anchor]
[color=green][size=150][b]Vlastní kód na základě jazyka uživatele[/b][/size][/color] [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_kod_na_zaklade_jazyka_uzivatele]#[/url]
Pokud máte na fóru nainstalováno více jazyků, můžete zobrazit uživatelům vlastní kód na základě toho, který jazyk používají. Tzn., že uživatelům, kteří používají např. angličtinu se zobrazí nějaké upozornění (nebo něco jiného) a uživatelé, kteří používají češtinu ho neuvidí.
Stejně jako v případě vzhledů musíte i pro jazyky do kódu přidat podmínku:
[code]<!-- IF S_USER_LANG == 'cs-alt' -->
vlastní kód
<!-- ENDIF -->[/code]
To zobrazí vlastní kód jenom těm, kteří používají alternativní češtinu (nebo jazyk s označením cs-alt).
Různé vlastní kódy přidané na základě více jazyků jde přidat nějak takhle:
[code]<!-- IF S_USER_LANG == 'cs-alt' -->
vlastní kód pro uživatele s alternativní češtinou
<!-- ELSEIF S_USER_LANG == 'en-gb' -->
vlastní kód pro uživatele s angličtinou
<!-- ELSE -->
vlastní kód pro ostatní jazyky, kromě alternativní češtiny a angličtiny
<!-- ENDIF -->[/code]
Kódy jazyků zjistíte v jazykovém souboru [c]language/vas_jazyk/common.php[/c], ve kterém najdete (na skoro začátku souboru) řádek [c]'USER_LANG'[/c] a za šipkou je označení, které v podmínce použijete.
[anchor=vlastni_kod_na_urcite_strance][/anchor]
[color=green][size=150][b]Vlastní kód na určité stránce[/b][/size][/color] [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_kod_na_urcite_strance]#[/url]
Vlastní kód jde zobrazit i v závislosti na zobrazené stránce, takže např. uživatel, který je na obsahu fóra ([c]index.php[/c]) vlastní kód uvidí a druhý uživatel, který čte příspěvky ([c]viewtopic.php[/c]) vlastní kód neuvidí. Dělá se to opět pomocí podmínek v šablonách, do kterých se napíše pomocí proměnné [c]SCRIPT_NAME[/c] závislost na názvu skriptu (bez přípony). Vypadá to nějak takhle:
[code]<!-- IF SCRIPT_NAME == 'index' -->
vlastní kód
<!-- ENDIF -->[/code]
Tím se zobrazí vlastní kód na obsahu fóra. Všimněte si, že jsem nepoužil příponu [c]php[/c]. Pokud je [c]index.php[/c], kde vlastní kód zobrazit nechcete, můžete to napsat nějak takhle:
[code]<!-- IF SCRIPT_NAME != 'index' -->
vlastní kód
<!-- ENDIF -->[/code]
Další skripty (ne všechny) jsou:
[list][*][c]ucp[/c] - uživatelský panel
[mzr][/mzr]
[*][c]memberlist[/c] - seznam členů
[mzr][/mzr]
[*][c]viewforum[/c] - seznam témat
[mzr][/mzr]
[*][c]viewtopic[/c] - téma
[mzr][/mzr]
[*][c]mcp[/c] - moderátorský panel
[mzr][/mzr]
[*][c]faq[/c] -FAQ[/list]
Některé z těchto skriptů obsahují i další podstránky, které mají vlastní parametr. Asi nejvíc je to vidět na skriptu [c]ucp[/c], kde může být:
[list][*][c]ucp.php?mode=register[/c] - registrační stránky
[mzr][/mzr]
[*][c]ucp.php?mode=login[/c] - přihlašovací stránka
[mzr][/mzr]
[*][c]ucp.php?i=ucp_pm[/c] - soukromé zprávy v uživatelském panelu[/list]
Rozšíření Vlastní kód na to myslí a přidává k proměnné [c]SCRIPT_NAME[/c] i vlastní proměnnou [c]CUSTOMCODE_PARAM_<parametr>[/c], pomocí které jde vlastní kód zobrazit téměř kdekoliv ve fóru. Pokud tedy chci zobrazit vlastní kód pouze na registrační stránce, napíšu takovouto podmínku:
[code]<!-- IF SCRIPT_NAME == 'ucp' and CUSTOMCODE_PARAM_MODE == 'register' -->
vlastní kód
<!-- ENDIF -->[/code]
která znamená, že se vlastní kód zobrazí:
[list]pokud je název skriptu ucp - [c]IF SCRIPT_NAME == 'ucp'[/c][/list]
[list]a zároveň - [c]and[/c][/list]
[list]parametr s názvem mode je register - [c]CUSTOMCODE_PARAM_MODE == 'register'[/c][/list]
V posledním řádku si všimněte části [c]MODE[/c] a [c]register[/c], která je použitá z adresy končící na [c]ucp.php?mode=register[/c].
Pokud budete chtít zobrazit vlastní kód na stránce [c]ucp.php?i=ucp_pm[/c] tak napíšete podmínku takhle:
[code]<!-- IF SCRIPT_NAME == 'ucp' and CUSTOMCODE_PARAM_I == 'ucp_pm' -->
vlastní kód
<!-- ENDIF -->[/code]
Všimněte si, že tady je [c]I[/c] a ne [c]MODE[/c]
Vlastní kód jde zobrazit i v závislosti na fóru. To se hodí třeba k zobrazení různého pozadí hlavičky na různých fórech. Dělá se to pomocí proměnné [c]S_FORUM_ID[/c] za kterou se doplní ID fóra, které jde zjistit zadresy fóra, kde je parametr [c]f=[/c] s ID fóra. Např. na následující adrese:
[c]http://www.domena/forum/viewforum.php?f=72[/c]
je ID fóra 72 a na následující adrese:
[c]http://www.domena/forum/viewtopic.php?f=74&t=552[/c]
je ID fóra 74.
Pokud tedy potřebujete zobrazit vlastní kód pouze ve fóru s ID 32 napíšete takovouhle podmínku:
[code]<!-- IF S_FORUM_ID == '32' -->
vlastní kód
<!-- ENDIF -->[/code]
Pokud chcete zobrazit vlastní kód ve více fórech (například na kategorii a jejích podfórech) můžete napsat:
[code]<!-- IF S_FORUM_ID == '32' or S_FORUM_ID == '33' -->
vlastní kód
<!-- ENDIF -->[/code]
[anchor=vlastni_kod_pro_urcite_uzivatele][/anchor]
[color=green][size=150][b]Vlastní kód jen pro určité uživatele[/b][/size][/color] [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_kod_pro_urcite_uzivatele]#[/url]
Vlastní kód jde zobrazit i na základě různých vlastností uživatelů (např. jestli uživatel je nebo není přihlášený, bot, administrátor, nový člen fóra, moderátor)
dělá se to pomocí proměnných:
[list][*][c]S_USER_LOGGED_IN[/c] - přihlášený uživatel
[mzr][/mzr]
[*][c]S_REGISTERED_USER[/c] - uživatel je zaregistrován, ale není bot
[mzr][/mzr]
[*][c]S_USER_NEW[/c] - uživatel je ve skupině nově registrovaných uživatelů
[mzr][/mzr]
[*][c]S_IS_BOT[/c] - uživatel je bot (ve skupině Boti)
[mzr][/mzr]
[*][c]U_ACP[/c] - administrátor
[mzr][/mzr]
[*][c]U_MCP[/c] - moderátor
[mzr][/mzr]
[*][c]S_USERNAME[/c] - jméno uživatele[/list]
Pokud tedy chcete zobrazit vlastní kód pouze přihlášeným, vytvoříte následující podmínku:
[code]<!-- IF S_USER_LOGGED_IN -->
vlastní kód
<!-- ENDIF -->[/code]
Pokud chcete vlastní kód zobrazit jen nepřihlášeným, použijte tuto podmínku:
[code]<!-- IF not S_USER_LOGGED_IN -->
vlastní kód
<!-- ENDIF -->[/code]
Podobně to funguje i pro boty, nové uživatele, administrátory a moderátory. Pokud chcete zobrazit něco jen uživateli xyz tak to napíšete takhle:
[code]<!-- IF S_USERNAME == 'xyz' -->
vlastní kód
<!-- ENDIF -->[/code]
Pokud vlastní kód chcete zobrazit všem mimo uživatele xyz, použijte tuto podmínku
[code]<!-- IF S_USERNAME != 'leschek' -->
vlastní kód
<!-- ENDIF -->[/code]
[anchor=komentare_k_souborum][/anchor]
[color=green][size=150][b]Komentáře k souborům[/b][/size][/color] [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#komentare_k_souborum]#[/url]
Pokud chcete do souboru přidat komentář, který se zobrazí v tabulce se soubory v nastavení rozšíření ("Administrace" - "Rozšíření" - "Vlastní kód" - "Správa souborů"), tak na první řádek souboru vložte následující kód:
[code]<!-- můj komentář k souboru -->[/code][anchor=poznamky_k_upravam][/anchor]
[color=green][size=150][b]Poznámky k příkladům úprav fóra[/b][/size][/color] [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#poznamky_k_upravam]#[/url]
xxxxxx
[mzr][/mzr]
[rozbalto=POZOR - Původní text pro rozšíření Custom Code, které od verze phpBB 3.1.6 nefunguje]Vlastní kód lze přidat do originálních souborů rozšíření (s označením (U)) nebo do vlastních souborů, na které se vytvoří odkaz v originálním souboru rozšíření. Protože jsem línej a taky abych se zbytečně neopakoval, budu v následujících příkladech popisovat přidání vlastního kódu pouze do originálních souborů, což pro vás bude znamenat, že můžete přidat soubor podle návodu do originálního souboru rozšíření, nebo že si vytvoříte [c]vlastni_soubor.html[/c], do kterého kód přidáte a do v příkladu zmíněného souboru napíšete odkaz na vámi vytvořený vlastní soubor s kódem.
Příklad: Pokud uvidíte napsáno: [i]do souboru [c]overall_header_stylesheets_after.html[/c] vložte následující kód:
[code]<style>
nějaký kód
</style>[/code]
bude to znamenat, že můžete vložit svůj kód přímo do výše zmíněného souboru [c]overall_header_stylesheets_after.html[/c], nebo si můžete [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#pridani_vlastniho_souboru]vytvořit nový soubor[/url], do kterého kód vložíte a pak výše zmíněného do souboru napíšete [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#odkaz_na_vlastni_soubor]odkaz na vámi vytvořený soubor[/url].[/i][/rozbalto]
xxxxx
[mzr][/mzr]
[list=1][*]Kód se přidává do souborů událostí ve složce [c]ext/marttiphpbb/inserttemplatecode/style/all/template/event/soubor_udalosti.html[/c]. Pokud je v příkladech uveden jen název souboru, tak to znamená, že má být vložen do výše zmíněné složky (přijde mi zbytečné psát celou cestu k souboru).
Kód můžete napsat přímo do souboru události, nebo si vytvořit vlastní soubor, jak je popsáno [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_soubory]tady[/url]. V příkladech budu uvádět jen hlavní soubory událostí. Jestli si vytvoříte vlastní soubor, záleží na vás.
Originální soubor fóra (ve složce styles/vas_vzhled/template), ve kterém se událost nachází. lze snadno odvodit z názvu souboru události. Např. soubor události [c]overall_header_navbar_before.html[/c] patří k události [c]<!-- EVENT overall_header_navbar_before -->[/c] v souboru [c]overall_header.html[/c] (všimněte si začátku názvu souboru a události).
[mzr][/mzr]
[*]Pokud budete chtít do jednoho souboru přidat několik úprav stylů za sebou nemusíte psát:
[code] <style>
nějaký kód
</style>
<style>
nějaký jiný kód
</style>[/code]
ale můžete to vložit takhle:
[code] <style>
nějaký kód
nějaký jiný kód
</style>[/code]
[*]Příklady kódů budou psané (pokud nebude uvedeno jinak) pro prosilver, tzn. že pokud používáte jiný vzhled, budete si muset kód upravit, aby se do vašeho vzhledu hodil. Taky to znamená, že pokud používáte na fóru více vzhledů, bude na vás, jestli chcete přidat kód do všech vzhledů, nebo jestli [url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#vlastni_kod_jen_v_urcitem_vzhledu]použijete podmínku, aby se kód zobrazil pouze v určitém vzhledu[/url].[/list]
xxxxx
[mzr][/mzr]
[rozbalto=POZOR - originální text pro rozšíření CustomCode, které od verze phpBB 3.1.6 nefunguje]Po vložení kódu do souboru nezapomeňte kliknout dole na tlačítko "Uložit a pročistit cache" nebo jen "Uložit" a na následující stránce toto uložení potvrdit. Dokud to nepotvrdíte, tak se kód do souboru nezapíše. Protože se šablony cacheují, je nutné po přidání vlastního kódu pročistit cache (aby se kód zobrazil), nebo kliknout na tlačítko "Uložit a pročistit cache", které se postará o obojí.
U příkladů úprav fóra nebudu psát, že se kód má uložit, protože mi to připadá zbytečné[/rozbalto]
xxxxx
[color=green][size=150][b]Seznam úprav fóra pomocí událostí v šablonách[/b][/size][/color][anchor=seznam_uprav][/anchor][url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=975#seznam_uprav]#[/url]
[url=http://www.fotonomad.cz/forum1/viewtopic.php?f=75&t=555&p=976#zmena_sirky_fora]Změna šířky fóra[/url]
[url=http://www.fotonomad.cz/forum1/viewtopic.php?f=75&t=555&p=976#zmena_barvy_pozadi_fora]Změna barvy pozadí fóra na jinou barvu nebo proužky[/url]
[url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=978#zmena_loga]Změna loga[/url]
[url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=981#upravy_nazvu_a_popisu_fora]Úpravy názvu a popisu fóra[/url] (změna barvy textu, vycentrování textu na hlavičce)
[url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=994#velky_obrazek_na_pozadi_hlavicky_fora]Jeden větší obrázek na pozadí hlavičky fóra[/url]
[url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=1002#jednoduchy_ramecek_s_textem]Jednoduchý rámeček se textem[/url] (pod hlavičkou, jde použít např. na oznámení)
[url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=1003#vlastni_kod_jazykova_tlacitka]Tlačítka pro přepínání jazyků fóra[/url] (pro hosty, v hlavičce nebo v navigaci)
[url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=1241#p1241]Odkazy na předchozí a další téma[/url]
[url=http://www.fotonomad.cz/forum1/viewtopic.php?t=555&p=1257#p1257]Stylování BBKódů (příklad s BBKódem [uvoz]C[/uvoz] - kód na řádku)[/url]