logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement

1.6. Produits et catégories – création des tables de base de données

05/07/2025, by Ivan

Avant de créer les fonctionnalités pour les produits et catégories, réfléchissons aux informations nécessaires pour nos clients et administrateurs du site. Il faut fournir suffisamment d’informations sur le produit : nous devons afficher le nom, une description détaillée, et le prix. Nous pouvons aussi inclure une photo principale ainsi que des images supplémentaires. Le poids du produit peut être nécessaire pour calculer les frais de livraison. La quantité en stock est importante pour ne pas vendre un produit indisponible. Pour l’administrateur, un ID produit est requis ainsi qu’une URL lisible par les moteurs de recherche.

Au minimum, nous devons avoir ces champs :

Donnée Description
ID Numéro interne du produit pour le fonctionnement du site
Nom Nom du produit
URL lisible (alias) Principalement pour les moteurs de recherche
Description Informations détaillées sur le produit
SKU Référence produit pour les utilisateurs
Prix Prix du produit
Stock Quantité disponible
Image principale Image principale du produit
Images supplémentaires Images additionnelles

Nous compléterons cette liste dans des articles ultérieurs, pour l’instant cela suffit.

Les catégories de produits ont leur propre liste de champs :

Donnée Description
ID Numéro interne de la catégorie pour le fonctionnement du site
Nom Nom de la catégorie
Description Description de la catégorie
URL lisible (alias) URL lisible par les moteurs de recherche

Nous pourrions commencer à implémenter la structure et la fonctionnalité pour afficher produits et catégories avec notre framework, mais cela limiterait beaucoup la flexibilité. La majorité du contenu partage beaucoup d’informations communes. En créant un type de contenu abstrait, notre framework sera plus flexible. Nous pourrions appliquer des fonctionnalités variées à ces types sans dupliquer le code, telles que :

  • Versionnage du contenu
  • Gestion des droits d’accès
  • Commentaires sur le contenu, pages, produits
  • Notation des pages, produits

Pages

Les pages seront des sections statiques classiques du site : contacts, informations sur la livraison et paiement, etc. Voici leurs données :
Donnée Description
Nom Nom de la page
URL lisible (alias) URL de la page
ID Numéro interne de la page
Heading Contenu de la balise h1
Titre Contenu de la balise <title>
Contenu Contenu de la page
Mots-clés Contenu de la méta-balise mots-clés
Description Contenu de la méta-balise description

Contenu

Les pages sont le type principal de contenu, que nous étendrons si besoin en ajoutant plus de champs. Les pages de catégorie sont des pages similaires, mais avec plus de champs pour relier aux produits.
Donnée Description
ID Numéro interne
Nom Nom du contenu
URL lisible (alias)
Contenu Contenu de la page
Type Type de contenu (ex : page, produit, catégorie)
Ordre Ordre pour tri, par exemple dans les menus
Parent Parent du contenu, pour la hiérarchie (sous-catégories, catalogue de pages)
Méta mots-clés Mots-clés
Méta description Description méta
Date de création Date de création
Auteur Auteur du contenu
Actif Afficher ou non le contenu aux visiteurs
Sécurisé Champ de restriction d’accès, par exemple visible seulement par les utilisateurs connectés

Révisions

Drupal possède un système de révision, nous aurons un système similaire.
Donnée Description
ID Numéro interne du contenu
Révision actuelle Numéro de la révision courante
Maintenant que nous avons planifié nos types de contenu, passons à la création de la base de données. Pour chaque type, nous créerons une table distincte. Voici les tables attendues :
Table Description
Content Pour stocker les liens des versions actives du contenu avec les informations qui ne changent pas entre versions, comme l’auteur.
Versions Pour stocker les données de chaque version du contenu
Content types Pour enregistrer les types de contenu de notre framework, en associant le contenu à son type.
Products Pour étendre les données des produits
Revision history Pour garder l’historique des révisions

Content

Tous les contenus du site seront stockés dans cette table. Pour étendre un type de contenu, on utilise une table séparée. Par exemple, les produits seront stockés dans la table Content, mais liés à la table Products via l’ID.
Champ Type Description
ID Integer (auto-incrément) Champ de liaison avec d’autres tables
Current_revision Integer Champ de liaison avec la table des versions
Active Boolean Indique si le contenu est publié ou non
Secure Boolean Indique si le contenu est accessible uniquement aux utilisateurs authentifiés
Parent Integer Lien vers le contenu parent
Order Integer Champ pour ordonner le contenu
Author Integer ID de l’utilisateur ayant créé le contenu
Type Integer ID du type de contenu pour étendre les données
Path Varchar Champ pour stocker l’URL lisible
Voici la requête SQL pour créer la table Content :
CREATE TABLE `content` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `current_revision` int(11) NOT NULL,
  `active` tinyint(1) NOT NULL,
  `secure` tinyint(1) NOT NULL,
  `parent` int(11) NOT NULL,
  `order` int(11) NOT NULL,
  `author` int(11) NOT NULL,
  `type` int(11) NOT NULL,
  `path` char(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;