logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

9.10.1. Drupal Fields API. Field Widget: polja za unos podataka, forma za polje.

27/05/2025, by Ivan

Menu

U ovom tutorijalu ćemo pogledati kako funkcioniše Field Widget modula Link. Ovo je pregledni članak, pa ako želite početi da pišete svoj File Widget, preskočite na sledeće članke.

U poslednjoj lekciji smo dodali Link polja za nodove i blokove. Sada ćemo pogledati kako se formira forma za Link polje.

Već smo se upoznali sa automatskim učitavanjem PHP klasa u Drupalu, a postoji i klasa WidgetBase za field widget polja:

core/lib/Drupal/Core/Field/WidgetBase.php

Kreiranjem nove podklase u modulu i smeštanjem u src/Plugin/Field/FieldWidget, klasa će se automatski učitati i može se koristiti za polje. Pogledajmo widget klasu za Link polje:

core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php

U anotaciji klase je naveden tip polja za koji se ovaj widget može koristiti:

/**
 * Plugin implementation of the 'link' widget.
 *
 * @FieldWidget(
 *   id = "link_default",
 *   label = @Translation("Link"),
 *   field_types = {
 *     "link"
 *   }
 * )
 */

Na ovaj način možete dodavati nove field widgete u prilagođene module za postojeća polja.

Sada prelazimo na metodu formElement(), koja je verovatno jedna od glavnih metoda widgeta, gde se form elementi dodaju preko Form API-ja. U Link widgetu postoje tri elementa:

$element['title']
$element['uri']
$element['attributes']
Ova polja se koriste za unos podataka u formi nodova ili blokova. Takođe, poljima je dodata validacija jer, na primer, polje URI mora sadržati ispravnu URL adresu ili lokalnu adresu sajta.

Još jedna važna metoda je settingsForm(), koja je zadužena za formu podešavanja koju možete videti na stranici Manage form:

link

Sve ostale metode u Field Widget-u su opcione. Nećemo ulaziti u detalje za svaku od njih jer nisu obavezne za pisanje prilagođenih modula. Ako budete pisali module za doprinose, mislim da vam neće biti teško da pročitate opis metoda roditeljske klase:

core/lib/Drupal/Core/Field/WidgetBase.php

Svi Field Widgeti za polja se podešavaju na kartici Manage form display za svaki bundle entitet zasebno:

manage form display