FluentUI: zasloni jedra
Nazaj: reference komponent
Tri zaslone jedra DokuWiki wkfluentui izriše z lastnimi gradniki: upravljanje medijev, pojavno okno medijev urejevalnika in obrazce jedra. Dejanja, naslovi in preverjanja pravic ostanejo v jedru; spremeni se le prikaz.
Mednje ne spada naročnina (do=subscribe). Na tej namestitvi je izklopljena ($conf['subscribers'] = 0), točka menija se ne prikaže. Če jo vklopite, dobite zaslon naročnine iz jedra, ki ga komplet ne izriše, in hkrati vklopite pošiljanje e-pošte naročnikom. Pred vklopom mora biti zato izdelana različica kompleta in prevzeta na delujočem wikiju (delovni element #2660).
Upravljanje medijev (do=media)
Podpis
doku.php?do=media[&ns=…][&image=…][&tab_files=…][&tab_details=…][&list=…][&sort=…]
Prevzeto prek dogodka TPL_ACT_RENDER v action/mediascreen.php; namesto tpl_media() se izriše delovna površina.
Povzetek
Upravljanje medijev kot delovna površina: drevo imenskih prostorov v stranski vrstici, datoteke imenskega prostora v vsebini, izbrana datoteka v pomožni vrstici.
Parametri
| Parameter | Vrednosti | Pomen |
|---|---|---|
ns | imenski prostor | prikazani imenski prostor |
image | ID medija | izbrana datoteka; odpre pomožno vrstico |
tab_files | files · search | seznam datotek ali rezultat iskanja |
tab_details | view · edit · history | zavihek izbrane datoteke: ogled, metapodatki, zgodovina |
list | thumbs · rows | ploščice ali vrstice |
sort | name · date | razvrščanje seznama datotek |
mediado | searchlist · update · save · restore · diff | dejanje jedra: iskanje, zamenjava datoteke, shranjevanje metapodatkov, obnovitev različice, primerjava dveh različic |
q | besedilo | iskalni niz, skupaj z mediado=searchlist |
rev | časovni žig | ena od prejšnjih različic datoteke |
first | število | listanje po zgodovini |
delete | ID medija | brisanje, z varnostnim žetonom jedra |
wkconfirm | delete | edini lastni parameter: pred brisanjem prikaže vprašanje za potrditev |
Opombe
- Dejanja ostanejo v jedru. Nalaganje, shranjevanje metapodatkov, obnovitev in brisanje potekajo v
lib/exe/mediamanager.php, s preverjanji žetona in pravic jedra. Zaslon le izrisuje. - Naslovi ostanejo naslovi jedra. Vsaka povezava nastane prek
media_managerURL(). Zaznamek starega upravljanja medijev odpre isto, zaslon pa deluje tudi brez JavaScripta. - Brisanje zahteva potrditev (
confirmPanel()). Datoteka, ki je še uporabljena na kakšni strani, brisanja ne ponudi in namesto tega prikaže opozorilo. - Sporočila jedra (»naloženo«, »izbrisano«) se prikažejo v območju sporočil predloge nad zaslonom.
- Metapodatke je kot v jedru mogoče urejati le pri slikah JPEG.
- Preimenovanja ni; jedro medijskih datotek ne zna preimenovati.
- Ravni drevesa se nalagajo naknadno:
lib/exe/ajax.php?call=plugin_wkfluentui_medienbaum&ns=…&id=…vrne eno raven kot HTML, na imenski prostor brez pravice branja pa odgovori s 403. Če nalaganje ne uspe, se prikaže vrstica z opozorilom, naslednji klik na vozlišče pa naloži znova. - Nadomestni izris: če kateri od potrebnih gradnikov manjka, jedro izriše svoje upravljanje medijev – nikoli pol zaslona.
Primer
doku.php?do=media&ns=wiki&list=rows&sort=date doku.php?do=media&ns=wiki&image=wiki:dokuwiki-128.png&tab_details=history
Sestava
workbench() z auxbarOpen · tree() z naknadnim nalaganjem · dataGrid() kot ploščice ali vrstice · fileUploader() z upload.multiple in upload.doneUrl · propertyGrid() · confirmPanel() · toolbar() · modal()
Pojavno okno medijev urejevalnika (lib/exe/mediamanager.php)
Podpis
lib/exe/mediamanager.php?ns=…&edid=…[&onselect=…][&einfuegen=…][&uilang=…]
Predloga wkbizway v svoji datoteki mediamanager.php pokliče metodo popup() razreda action_plugin_wkfluentui_mediascreen, potem ko jedro izvede svoja dejanja.
Povzetek
Ista delovna površina kot upravljanje medijev, v oknu, ki ga odpre gumb za medije v orodni vrstici urejevalnika, z ukazom »Vstavi«.
Parametri
Vsi parametri upravljanja medijev razen do, poleg tega:
| Parameter | Vrednosti | Pomen |
|---|---|---|
edid | ID polja | besedilno polje urejevalnika, v katerega se vstavlja; privzeto v jedru wiki__text |
onselect | ime funkcije | povratni klic v oknu urejevalnika; privzeto v jedru dw_mediamanager_item_select |
einfuegen | ID medija | prikaže obrazec za vstavljanje te datoteke |
uilang | koda jezika | jezik, v katerem je bilo pojavno okno odprto; nosi se naprej in se nikoli ne zapomni |
Opombe
- Vstavlja jedro.
scripts/mediainsert.jsodgovore preda funkcijidw_mediamanager.insert(). Vstavljena skladnja je skladnja jedra, na primer{{ :wiki:dokuwiki-128.png?200|}}. - Obrazec za vstavljanje pri slikah JPG, PNG in GIF vpraša po povezavi, poravnavi in velikosti, poleg tega še »ohrani okno odprto«. Odgovori se shranijo v iste vrednosti piškotka kot v jedru (
link,align,size,keepopen); naslednje pojavno okno se odpre z isto izbiro. Druge datoteke, tudi SVG in PDF, se vstavijo takoj. Pri »samo povezava« poravnava in velikost odpadeta. - Ukazi ostanejo vidni. Vrstica ukazov obrazca je pripeta na spodnji rob drsnega pogovornega okna; to velja za vsak
modal(). - Drevo imenskih prostorov ostane zasidrano do širine okna 600px (
sidebarDocked); pojavno okno se odpre v velikosti 750×500. - Jezik: pojavno okno sledi prikazanemu imenskemu prostoru. Če ta ne navaja jezika, ostane v jeziku, v katerem je bilo odprto (
uilang). Izrecno izbrani jezik ima vedno prednost. Pravilo je v wki18n. - Brez JavaScripta ni mogoče vstaviti ničesar; obrazec to pove v posebni vrstici.
- Brez urejevalnika – okno je bilo odprto samostojno ali pa je urejevalnik zaprt – se namesto napake skripta prikaže sporočilo.
- Nadomestni izris: brez
wkfluentuipredloga izriše pojavno okno jedra.
Primer
lib/exe/mediamanager.php?ns=sl:wiki:dwe&edid=wiki__text lib/exe/mediamanager.php?ns=wiki&edid=wiki__text&uilang=sl&einfuegen=wiki:dokuwiki-128.png
Sestava
Gradniki upravljanja medijev, poleg tega workbench() s sidebarDocked · modal() · radioGroup() z layout horizontal · checkbox()
Obrazci jedra (coreform)
Podpis
helper_plugin_wkfluentui_coreform::render(\dokuwiki\Form\Form $form, ?string $eventName = null, array $opts = []): string
Za obrazec, katerega deli so v dveh regijah, isto delo po korakih: trigger(), formOpen(), elements(), formClose().
Povzetek
Izriše objekt Form jedra s polji in gumbi kompleta, ne da bi izgubil prispevke drugih vtičnikov.
Parametri
| Parameter | Tip | Pomen |
|---|---|---|
$form | \dokuwiki\Form\Form | obrazec jedra |
$eventName | niz ali null | kratko ime kot pri Form::toHTML(), npr. UpdateProfile; sproži FORM_<NAME>_OUTPUT. null le za obrazec, h kateremu drug vtičnik nikoli ni mogel prispevati |
$opts['class'] | niz | dodatni razredi na elementu <form> |
$opts['legends'] | bool | false izpusti legende skupin polj, kadar klicatelj odsek že poimenuje sam |
$opts['fields'] | polje | preglasitve po imenu polja, npr. ['newpass' => ['autocomplete' => 'new-password']] |
$opts['from'], $opts['to'] | število | obseg elementov (to vključno); le prek elements() |
Povratna vrednost: HTML obrazca ali prazen niz, če ga ni mogoče varno izrisati – takrat klicatelj preide na jedro.
Opombe
- Dogodek se sproži kot v jedru, na istem mestu kot v
Form::toHTML(). Kar drugi vtičniki dodajo v obrazec – polja za dvostopenjsko preverjanje izwkidentityv profilu, polja bloga izwkblogv urejevalniku – ostane. - Element, ki ga razred ne pozna, se izriše sam (
Element::toHTML()). Obrazec tako nikoli ne izgubi polja; na tistem mestu je kvečjemu videti drugače. - Vnaprejšnje vrednosti ostanejo vrednosti jedra. Po zavrnjeni oddaji so vrednosti spet v poljih: najprej teče
toHTML(), šele nato razred prebere atribute. - Skupine izbir: legenda odseka postane dostopno ime skupine možnosti v njem.
- Porabniki: profil (
do=profile, dogodekUpdateProfile), urejevalnik (do=edit, dogodekEdit, deli v dveh regijah) in iskanje (do=search).
Primer
$cf = plugin_load('helper', 'wkfluentui_coreform'); $html = $cf->render($form, 'UpdateProfile', [ 'legends' => false, 'fields' => ['oldpass' => ['autocomplete' => 'current-password']], ]);
Sestava
Polja obrazca: textBox() · passwordBox() · textArea() · comboBox() · checkbox() · radioGroup() · button() · hiddenField()