Bascules de visibilité et grilles verrouillées
Masquez l'interface Ajouter/Modifier/Supprimer/recherche/pagination avec la famille unset_*() pour construire une grille en lecture seule ou de type borne interactive.
Cosmétique, pas sécurité
Chaque méthode unset_*() masque exactement une fonctionnalité d'interface existante - c'est purement cosmétique. Le point d'accès REST sous-jacent n'est PAS désactivé côté serveur ; un visiteur pourrait toujours envoyer une requête POST/PUT/DELETE directement contre ajax_crud.php avec les mêmes permissions qu'avant. Utilisez ->pass_var()/->where() ou une véritable couche d'authentification si vous avez besoin d'une restriction réellement appliquée. Voir Sécurité : mise sur liste noire des tables et colonnes pour la véritable frontière de sécurité.
La famille unset_*()
| Méthode | Masque |
|---|---|
unset_add() | Le bouton Ajouter de la barre d'outils. |
unset_edit() | Le bouton Modifier de chaque ligne ET l'édition en ligne par clic sur la cellule - les deux relèvent de "l'édition", une seule bascule désactive donc les deux. |
unset_remove() | Le bouton Supprimer de chaque ligne. |
unset_search() | Le champ de recherche simple, les bascules Colonnes/Avancée, le panneau de filtre avancé, le résumé sous forme de puces de recherche active, et le champ de recherche par en-tête de chaque colonne - tout le sous-système de recherche comme un seul bloc. |
unset_title() | Le titre <h1> de la page que ->page() affiche au-dessus du widget. Aucun effet sur ->render() (le mode intégré n'a jamais eu de titre) ni sur le <title> de l'onglet du navigateur. |
unset_pagination() | Toute la barre de pagination (boutons de numéro de page, "Affichage de X à Y sur Z", et la liste déroulante de lignes par page). La grille continue de ne récupérer qu'une page de lignes à la fois - il n'y a simplement plus d'interface pour naviguer entre les pages. |
unset_limitlist() | Uniquement la liste déroulante de lignes par page, en conservant le reste de la barre de pagination. Aucun effet visible si unset_pagination() masque déjà toute la barre. |
unset_all() | Toutes les bascules ci-dessus en une fois - Ajouter/Modifier/Supprimer, recherche, titre, et pagination (barre + lignes par page). Le regroupement et ->bulk_actions() n'en font PAS partie, puisque ce sont tous deux des fonctionnalités à activation propre via leurs propres appels. |
Exemple : une grille de type borne interactive en lecture seule
Ce qui reste après ->unset_all() est un affichage en lecture seule, d'apparence non paginée : les données, des en-têtes de colonne triables, et (si configuré séparément) le regroupement/les actions groupées :
$xcrud = Xcrud::get_instance();
$xcrud->table('payments');
$xcrud->route('readonly-grid');
$xcrud->title('Read-Only / Locked-Down Grid');
$xcrud->columns('customerNumber,checkNumber,paymentDate,amount');
$xcrud->label('customerNumber', 'Customer #');
$xcrud->label('checkNumber', 'Check No.');
$xcrud->order_by('paymentDate', 'desc');
$xcrud->unset_all();
Le résultat : pas d'Ajouter/Modifier/Supprimer, pas de recherche, pas de contrôles de pagination, pas de barre de titre propre - mais les colonnes restent triables et les données restent entièrement consultables, simplement non modifiables.