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
Vticnik wvdsacmenu prikazuje harmonika meni za imenske prostore in strani. Razsirja originalni AcMenu z wiki sintakso, dinamicnim zaznavanjem imenskega prostora in vecjezicno podporo.
{{wvds:acmenu}}
{{wvds:acmenu ns="namespace"}}
{{wvds:acmenu dynamic="N"}}
| Parameter | Tip | Privzeto | Opis |
|---|---|---|---|
ns | string | (samodejno) | Eksplicitni imenski prostor za meni |
dynamic | integer | (izklopljeno) | Ravni nad trenutno stranjo |
Prikaze dolocen imenski prostor ne glede na trenutno stran:
{{wvds:acmenu ns="sl:crypto"}}
{{wvds:acmenu ns="sl:docs:api"}}
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 |
Vticnik zaznava meje imenskega prostora preko sidebar* datotek:
sidebar.txtsidebar1.txtsidebar2.txtsidebar_ime.txtCe imenski prostor vsebuje eno od teh datotek, se obravnava kot samostojno podrocje.
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
Zahteva: Meni naj samodejno prikaze trenutno podrocje imenskega prostora.
sidebar1.txt:
~~NOCACHE~~
{{wvds:snippet>go_back}}
{{wvds:acmenu}}
Rezultat:
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 gorsl:cryptoZahteva: Vedno prikazi isti imenski prostor.
{{wvds:acmenu ns="sl:api"}}
Rezultat:
sl:api ne glede na trenutno stranStruktura:
/
├── 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
└── ...
~~NOCACHE~~
{{wvds:snippet>main_menu}}
~~NOCACHE~~
{{wvds:snippet>go_back}}
{{wvds:acmenu dynamic="2"}}
~~NOCACHE~~
{{wvds:snippet>go_back}}
{{wvds:acmenu dynamic="1"}}
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
| Razred | Opis |
|---|---|
.acmenu | Glavni vsebnik menija |
.acmenu ul | Vsebnik seznama |
.acmenu li | Element seznama |
| Razred | Opis |
|---|---|
.open | Odprta mapa (imenski prostor) |
.closed | Zaprta mapa |
.curid | Trenutna stran |
.divert | Zunanji imenski prostor (z lastno stransko vrstico) |
| Razred | Opis |
|---|---|
.idx | Indeksni element |
.level1, .level2, … | Globina ugnezdenja |
.page | Povezava do strani |
.ns | Mapa imenskega prostora |
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) |
Odprte mape so shranjene v brskalniku:
| Piskotek | Vsebina |
|---|---|
plugin_wvdsacmenu_open_items | Z vejico locen seznam odprtih map |
| 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 |
| 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 |
| Verzija | Datum | Spremembe |
|---|---|---|
| 1.0.0 | 2025-01-06 | WvdS razsiritve: Wiki sintaksa, dynamic, sidebar* zaznavanje |
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 |
| 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 |
Datoteka: lib/plugins/wvdsacmenu/script.js