Faire un hook sur un formulaire de paragraph
On peut avoir besoin de faire un hook sur un formulaire de paragraph (module paragraph) par exemple sur un formulaire en front.
Il est facile de faire un hook sur un formulaire avec hook_form_alter. Avec ce hook, on peut ajouter des class sur des éléments, modifier le texte des éléments, etc.
Le module paragraph permet de faire des groupes de champs répétables. Il faut donc un autre hook pour modifier ce groupe de champ. On peut donc utiliser :
hook_field_widget_complete_WIDGET_TYPE_form_alter
Il faut remplacer WIDGET_TYPE par paragraphs (ou par entity_reference_paragraphs si on utilise le widget Paragraphs legacy).
Voilà un exemple concret pour ajouter un suffix et des class :
function paragraphs_field_widget_single_element_paragraphs_form_alter(&$element, &$form_state, $context) {
//dump($element);
$element['subform']['field_annee']['#attributes']['class'] = 'col-md-6';
$element['subform']['field_url']['#attributes']['class'] = 'col-md-6';
$element['subform']['field_annee']['#prefix'] = '<div class="row">';
$element['subform']['field_url']['#suffix'] = '</div>';
}
Pour voir ce que l’on peut modifier, il suffit de faire un
dump($element);
Il existe un autre hook pour cibler tout le bloc paragraph :
hook_field_widget_single_element_WIDGET_TYPE_form_alter()
Avec ce hook, on peut modifier le label du bloc, etc.
Voilà un exemple concret pour modifier le titre du groupe de champ :
function paragraphs_field_widget_complete_paragraphs_form_alter(&$element, &$form_state, $context) {
$element['widget']['#title'] = 'Publication/réalisation';
//dump($element);
}
Avec le dump, on voit très bien la structure du tableau et ce qui est modifiable.
Ajouter un commentaire