Inhaltsverzeichnis
WvdS.DokuWiki.AcMenu Vticnik
Vticnik: wvdsacmenu
Verzija: 1.0.0
Imenski prostor: lib/plugins/wvdsacmenu/
Osnova: AcMenu avtorja Torpedo
Razsiritve: Wolfgang van der Stille zeljko.petrusic@outlook.de
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.txtsidebar1.txtsidebar2.txtsidebar_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:apine 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 <ul>/<li> strukturo └── Oznaci trenutno stran (.curid) └── Oznaci odprte poti (.open) 5. Integracija JavaScript └── Vedenje harmonike └── Shranjevanje piskotkov za odprte mape
CSS razredi
Vsebnik
| Razred | Opis |
|---|---|
.acmenu | Glavni vsebnik menija |
.acmenu ul | Vsebnik seznama |
.acmenu li | Element seznama |
Statusni razredi
| Razred | Opis |
|---|---|
.open | Odprta mapa (imenski prostor) |
.closed | Zaprta mapa |
.curid | Trenutna stran |
.divert | Zunanji imenski prostor (z lastno stransko vrstico) |
Razredi elementov
| Razred | Opis |
|---|---|
.idx | Indeksni element |
.level1, .level2, … | Globina ugnezdenja |
.page | Povezava do strani |
.ns | Mapa imenskega prostora |
Konfiguracija
Skrbniške nastavitve
Preko Skrbnik → Konfiguracija → wvdsacmenu:
| Nastavitev | Tip | Privzeto | Opis |
|---|---|---|---|
startOpen | Vklop/Izklop | Izklop | Privzeto odpri vse mape |
sortType | Izbira | alpha | Razvrscanje: alpha, date, custom |
showPageTitle | Vklop/Izklop | Vklop | Prikazi naslov strani namesto ID |
maxDepth | Število | 0 | Maks. globina (0 = neomejeno) |
Shranjevanje piskotkov
Odprte mape so shranjene v brskalniku:
| Piskotek | Vsebina |
|---|---|
plugin_wvdsacmenu_open_items | Z vejico locen seznam odprtih map |
Obravnava napak
Vedenje ob napakah
| Scenarij | Vedenje |
|---|---|
| Imenski prostor ni najden | Prikaze prazen meni |
| Brez dovoljenja | Filtrira nedostopne strani |
| Neveljavna dynamic vrednost | Pade nazaj na koren |
| Krožna referenca | Se ustavi pri maks. globini |
Zmogljivost
Priporocila
| Scenarij | Priporocilo |
| Majhni imenski prostori (<50 strani) | Normalna uporaba |
| Veliki imenski prostori (50-200) | Omejite maxDepth |
| Zelo veliki imenski prostori (>200) | Razdelite v pod-imenske prostore |
| Dinamicna vsebina | Uporabite |
Zgodovina verzij
| Verzija | Datum | Spremembe |
|---|---|---|
| 1.0.0 | 2025-01-06 | WvdS razsiritve: Wiki sintaksa, dynamic, sidebar* zaznavanje |
Glej tudi
- Preusmeritev - HTML bloki za menije
- WvdS.DokuWiki.Lang Vticnik - Vecjezicna besedila menijev
- WvdS.DokuWiki.Flat Predloga - Predloga s podporo za stransko vrstico
Tehnicna referenca
Razred: syntax_plugin_wvdsacmenu
Datoteka: lib/plugins/wvdsacmenu/syntax.php
| Metoda | Opis |
|---|---|
getType() | Vrne substition |
getSort() | Vrne 320 |
connectTo($mode) | Registrira vzorec |
handle($match, …) | Razcleni parametre |
render($mode, …) | Generira HTML |
Zasebne metode
| Metoda | Parametri | Opis |
|---|---|---|
_get_ns_acmenu() | - | Doloci zacetni imenski prostor |
_findSidebar() | $dir | Išce sidebar* datoteko |
_buildTree() | $ns, $depth | Gradi drevo menija |
_renderItem() | $item | Izrise posamezen element |
JavaScript
Datoteka: lib/plugins/wvdsacmenu/script.js
- Upravljalnik klikov harmonike
- Upravljanje piskotkov
- Gladko drsenje do trenutnega elementa
Diskussion