Trenutno dejavna stran: start » sl » Interna dokumentacija » Razširitve DokuWikija (WvdS) » AcMenu Vtičnik » Referenca skladnje in API

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/startns vtičnik navzgor išče stran sidebar* 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 dynamic odloča nastavitev default_depth (privzeto 1): 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_index se 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
sl/wiki/dwe/wkacmenu/reference.txt · Zadnja sprememba: uporabnika 0.0.0.0