Blocs dynamiques
This content is not available in your language yet.
🧱 Blocs Views
Section intitulée « 🧱 Blocs Views »Les blocs Views permettent d’afficher du contenu dynamique dans les régions du thème :
- Sidebar
- Header
- Footer
- Contenu secondaire
📋 Blocs à créer pour TailStore
Section intitulée « 📋 Blocs à créer pour TailStore »| Bloc | Contenu | Emplacement |
|---|---|---|
| Produits récents | 4 derniers produits | Sidebar, Homepage |
| Produits populaires | Sélection manuelle | Homepage |
| Articles blog récents | 3 derniers articles | Sidebar |
| Marques | Logos des marques | Footer |
| Produits de la même catégorie | Produits liés | Page produit |
🆕 Bloc “Produits récents”
Section intitulée « 🆕 Bloc “Produits récents” »Option 1 : Ajouter à une vue existante
Section intitulée « Option 1 : Ajouter à une vue existante »Si vous avez déjà la vue products_catalog :
-
Éditez la vue
products_catalog -
Cliquez sur +Add → Block
-
Configurez le display :
| Paramètre | Valeur |
|---|---|
| Display name | Block - Produits récents |
| Admin title | Produits récents |
- Override les paramètres :
| Section | Override | Valeur |
|---|---|---|
| Title | This block | Nouveautés |
| Pager | This block | Display a specified number: 4 |
| Format | This block | Unformatted list |
| Show | This block | Rendered entity: Mini |
- Dans Block Settings :
| Paramètre | Valeur |
|---|---|
| Block admin title | Produits récents |
| Block category | Views |
- Save
Option 2 : Créer une vue dédiée
Section intitulée « Option 2 : Créer une vue dédiée »- Structure → Views → Add view
| Champ | Valeur |
|---|---|
| View name | Blocs Produits |
| Machine name | products_blocks |
| Show | Content of type Product |
| Sorted by | Newest first |
| ☐ Create a page | Non |
| ☑ Create a block | Oui |
| Block title | Nouveautés |
| Display format | Unformatted list of teasers |
| Items per page | 4 |
- Save and edit
Placer le bloc
Section intitulée « Placer le bloc »- Structure → Block layout
- Choisissez la région (ex: Sidebar first)
- Cliquez Place block
- Recherchez “Produits récents” ou “Nouveautés”
- Configurez la visibilité :
| Paramètre | Valeur |
|---|---|
| Title | ☐ Display title (si déjà dans la vue) |
| Pages | /shop (optionnel) |
- Save block
⭐ Bloc “Produits populaires”
Section intitulée « ⭐ Bloc “Produits populaires” »Ce bloc affiche une sélection manuelle de produits.
Méthode 1 : Champ Entityqueue
Section intitulée « Méthode 1 : Champ Entityqueue »Installez le module Entityqueue :
composer require drupal/entityqueuedrush en entityqueue -y- Structure → Entityqueues → Add entity queue
| Champ | Valeur |
|---|---|
| Label | Produits populaires |
| Machine name | featured_products |
| Queue type | Simple queue |
| Target type | Content |
| Bundles | ☑ Product |
| Minimum items | 4 |
| Maximum items | 8 |
- Créez une vue qui filtre sur cette queue
Méthode 2 : Champ “Mis en avant”
Section intitulée « Méthode 2 : Champ “Mis en avant” »- Ajoutez un champ booléen
field_featuredau type Product - Créez une vue qui filtre sur ce champ
Vue Block - Produits populaires :
| Paramètre | Valeur |
|---|---|
| Filter | Content: Featured = True |
| Sort | Random (module Views Random Seed) ou manuel |
| Pager | 8 items |
📰 Bloc “Articles blog récents”
Section intitulée « 📰 Bloc “Articles blog récents” »- Créez une nouvelle vue ou ajoutez un display à une vue Blog existante
| Paramètre | Valeur |
|---|---|
| View name | Blog Blocks |
| Show | Content of type Blog Article |
| Sort | Newest first |
| Block title | Derniers articles |
| Items | 3 |
| Show | Rendered entity: Teaser |
- Placez le bloc dans la sidebar
🏷️ Bloc “Marques”
Section intitulée « 🏷️ Bloc “Marques” »Affiche les logos de toutes les marques.
- Add view
| Paramètre | Valeur |
|---|---|
| View name | Marques |
| Machine name | brands |
| Show | Taxonomy terms |
| of type | Marque |
| ☐ Create a page | Non |
| ☑ Create a block | Oui |
| Block title | Nos marques |
| Items per page | Unlimited |
- Dans l’éditeur, configurez les champs :
| Champ | Configuration |
|---|---|
| Taxonomy term: Name | Hidden label, Link to term page |
| Taxonomy term: Brand Logo | Image style “Thumbnail” |
-
Format : Grid (ou HTML List)
-
Placez le bloc dans le Footer
🔗 Bloc “Produits de la même catégorie”
Section intitulée « 🔗 Bloc “Produits de la même catégorie” »Ce bloc apparaît sur les pages produit et affiche des produits liés.
Utilisation des Contextual Filters
Section intitulée « Utilisation des Contextual Filters »-
Éditez la vue
products_blocks(ou créez-en une nouvelle) -
+Add → Block
-
Display name :
Block - Produits similaires -
Dans Contextual Filters, cliquez Add
-
Sélectionnez Content: Category (field_category)
- Configurez :
| Paramètre | Valeur |
|---|---|
| When filter value is NOT available | Hide view |
| When filter value IS available | Provide default value |
| Type | Content ID from URL |
- Apply
Exclure le produit courant
Section intitulée « Exclure le produit courant »- Ajoutez un autre Contextual Filter : Content: ID
- Configurez :
| Paramètre | Valeur |
|---|---|
| When filter value IS available | Provide default value |
| Type | Content ID from URL |
| More → Exclude | ☑ Yes |
Placement conditionnel
Section intitulée « Placement conditionnel »Ce bloc n’apparaît que sur les pages produit :
- Block layout → Place block
- Visibility → Content type →
☑ Product
🎨 Templates de blocs
Section intitulée « 🎨 Templates de blocs »Créez des templates Twig personnalisés pour les blocs :
views-view—products-blocks—block-1.html.twig
Section intitulée « views-view—products-blocks—block-1.html.twig »{#/** * Block: Produits récents */#}<div class="products-recent-block"> <div class="block-header"> {% if title %} <h3 class="block-title">{{ title }}</h3> {% endif %} <a href="/shop" class="view-all">Voir tout →</a> </div>
<div class="products-grid products-grid--mini"> {{ rows }} </div></div>CSS associé
Section intitulée « CSS associé ».products-recent-block { padding: 1rem; background: #f8f9fa; border-radius: 8px;}
.products-recent-block .block-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid #ddd;}
.products-recent-block .block-title { margin: 0; font-size: 1.25rem;}
.products-recent-block .view-all { font-size: 0.875rem; color: #0073e6; text-decoration: none;}
.products-grid--mini { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem;}📊 Récapitulatif des blocs
Section intitulée « 📊 Récapitulatif des blocs »| Bloc | Vue | Display | Région |
|---|---|---|---|
| Produits récents | products_blocks | block_1 | Sidebar |
| Produits populaires | products_blocks | block_2 | Content (Homepage) |
| Articles récents | blog_blocks | block_1 | Sidebar |
| Marques | brands | block_1 | Footer |
| Produits similaires | products_blocks | block_3 | Sidebar (Product) |
🔧 Commandes Drush
Section intitulée « 🔧 Commandes Drush »# Lister les blocs Views disponiblesdrush views:list --type=block
# Afficher les displays d'une vuedrush views:analyze products_blocks
# Vider le cache des blocsdrush cc block💾 Export
Section intitulée « 💾 Export »# Exporter les vues et la configuration des blocsdrush cex -y
# Vérifier les fichiersls config/sync/block.block.*.ymlls config/sync/views.view.*.yml✅ Checklist
Section intitulée « ✅ Checklist »- Bloc “Produits récents” créé et placé
- Bloc “Articles récents” créé et placé
- Bloc “Marques” créé et placé dans le footer
- Bloc “Produits similaires” avec contextual filter
- Blocs configurés avec visibilité appropriée
- Configuration exportée
🔜 Prochaine étape
Section intitulée « 🔜 Prochaine étape »Les blocs sont en place ! Finalisons avec la Pagination & Tri.