Trenutno dejavna stran: start » sl » Interna dokumentacija » Razširitve DokuWikija (WvdS) » FluentUI (knjižnica oblikovalskega sistema) » FluentUI: lupine območij » FluentUI: urejevalnik nastavitev

FluentUI: urejevalnik nastavitev

Nazaj: FluentUI: lupine območij · Pregled knjižnice


Stanje: popolno [Live od 25. 08. 2026] (vir: Screen/Settings.php, helper/settings.php, scripts/settings.js). Sorodno: Skrbniška postavitev · Mreža lastnosti

Kaj nadomešča in zakaj to ni bila stvar okusa

DokuWikijev upravitelj nastavitev izriše svoj celoten odgovor v enem prehodu: en <fieldset> na skupino, tabela v njem, vsaka skupina odprta. Izmerjeno na živi namestitvi 25. 08. 2026: 368 nastavitev v 36 skupinah na eni strani, mediana velikosti skupine 8, največja 63. 48 jih odstopa od privzete vrednosti, in nič na zaslonu ni povedalo, katere.

Dolžina ni bila najhujše. Vrstice so ležale v mreži lastnosti, katere stolpec oznak je bil max-content, oznaka pa je nosila white-space: nowrap. Vsak paket tega paketa piše cel razlagalni stavek v Setting::prompt() — in ta je oznaka. Prvi stolpec je tako postal tako širok kot najdaljši stavek svoje skupine in je stolpec s kontrolnikom potisnil izven vidnega območja:

Širina okna desni rob oznake desni rob kontrolnika
768 px 1374 px 1402 px
1280 px 1618 px 1646 px

Območje vsebine se ne pomika vodoravno. Kontrolniki torej niso bili zunaj slike, ampak nedosegljivi. Pri 390 px na celotnem zaslonu ni bil viden niti eden — osemnajst oznak, nič vnosnih polj. Skupine s kratkimi pozivi (wrap) se izrišejo pravilno, in prav zato je bilo videti mesece kot napaka paketa in ne kot pravilo mreže.

Izsek se sme shraniti — sospremljanje

To je predpogoj za vse ostalo in ni bilo očitno.

Configuration::updateSettings($input) teče čez vsako nastavitev in vsaki poda $input[$key] ?? null. Osnovni razred null prestreže — štirje podrazredi tega ne storijo:

Razred odsotnost razume kot
SettingOnoff 0 — stikalo se ugasne
SettingMulticheckbox prazna množica
SettingDisableactions isti razred, isti učinek
SettingImConvert prazen niz
SettingSavedir napaka — in upravitelj zavrže celoten postopek

Obrazec, ki prikaže le izsek, torej tiho ugasne vsako stikalo zunaj izseka. Na živi namestitvi: 86 nastavitev teh razredov, 54 od njih z vrednostjo, ki bi jo odsotnost spremenila.

Štirje teki proti isti nespremenjeni poti pisanja, območje wkmail, 12 od 368 nastavitev vidnih:

Tek Polj Rezultat
Celoten obrazec (kar pošlje priloženi upravitelj sam) 339 7 prireditev spremenjenih — referenčna vrednost
Izsek s sospremljanjem 66 0 sprememb preko referenčne vrednosti
Izsek brez sospremljanja 12 preverjanje odpove, nič ni shranjeno
Izsek, sospremljanje brez stikal 15 51 sprememb preko referenčne vrednosti

Med teh 51: useacl = 0, securecookie = 0, iexssprotect = 0, relnofollow = 0, sneaky_index = 0. Prva ugasne upravljanje dostopa celotnega wikija — sproženo s shranjevanjem dvanajstih poštnih nastavitev.

Tretji tek je bil potreben, ker drugi zavaja: brez sospremljanja pade zraven savedir, čigar napaka zavrže celoten postopek, in nič sprememb je potem videti kot neškodljivost.

Urejevalnik zato za natanko te razrede sospremlja skrita polja s trenutno vrednostjo — 54 kosov, približno 4 kB. Samo zanje: sospremljati vseh 368 bi bilo večje, potrebovalo bi serializacijo na razred in bi zapisalo šifrirana gesla v dokument.

Seznam razredov je literal, in literal, ki lahko zastara, je napaka, ki čaka na posodobitev DokuWikija. _test/SettingsCarryTest.php ga zato preverja v obe smeri proti izvorni kodi paketa za nastavitve.

Vračanje na privzeto je stanje prikaza, ne druga pot pisanja

Setting::shouldBeSaved() vrednost izpusti, takoj ko je enaka privzeti. „Vrni na privzeto„ in „pošlji privzeto vrednost“ sta za pisca torej isto.

Povezava &wkreset=<ključ> zato izbriše le lokalno vrednost na objektu, ki živi le v tej zahtevi; kontrolnik nato prikaže privzeto vrednost, običajno shranjevanje pa ključ odstrani iz conf/local.php. Iz tega sledijo tri lastnosti, in vsaka je razlog za to obliko:

  • deluje brez JavaScripta, za vsak razred nastavitve, tudi za večvrednostne, ki jih gumb za oddajo ne bi mogel izraziti;
  • GET nikoli ne piše — predhodni nalagalnik, zaznamek ali pajek, ki sledi povezavi, ne spremeni ničesar;
  • bralec pred shranjevanjem vidi, kaj bo shranil.

&wkreset=* vrne vse odklone prikazanega območja, s povratnim vprašanjem in navedbo števila.

Območje je naslov in se zapomni

&scope= poimenuje območje: dokuwiki, tpl:<ime>, plugin:<ime>, poleg tega še pogleda !changed in !undefined. Klicaj ju gradbeno loči od imena paketa — imenik paketa se tako ne more imenovati, ker ga nalagalnik manifestov preveri proti [A-Za-z0-9_-]+.

Območje se zapomni za vsakega uporabnika, in to ni udobje. admin_plugin_config::handle() po uspešnem shranjevanju preusmeri na ?do=admin&page=configbrez območja, in nič v tem paketu tega ne more spremeniti, ker se zgodi v preProcess(), dolgo preden zaslon obstaja. Brez pomnjenja bi vsako shranjevanje pristalo nazaj v jedrnih nastavitvah.

Naslov je ključ, ne začetek stavka

Setting::prompt() vrne en niz, vrstica pa potrebuje dvoje: nekaj za preletavanje in nekaj za branje.

Prvi poskus je poziv odrezal na prvi meji stavčnega člena. Izmerjeno je to dalo naslove kot „Absendername, den Empfänger sehen, z„ — rez je pristal v „z. B.“ — in „Verlangt den zweiten Faktor eines bereits enrollten Benutzers bei jedem„. Stavčni odlomek je slabši od nobenega naslova: bere se kot naslov in to ni. In vsako pravilo, ki popravi ta dva primera, je pravilo o nemških okrajšavah, v polju, ki obstaja v petih jezikih.

Naslov je zato ključ sam — tisto, kar poimenuje dokumentacija, kar vpraša podpora in kar skrbnik vtipka v iskanje. Poziv ostane cel in stoji kot razlaga pod njim.

Kaj ni bilo zgrajeno in zakaj

Noben filter „opuščeno“. DokuWiki nima takega polja. Brati besedo iz poziva bi bila domneva v preobleki metapodatkov: odvisna bi bila od prevoda, sprožila bi se pri vsakem stavku, ki opuščen postopek le omenja, in bi v petih jezikih odgovarjala različno. Namesto tega urejevalnik bere neobvezen metapodatkovni parameter _deprecated, ki ga paket lahko nastavi v svoji conf/metadata.php.

Zato pa obstajata dva pogleda, za katera vir obstaja: Spremenjeno (Setting::isDefault()) in Neznani ključi (Configuration::getUndefined()).

Vrstica dejavnosti je še vedno seznam paketov. Predelava na skrbniška delovna področja spremeni besedišče skupne površine — zadeva pogodbo o značkah in razporeditev, shranjeno za vsakega uporabnika. Teče kot lasten postopek.

Majhni zasloni

Oba stolpca vrstice sta minmax(0, …). Noben stolpec ne more biti odmerjen po svoji vsebini, in s tem nobena oznaka, noben stavek in nobena vrednost ne more potisniti kontrolnika izven vidnega območja — to ni okus, ampak natanko napaka, proti kateri je bil ta zaslon zgrajen.

Pod 1024 px se kontrolnik preseli pod besedilo; pod 768 px postane vrstični meni list, potrditveno polje pa 24 px veliko. Prelomne točke so tiste te namestitve (768/1024/1280).

Prevzeto na sliki pri 320, 390, 768 in 1280 px, v treh jezikih — nemško in italijansko, ker vsak vodi eno od dveh mer (nemško največ posameznih vrhov, italijansko največjo vsoto), in angleško kot izhodišče. Noben element ne sega čez rob okna.

Dostopnost

  • <label for> samo tam, kjer to drži. Večvrednostna nastavitev izriše eno vnosno polje na izbiro in nobeno od njih ne nosi oznake nastavitve same; oznaka, ki bi kazala tja, bi napis povezala z ničemer — slabše od navadnega napisa, ker bralnik zaslona povezavo napove.
  • Stanje nikoli samo prek barve. „Spremenjeno„ je črta in besedna oznaka.
  • Vrstični meni je <details> — upravljiv s tipkovnico in brez skripta.
  • Sporočila tečejo prek žive regije, tudi če se poleg pojavi obvestilo.
  • Zadetne površine najmanj –wk-touch-min (40 px, pod grobim kazalcem 44).

Sorodne teme

sl/wiki/dwe/wkfluentui/area/settings-editor.txt · Zadnja sprememba: uporabnika rollout