Predloga: flat
Verzija: 1.1.0 (WvdS razširitve)
Imenski prostor: lib/tpl/flat/
Original: beemoon contact@beemoon.fr
Razširitve: Wolfgang van der Stille zeljko.petrusic@outlook.de
Licenca: GPL 2
Flat predloga je minimalistična, odzivna DokuWiki predloga z WvdS razširitvami za večjezičnost, preklopnik jezika, nastavljive stranske vrstice, sistem logotipa z base64 upodobitvijo in brezhibno integracijo z WvdS vtičniki.
| Funkcija | Opis |
|---|---|
| Preklopnik jezika | Vgrajen preklop jezika z ikonami zastav |
| Samodejna preusmeritev | Preusmeritev glede na jezik brskalnika |
| Dvojna stranska vrstica | Nastavljiva zgornja in spodnja stranska vrstica |
| Harmonika meni | Zložljiva navigacija |
| Večjezično besedilo | Podpora za de:X|en:Y format |
| Sistem logotipa | Prilagodljiv logotip z base64 upodobitvijo prek wvdsimage |
| Stanje TOC | Stanje kazala vsebine shranjeno v piškotku |
| Integracija vtičnikov | Brezhibno sodelovanje z WvdS vtičniki |
| Nastavitev | Tip | Privzeto | Opis |
|---|---|---|---|
enableLangSwitcher | Vklop/Izklop | Izklop | Omogoci preklopnik jezika |
languages | Besedilo | de,en | Razpolozljivi jeziki (loceni z vejico) |
langPosition | Stevilo | 0 | Polozaj jezika v imenskem prostoru (0 = prva raven) |
defaultLanguage | Besedilo | de | Privzeti jezik za nadomestno moznost |
{{wvds:redirect target="{lang}:start"}} v svojih wiki straneh.
| Nastavitev | Tip | Privzeto | Opis |
|---|---|---|---|
topSidebar | Besedilo | sidebar | Zgornja stran stranske vrstice |
bottomSidebar | Besedilo | sidebar1 | Spodnja stran 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 | Harmonika obnašanje za stransko vrstico |
| Nastavitev | Tip | Privzeto | Opis |
|---|---|---|---|
showTitle | Vklop/Izklop | Vklop | Prikaži naslov wikija |
showLogo | Vklop/Izklop | Izklop | Prikaži 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 pikslih (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 | Maks. širina za optimizacijo slike |
logoQuality | Število | 90 | Kakovost slike (10-100) |
| Nastavitev | Tip | Privzeto | Opis |
|---|---|---|---|
| TOC piškotek | Samodejno | - | Stanje (razširjeno/zloženo) se shrani v piškotek dw_toc_state (1 leto) |
| Nastavitev | Tip | Privzeto | Opis |
|---|---|---|---|
footerText | Besedilo | (prazno) | Besedilo v podnožju (podpira de:X|en:Y format) |
Zahteva: Wiki z nemščino, angleščino in slovenščino.
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';
start.txt (za samodejno preusmeritev):
{{wvds:redirect target="{lang}:start"}}
Rezultat:
Zahteva: Glavni meni zgoraj, harmonika navigacija spodaj.
Struktura datotek:
data/pages/
├── sidebar.txt → Glavni meni
├── sidebar1.txt → Prazna datoteka (nadomestek)
├── de/
│ └── sidebar1.txt → {{wvds:snippet>go_back}}
│ {{wvds:acmenu dynamic="2"}}
├── en/
│ └── sidebar1.txt → {{wvds:snippet>go_back}}
│ {{wvds:acmenu dynamic="2"}}
└── sl/
└── sidebar1.txt → {{wvds:snippet>go_back}}
{{wvds:acmenu dynamic="2"}}
sidebar.txt (Koren):
~~NOCACHE~~
{{wvds:snippet>main_menu}}
sl/sidebar1.txt:
~~NOCACHE~~
{{wvds:snippet>go_back}}
{{wvds:acmenu dynamic="2"}}
Zahteva: Besedilo podnožja v različnih jezikih.
Konfiguracija:
footerText = de:© 2025 Meine Firma - Alle Rechte vorbehalten|en:© 2025 My Company - All rights reserved|sl:© 2025 Moje podjetje - Vse pravice pridržane
Rezultat:
Zahteva: Logotip iz wiki medijev z optimalno prikazavo.
Skrbniška konfiguracija:
showLogo = 1 logoSource = wiki logoPath = wiki:logo.png logoContainerSize = 300 logoFit = contain logoPosition = center logoMaxWidth = 300 logoQuality = 90
Rezultat:
object-fit: contain zagotavlja, da je celotna slika vidnaAlternativa: Logotip iz mape predloge:
showLogo = 1 logoSource = template logoPath = logo.png // nahaja se v lib/tpl/flat/images/logo.png
Alternativa: Zunanji logotip:
showLogo = 1 logoSource = url logoPath = https://example.com/logo.png
1. Analiza imenskega prostora └── Izvleče jezik iz položaja langPosition └── Primer: sl:crypto:openssl → "sl" 2. Preklop jezika └── Zamenja jezikovni segment v imenskem prostoru └── sl:crypto:openssl → en:crypto:openssl 3. Preverjanje strani └── Preveri ali ciljna stran obstaja └── Če ne: Preusmeritev na začetno stran jezika
1. Specifično za imenski prostor └── Išče sidebar/sidebar1 v trenutnem imenskem prostoru 2. Starševski imenski prostor └── Išče navzgor v starševskih imenskih prostorih 3. Korenska nadomestna možnost └── Uporabi korensko stransko vrstico če nič ni najdeno
1. Zaznaj jezik brskalnika └── Razčleni glavo Accept-Language 2. Jezik razpoložljiv? ├── Da: Preusmeri na imenski prostor jezika └── Ne: Preusmeri na defaultLanguage
Predloga deluje brezhibno z WvdS vtičniki:
// V datotekah predloge
$helper = plugin_load('helper', 'wvdsi18n');
$lang = $helper->getLang();
$text = $helper->get('menu_home');
Uporaba:
sidebar.txt:
{{wvds:snippet>main_menu}}
Uporaba:
sidebar1.txt:
{{wvds:acmenu dynamic="2"}}
Uporaba:
| Razred | Opis |
|---|---|
.dokuwiki | Glavni vsebnik |
.wrapper | Ovoj vsebine |
.sidebar | Vsebnik stranske vrstice |
.sidebar-top | Zgornja stranska vrstica |
.sidebar-bottom | Spodnja stranska vrstica |
.lang-switcher | Vsebnik preklopnika jezika |
.lang-flag | Jezikovne zastave |
.footer | Območje podnožja |
.logo-wrapper | Vsebnik ovoja logotipa |
.logo-container | Klikljivo območje logotipa |
.logo-img | Slika logotipa |
Ustvarite conf/userstyle.css za prilagoditve:
/* Prilagoditev preklopnika jezika */ .lang-switcher { position: fixed; top: 10px; right: 10px; } /* Širina stranske vrstice */ .sidebar { width: 280px; } /* Oblikovanje podnožja */ .footer { background: #333; color: #fff; padding: 20px; }
| Scenarij | Vedenje |
|---|---|
| Jezik ni konfiguriran | Prikaže vse jezike iz languages |
| Ciljna stran ni najdena | Preusmeritev na začetno stran jezika |
| Stranska vrstica ni najdena | Uporabi korensko stransko vrstico |
| Vtičnik ni nameščen | Predloga deluje brez razširitev |
| wvdsimage ni nameščen | Logotip uporablja običajni URL namesto base64 |
| Verzija | Datum | Spremembe |
|---|---|---|
| 1.1.0 | 2026-01-08 | Sistem logotipa z integracijo wvdsimage, ohranjevanje stanja TOC v piškotku |
| 1.0.0 | 2025-01-06 | WvdS razširitve dodane |
lib/tpl/flat/
├── main.php → Glavna predloga
├── detail.php → Pogled podrobnosti medijev
├── mediamanager.php → Upravljalnik medijev
├── conf/
│ ├── default.php → Privzeta konfiguracija
│ └── metadata.php → Metapodatki konfiguracije
├── lang/
│ ├── de/lang.php → Nemški prevodi
│ ├── en/lang.php → Angleški prevodi
│ └── sl/lang.php → Slovenski prevodi
├── lang_helper.php → Jezikovne in logo pomožne funkcije
├── css/
│ ├── style.css → Slogi predloge
│ └── logo.css → Slogi logotipa
├── js/
│ └── script.js → Skripte predloge (vklj. TOC piškotek)
└── images/
└── flags/ → Jezikovne zastave
| Funkcija | Opis |
|---|---|
tpl_getLang() | Vrne trenutni jezik |
tpl_langSwitcher() | Izriše HTML preklopnika jezika |
tpl_sidebar($which) | Izriše določeno stransko vrstico |
tpl_footer() | Izriše podnožje z večjezičnim besedilom |
tpl_renderLogo() | Izriše logotip s podporo za base64 |
tpl_getLangNs() | Vrne prevedeno besedilo glede na imenski prostor |
tpl_parseMultilang() | Razčleni večjezične formatne nize |
| Kljuka | Opis |
|---|---|
TPL_METAHEADER_OUTPUT | Spreminjanje meta glave |
TPL_ACT_RENDER | Izrisovanje akcij |
TPL_CONTENT_DISPLAY | Prikaz vsebine |