Opzioni di layout del form
Tre modi per disporre i campi di un form di creazione/modifica, più il selettore lato client per come quel form viene presentato a schermo.
Il predefinito semplice
Senza alcuna configurazione di layout, ogni campo modificabile viene renderizzato uno per riga, dall'alto in basso, nell'ordine naturale delle colonne della tabella (o nell'ordine di fields(), se l'hai chiamato). Non richiede alcuna configurazione ed è la scelta giusta per form brevi:
$xcrud = Xcrud::get_instance();
$xcrud->table('customers');
$xcrud->route('customers');
echo $xcrud->render();
rows() - campi affiancati
rows($row, $fields) colloca due o più campi sulla stessa riga numerata del form invece di impilarli. Ogni campo che condivide una riga divide equamente l'intera larghezza di quella riga:
$xcrud->rows(1, 'firstName,lastName');
$xcrud->rows(2, 'city,state,zip');
$row è una posizione di riga, non un indice basato sull'ordine di dichiarazione - le righe vengono renderizzate in ordine numerico crescente indipendentemente da quale chiamata a rows() sia arrivata prima nel tuo PHP. Un campo appartiene al massimo a una riga; chiamare di nuovo rows() per esso lo sposta invece di duplicarlo. Le righe sono indipendenti da, e si combinano liberamente con, ogni altro layout descritto sotto.
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
$row | int | obbligatorio | Posizione della riga (1 o maggiore); le righe vengono renderizzate in ordine numerico crescente |
$fields | string | obbligatorio | Elenco separato da virgole di nomi di campo modificabili da collocare su questa riga |
rows() + aside() - una colonna laterale persistente
aside($fields) estrae campi del tutto dal flusso principale del form e li colloca in una colonna separata che resta visibile accanto ad esso, mentre tutto il resto - campi semplici, coppie di rows(), qualsiasi cosa rimanga - occupa il riquadro principale. Si combina comunemente con rows() in modo che il riquadro principale resti compatto e la colonna laterale contenga upload o campi secondari:
$xcrud->rows(1, 'firstName,lastName');
$xcrud->rows(2, 'city,state,zip');
$xcrud->aside('photo,attach');
I campi laterali si impilano dall'alto in basso nell'ordine in cui l'elenco di campi del form li dispone già - esiste una sola colonna laterale, quindi non c'è un numero di riga da assegnarle. Nota: su una tabella che usa anche https://xcrudnova.xcrud.net/docs/it/nested-tables-overview, la colonna laterale resta all'interno del solo pannello della scheda "Details" del genitore, non su ogni scheda annidata.
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
$fields | string | obbligatorio | Elenco separato da virgole di nomi di campo modificabili da spostare nella colonna laterale |
Il selettore della modalità di modifica (lato client)
Indipendentemente da come sono disposti i campi propri di un form, set_edit_mode($mode) controlla come il form stesso viene presentato quando una riga viene aperta per aggiunta/modifica:
$xcrud->set_edit_mode('side');
| Modalità | Descrizione |
|---|---|
modal | Finestra di dialogo popup centrata sopra la griglia (predefinita) |
side | Pannello a scomparsa (drawer/offcanvas) dal bordo dello schermo |
current | "Normale" - il form sostituisce la griglia in linea, nella pagina stessa |
Esistono altre due modalità ma sono solo JS - non esiste un valore set_edit_mode() per esse, solo il menu "⋯ Altre opzioni" della toolbar (vedi https://xcrudnova.xcrud.net/docs/it/grid-toolbar-and-more-options-menu) può raggiungerle a runtime:
| Modalità | Descrizione |
|---|---|
split_left | Griglia e form mostrati affiancati, form ancorato a sinistra, in una vista divisa ridimensionabile |
split_right | Stessa vista divisa, form ancorato a destra invece |
A differenza di modal/side, le modalità divise non nascondono né coprono mai la griglia - la sua tabella dati diventa semplicemente più stretta, e resta completamente cliccabile mentre una riga viene modificata accanto ad essa.