Alternancias de visibilidad y cuadrículas bloqueadas
Oculta la interfaz de Añadir/Editar/Eliminar/búsqueda/paginación con la familia unset_*() para construir una cuadrícula de solo lectura o estilo quiosco.
Cosmético, no seguridad
Cada método unset_*() oculta exactamente una funcionalidad de interfaz existente - es puramente cosmético. El endpoint REST subyacente NO se deshabilita del lado del servidor; un visitante podría seguir haciendo POST/PUT/DELETE directamente contra ajax_crud.php con los mismos permisos que antes. Usa ->pass_var()/->where() o una capa de autenticación adecuada si necesitas una restricción realmente forzada. Consulta Seguridad: lista negra de tablas y columnas para conocer el límite de seguridad real.
La familia unset_*()
| Método | Oculta |
|---|---|
unset_add() | El botón Añadir de la barra de herramientas. |
unset_edit() | El botón Editar por fila Y la edición en línea al hacer clic en la celda - ambas son "edición", así que un único interruptor desactiva las dos. |
unset_remove() | El botón Eliminar/Borrar por fila. |
unset_search() | El cuadro de búsqueda simple, los interruptores Columnas/Avanzada, el panel de filtro avanzado, el resumen de chips de búsqueda activa y el cuadro de búsqueda por columna en la cabecera de cada columna - todo el subsistema de búsqueda como una sola unidad. |
unset_title() | El encabezado <h1> de página que renderiza ->page() encima del widget. Sin efecto en ->render() (el modo embebido nunca tuvo encabezado) ni en el <title> de la pestaña del navegador. |
unset_pagination() | Toda la barra de paginación (botones de número de página, "Showing X to Y of Z" y el desplegable de filas por página). La cuadrícula sigue trayendo solo el contenido de una página a la vez - simplemente no hay interfaz para moverse entre páginas. |
unset_limitlist() | Solo el desplegable de filas por página, conservando el resto de la barra de paginación. Sin efecto visible si unset_pagination() ya oculta toda la barra. |
unset_all() | Todos los interruptores anteriores a la vez - Añadir/Editar/Eliminar, búsqueda, título y paginación (barra + filas por página). La agrupación y ->bulk_actions() NO forman parte de esto, ya que ambas son funciones opcionales con su propia llamada. |
Ejemplo: una cuadrícula de quiosco de solo lectura
Lo que queda tras ->unset_all() es una cuadrícula de solo lectura, con apariencia sin paginación: los datos, las cabeceras de columna ordenables y (si se configura por separado) la agrupación/acciones masivas:
$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();
El resultado: sin Añadir/Editar/Eliminar, sin búsqueda, sin controles de paginación, sin barra de título propia - pero las columnas siguen siendo ordenables y los datos son totalmente navegables, solo que no editables.