Comment faire un hook sur un formulaire de paragraph
Découvrez comment faire un hook sur un formulaire du module paragraph dans le BO ou en front pour ajouter des class, un placeholder, etc. La méthode est identique aux hooks pour les formulaires de la Form API mais le hook est spécifique à ce module.
Hook paragraph Drupal
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).
Exemple de code 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);
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.
Exemple de code 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);
}
Il faut remplacer WIDGET_TYPE par paragraphs (ou par entity_reference_paragraphs si on utilise le widget Paragraphs legacy).
Ajouter un commentaire