Barre d'outils de la grille & le menu Plus d'options
La barre d'outils de la grille et son menu « ⋯ Plus d'options », qui regroupe plusieurs contrôles d'affichage côté client derrière un seul bouton.
Vue d'ensemble
La majeure partie de la barre d'outils de la grille - Ajouter, regroupement, recherche, le panneau de filtre avancé - est pilotée directement par les méthodes que vous appelez en PHP. Quelques contrôles sont différents : ce sont de purs interrupteurs côté client qu'un visiteur modifie à volonté dans son propre navigateur, indépendamment de votre configuration PHP (bien que certains aient tout de même besoin d'un interrupteur de configuration pour être présents du tout). Ils se trouvent derrière le bouton « ⋯ Plus d'options » pour que la barre d'outils principale ne soit pas surchargée. Le menu n'affiche que les sections réellement pertinentes pour la page en cours - une page sans appel à group_by_columns(), par exemple, n'affiche jamais de section de regroupement.
Bascule de visibilité des colonnes
Permet à un visiteur de masquer/afficher des colonnes de grille individuelles à volonté, indépendamment de ce que columns() a configuré pour la page. C'est contrôlé par un unique interrupteur de configuration global au site, sans surcharge par page :
public static bool $columnVisibilityToggle = true;
Quand c'est activé (par défaut), chaque grille obtient une section « Colonnes » dans le menu Plus d'options avec une case à cocher par colonne ; en décocher une la retire immédiatement de l'en-tête/du corps/du pied de page des sommes, côté client. Le choix est mémorisé pour la session du navigateur en cours mais ne persiste pas d'un jour ou d'un appareil à l'autre. Il n'existe pas d'appel de type XcrudConfig par page pour activer/désactiver un seul tableau - c'est activé pour toutes les grilles, ou désactivé pour toutes.
Développer/réduire tous les groupes
N'apparaît qu'une fois qu'une page appelle group_by_columns() (voir https://xcrudnova.xcrud.net/docs/fr/grouped-rows-sums-and-reports). Le menu affiche un seul interrupteur qui développe tous les groupes à la fois, ou les réduit tous - un raccourci par rapport au clic sur chaque en-tête de groupe individuellement.
Sélecteur de disposition de formulaire / mode d'édition
Le même sélecteur de mode d'édition décrit dans Options de disposition du formulaire est également accessible depuis ce menu - c'est par là qu'un visiteur atteint les deux modes de vue scindée réservés au JS (split_left/split_right) que set_edit_mode() lui-même ne peut pas définir. Le menu liste les cinq : Vue latérale, Vue scindée - gauche, Vue scindée - droite, Modale, et Normale. Choisir l'une d'elles s'applique immédiatement, ré-ouvrant même un formulaire déjà ouvert dans le nouveau mode plutôt que d'attendre une actualisation.
Afficher les champs de recherche dans les en-têtes de grille
Active ou désactive les champs de recherche par colonne dans l'en-tête (la rangée de petites zones de texte sous les intitulés de colonne). Affichés par défaut ; le choix d'un visiteur ici est mémorisé par session de navigateur, de la même façon que les choix de la bascule de visibilité des colonnes.
À noter : l'édition en ligne au clic
Ne fait pas partie du menu Plus d'options lui-même, mais reste proche de la barre d'outils : cliquer directement sur une cellule de grille édite ce champ sur place, sans ouvrir le formulaire complet d'ajout/édition. Cela fonctionne aux côtés de n'importe quel mode d'édition actif et ne nécessite aucune configuration supplémentaire pour être activé - cela fait partie du comportement de base de la grille.
Ce qui est piloté par la configuration face à un simple interrupteur client
| Fonctionnalité | Piloté par la config ? | Surcharge par page ? |
|---|---|---|
| Bascule de visibilité des colonnes | Oui - XcrudConfig::$columnVisibilityToggle | Non - à l'échelle du site uniquement |
| Développer/réduire tous les groupes | Apparaît automatiquement quand group_by_columns() est défini | N/A |
| Sélecteur de disposition de formulaire / mode d'édition | Mode initial via set_edit_mode() | Oui, par page ; le visiteur peut tout de même le changer en direct |
| Afficher les champs de recherche dans les en-têtes de grille | Non - pur interrupteur client | N/A (mémorisé par session) |
| Édition en ligne au clic | Non - toujours disponible | N/A |