Feldgruppierung, Tabs & Rich Text
Teilen Sie ein langes Formular in einklappbare Abschnitte oder Tabs auf, und fügen Sie ein Quill-Rich-Text-Editor-Feld hinzu.
fields_arrange() - einklappbare Abschnitte
->fields_arrange($fields, $groupLabel, $collapsed = false) gruppiert Felder in einen beschrifteten, einklappbaren Abschnitt - eine Überschrift mit Auf-/Zuklapp-Schalter, statt einer flachen Liste. Rufen Sie sie einmal pro Gruppe auf, in der Reihenfolge, in der die Gruppen erscheinen sollen.
$xcrud->fields_arrange('firstName,lastName,email', 'Contact Info');
$xcrud->fields_arrange('addressLine1,city,postalCode', 'Address', true);
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
$fields | string | - | Kommagetrennte Felder, die zu dieser Gruppe gehören |
$groupLabel | string | - | Überschriftstext über der Gruppe |
$collapsed | bool | false | Bei true startet die Gruppe eingeklappt statt ausgeklappt |
fields() als Tab-Umschalter
->fields() kann auch mehrfach mit $useTabs = true aufgerufen werden, um statt eines langen Formulars einen Tab-Umschalter zu bauen - jeder Aufruf wird ein Tab, mit $sectionName als dessen Beschriftung. Jedes über alle Aufrufe hinweg genannte Feld bleibt genauso freigegeben/bearbeitbar, wie es ein einzelner fields()-Aufruf verlangen würde.
$xcrud->fields('firstName,lastName,email', true, 'Contact');
$xcrud->fields('addressLine1,city,postalCode', true, 'Address');
$xcrud->fields('notes', true, 'Notes');
Alle fields()-Aufrufe, die einen Abschnitt benennen, müssen sich bei $useTabs einig sein (alle mit Tabs, oder alle ohne) - und Tab-Abschnitte schließen sich mit ->fields_arrange() auf derselben Seite gegenseitig aus. Einfache (nicht-Tab-)Abschnitte kombiniert mit fields_arrange() sind hingegen unproblematisch, da sie nicht um dieselbe visuelle Rolle konkurrieren.
Wenn eine Tabelle auch nested_table() verwendet (was pro Kind einen eigenen Tab erzeugt), beschriftet ->default_tab($label, $order = null) den Tab, der die eigenen Top-Level-Felder der Tabelle enthält, damit er konsistent neben den Nested-Table-Tabs erscheint.
$xcrud->default_tab('Details', 1);
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
$label | string | - | Beschriftung für den Tab mit den eigenen Top-Level-Feldern der Tabelle |
$order | ?int | null | Position dieses Tabs relativ zu den Nested-Table-Tabs |
Siehe Nested Tables als Tabs für die Nested-Table-Seite hiervon.
Rich Text mit dem Feldtyp editor
change_type($field, 'editor') tauscht die einfache Textarea eines Felds gegen einen Quill-WYSIWYG-Rich-Text-Editor aus und speichert das Ergebnis als HTML.
$xcrud->change_type('description', 'editor');
Siehe Feldtypen im Überblick für die vollständige Liste der Typen.
Alles zusammen
$xcrud = Xcrud::get_instance();
$xcrud->table('products');
$xcrud->route('products');
$xcrud->change_type('description', 'editor');
$xcrud->fields('productName,productLine,quantityInStock', true, 'Overview');
$xcrud->fields('description', true, 'Description');
$xcrud->fields('buyPrice,MSRP', true, 'Pricing');
$xcrud->render();