Aller au contenu

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.

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)
TypeDescriptionUsage
Texte (brut)Texte simple, une ligneTitre, code
Texte (brut, long)Texte simple, multi-lignesDescription simple
Texte (formaté)Avec éditeur WYSIWYGCorps d’article
Texte (formaté, long)WYSIWYG multi-lignesContenu riche
Texte (formaté, résumé)Avec résumé optionnelArticles blog
TypeDescriptionUsage
EntierNombre entierQuantité, stock
DécimalNombre avec décimales fixesPrix
FlottantNombre avec précision variableCoordonnées
TypeDescriptionUsage
Référence à un contenuLien vers un nœudProduits liés
Référence à un termeLien vers une taxonomieCatégorie
Référence à un utilisateurLien vers un userAuteur
Référence à un médiaLien vers un médiaImages
TypeDescriptionUsage
BooléenVrai/FauxEn stock, Actif
DateDate et/ou heureÉvénement
EmailAdresse emailContact
LienURL avec titreCTA, menu
TéléphoneNuméro de téléphoneContact
Liste (texte)Valeurs prédéfiniesStatut
  1. Aller à /admin/structure/types/manage/product/fields
  2. Cliquer sur Ajouter un champ
  1. Créer le champ

    • Type : Nombre > Décimal
    • Label : Prix
    • Identifiant machine : field_price
  2. Configuration du stockage

    • Précision : 10
    • Échelle : 2 (pour les centimes)
  3. Paramètres du champ

    • Requis : ✅
    • Valeur minimum : 0
    • Préfixe : € (ou configurer en affichage)
  4. Enregistrer

  1. Créer le champ

    • Type : Nombre > Décimal
    • Label : Prix soldé
    • Identifiant machine : field_sale_price
  2. Configuration du stockage

    • Précision : 10
    • Échelle : 2
  3. Paramètres du champ

    • Requis : ❌
    • Valeur minimum : 0
    • Texte d’aide : “Laisser vide si pas de promotion”
  4. Enregistrer

  1. Créer le champ

    • Type : Texte > Texte (brut)
    • Label : Code produit (SKU)
    • Identifiant machine : field_sku
  2. Configuration du stockage

    • Longueur maximale : 50
  3. Paramètres du champ

    • Requis : ✅
    • Texte d’aide : “Code unique du produit”
  4. Enregistrer

  1. Créer le champ

    • Type : Référence > Média
    • Label : Images
    • Identifiant machine : field_images
  2. Configuration du stockage

    • Type de média : Image
    • Nombre de valeurs : Illimité
  3. Paramètres du champ

    • Requis : ✅
    • Texte d’aide : “Ajoutez au moins une image du produit”
  4. Enregistrer

  1. Créer le champ

    • Type : Booléen
    • Label : Disponibilité
    • Identifiant machine : field_availability
  2. Paramètres du champ

    • Label activé : En stock
    • Label désactivé : Rupture de stock
    • Valeur par défaut : ✅ Coché
  3. Enregistrer

  1. Créer le champ

    • Type : Texte > Texte (brut)
    • Label : Matière
    • Identifiant machine : field_material
  2. Configuration du stockage

    • Longueur maximale : 255
  3. Paramètres du champ

    • Requis : ❌
    • Placeholder : “Ex: 100% coton”
  4. Enregistrer

Ces champs référencent des taxonomies que nous créerons à l’Étape 3 :

ChampRéférence versCardinalité
field_categoryCatégorie ProduitMultiple
field_brandMarqueSimple
field_sizesTailleMultiple
field_colorsCouleurMultiple

📝 Ajouter les champs du type “Article de Blog”

Section intitulée « 📝 Ajouter les champs du type “Article de Blog” »
  1. Réutiliser ou créer

    • Si field_image existe déjà : “Réutiliser un champ existant”
    • Sinon : Type Référence > Média
  2. Paramètres

    • Requis : ✅
    • Nombre de valeurs : 1
  3. Enregistrer

  1. Créer le champ

    • Type : Texte > Texte (brut)
    • Label : Titre du slide
    • Identifiant machine : field_title
  2. Paramètres

    • Requis : ✅
    • Longueur maximale : 255
  3. Enregistrer

  1. Créer le champ

    • Type : Texte > Texte (brut, long)
    • Label : Sous-titre
    • Identifiant machine : field_subtitle
  2. Paramètres

    • Requis : ❌
  3. Enregistrer

Réutilisez le champ média créé pour les articles.

  1. Créer le champ

    • Type : Lien
    • Label : Lien
    • Identifiant machine : field_link
  2. Paramètres

    • Types de liens autorisés : ✅ Interne ✅ Externe
    • Autoriser le texte du lien : ✅
  3. Enregistrer

  1. Créer le champ

    • Type : Texte > Texte (brut)
    • Label : Texte du bouton
    • Identifiant machine : field_cta_text
  2. Paramètres

    • Requis : ❌
    • Valeur par défaut : “Découvrir”
  3. Enregistrer

OptionDescription
1Une seule valeur
2, 3…Nombre fixe
IllimitéAutant que voulu

Chaque type de champ a des widgets différents :

ChampWidgets disponibles
TexteTextfield, Textarea
RéférenceAutocomplete, Select, Checkboxes, Radios
BooléenCheckbox, Radio buttons
MédiaMedia Library, File upload

Pour l’affichage, chaque champ a des formateurs :

ChampFormateurs
TexteDefault, Trimmed, Summary
NombreDefault, avec préfixe/suffixe
RéférenceLabel, Entity, Rendered entity
BooléenDefault, Yes/No, Custom
ImageImage, URL, Responsive
ChampTypeRequisCardinalité
titleTexte1
bodyTexte formaté1
field_imagesMédia
field_priceDécimal1
field_sale_priceDécimal1
field_skuTexte1
field_availabilityBooléen1
field_materialTexte1
field_categoryTaxonomie
field_brandTaxonomie1
field_sizesTaxonomie
field_colorsTaxonomie
ChampTypeRequisCardinalité
titleTexte1
bodyTexte formaté1
field_imageMédia1
field_blog_categoryTaxonomie1
ChampTypeRequisCardinalité
field_titleTexte1
field_subtitleTexte long1
field_imageMédia1
field_linkLien1
field_cta_textTexte1
Fenêtre de terminal
drush cex -y
git add config/sync/field.*.yml
git commit -m "feat: add fields for product, blog_article and slide"

Passez aux Modes d’affichage pour configurer comment les contenus sont affichés.