Regroupement de champs, onglets & texte enrichi
Découpez un long formulaire en sections repliables ou en onglets, et ajoutez un champ éditeur de texte enrichi Quill.
fields_arrange() - sections repliables
->fields_arrange($fields, $groupLabel, $collapsed = false) regroupe des champs dans une section repliable avec libellé - un titre avec un bouton d'expansion/repliement, plutôt qu'une liste à plat. Appelez-la une fois par groupe, dans l'ordre où les groupes doivent apparaître.
$xcrud->fields_arrange('firstName,lastName,email', 'Contact Info');
$xcrud->fields_arrange('addressLine1,city,postalCode', 'Address', true);
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
$fields | string | - | Champs séparés par des virgules appartenant à ce groupe |
$groupLabel | string | - | Texte du titre affiché au-dessus du groupe |
$collapsed | bool | false | Lorsque true, le groupe démarre replié plutôt qu'ouvert |
fields() comme sélecteur d'onglets
->fields() peut aussi être appelée plusieurs fois avec $useTabs = true pour construire un sélecteur d'onglets au lieu d'un long formulaire unique - chaque appel devient un onglet, avec $sectionName comme libellé de cet onglet. Chaque champ nommé à travers tous les appels reste en liste blanche/éditable exactement comme l'exigerait un unique appel à fields().
$xcrud->fields('firstName,lastName,email', true, 'Contact');
$xcrud->fields('addressLine1,city,postalCode', true, 'Address');
$xcrud->fields('notes', true, 'Notes');
Tous les appels à fields() qui nomment une section doivent s'accorder sur $useTabs (tous en onglets, ou tous à plat) - et les sections en onglets sont mutuellement exclusives avec ->fields_arrange() sur la même page. Combiner des sections à plat (sans onglet) avec fields_arrange() ne pose pas de problème, car elles ne se disputent pas le même rôle visuel.
Lorsqu'une table utilise aussi nested_table() (qui crée son propre onglet par enfant), ->default_tab($label, $order = null) libelle l'onglet contenant les propres champs de premier niveau de la table, afin qu'il s'intègre de façon cohérente parmi les onglets des tables imbriquées.
$xcrud->default_tab('Details', 1);
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
$label | string | - | Libellé de l'onglet des propres champs de premier niveau de la table |
$order | ?int | null | Position de cet onglet par rapport aux onglets des tables imbriquées |
Voir Tables imbriquées en onglets pour le volet tables imbriquées de ce sujet.
Texte enrichi avec le type de champ editor
change_type($field, 'editor') remplace le simple textarea d'un champ par un éditeur de texte enrichi WYSIWYG Quill, stockant le résultat en HTML.
$xcrud->change_type('description', 'editor');
Voir Aperçu des types de champs pour la liste complète des types.
En pratique
$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();