Aller au contenu principal
Menu
Offcanvas

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). 

Autres ressources utiles

Ajouter un commentaire

Articles similaires

Comment supprimer les changements locaux avec git que l'on n'a pas commit ?

LIRE LA SUITE