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.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 <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
Piskotek omogoca, da struktura menija ostane ob menjavi strani.

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


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

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
 
Zuletzt geändert: dne 06.01.2026 ob 15:06