/

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

MethodeBlendet 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.