Drupal 8 & Drupal 9 - Taxonomy - Charger l'arborescence d'un vocabulaire

Posté le Lundi 18 juillet 2016 - 11:33
Dernière mise à jour le Mercredi 10 juin 2020 - 15:16

Pour charger toute l'arborescence :

  1. $categories = \Drupal::service('entity_type.manager')
  2. ->getStorage('taxonomy_term')
  3. ->loadTree('NOM_MACHINE_VOCABULAIRE');

Pour charger que l'arborescence en partant d'un taxon (term) donné :

  1. $categories = \Drupal::service('entity_type.manager')
  2. ->getStorage('taxonomy_term')
  3. ->loadTree('NOM_MACHINE_VOCABULAIRE', $term_tid);

Pour charger que le premier niveau :

  1. $categories = \Drupal::service('entity_type.manager')
  2. ->getStorage("taxonomy_term")
  3. ->loadTree('NOM_MACHINE_VOCABULAIRE', 0, 1);

Par défaut les taxons ne seront pas chargés sous la forme d'instance de la classe Term, mais de Stdclass (ne me demandez pas pourquoi...)

Si vous souhaitez avoir un ensemble d'objets Term, il faudra pour cela passer un 4e paramètre à la fonction :

  1. $categories = \Drupal::service('entity_type.manager')
  2. ->getStorage('taxonomy_term')
  3. ->loadTree('NOM_MACHINE_VOCABULAIRE', 0, 1, TRUE);

 

Aller plus loin ?

 

Ajouter un commentaire

Ne sera pas publié

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...