Vtičnik WvdS.DokuWiki.Theme
Vtičnik: wvdstheme
Različica: 1.0.0
Imenski prostor: lib/plugins/wvdstheme/
Avtor: Wolfgang van der Stille Wolfgang.van.der.Stille@gmail.com (The White Knight Labs)
Licenca: GPL 2
Definicija
Vtičnik wvdstheme preklopi aktivno predlogo (temo) po imenskem prostoru — po enakem načelu dedovanja kot stranska vrstica: stran z imenom theme v imenskem prostoru velja za to poddrevo, zmaga pa najbližja stran theme.
Primeri uporabe
- Področje bloga —
sl:blogteče na predlogi BizWay, preostanek wikija na Flat - Trženjske pristajalne strani — ločen videz za javna območja
- Naročniška/projektna območja — omejen videz brez razvejitve DokuWiki
Sintaksa
Ustvarite stran <imenski_prostor>:theme z:
{{wk:theme template="premium-navy-ivory"}}
Ob prikazu strani theme se prikaže informacijsko polje z imenom predloge, obsegom veljavnosti in stanjem preverjanja.
Parametri
| Parameter | Tip | Obvezno | Opis |
|---|---|---|---|
template | niz | da | Ime mape pod lib/tpl/ |
Konfiguracija
| Možnost | Privzeto | Opis |
|---|---|---|
pagename | theme | Ime strani theme po imenskem prostoru (analogno $conf['sidebar']) |
Delovanje
- Kljuka dejanja
DOKUWIKI_STARTED(strani),DETAIL_STARTED(podrobnostne strani medijev) oziromaMEDIAMANAGER_STARTED(pojavno okno upravitelja medijev, imenski prostor iz parametrans) se izvede pred vključitvijo predloge;?do=adminje namerno izvzet (sicer bi Config Manager prikazal nastavitve predloge za preglasitev) - Pomočnik poišče najbližjo stran
theme(pomik po imenskem prostoru navzgor, kotpage_findnearest(), namerno brez preverjanja ACL — stran theme je konfiguracija in mora veljati tudi za anonimne obiskovalce) - Ime predloge se prebere iz surovega wikibesedila prek regex (brez obremenitve razčlenjevalnika)
- Ob uspehu:
$conf['template']se preklopi — URL-ji CSS/JS (css.php?t=…,js.php?t=…) in njihovi po predlogi ločeni predpomnilniki sledijo samodejno, razveljavitev predpomnilnika ni potrebna
Varnost
| Preverjanje | Rešitev | CWE |
|---|---|---|
| Path Traversal | Beli seznam: ^[a-zA-Z0-9_-]+$ in is_dir(lib/tpl/<ime>) | CWE-22 |
| XSS | hsc() na vseh izpisih informacijskega polja | CWE-79 |
Neveljavna ali nenameščena imena predlog v celoti onemogočijo preglasitev — privzeta predloga ostane aktivna (brez tihega povratka na dokuwiki).
Omejitve
- Ciljne predloge morajo uporabljati
tpl_basedir()/tpl_incdir(). Predloge s konstantamaDOKU_TPL/DOKU_TPLINC, zamrznjenima ob zagonu (npr. flat), delujejo le kot privzeta predloga, ne kot cilj preklopa. - Stran theme velja od svojega imenskega prostora navzdol; globlja stran theme v celoti prevlada nad višjo (tudi če je neveljavna — takrat velja privzeta predloga).
Pogodba o slogih (--wk-*)
Da so komponente (predloge blogtng, značke revizije, izsečki) skladne pod vsako predlogo, velja zavezujoč nabor lastnosti CSS Custom Properties. Vsaka predloga definira ista imena žetonov z lastno paleto:
| Predloga | Definicija | Paleta |
|---|---|---|
| flat | lib/tpl/flat/css/color-palette.css | WvdS Meadow (terakota/zlata/papir) |
| premium-navy-ivory | lib/tpl/premium-navy-ivory/css/tokens.css + css/schemes/riviera.css (privzeto) | Od 2026-07-10 natanko tri znamkovni poudarki, izbirni prek možnosti colorscheme: riviera (privzeto, mornarsko modra/jeklena azurna/zlata/slonokoščena, prej navy-ivory), night (polno temno platno, zlati poudarki), white (svetlo platno, mornarsko moder okvir). Prejšnje barvne možnosti WP meadow/green/red so bile ob tem odstranjene. Profil območja wiki se ne glede na to nastavitev vedno izriše z white (glejte BizWay (hišna predloga)). |
Odjemalci pišejo var(–wk-accent, #fallback) — rezervna vrednost se uporabi le pri predlogah brez definicije pogodbe.
Pregled žetonov
| Skupina | Žetoni |
|---|---|
| Osnovno | –wk-ink, –wk-paper, –wk-accent[-dark|-light], –wk-gold[-dark|-light], –wk-rule |
| Površine | –wk-surface, –wk-surface-alt, –wk-surface-muted |
| Besedilo | –wk-text, –wk-text-alt, –wk-text-muted, –wk-text-on-dark, –wk-text-on-accent |
| Povezave | –wk-link, –wk-link-hover, –wk-link-missing |
| Robovi | –wk-border, –wk-border-light, –wk-highlight |
| Stranska vrstica | –wk-sidebar-bg[-alt], –wk-sidebar-text[-muted], –wk-sidebar-border, –wk-sidebar-hover |
| Povratne informacije | –wk-success, –wk-warning, –wk-error, –wk-error-bg |
| Skrbništvo/fokus/gumbi | –wk-admin-*, –wk-focus[-shadow], –wk-btn-primary[-hover|-text] |
Opomba o pomenu: –wk-gold je pogodbeni sekundarni poudarni prostor. Flat mu dodeli jantarno, BizWay pa naftno modro — odjemalci ne smejo predpostaviti „zlate barve“, temveč le „sekundarni poudarek“.
Obvezno za nove predloge: definirajte celoten nabor žetonov (predloga: ena od zgornjih dveh datotek), sicer vsi odjemalci padejo na svoje rezervne vrednosti.
Sorodno
- Predloga Premium Navy Ivory (mapa
premium-navy-ivory; preostali vtičnik se od 2026-07-09 imenujewvdspremiumnavyivoryin ponuja le še preusmeritev pristajanja/imenskega prostora, brez možnosti/izrisovanja) — prva predloga kot cilj preklopa - wvdscond — pogojna vsebina/preusmeritve (čas izrisa, ni primerno za preklop predloge)