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;
  }
}
Ajouter un commentaire