Champs
Les champs (fields) sont les éléments de données qui composent vos types de contenu. Drupal propose de nombreux types de champs pour répondre à tous les besoins.
🤔 Concepts clés
Section intitulée « 🤔 Concepts clés »Field Storage vs Field Instance
Section intitulée « Field Storage vs Field Instance »Drupal sépare la définition du stockage de l’instance du champ :
- Field Storage : Définit le type de données et le stockage (une fois par champ)
- Field Instance : Configure le champ pour un type de contenu spécifique
Cela permet de réutiliser un champ entre plusieurs types de contenu.
field_image (storage)├── node.product.field_image (instance)├── node.blog_article.field_image (instance)└── taxonomy_term.brand.field_image (instance)📋 Types de champs disponibles
Section intitulée « 📋 Types de champs disponibles »| Type | Description | Usage |
|---|---|---|
| Texte (brut) | Texte simple, une ligne | Titre, code |
| Texte (brut, long) | Texte simple, multi-lignes | Description simple |
| Texte (formaté) | Avec éditeur WYSIWYG | Corps d’article |
| Texte (formaté, long) | WYSIWYG multi-lignes | Contenu riche |
| Texte (formaté, résumé) | Avec résumé optionnel | Articles blog |
| Type | Description | Usage |
|---|---|---|
| Entier | Nombre entier | Quantité, stock |
| Décimal | Nombre avec décimales fixes | Prix |
| Flottant | Nombre avec précision variable | Coordonnées |
Références
Section intitulée « Références »| Type | Description | Usage |
|---|---|---|
| Référence à un contenu | Lien vers un nœud | Produits liés |
| Référence à un terme | Lien vers une taxonomie | Catégorie |
| Référence à un utilisateur | Lien vers un user | Auteur |
| Référence à un média | Lien vers un média | Images |
| Type | Description | Usage |
|---|---|---|
| Booléen | Vrai/Faux | En stock, Actif |
| Date | Date et/ou heure | Événement |
| Adresse email | Contact | |
| Lien | URL avec titre | CTA, menu |
| Téléphone | Numéro de téléphone | Contact |
| Liste (texte) | Valeurs prédéfinies | Statut |
🛍️ Ajouter les champs du type “Produit”
Section intitulée « 🛍️ Ajouter les champs du type “Produit” »Accéder à la gestion des champs
Section intitulée « Accéder à la gestion des champs »- Aller à
/admin/structure/types/manage/product/fields - Cliquer sur Ajouter un champ
Champ : Prix (field_price)
Section intitulée « Champ : Prix (field_price) »-
Créer le champ
- Type : Nombre > Décimal
- Label : Prix
- Identifiant machine :
field_price
-
Configuration du stockage
- Précision : 10
- Échelle : 2 (pour les centimes)
-
Paramètres du champ
- Requis : ✅
- Valeur minimum : 0
- Préfixe : € (ou configurer en affichage)
-
Enregistrer
Champ : Prix soldé (field_sale_price)
Section intitulée « Champ : Prix soldé (field_sale_price) »-
Créer le champ
- Type : Nombre > Décimal
- Label : Prix soldé
- Identifiant machine :
field_sale_price
-
Configuration du stockage
- Précision : 10
- Échelle : 2
-
Paramètres du champ
- Requis : ❌
- Valeur minimum : 0
- Texte d’aide : “Laisser vide si pas de promotion”
-
Enregistrer
Champ : Code produit (field_sku)
Section intitulée « Champ : Code produit (field_sku) »-
Créer le champ
- Type : Texte > Texte (brut)
- Label : Code produit (SKU)
- Identifiant machine :
field_sku
-
Configuration du stockage
- Longueur maximale : 50
-
Paramètres du champ
- Requis : ✅
- Texte d’aide : “Code unique du produit”
-
Enregistrer
Champ : Images (field_images)
Section intitulée « Champ : Images (field_images) »-
Créer le champ
- Type : Référence > Média
- Label : Images
- Identifiant machine :
field_images
-
Configuration du stockage
- Type de média : Image
- Nombre de valeurs : Illimité
-
Paramètres du champ
- Requis : ✅
- Texte d’aide : “Ajoutez au moins une image du produit”
-
Enregistrer
Champ : Disponibilité (field_availability)
Section intitulée « Champ : Disponibilité (field_availability) »-
Créer le champ
- Type : Booléen
- Label : Disponibilité
- Identifiant machine :
field_availability
-
Paramètres du champ
- Label activé : En stock
- Label désactivé : Rupture de stock
- Valeur par défaut : ✅ Coché
-
Enregistrer
Champ : Matière (field_material)
Section intitulée « Champ : Matière (field_material) »-
Créer le champ
- Type : Texte > Texte (brut)
- Label : Matière
- Identifiant machine :
field_material
-
Configuration du stockage
- Longueur maximale : 255
-
Paramètres du champ
- Requis : ❌
- Placeholder : “Ex: 100% coton”
-
Enregistrer
Champs de référence (Taxonomie)
Section intitulée « Champs de référence (Taxonomie) »Ces champs référencent des taxonomies que nous créerons à l’Étape 3 :
| Champ | Référence vers | Cardinalité |
|---|---|---|
field_category | Catégorie Produit | Multiple |
field_brand | Marque | Simple |
field_sizes | Taille | Multiple |
field_colors | Couleur | Multiple |
📝 Ajouter les champs du type “Article de Blog”
Section intitulée « 📝 Ajouter les champs du type “Article de Blog” »Champ : Image (field_image)
Section intitulée « Champ : Image (field_image) »-
Réutiliser ou créer
- Si
field_imageexiste déjà : “Réutiliser un champ existant” - Sinon : Type Référence > Média
- Si
-
Paramètres
- Requis : ✅
- Nombre de valeurs : 1
-
Enregistrer
Champ : Catégorie Blog (field_blog_category)
Section intitulée « Champ : Catégorie Blog (field_blog_category) »🎠 Ajouter les champs du type “Slide”
Section intitulée « 🎠 Ajouter les champs du type “Slide” »Champ : Titre du slide (field_title)
Section intitulée « Champ : Titre du slide (field_title) »-
Créer le champ
- Type : Texte > Texte (brut)
- Label : Titre du slide
- Identifiant machine :
field_title
-
Paramètres
- Requis : ✅
- Longueur maximale : 255
-
Enregistrer
Champ : Sous-titre (field_subtitle)
Section intitulée « Champ : Sous-titre (field_subtitle) »-
Créer le champ
- Type : Texte > Texte (brut, long)
- Label : Sous-titre
- Identifiant machine :
field_subtitle
-
Paramètres
- Requis : ❌
-
Enregistrer
Champ : Image de fond (field_image)
Section intitulée « Champ : Image de fond (field_image) »Réutilisez le champ média créé pour les articles.
Champ : Lien (field_link)
Section intitulée « Champ : Lien (field_link) »-
Créer le champ
- Type : Lien
- Label : Lien
- Identifiant machine :
field_link
-
Paramètres
- Types de liens autorisés : ✅ Interne ✅ Externe
- Autoriser le texte du lien : ✅
-
Enregistrer
Champ : Texte du bouton (field_cta_text)
Section intitulée « Champ : Texte du bouton (field_cta_text) »-
Créer le champ
- Type : Texte > Texte (brut)
- Label : Texte du bouton
- Identifiant machine :
field_cta_text
-
Paramètres
- Requis : ❌
- Valeur par défaut : “Découvrir”
-
Enregistrer
🔧 Configuration avancée des champs
Section intitulée « 🔧 Configuration avancée des champs »Cardinalité (nombre de valeurs)
Section intitulée « Cardinalité (nombre de valeurs) »| Option | Description |
|---|---|
| 1 | Une seule valeur |
| 2, 3… | Nombre fixe |
| Illimité | Autant que voulu |
Widgets de formulaire
Section intitulée « Widgets de formulaire »Chaque type de champ a des widgets différents :
| Champ | Widgets disponibles |
|---|---|
| Texte | Textfield, Textarea |
| Référence | Autocomplete, Select, Checkboxes, Radios |
| Booléen | Checkbox, Radio buttons |
| Média | Media Library, File upload |
Formateurs d’affichage
Section intitulée « Formateurs d’affichage »Pour l’affichage, chaque champ a des formateurs :
| Champ | Formateurs |
|---|---|
| Texte | Default, Trimmed, Summary |
| Nombre | Default, avec préfixe/suffixe |
| Référence | Label, Entity, Rendered entity |
| Booléen | Default, Yes/No, Custom |
| Image | Image, URL, Responsive |
📊 Récapitulatif des champs créés
Section intitulée « 📊 Récapitulatif des champs créés »Type “Produit”
Section intitulée « Type “Produit” »| Champ | Type | Requis | Cardinalité |
|---|---|---|---|
| title | Texte | ✅ | 1 |
| body | Texte formaté | ❌ | 1 |
| field_images | Média | ✅ | ∞ |
| field_price | Décimal | ✅ | 1 |
| field_sale_price | Décimal | ❌ | 1 |
| field_sku | Texte | ✅ | 1 |
| field_availability | Booléen | ❌ | 1 |
| field_material | Texte | ❌ | 1 |
| field_category | Taxonomie | ❌ | ∞ |
| field_brand | Taxonomie | ❌ | 1 |
| field_sizes | Taxonomie | ❌ | ∞ |
| field_colors | Taxonomie | ❌ | ∞ |
Type “Article de Blog”
Section intitulée « Type “Article de Blog” »| Champ | Type | Requis | Cardinalité |
|---|---|---|---|
| title | Texte | ✅ | 1 |
| body | Texte formaté | ✅ | 1 |
| field_image | Média | ✅ | 1 |
| field_blog_category | Taxonomie | ❌ | 1 |
Type “Slide”
Section intitulée « Type “Slide” »| Champ | Type | Requis | Cardinalité |
|---|---|---|---|
| field_title | Texte | ✅ | 1 |
| field_subtitle | Texte long | ❌ | 1 |
| field_image | Média | ✅ | 1 |
| field_link | Lien | ❌ | 1 |
| field_cta_text | Texte | ❌ | 1 |
💾 Exporter la configuration
Section intitulée « 💾 Exporter la configuration »drush cex -ygit add config/sync/field.*.ymlgit commit -m "feat: add fields for product, blog_article and slide"🚀 Étape suivante
Section intitulée « 🚀 Étape suivante »Passez aux Modes d’affichage pour configurer comment les contenus sont affichés.