form alter - Disposizione dei campi
mi serve capire come poter posizionare i campi della form a mio piacimento. Dopo aver capito come funziona form alter, come poter inserire un campo al volo (col nome Giorno) senza inserirlo nel dataBase e poterlo usare per controlli o altro e poter usare la proprietà prefix per l'html, ho iniziato a posizionare un campo al volo che visualizzasse il giorno della settimana. Ho modificato i pesi dei campi nella gestione visualizzazione ed inserito un peso col giusto peso nel campo Giorno. Nella sequenza mi trovo ma ho 2 domande.
1) nella normale visualizzazione, come detto, me lo visualizza dopo il campo che m'interessa. Ma avendo usato il modulo field_group per raggruppare i campi non riesco ad inserirlo all'interno del contenitore scelto, pur avendo modificato i pesi.
2) Nella sequenza dei campi di input drupal visualizza i campi in successione, quindi ho:
Data
__/__/___
Giorno Sabato
Mi serve avere:
Data GIorno
__/__/___ Sabato
O meglio ancora
Data __/__/___
GIorno Sabato
Qualcuno ci ha provato? Per quel che ho letto si dovrebbe fare un modulo custom, però non si risoverebbe il prblema se non nella stessa maniera se ho capito bene
Risposte
Aggiungi al campo generato
Aggiungi al campo generato nel form alter l'elemento #group con il nome macchina del gruppo.
Es:
<?php
$form['test'] = [
'#type' => 'textfield',
'#title' => t('ok'),
'#group' => 'group_test'
];
?>
all'interno dello stesso gruppo puoi posizionare il campo con l'elemento #weight.
Grazie, avevo visto che
Grazie, avevo visto che all'interno del gruppo c'è la possibilità di cambiare i pesi. Proverò
Provato e funziona. Questo è
Provato e funziona.
Questo è il codice. L'ho inserito all'interno di form_alter
Ma c'è un problema, da quando ho inserito questo campo al volo, le scritte Giorno e giorno della settimana mi escono anche in altre form. Addirittura quando entro nella form dell'utente. Ho controllato e in form_alter faccio il controllo su dove deve visualizzarlo, di seguito il codice
e poi il resto del codice.
Non dovrebbe visualizzarlo solo per i CT che ho indicato nel case?
Non puoi usare il costrutto
Non puoi usare il costrutto switch..case in quel modo, guarda la documentazione https://www.php.net/manual/en/control-structures.switch.php
Capito, in questo caso mi
Capito, in questo caso mi conviene usare l'if . Mancava anche la chiusura break;