Drupal 8 - Surcharger la classe de formulaire d'un terme de taxonomie

Posté le Vendredi 5 juillet 2019 - 10:22

Hier, nous avons vu comment surcharger le formulaire de création / modification d'un nœud, voici aujourd'hui comment faire la même chose mais pour un terme de taxonomie.

Cela se passe encore en deux étapes.

1 - Altération du type d'entité

# mon_module.module
function mon_module_entity_type_alter(array &$entity_types) {
  $entity_types['taxonomy_term']->setFormClass('default', Drupal\mon_module\Entity\Form\CustomTermForm::class);
}

2 - Classe du formulaire

# web/modules/mon_module/src/Entity/Form/CustomTermForm.php
<?php

namespace Drupal\mon_module\Entity\Form;

use Drupal\Core\Form\FormStateInterface;
use Drupal\taxonomy\TermForm;

class CustomTermForm extends TermForm {
  public function form(array $form, FormStateInterface $form_state) {
    $form = parent::form($form, $form_state);
    /** @var \Drupal\taxonomy\Entity\Term $term */
    $term = $this->entity;
    if($term->getVocabularyId() === 'mon_vocabulaire') {
      // À vous de jouer
    }
    return $form;
  }

}

 

Aller plus loin ?

 

Ajouter un commentaire

Ne sera pas publié

CAPTCHA Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...