/

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ètreTypeDéfautDescription
$fieldsstring-Champs séparés par des virgules appartenant à ce groupe
$groupLabelstring-Texte du titre affiché au-dessus du groupe
$collapsedboolfalseLorsque 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ètreTypeDéfautDescription
$labelstring-Libellé de l'onglet des propres champs de premier niveau de la table
$order?intnullPosition 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();