Sichtbarkeits-Umschalter & abgesicherte Grids
Mit der unset_*()-Familie die Add-/Edit-/Remove-/Such-/Paginierungs-UI ausblenden, um ein schreibgeschütztes oder Kiosk-artiges Grid zu bauen.
Kosmetisch, keine Sicherheit
Jede unset_*()-Methode blendet genau eine vorhandene UI-Möglichkeit aus - das ist rein kosmetisch. Der zugrunde liegende REST-Endpunkt wird dadurch NICHT serverseitig deaktiviert; ein Besucher könnte weiterhin direkt POST/PUT/DELETE gegen ajax_crud.php senden, mit denselben Berechtigungen wie zuvor. Verwenden Sie ->pass_var()/->where() oder eine echte Auth-Schicht, wenn Sie eine tatsächlich durchgesetzte Einschränkung benötigen. Siehe Sicherheit: Tabellen & Spalten auf die Blacklist setzen für die eigentliche Sicherheitsgrenze.
Die unset_*()-Familie
| Methode | Blendet aus |
|---|---|
unset_add() | Den Hinzufügen-Button der Toolbar. |
unset_edit() | Den Bearbeiten-Button pro Zeile UND das Klick-zum-Bearbeiten-Inline-Editing der Zellen - beides ist "Bearbeiten", daher schaltet ein Umschalter beides gemeinsam ab. |
unset_remove() | Den Entfernen-/Löschen-Button pro Zeile. |
unset_search() | Das einfache Suchfeld, die Spalten-/Advanced-Umschalter, das Panel für die erweiterte Filterung, die Zusammenfassung der aktiven Such-Chips sowie jedes Spalten-Kopfzeilen-Suchfeld - das gesamte Such-Subsystem als eine Einheit. |
unset_title() | Die <h1>-Seitenüberschrift, die ->page() über dem Widget rendert. Ohne Wirkung auf ->render() (der Embed-Modus hatte nie eine Überschrift) oder den <title> des Browser-Tabs. |
unset_pagination() | Die komplette Paginierungsleiste (Seitenzahl-Schaltflächen, "Zeige X bis Y von Z" und das Zeilen-pro-Seite-Dropdown). Das Grid lädt weiterhin immer nur den Umfang einer Seite auf einmal - es gibt nur keine UI mehr, um zwischen Seiten zu wechseln. |
unset_limitlist() | Nur das Zeilen-pro-Seite-Dropdown, der Rest der Paginierungsleiste bleibt erhalten. Keine sichtbare Wirkung, wenn unset_pagination() die gesamte Leiste bereits ausblendet. |
unset_all() | Alle oben genannten Umschalter auf einmal - Add/Edit/Remove, Suche, Titel und Paginierung (Leiste + Zeilen-pro-Seite). Gruppierung und ->bulk_actions() sind NICHT davon betroffen, da beides eigene, opt-in aktivierte Funktionen mit eigenem Aufruf sind. |
Beispiel: ein schreibgeschütztes Kiosk-Grid
Was nach ->unset_all() übrig bleibt, ist ein schreibgeschütztes, scheinbar unpaginiertes Anzeige-Grid: die Daten, sortierbare Spaltenüberschriften und (falls separat konfiguriert) Gruppierung/Massenaktionen:
$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();
Das Ergebnis: kein Hinzufügen/Bearbeiten/Entfernen, keine Suche, keine Paginierungssteuerung, keine eigene Titelleiste - aber die Spalten bleiben sortierbar, und die Daten sind weiterhin vollständig durchsuchbar, nur nicht bearbeitbar.