Trenutno dejavna stran: start » sl » Interna dokumentacija » Razširitve DokuWikija (WvdS) » FluentUI (knjižnica oblikovalskega sistema) » FluentUI: reference komponent » FluentUI: Toolbar — predstavitveni pregled » Toolbar: osnove

Toolbar: osnove

1. Pregled in namen

Stanje: [Live]. Vir: lib/plugins/wkfluentui/helper/widgets.php, metoda toolbar() (vrstica 603).

toolbar() ovije HTML gumbov/povezav/select, ki ga je že izdelal klicatelj, z role=„toolbar“ in izbirnim združevanjem. Ciljna publika: vsaka vrstica dejanj (modulna ukazna vrstica, mrežna vrstica množičnih dejanj, gumbi obrazca), ki potrebuje s standardom WAI-ARIA skladno tipkovnično navigacijo brez lastne kode JavaScript.

2. Predpogoji

  • DokuWiki z omogočenim vtičnikom wkfluentui.
  • helper_plugin_wkfluentui_widgets naložen prek plugin_load('helper', 'wkfluentui_widgets').
  • Dejanske gumbe/povezave klicatelj priskrbi povsem izrisane — toolbar() sam ne izriše nobenega kontrolnika.

3. Pojmi

Ovijajoča semantika, brez izrisa kontrolnikov: toolbar() izriše le okvir role=„toolbar“ in združevanje; vsak element je že zaupanja vreden HTML, ki ga izdela klicatelj (ista konvencija kot pri rowActions(), glej api → odsek „Pojmi").

Rezervni način je živa koda, ne poslabšanje: goli izris <div class="wkq-bt wk-toolbar">, ki je bil že v produkciji v wksqliteds, je rezervni način brez JS — toolbar() zgolj doda role=„toolbar“ plus (postopno) tipkovnično navigacijo, ne nove osnovne oblike izrisa.

4. Prvi koraki

/** @var helper_plugin_wkfluentui_widgets $widgets */
$widgets = plugin_load('helper', 'wkfluentui_widgets');
 
echo $widgets->toolbar([
    ['label' => 'Novo',   'element' => '<button type="submit" name="do" value="new">Novo</button>', 'group' => 'main'],
    ['label' => 'Odpri',  'element' => '<button type="submit" name="do" value="open">Odpri</button>', 'group' => 'main'],
    ['label' => 'Izbriši', 'element' => '<button type="submit" name="do" value="delete" class="wk-btn--danger">Izbriši</button>', 'group' => 'danger'],
], ['ariaLabel' => 'Dejanja tabele']);

Napačno: posredovati element kot navadno besedilo namesto dokončanega HTML-ja ('element' => 'Novo'). toolbar() element ne ubeže — besedilo brez ovijajoče oznake gumba/povezave se izriše nevidno/neosredotočljivo, namesto da bi se pojavilo kot dejanje.

5. Uporaba

Primer uporabe Vzorec
Modulno obsežna ukazna vrstica toolbar() v regiji ukazne vrstice — admin-layout → „Ukazna vrstica kot regija lupine"
Orodna vrstica izbire mreže (vrstica množičnih dejanj) interno klicana iz dataGrid()urejanje podatkov (množična dejanja)
Skupinska dejanja (belo→modro→rdeče) vrednosti group v vrstnem redu barvne semantike Contract v3 — Styles-Contract (--wk-*)

6. API referenca

Metapodatek Vrednost
Jezik PHP
Imenski prostor helper_plugin_wkfluentui_widgets
Datoteka lib/plugins/wkfluentui/helper/widgets.php
Vidnost public
Stabilnost stabilno (raven 1)
public function toolbar(array $items, array $opts = []): string

Povzetek: ovije HTML klicatelja z <div role="toolbar"> in izbirnim združevanjem.

Vrnjena vrednost: string. Prazen niz pri praznem $items.

7. Parametri, možnosti in stanja

Ključ Tip Obvezno Pomen
$items[]['label'] string Da le za kontekst, se ne izriše samo — vidna oznaka je znotraj element
$items[]['element'] string Da zaupanja vreden HTML, ki ga je že izdelal klicatelj — ubeže klicatelj
$items[]['group'] string Ne vnosi z isto vrednostjo se izrišejo skupaj v eni skupini; spremenjena vrednost samodejno odpre novo skupino
$opts['ariaLabel'] string Ne oznaka celotne orodne vrstice, privzeto „Toolbar“

Generiran izris

<div class="wk-toolbar" role="toolbar" aria-label="…"> → vnosi brez group neposredno kot otroci, vnosi z group znotraj <div class="wk-toolbar__group">.

Vedenje ob napaki

Pogoj Vedenje
$items prazen vrne prazen niz, brez napake
element brez veljavne HTML-oznake izpiše se nespremenjeno — brez napake, a funkcionalno neosredotočljivo (glej odsek 4, „Napačno„)

8. Popolni primeri

echo $widgets->toolbar([
    ['label' => 'Izvoz', 'element' => '<button type="submit" name="do" value="export" class="wk-btn--accent">Izvoz</button>', 'group' => 'dejanja'],
    ['label' => 'Osveži', 'element' => '<button type="submit" name="do" value="refresh">Osveži</button>', 'group' => 'dejanja'],
], ['ariaLabel' => 'Dejanja modula']);

9. Omejitve in robni primeri

  • Vedenje prelivanja je izbirno prek $opts['overflow'] — podrobnosti: Adaptivity.
  • Naslovi ribbon-skupin/različice velikosti galerije prek groupLabel/size/ribbonStyle — podrobnosti: Ribbon-skupine/Galerija.

10. Dostopnost in združljivost

  • Celoten pregled: Accessibility (konsolidirano, tu ni podvojeno).
  • Brez JavaScripta vsako dejanje ostane normalno s tipko Tab dosegljiv element — vzorec WAI-ARIA roving tabindex je čisto postopno izboljšanje.

11. Odpravljanje težav

Simptom: navigacija s puščicami med vnosi orodne vrstice ne deluje.

Vzrok: scripts/toolbar.js ni bil naložen (npr. ker manjka kanonična pot nalaganja prek script.js), ali pa ima orodna vrstica manj kot dva osredotočljiva otroka — skript aktivira roving tabindex šele od dveh elementov naprej.

Rešitev: preveriti pot nalaganja skripta (direktiva DOKUWIKI:include v script.js, glej api → odsek „Pojmi"); pri le enem vnosu manjkajoča navigacija s puščicami ni napaka — tipka Tab tako ali tako neposredno doseže edini element.

12. Sorodne teme

sl/wiki/dwe/wkfluentui/component/toolbar/basics.txt · Zadnja sprememba: uporabnika 0.0.0.0