====== WvdS.DokuWiki.AcMenu Vticnik ====== **Vticnik:** wvdsacmenu\\ **Verzija:** 1.0.0\\ **Imenski prostor:** ''lib/plugins/wvdsacmenu/''\\ **Osnova:** [[https://www.dokuwiki.org/plugin:acmenu|AcMenu]] avtorja Torpedo\\ **Razsiritve:** Wolfgang van der Stille \\ **Licenca:** GPL 2 ---- ===== Definicija ===== Vticnik **wvdsacmenu** prikazuje harmonika meni za imenske prostore in strani. Razsirja originalni AcMenu z wiki sintakso, dinamicnim zaznavanjem imenskega prostora in vecjezicno podporo. ===== Primeri uporabe ===== * **Navigacija imenskega prostora** - Samodejni meni za strukturo dokumentacije * **Vecjezicni wikiji** - Loceni meniji za vsak jezikovni imenski prostor * **Projektna dokumentacija** - Hierarhicna navigacija v pod-imenskih prostorih * **Integracija stranske vrstice** - Kompaktna navigacija v stranski vrstici ---- ===== Sintaksa ===== {{wvds:acmenu}} {{wvds:acmenu ns="namespace"}} {{wvds:acmenu dynamic="N"}} ==== Parametri ==== ^ Parameter ^ Tip ^ Privzeto ^ Opis ^ | ''ns'' | string | //(samodejno)// | Eksplicitni imenski prostor za meni | | ''dynamic'' | integer | //(izklopljeno)// | Ravni nad trenutno stranjo | ---- ===== Podrobnosti parametrov ===== ==== ns - Eksplicitni imenski prostor ==== Prikaze dolocen imenski prostor ne glede na trenutno stran: {{wvds:acmenu ns="sl:crypto"}} {{wvds:acmenu ns="sl:docs:api"}} ==== dynamic - Dinamicni imenski prostor ==== Izracuna imenski prostor glede na trenutno stran: ^ Vrednost ^ Pomen ^ Primer (pri sl:crypto:openssl:start) ^ | ''dynamic="1"'' | 1 raven gor | Prikaze ''sl:crypto:openssl'' | | ''dynamic="2"'' | 2 ravni gor | Prikaze ''sl:crypto'' | | ''dynamic="3"'' | 3 ravni gor | Prikaze ''sl'' | ---- ===== Zaznavanje imenskega prostora ===== ==== Zaznavanje meje stranske vrstice ==== Vticnik zaznava meje imenskega prostora preko ''sidebar*'' datotek: * ''sidebar.txt'' * ''sidebar1.txt'' * ''sidebar2.txt'' * ''sidebar_ime.txt'' Ce imenski prostor vsebuje eno od teh datotek, se obravnava kot samostojno podrocje. ==== Logika zaznavanja ==== 1. Brez parametrov └── Išce navzgor sidebar* datoteko └── Zacne meni od tega imenskega prostora 2. Z ns="..." └── Uporabi navedeni imenski prostor neposredno 3. Z dynamic="N" └── Izracuna: trenutni_imenski_prostor - N ravni └── Prikaze od te tocke ---- ===== Primeri ===== ==== Primer 1: Samodejni meni ==== **Zahteva:** Meni naj samodejno prikaze trenutno podrocje imenskega prostora. **sidebar1.txt:** ~~NOCACHE~~ {{wvds:snippet>go_back}} {{wvds:acmenu}} **Rezultat:** * Vticnik išce navzgor sidebar* datoteko * Zacne meni od najdenega imenskega prostora * Prikaze vse pod-imenske prostore in strani ==== Primer 2: Jezikovni imenski prostor ==== **Zahteva:** Meni za slovensko dokumentacijsko podrocje. **sl/sidebar1.txt:** ~~NOCACHE~~ {{wvds:snippet>go_back}} {{wvds:acmenu dynamic="2"}} **Rezultat pri sl:crypto:openssl:start:** * ''dynamic="2"'' gre 2 ravni gor * Zacne pri ''sl:crypto'' * Prikaze vso crypto dokumentacijo ==== Primer 3: Eksplicitni imenski prostor ==== **Zahteva:** Vedno prikazi isti imenski prostor. {{wvds:acmenu ns="sl:api"}} **Rezultat:** * Vedno prikaze ''sl:api'' ne glede na trenutno stran * Uporabno za fiksne navigacijske bloke ==== Primer 4: Vecjezicna struktura ==== **Struktura:** / ├── sidebar.txt (Glavni meni) ├── de/ │ ├── sidebar1.txt ({{wvds:acmenu dynamic="2"}}) │ ├── crypto/ │ │ ├── sidebar1.txt ({{wvds:acmenu dynamic="1"}}) │ │ └── openssl/ │ └── docs/ ├── en/ │ ├── sidebar1.txt │ └── ... └── sl/ ├── sidebar1.txt └── ... ---- ===== Tipicna konfiguracija stranske vrstice ===== ==== Koren: sidebar.txt ==== ~~NOCACHE~~ {{wvds:snippet>main_menu}} ==== Jezikovni imenski prostor: sl/sidebar1.txt ==== ~~NOCACHE~~ {{wvds:snippet>go_back}} {{wvds:acmenu dynamic="2"}} ==== Pod-imenski prostor: sl/crypto/sidebar1.txt ==== ~~NOCACHE~~ {{wvds:snippet>go_back}} {{wvds:acmenu dynamic="1"}} ---- ===== Kako deluje ===== ==== Procesni cevovod ==== 1. Ovrednotenje parametrov ├── ns="" → Uporabi eksplicitni imenski prostor ├── dynamic="N" → Izracunaj imenski prostor └── (prazno) → Išci sidebar* navzgor 2. Razresitev imenskega prostora └── Doloci zacetni imenski prostor za meni └── Preveri pravice dostopa 3. Gradnja drevesa └── Preberi vse strani in pod-imenske prostore └── Filtriraj po pravicah dostopa └── Razvrsti po abecedi 4. Generiranje HTML └── Ustvari ugnezdeno