Interruttori di Visibilità e Griglie Bloccate
Nascondi l'interfaccia di Add/Edit/Remove/ricerca/paginazione con la famiglia unset_*() per costruire una griglia di sola lettura o in stile chiosco.
Cosmetico, non sicurezza
Ogni metodo unset_*() nasconde esattamente un'affordance dell'interfaccia esistente - è puramente cosmetico. L'endpoint REST sottostante NON viene disabilitato lato server; un visitatore potrebbe comunque inviare POST/PUT/DELETE direttamente contro ajax_crud.php con gli stessi permessi di prima. Usa ->pass_var()/->where() oppure un vero livello di autenticazione se hai bisogno di una restrizione effettivamente imposta. Vedi Sicurezza: Blacklisting di Tabelle e Colonne per il vero confine di sicurezza.
La famiglia unset_*()
| Metodo | Nasconde |
|---|---|
unset_add() | Il pulsante Add della barra degli strumenti. |
unset_edit() | Il pulsante Edit per riga E la modifica in linea delle celle con click - entrambi sono "modifica", quindi un unico interruttore disattiva entrambi. |
unset_remove() | Il pulsante Remove/Delete per riga. |
unset_search() | Il campo di ricerca semplice, gli interruttori Colonne/Avanzata, il pannello dei filtri avanzati, il riepilogo a chip della ricerca attiva, e il campo di ricerca per colonna nell'intestazione di ogni colonna - l'intero sottosistema di ricerca come un'unica unità. |
unset_title() | L'intestazione <h1> di pagina che ->page() renderizza sopra il widget. Nessun effetto su ->render() (la modalità embed non ha mai avuto un'intestazione) o sul <title> della scheda del browser. |
unset_pagination() | L'intera barra di paginazione (pulsanti dei numeri di pagina, "Showing X to Y of Z" e il menu a tendina delle righe per pagina). La griglia continua comunque a recuperare solo il contenuto di una pagina alla volta - semplicemente non c'è interfaccia per spostarsi tra le pagine. |
unset_limitlist() | Solo il menu a tendina delle righe per pagina, mantenendo il resto della barra di paginazione. Nessun effetto visibile se unset_pagination() nasconde già l'intera barra. |
unset_all() | Tutti gli interruttori sopra contemporaneamente - Add/Edit/Remove, ricerca, titolo e paginazione (barra + righe per pagina). Il raggruppamento e ->bulk_actions() NON ne fanno parte, dato che entrambi sono funzionalità opt-in con una propria chiamata. |
Esempio: una griglia chiosco di sola lettura
Ciò che resta dopo ->unset_all() è una griglia di visualizzazione di sola lettura, dall'aspetto non paginato: i dati, le intestazioni di colonna ordinabili, e (se configurati separatamente) il raggruppamento/le azioni di massa:
$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();
Il risultato: nessun Add/Edit/Remove, nessuna ricerca, nessun controllo di paginazione, nessuna propria barra del titolo - ma le colonne restano ordinabili e i dati sono comunque completamente sfogliabili, semplicemente non modificabili.