Referenca skladnje in API
Referenca vseh javnih elementov vtičnika wkacmenu: wiki skladnja, stran vrstnega reda, nastavitve, končni točki AJAX, PHP API, razredi CSS, piškotek. Uvod in koncepti: Pregled.
Skladnja menija
Podpis:
{{wk:acmenu>}}
{{wk:acmenu>parameter=vrednost|parameter=vrednost|...}}
Povzetek: Izriše harmonika meni na mestu klica (običajno: na strani stranske vrstice, skupaj z ~~NOCACHE~~).
Parametri (ločeni z navpičnico; > za wk:acmenu je obvezen, sicer se ujame medijska skladnja DokuWiki in izriše pokvarjeno povezavo):
| Parameter | Vrednosti | Brez navedbe | Opis |
|---|---|---|---|
ns | ID imenskega prostora ali auto | zaznava stranske vrstice | Fiksni osnovni imenski prostor; auto = osredotočeni pogled na trenutni imenski prostor plus sorojenci z berljivo vsebino na jezikovni ravni |
startns | current | izklopljeno | Osredotočeni pogled: samo trenutni imenski prostor plus povezava „navzgor„ na podlagi ACL |
dynamic | število ≥ 0 | nastavitev default_depth | Globina prednalaganja: N > 0 prednaloži N ravni, globlje pridejo prek AJAX ob odpiranju; 0 = neomejeno prednalaganje (brez lenega nalaganja) |
icons | fa, none | none | fa izriše ikone FontAwesome (mapa, stran, zbirka, zunanje, navzgor) |
Opombe:
- Brez
ns/startnsvtičnik navzgor išče stransidebar*in začne meni pri tem imenskem prostoru. - V osredotočenih načinih (
ns=auto,startns=current) zbirka nikoli ne postane osnova menija; osnova se premakne v nadrejeni imenski prostor najbolj zunanje zbirke. - Rodovnik imenskih prostorov trenutne strani je vedno prednaložen strežniško — odprto vozlišče na trenutni poti prikaže svoje otroke tudi onkraj globine
dynamic. - Brez
dynamicodloča nastavitevdefault_depth(privzeto1): ena raven strežniško, globlji imenski prostori se naložijo ob kliku. Neomejeno pomeni prehod celotnega nabora strani ob vsakem prikazu strani — meni namenoma ni predpomnjen, ker je odvisen od trenutne strani, pravic bralca in njegovih odprtih vej. - Pri
sneaky_indexse zaščiteni vmesni imenski prostori z berljivo vsebino spodaj prikažejo kot delni: napis brez povezave, razširljiv.
Primer:
~~NOCACHE~~
{{wk:acmenu>ns=auto|icons=fa|dynamic=1}}
Označevalec naslova
Podpis:
{{wk:title>Besedilo naslova}}
{{wk:title>de:Text|en:Text}}
Povzetek: Shrani nevidni naslov za meni v metapodatke strani.
Vrednost: poljubno besedilo; po izbiri vgnezden izraz ... (vtičnik wki18n).
Opombe: Prednost naslova v meniju: označevalec naslova pred prvim naslovom strani (useheading) pred ID strani. Učinkuje po naslednjem izrisu strani.
Primer: glej Kako: nastaviti naslov v meniju brez vidnega naslova strani.
Označevalec COLLECTION
Podpis:
~~COLLECTION~~
Povzetek: Na strani start imenskega prostora označi imenski prostor kot zbirko strani.
Vrednost: brez; presledki pred zaključnim ~~ se tolerirajo.
Opombe: Učinek (ikona, vedenje ob kliku, premik osnove menija, brez podrejenega lista start): Kako: voditi imenski prostor kot zbirko strani. Označevalec leži samo v trenutnih metapodatkih — po odstranitvi in ponovnem izrisu izgine. Strani Markdown ga ne prepoznajo.
Primer: glej Kako: voditi imenski prostor kot zbirko strani.
Stran vrstnega reda
Podpis: stran <ns>:<orderpagename> (privzeto: <ns>:order), golo besedilo:
# komentar ime-vnosa drugo-ime-vnosa
Povzetek: Določi vrstni red vnosov menija ene ravni imenskega prostora.
Vrednosti: eno ime vnosa na vrstico — ime strani ali ime podimenskega prostora, relativno na imenski prostor, brez polnih ID-jev; prazne vrstice in komentarji # se prezrejo; dvojniki štejejo enkrat.
Opombe: Našteti vnosi vodijo v vrstnem redu datoteke, nenašteti sledijo v privzeti razvrstitvi (imenski prostori pred stranmi, po abecedi, start najprej). Stran se bere brez preverjanja ACL (nastavitev razvrščanja), se nikoli ne pojavi kot vnos menija in naj bo skrita prek hidepages. Zapisljiva ročno ali s povleci-in-spusti.
Primer: glej Kako: določiti vrstni red menija.
Nastavitve
| Možnost | Tip | Privzeto | Opis |
|---|---|---|---|
orderpagename | besedilo | order | Ime strani vrstnega reda na imenski prostor |
default_depth | število ≥ 0 | 1 | Globina prednalaganja za vsak meni brez lastnega parametra dynamic; 0 = prednaloži vse |
Končni točki AJAX
plugin_wkacmenu_load
Podpis: GET lib/exe/ajax.php?call=plugin_wkacmenu_load&ns=<ns>&icons=<0|1>
Povzetek: Vrne eno raven imenskega prostora kot HTML (leno nalaganje). Imenski prostori v njej so spet vozlišča za leno nalaganje; scripts/treeview.js jih v vstavljenem odseku znova poveže.
Odgovor: golo HTML (Content-Type: text/html), en sam <ul class="wk-tree">…</ul> — ne več JSON. scripts/treeview.js (vtičnik wkfluentui) naslov pridobi neposredno in z njim zamenja prazno vozlišče. Napake vrnejo prazno telo s statusom, ki ni 2xx (400 manjka ns, 403 ACL, 503 wkfluentui ni na voljo), namesto objekta JSON z napako.
Opombe: Zahteva bralno pravico na strani start imenskega prostora; vrnjeni vnosi so filtrirani po ACL.
plugin_wkacmenu_order
Podpis: POST lib/exe/ajax.php s call=plugin_wkacmenu_order, ns, names (polje JSON imen vnosov), sectok.
Povzetek: Zapiše stran vrstnega reda imenskega prostora iz poslanega zaporedja (povleci-in-spusti).
Odgovor: JSON {success, order_id} oziroma {success: false, error}.
Opombe: Samo superuporabniki; samo POST; žeton CSRF se preveri; vsako ime vnosa se strežniško ponovno preveri (cleanID, en segment); preverjanje zaklepa strani vrstnega reda; vsak klic ustvari wiki revizijo. Vrstni red na odjemalcu je predstavitev, nikoli avtorizacija.
PHP API
Javne metode razreda syntax_plugin_wkacmenu za druge vtičnike/predloge:
| Metoda | Povzetek |
|---|---|
buildSubTree($ns) | Zgradi po ACL filtrirano, razvrščeno drevo menija imenskega prostora (neomejena globina) |
renderSubTree($tree, $sub_ns, $open_items, $useIcons) | Izriše drevo kot harmonika HTML (pot AJAX) |
renderNavFlyout($ns, $useIcons) | Izriše polno drevo za CSS hover flyoute — vsa vozlišča strukturno odprta, brez vgrajenega display:none |
Razredi CSS
| Razred | Pomen |
|---|---|
.acmenu / .acmenu-icons | vsebnik menija, z različico z ikonami |
.acmenu-up | vnos „navzgor“ |
.open / .closed | stanje vozlišča imenskega prostora |
.collection | zbirka strani |
.partial / .ns-label | zaščiteni vmesni imenski prostor, napis brez povezave |
.divert | imenski prostor z lastno stransko vrstico brez berljive vsebine (zunanji sklic) |
.lazy / .loading | vozlišče še ne naloženo / trenutno nalagano prek AJAX |
.curid | trenutna pot |
.acmenu-drag / .acmenu-sort-placeholder / .acmenu-saved | povleci-in-spusti: ročaj, cilj spusta, potrditev shranjevanja |
Piškotek
Odprta vozlišča ležijo v piškotku plugin_wkacmenu_open_items (polje JSON ID-jev strani). Vtičnik ga bere strežniško med izrisom in prednaloži tam zabeležena vozlišča — stanje menija preživi menjave strani brez utripanja.
Pot izrisa
Pot menija od sprožilca do končnega drevesa. Koraki od 2 do 5 pripadajo vtičniku, koraki od 6 do 8 kompletu gradnikov — to je meja, ki velja od različice 1.6.0: pridobivanje podatkov tu, izris tam (glejte Zgodovino različic).
| Korak | Kje | Kaj se zgodi |
|---|---|---|
| 1 | stranska vrstica z oznako acmenu ali začetna stran z ~~COLLECTION~~ | sprožilec |
| 2 | syntax.php | zgradi drevo |
| 3 | syntax.php | filter ACL za vsak vnos |
| 4 | syntax.php | razvrsti: imenski prostori pred stranmi, stran vrstnega reda prevlada |
| 5 | syntax.php | preslikava na shemo vozlišč |
| 6 | komponenta tree() iz wkfluentui | HTML iz <details> / <summary> |
| 7 | script.js | piškotek prek izvornega dogodka toggle |
| 8 | treeview.js iz wkfluentui | leno nalaganje ter povleci-in-spusti |
| 9 | action.php, plugin_wkacmenu_load | ob lenem nalaganju: surovi odlomek HTML |
| 10 | action.php, plugin_wkacmenu_order | ob spustu: zapiše stran vrstnega reda in preusmeri |