Vocabulaires de taxonomie
🏷️ Comprendre les taxonomies
Section intitulée « 🏷️ Comprendre les taxonomies »Qu’est-ce qu’une taxonomie ?
Section intitulée « Qu’est-ce qu’une taxonomie ? »La taxonomie est le système de classification de Drupal. Elle permet d’organiser le contenu en catégories, tags, ou tout autre type de regroupement.
Taxonomie├── Vocabulaire (= type de classification)│ ├── Terme 1│ ├── Terme 2│ │ ├── Sous-terme 2.1│ │ └── Sous-terme 2.2│ └── Terme 3└── Autre vocabulaire ├── Terme A └── Terme BVocabulaire vs Terme
Section intitulée « Vocabulaire vs Terme »| Concept | Description | Exemple |
|---|---|---|
| Vocabulaire | Un type de classification | ”Catégories” |
| Terme | Un élément dans le vocabulaire | ”Mode”, “Sport” |
Hiérarchie
Section intitulée « Hiérarchie »Les termes peuvent être hiérarchiques (parent/enfant) :
Vêtements├── Hommes│ ├── T-shirts│ ├── Pantalons│ └── Vestes└── Femmes ├── Robes ├── Jupes └── Blouses🔧 Créer un vocabulaire
Section intitulée « 🔧 Créer un vocabulaire »1. Vocabulaire “Catégorie Produit”
Section intitulée « 1. Vocabulaire “Catégorie Produit” »- Naviguez vers Structure → Taxonomy
- Cliquez sur Add vocabulary
- Cliquez sur Save
2. Vocabulaire “Marque”
Section intitulée « 2. Vocabulaire “Marque” »Répétez le processus :
| Champ | Valeur |
|---|---|
| Name | Marque |
| Description | Marques disponibles |
| Machine name | brands |
3. Vocabulaire “Taille”
Section intitulée « 3. Vocabulaire “Taille” »| Champ | Valeur |
|---|---|
| Name | Taille |
| Description | Tailles disponibles (S, M, L, XL...) |
| Machine name | sizes |
4. Vocabulaire “Couleur”
Section intitulée « 4. Vocabulaire “Couleur” »| Champ | Valeur |
|---|---|
| Name | Couleur |
| Description | Couleurs des produits |
| Machine name | colors |
Ce vocabulaire nécessite un champ supplémentaire pour le code couleur. Nous l’ajouterons après.
5. Vocabulaire “Catégorie Blog”
Section intitulée « 5. Vocabulaire “Catégorie Blog” »| Champ | Valeur |
|---|---|
| Name | Catégorie Blog |
| Description | Classification des articles de blog |
| Machine name | blog_categories |
🎨 Ajouter des champs aux vocabulaires
Section intitulée « 🎨 Ajouter des champs aux vocabulaires »Certains vocabulaires nécessitent des champs supplémentaires.
Champ “Code couleur” pour le vocabulaire Couleur
Section intitulée « Champ “Code couleur” pour le vocabulaire Couleur »- Allez dans Structure → Taxonomy
- Cliquez sur Manage fields à côté de “Couleur”
- Cliquez sur Create a new field
- Sauvegardez
Champ “Image” pour le vocabulaire Marque (optionnel)
Section intitulée « Champ “Image” pour le vocabulaire Marque (optionnel) »Si vous souhaitez afficher les logos des marques :
- Manage fields sur le vocabulaire “Marque”
- Create a new field → Image
| Paramètre | Valeur |
|---|---|
| Label | Logo |
| Machine name | field_brand_logo |
| Required | No |
| Allowed file extensions | png jpg svg |
| File directory | brands |
| Alt text | Required |
📋 Vérification
Section intitulée « 📋 Vérification »À ce stade, vous devriez avoir 5 vocabulaires :
# Via Drushdrush ev "foreach(\Drupal::entityTypeManager()->getStorage('taxonomy_vocabulary')->loadMultiple() as \$v) { echo \$v->id() . ' - ' . \$v->label() . PHP_EOL; }"Résultat attendu :
blog_categories - Catégorie Blogbrands - Marquecolors - Couleurproduct_categories - Catégorie Produitsizes - Taille🔌 Via Drush (Alternative)
Section intitulée « 🔌 Via Drush (Alternative) »Utilisez l’interface d’administration comme décrit ci-dessus.
# Créer les vocabulairesdrush php-eval "\$vocabs = [ ['vid' => 'product_categories', 'name' => 'Catégorie Produit'], ['vid' => 'brands', 'name' => 'Marque'], ['vid' => 'sizes', 'name' => 'Taille'], ['vid' => 'colors', 'name' => 'Couleur'], ['vid' => 'blog_categories', 'name' => 'Catégorie Blog'],];foreach (\$vocabs as \$vocab) { \Drupal\taxonomy\Entity\Vocabulary::create(\$vocab)->save(); echo \"Created: \" . \$vocab['name'] . PHP_EOL;}"📋 Exemple illustratif : Créer une taxonomie “Saison”
Section intitulée « 📋 Exemple illustratif : Créer une taxonomie “Saison” »Pour illustrer la création via Drush, voici comment créer une taxonomie “Saison” :
# Créer le vocabulaire "Saison"drush php-eval "\$vocab = \Drupal\taxonomy\Entity\Vocabulary::create([ 'vid' => 'season', 'name' => 'Saison', 'description' => 'Saisons des collections',]);\$vocab->save();echo 'Vocabulaire \"Saison\" créé avec succès !' . PHP_EOL;"
# Créer les termes de la taxonomiedrush php-eval "use Drupal\taxonomy\Entity\Term;
\$terms = [ ['vid' => 'season', 'name' => 'Printemps-Été 2025'], ['vid' => 'season', 'name' => 'Automne-Hiver 2024'], ['vid' => 'season', 'name' => 'Collection Capsule'],];foreach (\$terms as \$data) { \$term = Term::create(\$data); \$term->save(); echo 'Terme créé: ' . \$term->label() . PHP_EOL;}"
# Vérifier la créationdrush taxonomy:vocabulary-list | grep seasondrush taxonomy:term-list season💾 Exporter la configuration
Section intitulée « 💾 Exporter la configuration »Après avoir créé tous les vocabulaires :
# Exporterdrush cex -y
# Vérifier les fichiers créésls -la config/sync/taxonomy.vocabulary.*.ymlFichiers générés :
taxonomy.vocabulary.product_categories.ymltaxonomy.vocabulary.brands.ymltaxonomy.vocabulary.sizes.ymltaxonomy.vocabulary.colors.ymltaxonomy.vocabulary.blog_categories.yml
📁 Structure d’un fichier de configuration
Section intitulée « 📁 Structure d’un fichier de configuration »Exemple de taxonomy.vocabulary.product_categories.yml :
langcode: frstatus: truedependencies: { }name: 'Catégorie Produit'vid: product_categoriesdescription: 'Classification des produits'weight: 0✅ Points de validation
Section intitulée « ✅ Points de validation »Avant de passer à la suite, vérifiez :
- 5 vocabulaires créés
- Champ
field_color_codeajouté au vocabulaire Couleur - (Optionnel) Champ
field_brand_logoajouté au vocabulaire Marque - Configuration exportée
🔜 Prochaine étape
Section intitulée « 🔜 Prochaine étape »Maintenant que les vocabulaires sont créés, passons à l’ajout des Termes de taxonomie.