Barvna shema: Riviera
Trenutno dejavna stran: start » sl » Dokumentacija » Razširitve DokuWikija (WvdS) » Zamenjani paketi in stari ID-ji strani » WvdS.DokuWiki.Flat Template

WvdS.DokuWiki.Flat Template

Predloga: flat · Različica: 1.2.0 (razširitve WvdS) · Imenski prostor: lib/tpl/flat/ · Izvirnik: beemoon contact@beemoon.fr · Razširitve: Wolfgang van der Stille Wolfgang.van.der.Stille@gmail.com (The White Knight Labs) · Licenca: GPL 2


Predloga Flat v naši različici: razširitve, ki gradijo na tujem izvirniku, in za kaj se tu še uporablja.

Opredelitev

Predloga Flat je minimalistična, odzivna predloga za DokuWiki z obsežnimi razširitvami WvdS za večjezičnost, preklopnik jezika, nastavljive stranske vrstice, sistem logotipa z izrisom base64, postavitev, prilagojeno mobilnim napravam, in tesno povezavo z vtičniki WvdS.

Spremembe glede na izvirnik

Komponenta Izvirnik WvdS
customFlat.css 3,4 KB (176 vrstic) 52 KB (~2000 vrstic)
main.php 2,9 KB (69 vrstic) 13 KB (~240 vrstic)
Pisave Google Fonts CDN sistemske pisave (brez povezave)
jQuery Google CDN krajevno (jquery.min.js)
Nove datoteke - lang_helper.php, widgets.php, accessibility.css, logo.css, color-palette.css

Primeri uporabe

  • Večjezična dokumentacija – samodejni preklopnik jezika in zaznavanje jezika
  • Zbirke znanja – pregledna navigacija z zložljivimi meniji
  • Mobilna uporaba – kompaktna glava (96px) z menijem »hamburger«
  • Projektna dokumentacija – hierarhična zgradba stranske vrstice
  • Podjetniški wikiji – profesionalna, prilagodljiva podoba
  • Boljša zmogljivost – slike, vdelane kot base64, krajevne pisave

Funkcije

Razširitve WvdS

Funkcija Opis
Preklopnik jezika vgrajena menjava jezika z ikonami zastav
Samodejna preusmeritev preusmeritev glede na jezik brskalnika
Dvojna stranska vrstica nastavljiva zgornja in spodnja stranska vrstica
Zložljivi meni navigacija, ki jo je mogoče zložiti
Večjezična besedila podpora za obliko de:X|en:Y
Sistem logotipa prilagodljiv logotip z izrisom base64 prek wkimage
Stanje kazala stanje kazala vsebine se shrani v piškotek
Povezava z vtičniki tesno sodelovanje z vtičniki WvdS

Prilagoditev za mobilne naprave (NOVO)

Funkcija Opis
Kompaktna glava 96px (tablica) / 80px (pametni telefon) z enakimi razmiki
Meni »hamburger« prekrivni pas namesto zamika za 300px, zapre se ob kliku na sidro
Pomik do sidra odmik za glavo prepreči, da bi sidro pristalo pod glavo
Preprečitev temnega načina color-scheme: only light vsili svetlo podobo
Prijazno za dotik dotična območja gumbov velikosti 44×44px

Razširitve oblikovanja (NOVO)

Področje Opis
Prijava/registracija kartica z oranžnim poudarkom KRITIS
Skrbniški meni posodobljena podoba z različico v slogu konzole
Splošne nastavitve boljša berljivost, barvna shema KRITIS
Vtičnik Discussion komentarji v slogu Apple/Microsoft
Kazalo vsebine pripeto, s sodobno senco
Noga temna pisava na svetli podlagi

Nastavitve

Preklopnik jezika

Nastavitev Vrsta Privzeto Opis
enableLangSwitcher vklop/izklop izklop vklopi preklopnik jezika
languages besedilo de,en razpoložljivi jeziki (ločeni z vejico)
langPosition število 0 položaj jezika v imenskem prostoru (0 = prva raven)
defaultLanguage besedilo de privzeti jezik, kadar ni drugega
enableAutoRedirect je odstranjen: samodejne preusmeritve zdaj upravlja vtičnik WvdS.DokuWiki.Cond Plugin. Na svojih straneh uporabite {{wk:redirect target="{lang}:start"}}.

Stranska vrstica

Nastavitev Vrsta Privzeto Opis
topSidebar besedilo sidebar stran zgornje stranske vrstice
bottomSidebar besedilo sidebar1 stran spodnje stranske vrstice
topSidebarTitle besedilo (prazno) naslov zgornje stranske vrstice
bottomSidebarTitle besedilo (prazno) naslov spodnje stranske vrstice
adminSidebarTitle besedilo (prazno) naslov skrbniške stranske vrstice
enableAccordion vklop/izklop izklop zlaganje stranske vrstice

Postavitev (NOVO)

Nastavitev Vrsta Privzeto Opis
siteWidth število 75 širina strani
siteWidthUnit izbira % enota (%, px, em, rem)
sidebarWidth število 300 širina stranske vrstice
sidebarWidthUnit izbira px enota (px, %, em, rem)

Logotip in naslov

Nastavitev Vrsta Privzeto Opis
showTitle vklop/izklop vklop prikaže naslov wikija
showLogo vklop/izklop izklop prikaže logotip
logoSource izbira template vir logotipa: template, wiki, url
logoPath besedilo (prazno) pot glede na vir (ime datoteke, wiki:pot ali URL)
logoContainerSize število 300 velikost vsebnika v slikovnih pikah (kvadrat)
logoFit izbira contain prilagoditev slike: contain, cover, fill, scale-down, none
logoPosition izbira center položaj v vsebniku: center, top, bottom itd.
logoMaxWidth število 300 največja širina pri pomanjšanju za optimizacijo slike
logoQuality število 90 kakovost slike (10–100)
Izris base64: če je nameščen vtičnik Responsive Image, se logotipi izrišejo kot slike, vdelane v obliki base64. To zmanjša število zahtev HTTP in skrajša čas nalaganja.

Kazalo vsebine

Nastavitev Vrsta Privzeto Opis
piškotek kazala samodejno - stanje (razprto/zloženo) se shrani v piškotek dw_toc_state (1 leto)
Stanje kazala se shrani samodejno, ko uporabnik klikne stikalo. Ob naslednjem odprtju strani se shranjeno stanje obnovi (samo na namiznem računalniku).

Noga

Nastavitev Vrsta Privzeto Opis
footerText besedilo (prazno) besedilo v nogi (podpira obliko de:X|en:Y)

Podrobnosti mobilne postavitve

Mere glave

Tablica (< 1200px):
├── višina glave: 96px
├── logotip max-height: 60px
├── gumbi: 44×44px (hamburger levo, zobnik desno)
├── razmik gumbov: 26px zgoraj/spodaj (navpično sredinsko)
└── scroll-padding-top: 110px

Pametni telefon (< 480px):
├── višina glave: 80px
├── logotip max-height: 50px
├── scroll-padding-top: 95px
└── navigacija: manjša pisava

Vedenje menija »hamburger«

1. Zaprto (privzeto):
   └── vidna je le vrstica glave (logotip + gumbi)

2. Odprto (po dotiku gumba hamburger):
   ├── #secondary se razširi na 100vh
   ├── prikaže se navigacija (navpični seznam)
   ├── prikažejo se gradniki stranske vrstice
   └── drsnik, če vsebina ne gre na zaslon

3. Zapiranje:
   ├── dotik gumba hamburger
   └── dotik povezave na sidro (samodejno)

Preprečitev temnega načina

Predloga na vseh napravah vsili svetli način:

/* Meta oznaka v <head> */
<meta name="color-scheme" content="only light" />
 
/* Deklaracija CSS */
:root, html, body, * {
    color-scheme: only light !important;
}
To prepreči Chromov »samodejni temni način« (Auto Dark Mode), ne da bi moral uporabnik spremeniti nastavitve naprave.

Primeri

Primer 1: večjezične nastavitve

Zahteva: wiki v nemščini, angleščini in slovenščini.

conf/local.php:

$conf['tpl']['flat']['enableLangSwitcher'] = 1;
$conf['tpl']['flat']['languages'] = 'de,en,sl';
$conf['tpl']['flat']['langPosition'] = 0;
$conf['tpl']['flat']['defaultLanguage'] = 'de';

Rezultat:

  • Preklopnik jezika ponudi DE/EN/SL.
  • Jezik se prepozna iz de:seite, en:page, sl:stran.
  • Samodejno preusmeritev na ustrezni jezik zagotovi vtičnik wvdscond (glejte opombo pri nastavitvah).

Primer 2: zgradba stranske vrstice

Zahteva: glavni meni zgoraj, zložljiva navigacija spodaj.

Zgradba datotek:

data/pages/
├── sidebar.txt          → glavni meni
├── sidebar1.txt         → prazna datoteka (nadomestek)
├── de/
│   └── sidebar1.txt     → {{wk:snippet>go_back}}
│                           {{wk:acmenu dynamic="2"}}
├── de/crypto/
│   └── sidebar1.txt     → {{wk:snippet>go_back}}
│                           {{wk:acmenu dynamic="1"}}
└── en/
    └── sidebar1.txt     → {{wk:snippet>go_back}}
                            {{wk:acmenu dynamic="2"}}

sidebar.txt (koren):

~~NOCACHE~~
{{wk:snippet>main_menu}}

de/sidebar1.txt:

~~NOCACHE~~
{{wk:snippet>go_back}}
{{wk:acmenu dynamic="2"}}

Primer 3: večjezična noga

Zahteva: besedilo noge v različnih jezikih.

Nastavitev:

footerText = de:© 2025 Meine Firma - Alle Rechte vorbehalten|en:© 2025 My Company - All rights reserved|sl:© 2025 Moje podjetje - Vse pravice pridržane

Rezultat:

  • Nemške strani: »© 2025 Meine Firma - Alle Rechte vorbehalten«
  • Angleške strani: »© 2025 My Company - All rights reserved«
  • Slovenske strani: »© 2025 Moje podjetje - Vse pravice pridržane«

Primer 4: nastavitev logotipa

Zahteva: logotip iz predstavnostnih datotek wikija z optimalnim prikazom.

Skrbniške nastavitve:

showLogo = 1
logoSource = wiki
logoPath = wiki:logo.png
logoContainerSize = 300
logoFit = contain
logoPosition = center
logoMaxWidth = 300
logoQuality = 90

Rezultat:

  • Logotip se izriše kot slika, vdelana v obliki base64 (prek wkimage).
  • Za logotip ni dodatne zahteve HTTP.
  • Slika se pomanjša na največ 300px in postavi na sredino vsebnika 300x300px.
  • object-fit: contain zagotovi, da je vidna vsa slika.

Druga možnost: logotip iz mape predloge:

showLogo = 1
logoSource = template
logoPath = logo.png        // je v lib/tpl/flat/images/logo.png

Druga možnost: zunanji logotip:

showLogo = 1
logoSource = url
logoPath = https://example.com/logo.png

Delovanje

Logika preklopnika jezika

1. Analiza imenskega prostora
   └── izlušči jezik na položaju langPosition
   └── primer: de:crypto:openssl → "de"

2. Menjava jezika
   └── zamenja jezikovni del v imenskem prostoru
   └── de:crypto:openssl → en:crypto:openssl

3. Preverjanje strani
   └── preveri, ali ciljna stran obstaja
   └── če ne: preusmeritev na začetno stran jezika

Iskanje stranske vrstice

1. V imenskem prostoru
   └── išče sidebar/sidebar1 v trenutnem imenskem prostoru

2. Nadrejeni imenski prostor
   └── išče navzgor po nadrejenih imenskih prostorih

3. Koren kot zadnja možnost
   └── uporabi korensko stransko vrstico, če ne najde ničesar

Samodejna preusmeritev

1. Zazna jezik brskalnika
   └── razčleni glavo Accept-Language

2. Je jezik na voljo?
   ├── da: preusmeritev v imenski prostor jezika
   └── ne: preusmeritev na defaultLanguage

Povezava z vtičniki WvdS

Predloga tesno sodeluje z vtičniki WvdS:

wki18n (internacionalizacija)

// V datotekah predloge
$helper = plugin_load('helper', 'wki18n');
$lang = $helper->detectLanguage();
$text = $helper->get('menu_home');

Uporaba:

  • lokalizacija besedil v nogi
  • prevajanje napisov v meniju
  • razčlenjevanje vrednosti nastavitev
Migracija: vtičnik wvdslang je nadomestil wki18n. Preusmeritve zdaj obravnava wvdscond.

wksnippet

sidebar.txt:

{{wk:snippet>main_menu}}

Uporaba:

  • menijske zgradbe za večkratno uporabo
  • izseki HTML v stranskih vrsticah
  • skupni elementi v več imenskih prostorih

wkacmenu

sidebar1.txt:

{{wk:acmenu dynamic="2"}}

Uporaba:

  • zložljiva navigacija v stranskih vrsticah
  • dinamično prepoznavanje imenskega prostora
  • samodejno odpiranje in zapiranje

Prilagoditve CSS

Razredi, ki jih je mogoče preglasiti

Razred Opis
.dokuwiki glavni vsebnik
.wrapper ovoj vsebine
#secondary vsebnik stranske vrstice (na mobilnih napravah glava)
.sidebar-offcanvas gradniki stranske vrstice
.toggle-sidebar gumb hamburger
.toggle-navigation gumb z zobnikom
.lang-switcher vsebnik preklopnika jezika
.logo-container ovoj logotipa
.site-info območje noge

Lastni slogi

Za prilagoditve ustvarite conf/userstyle.css:

/* Prilagoditev preklopnika jezika */
.lang-switcher {
    position: fixed;
    top: 10px;
    right: 10px;
}
 
/* Širina stranske vrstice */
.sidebar {
    width: 280px;
}
 
/* Oblikovanje noge */
.footer {
    background: #333;
    color: #fff;
    padding: 20px;
}

Obravnava napak

Primer Vedenje
jezik ni nastavljen prikaže vse jezike iz languages
ciljna stran ne obstaja preusmeritev na začetno stran jezika
stranske vrstice ni uporabi korensko stransko vrstico
vtičnik ni nameščen predloga deluje brez razširitev
predpomnilnik CSS po posodobitvi: ?purge=true ali Skrbništvo → purgecss

Dobre prakse

  • v vseh stranskih vrsticah z dinamično vsebino
  • langPosition nastavite pravilno glede na zgradbo imenskih prostorov
  • sidebar1.txt ustvarite v vsakem jezikovnem imenskem prostoru
  • wksnippet uporabljajte za menijske elemente, ki se ponavljajo
  • Nadomestni jezik vedno nastavite
  • Predpomnilnik CSS izpraznite po posodobitvi predloge (?purge=true)

Opombe k različicam

Različica Datum Spremembe
1.2.0 2026-01-28 kompaktna mobilna glava (96px/80px), preprečitev temnega načina, oblikovanje prijave, popravek pomika do sidra
1.1.0 2026-01-08 sistem logotipa s povezavo z wkimage, piškotek za stanje kazala
1.0.0 2025-01-06 dodane razširitve WvdS

Glejte tudi


Tehnična referenca

Zgradba datotek (WvdS v primerjavi z izvirnikom)

lib/tpl/flat/
├── main.php              → glavna predloga (razširjena: jezikovna preusmeritev, CSS postavitve, mobilna glava)
├── detail.php            → pogled podrobnosti predstavnostne datoteke
├── mediamanager.php      → upravitelj predstavnostnih datotek
├── lang_helper.php       → [NOVO] prevodi glede na imenski prostor
├── widgets.php           → [NOVO] gradnika Recent Pages/Comments
├── conf/
│   ├── default.php       → privzete nastavitve (razširjene)
│   └── metadata.php      → metapodatki nastavitev (razširjeni)
├── lang/
│   ├── de/               → nemški prevodi (razširjeni)
│   ├── en/               → angleški prevodi (razširjeni)
│   ├── sl/               → [NOVO] slovenski prevodi
│   ├── it/               → [NOVO] italijanski prevodi
│   └── hr/               → [NOVO] hrvaški prevodi
├── css/
│   ├── customFlat.css    → glavni slogi (52KB, ~2000 vrstic)
│   ├── accessibility.css → [NOVO] dostopnost, preprečitev temnega načina
│   ├── logo.css          → [NOVO] slogi logotipa
│   └── color-palette.css → [NOVO] barvna paleta KRITIS
├── assets/js/
│   └── jquery.min.js     → [NOVO] krajevni jQuery (brez povezave)
└── images/
    └── logo.png          → logotip predloge

Področja v customFlat.css

Vrstice Področje
1-108 osnovni slogi (stran, povezave, orodja strani)
109-254 Splošne nastavitve (barve KRITIS)
255-454 pripeto kazalo vsebine
455-605 preklopnik jezika, acmenu, gradniki
606-1141 oblikovanje vtičnika Discussion
1142-1591 skrbniški meni, slogi vstopne strani
1592-1599 preglasitev row-offcanvas (mobilno)
1601-1613 odmik pri pomiku do sidra
1615-1690 popravki kontrasta na mobilnih napravah (stranska vrstica, noga, gumbi)
1692-1717 velikost logotipa na mobilnih napravah
1719-1729 preprečitev temnega načina
1731-1787 skrivanje izbirnika jezika na mobilnih napravah
1788-2010 oblikovanje prijave, registracije in ponovnega pošiljanja gesla

Funkcije predloge

Funkcija Opis
tpl_getLang() vrne trenutni jezik
tpl_getLangNs() prevod glede na imenski prostor
tpl_parseMultilang() razčleni obliko de:X|en:Y
tpl_renderLogo() izriše logotip s podporo za base64
tpl_langSwitcher() izriše HTML preklopnika jezika
tpl_sidebar($which) izriše navedeno stransko vrstico
tpl_footer() izriše nogo z večjezičnim besedilom

Točke za priklop (hooks)

Točka Opis
TPL_METAHEADER_OUTPUT spreminjanje metapodatkov v glavi
TPL_ACT_RENDER izris dejanja
TPL_CONTENT_DISPLAY prikaz vsebine

<wk:audit stack=„doku“ title=„Flat Template“>

<wk:include ref="code:qualitaet" critical="true">[x][x][x][x]</wk:include>
<wk:include ref="stacks:dokuwiki-tpl">[x][x][x][x][x]</wk:include>
<wk:include ref="sicherheit:kritis" critical="true">[x][x][x][-][-]</wk:include>

</wk:audit>

DISCUSSION

sl/wiki/dwe/legacy/flat.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille