Contrats de types de bloc

Objectif et périmètre

Cette référence décrit les blocs publiés, champs modifiables, traductions, règles des enfants et rendu public. L’administration affiche le contrat en lecture seule ; elle ne définit ni schéma personnalisé ni nouveau formulaire.

Le système de plugins des plugins ajoute des hooks de bloc de plugin purement déclaratifs via PluginBlockTypeDefinition, PluginBlockPackDefinition et PluginBlockRegistry. Les plugins activés peuvent exposer des handles appartenant au plugin, tels que analytics-tools::score-card, à des fins de découverte, mais ces déclarations ne remplacent pas les contrats de bloc core livrés, les vues de bloc core, les seeders core ni les services d'édition de blocs. Les handles non qualifiés de style core, tels que hero, restent la propriété du core et sont rejetés pour les déclarations de plugins.

Définition

A Le contrat de type de bloc est l'accord technique actuel sur le comportement d'un type de bloc sur les couches CMS :

  • identité du catalogue : slug, étiquette, catégorie, statut et métadonnées du système ou du conteneur
  • source du formulaire d'administration : quel Blade partiel modifie actuellement le bloc et quels champs il expose
  • validation et traitement des demandes : commentWebBlocks\Cms\Http\Requests\Admin\BlockRequestnormalise et valide actuellement les charges utiles de bloc
  • propriété du stockage : sur quelles valeurs perdurentblocks, des lignes de traduction dédiées,block_media, ou des enregistrements associés
  • propriété de la traduction : quels champs destinés à l'utilisateur appartiennent aux paramètres régionaux
  • propriété partagée : quels paramètres ou relations restent partagés entre les paramètres régionaux
  • propriété des médias ou des relations : directemedia_id, commandéblock_media, recherches de navigation ou relations sur la même page
  • pension alimentaire pour enfants : si le bloc est un conteneur et si les types d'enfants sont restreints
  • source de rendu public : quel public Blade partiel restitue le bloc aujourd'hui
  • contrat racine du moteur de rendu : si le bloc possède son balisage racine public ou s'appuie sur le chemin du wrapper générique
  • portabilité et révisions : si la forme de stockage actuelle doit continuer à voyager à travers les révisions, le clonage, l'exportation/importation et la promotion
  • tests et lacunes : couverture ciblée connue, comportement peu clair ou dette de compatibilité

Termes du contrat actuel

Termes de statut utilisés ci-dessous :

  • clear : le formulaire d'administration, le traitement des requêtes, le stockage et le moteur de rendu concordent pour l'essentiel
  • mostly clear : le contrat actuel est compréhensible mais comporte une réserve notable
  • transitional : le contrat actuel conserve intentionnellement un chemin de compatibilité ou un modèle de propriété mixte
  • needs review: confirmez le contrat installé avant de vous appuyer sur le comportement
  • legacy/fallback : le comportement publié dépend d'un chemin de repli ou de compatibilité

Règles de propriété du stockage

Les travaux contractuels actuels et futurs devraient maintenir ces règles de propriété explicites :

  • la copie destinée à l'utilisateur appartient aux lignes de traduction lorsque le bloc appartient aux paramètres régionaux
  • les données opérationnelles ou de paramètres partagées appartiennent aux paramètres de bloc partagés ou aux relations explicites
  • les médias doivent utiliser media_id ou block_media chemins de propriété le cas échéant
  • éviter de déplacer le contenu destiné aux utilisateurs vers des paramètres partagés arbitraires
  • conserver les chemins de stockage de compatibilité documentés lorsqu'ils affectent encore la sortie publique ou les importations

À partir du CMS 1.98.6, le champ modèle settings/API compatible est soutenu par des enregistrements relationnels. Les champs principaux connus utilisent des colonnes d'apparence, de média, de navigation et de contenu typées finies. Les liaisons de contenu, la configuration de collection et les valeurs d'instance d'application ont des enregistrements distincts ; les nœuds typés conservent la structure, l’ordre et les extensions historiques/plugin. Le CMS 1.98.8 a supprimé les copies de restauration temporaires de JSON ; SQL fait autorité. L'éditeur, la propriété de la traduction, les charges utiles API et les méthodes de rendu conservent leurs contrats existants ; la migration du stockage ne déplace pas la copie appartenant aux paramètres régionaux vers les paramètres partagés.

Validation des paramètres d’édition

CMS 1.105.9 ajoute la découverte authoring_settings_schema révisée pour les 55 blocs principaux publiés. Lisez les indicateurs de création, PATCH et d'écriture d'administrateur distincts avant de fournir un champ. Les valeurs nouvelles ou modifiées doivent satisfaire aux types, énumérations et limites déclarés ; les champs non pris en charge renvoient des erreurs de validation au lieu d'être acceptés ou effacés silencieusement. Cela reste un contrat appartenant au code, et non un schéma modifiable ou un générateur de formulaire généré.

Les valeurs historiques inchangées survivent aux modifications sans rapport et au clonage, transfert et révisions fiables. Les nouveaux blocs et les remplacements complets doivent passer la validation en cours. Les plugins sans schéma conservent leur comportement existant ; Les schémas scalaires de plugin facultatifs ne remplacent pas les validateurs de média, d'application ou Dynamic Content. HTML reste réservé aux humains.

Voir Schémas des paramètres d’édition par bloc pour les métadonnées des opérations, les règles de compatibilité et la commande de compatibilité en lecture seule webblocks:blocks:audit-settings. L’audit de catalogue distinct ci-dessous vérifie les formulaires et moteurs de rendu livrés, et non les paramètres enregistrés.

Sources livrées

La référence utilise le catalogue, les formulaires et les renderers livrés.

  • source du catalogue : src/Support/Blocks/CoreBlockTypeCatalogSyncer.php
  • normalisation des demandes de modification de bloc : src/Http/Requests/Admin/BlockRequest.php
  • assistants de persistance : src/Support/Blocks/BlockPayloadWriter.php, src/Support/Blocks/BlockTranslationWriter.php, src/Support/Blocks/BlockTranslationResolver.php
  • registre de traduction : src/Support/Blocks/BlockTranslationRegistry.php
  • formulaires d'administration : resources/views/admin/blocks/types/*.blade.php
  • rendeurs publics : resources/views/pages/partials/blocks/*.blade.php
  • références de couverture : catalogue de blocs, rendu, traduction et tests spécifiques aux slugs sous tests/Feature/

Types de blocs de base publiés actuellement documentés ici : 55.

Réconciliation du catalogue : WebBlocks CMS 1.105.8. Le tableau couvre les 55 définitions de base publiées ; sept définitions supplémentaires restent inédites. Les notes des phases ultérieures ci-dessous sont des documents historiques, et non un deuxième décompte actuel du catalogue.

Commande d'audit

Les opérateurs et développeurs peuvent lancer ce contrôle du catalogue en lecture seule :

php artisan block-types:contracts-audit
php artisan block-types:contracts-audit --json

La commande est en lecture seule.

  • elle ne modifie pas la base de données
  • elle ne dépend pas du contenu du site installé
  • elle lit les définitions du catalogue core livré
  • elle vérifie la présence des fichiers de formulaire d'administration et de moteur de rendu public livrés
  • elle rend compte des métadonnées de famille de traduction et de la prise en charge de base des conteneurs

La commande est une aide à l'actualisation permettant de repérer les écarts de catalogue et de présence de fichiers. Elle ne remplace pas les notes de contrat plus complètes de ce document.

Vue Administrative En Lecture Seule

Ouvrez les détails en lecture seule dans Admin -> System -> Block Types.

  • chaque ligne peut ouvrir une fenêtre modale Block Type Contract
  • la fenêtre modale est purement informative et ne soumet aucune mise à jour
  • elle affiche les détails de catalogue, de formulaire d'administration, de stockage, de traduction, de médias ou de relations, d'enfants, de moteur de rendu et d'écarts à partir du code livré
  • elle ne transforme pas l'administration Block Types en éditeur de schémas ou en générateur de formulaires
  • les types de bloc personnalisés ou en brouillon peuvent également ouvrir la fenêtre modale, mais peuvent afficher No shipped contract is documented for this block type yet. lorsqu'aucun contrat core n'est défini

Matrice des contrats de blocs publiés

Contenu

Header — header

Contenu et comportement
Champ Contrat
Slug header
Label Header
Catégorie content
Champs traduisibles title via les lignes de traduction de texte
Champs partagés/de réglages variant niveau de titre ; settings.alignment ; ancre partagée dans settings.anchor avec repli hérité sur url
Champs médias/relations La table des matières du même emplacement lit les blocs d'en-tête ancrés
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Bloc de titre canonique ; le contrat de l'ancre partagée est clair, mais conserve encore le comportement de repli hérité sur url.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/header.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/header.blade.php
Contrat de la racine du moteur de rendu Possède son propre élément de titre racine
Tests / couverture SyncCoreBlockTypesCommandTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Plain Text — plain_text

Contenu et comportement
Champ Contrat
Slug plain_text
Label Plain Text
Catégorie content
Champs traduisibles content via les lignes de traduction de texte
Champs partagés/de réglages settings.alignment
Champs médias/relations Aucun
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Primitive simple de texte courant traduit.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/plain_text.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/plain_text.blade.php
Contrat de la racine du moteur de rendu Possède sa racine <p>
Tests / couverture PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Rich Text — rich-text

Contenu et comportement
Champ Contrat
Slug rich-text
Label Rich Text
Catégorie content
Champs traduisibles content via les lignes de traduction de texte
Champs partagés/de réglages Aucun
Champs médias/relations Aucun
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Le stockage HTML sûr et la propriété de la traduction sont clairs.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/rich-text.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/rich-text.blade.php
Contrat de la racine du moteur de rendu Possède sa racine .wb-rich-text lorsqu'un contenu existe
Tests / couverture RichTextBlockTest, PublicRichContentTest, BlockTranslationIntegrityTest

Code — code

Contenu et comportement
Champ Contrat
Slug code
Label Code
Catégorie content
Champs traduisibles title, subtitle, content via les lignes de traduction de texte
Champs partagés/de réglages settings.language
Champs médias/relations Aucun
Comportement enfant/conteneur N'est pas un conteneur ; les lignes enfants historiques sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
État actuel clear
Lacunes connues / notes Le bloc aligne le titre traduit du code, le libellé et le corps de l'extrait sur l'architecture de traduction de texte existante, et ignore désormais les arbres d'enfants historiques arbitraires dans la sortie publique.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/code.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/code.blade.php
Contrat de la racine du moteur de rendu possède sa racine <pre><code>
Tests / couverture PublicRichContentTest, BlockTypePhaseThreeContractsTest, PageBuilderExperienceTest
Champ Contrat
Slug button_link
Label Button Link
Catégorie content
Champs traduisibles le libellé title via les lignes de traduction de texte
Champs partagés/de réglages settings.url ; settings.target ; variant partagé
Champs médias/relations Aucun
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes L'URL et la cible partagées, associées au libellé traduit, sont cohérentes.
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/button_link.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/button_link.blade.php
Contrat de la racine du moteur de rendu possède sa racine <a.wb-btn>
Tests / couverture PublicEditorialBlocksRenderingTest

Card — card

Contenu et comportement
Champ Contrat
Slug card
Label Card
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages media_id partagé ; settings.layout_name ; settings.background_position ; settings.background_overlay ; settings.url et settings.target en option
Champs médias/relations Arrière-plan optionnel image via media_id direct ; les blocs de région enfant définissent la structure
Comportement enfant/conteneur Conteneur ; les seuls enfants directs autorisés sont card_header, card_body et card_footer
État actuel clear
Lacunes connues / notes est un shell composable. Son URL entière facultative card est sûre et sémantique ; les éditeurs ne doivent pas placer de contrôles interactifs imbriqués dans les cartes liées. Il prend en charge les arrière-plans de la bibliothèque multimédia et conserve un minimum de secours pour les anciennes lignes sans régions de carte.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/card.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/card.blade.php
Contrat de la racine du moteur de rendu Possède sa racine <article class="wb-card"> ou une racine sémantique <a class="wb-card wb-no-decoration"> lorsqu'il est lié La carte
Tests / couverture CardClickableRenderTest, PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, BlockTranslationIntegrityTest, MediaVisualBlockContractsTest

Card Header — card_header

Contenu et comportement
Champ Contrat
Slug card_header
Label Card Header
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages settings.layout_name, settings.icon_slug, settings.icon_tone, settings.icon_size
Champs médias/relations Uniquement la relation avec le card parent
Comportement enfant/conteneur Conteneur ; ne peut être placé que sous card ; les enfants de région de carte ne sont pas autorisés
État actuel clear
Lacunes connues / notes pour header content. Les icônes facultatives utilisent des slugs de catalogue content actifs et sont restituées uniquement via des classes d'icônes, de tons et de tailles sécurisées. L'en-tête de carte n'a pas de copie de badge et n'expose donc aucune tonalité de badge.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/card_header.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/card_header.blade.php
Contrat de la racine du moteur de rendu possède sa racine <div class="wb-card-header">
Tests / couverture PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

Card Body — card_body

Contenu et comportement
Champ Contrat
Slug card_body
Label Card Body
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages settings.layout_name
Champs médias/relations Uniquement la relation avec le card parent
Comportement enfant/conteneur Conteneur ; ne peut être placé que sous card ; les enfants de région de carte ne sont pas autorisés
État actuel clear
Lacunes connues / notes Bloc de région Card composable pour le contenu principal.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/card_body.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/card_body.blade.php
Contrat de la racine du moteur de rendu possède sa racine <div class="wb-card-body">
Tests / couverture PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest
Champ Contrat
Slug card_footer
Label Card Footer
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages settings.layout_name
Champs médias/relations Uniquement la relation avec le card parent
Comportement enfant/conteneur Conteneur ; ne peut être placé que sous card ; les enfants de région de carte ne sont pas autorisés
État actuel clear
Lacunes connues / notes Bloc de région Card composable pour le pied de carte ou les contenus d'action.
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/card_footer.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/card_footer.blade.php
Contrat de la racine du moteur de rendu possède sa racine <div class="wb-card-footer">
Tests / couverture PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Stat Card — stat-card

Contenu et comportement
Champ Contrat
Slug stat-card
Label Stat Card
Catégorie content
Champs traduisibles title, subtitle, content via les lignes de traduction de texte
Champs partagés/de réglages L'url canonique reste partagée sur la ligne du bloc
Champs médias/relations Aucun
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Le bloc conserve le champ URL facultatif existant et affiche désormais un simple lien public lorsqu'il est renseigné.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/stat-card.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/stat-card.blade.php
Contrat de la racine du moteur de rendu Possède sa racine de stat-card
Tests / couverture StatCardTest, BlockTranslationIntegrityTest

Image — image

Contenu et comportement
Champ Contrat
Slug image
Label Image
Catégorie content
Champs traduisibles caption, alt text via les lignes de traduction d'image
Champs partagés/de réglages media_id partagé ; Canonique partagé url ; settings.viewer_enabled ; settings.viewer_group
Champs médias/relations Relation directe avec le média image via media_id
Comportement enfant/conteneur N'est pas un conteneur ; les lignes enfants historiques sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
État actuel clear
Lacunes connues / notes et alt text appartiennent aux paramètres régionaux tandis que les médias, l'URL du lien facultatif et le regroupement des spectateurs restent partagés. Les liens explicites sont prioritaires ; Les blocs d'images autrement activés avec le même groupe partagent la visionneuse de galerie CMS existante sans modifier la composition de la page.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/image.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/image.blade.php
Contrat de la racine du moteur de rendu Possède sa racine sémantique <figure> lorsque le média existe et peut s'enregistrer auprès d'un visualiseur de galerie groupé La légende
Tests / couverture MediaVisualBlockContractsTest, PublicMediaBlocksTest, BlockTranslationIntegrityTest, PublicOverlayRegistryTest
Champ Contrat
Slug gallery
Label Gallery
Catégorie content
Champs traduisibles Pour chaque élément de galerie : alt_text, caption, overlay_title et overlay_text via block_gallery_item_translations
Champs partagés/de réglages Paramètres de présentation partagés gallery plus visionneuse optionnelle title et relations block_media gallery-éléments commandés
Champs médias/relations Lignes block_media ordonnées avec le rôle gallery_item ; le texte des éléments de galerie propre à chaque langue se trouve dans block_gallery_item_translations ; d'anciennes valeurs title/subtitle enregistrées sur le bloc peuvent subsister, mais le rendu public les ignore
Comportement enfant/conteneur N'est pas un conteneur ; les lignes enfants historiques sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
État actuel clear
Lacunes connues / notes Gallery est désormais un bloc de collection multimédia. Le formulaire d'administration normal utilise un éditeur de lignes de liste compact au lieu de l'ancien grid d'actifs sélectionnés. Son sélecteur Add Gallery Items imbriqué reste sur le contrat d'administrateur partagé #wb-overlay-root, de sorte que WebBlocks UI possède le cycle de vie modal empilé, et les longues listes de résultats compactes conservent la hauteur naturelle des lignes tandis que le corps modal reste le conteneur de défilement. Les variantes publiques sont distinctes : grid conserve des cellules égales, masonry utilise CSS columns avec une hauteur naturelle image et collage conserve la première composition présentée. Les anciennes valeurs masonary enregistrées sont toujours acceptées et normalisées selon le chemin canonique masonry. Gallery ne possède plus de titre d'introduction ni de sortie de paragraphe ; les éditeurs doivent placer content_header plus plain_text ou rich-text avant Galerie lorsqu'une copie de section est nécessaire. La visionneuse optionnelle title étiquette uniquement la visionneuse modale header. Les éléments de secours basés sur les paramètres hérités restent lisibles pour les anciens content.
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/gallery.blade.php plus resources/views/admin/blocks/types/partials/gallery-items-editor.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/gallery.blade.php
Contrat de la racine du moteur de rendu Possède la racine de son conteneur de galerie et enregistre une seule fenêtre modale de visionneuse sous #wb-overlay-root lorsque la lightbox est activée
Tests / couverture MediaVisualBlockContractsTest, PublicMediaBlocksTest, PageBuilderExperienceTest, SiteCloneServiceTest, SiteExportImportTest, SitePromotionTest, ReconstructionIntegrityTest, SharedSlotRevisionTest

Download — download

Contenu et comportement
Champ Contrat
Slug download
Label Download
Catégorie content
Champs traduisibles title, subtitle via les lignes de traduction de texte
Champs partagés/de réglages media_id partagé ; variant partagé
Champs médias/relations Relation directe avec le fichier de téléchargement via media_id
Comportement enfant/conteneur N'est pas un conteneur ; les lignes enfants historiques sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
État actuel clear
Lacunes connues / notes Le bloc garde partagés le média de téléchargement sélectionné et la variante du bouton, tout en déplaçant le libellé visible et le texte d'aide vers le chemin de traduction de texte existant.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/download.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/download.blade.php
Contrat de la racine du moteur de rendu Possède la racine de son conteneur de CTA lorsque le média existe
Tests / couverture MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

File — file

Contenu et comportement
Champ Contrat
Slug file
Label File
Catégorie content
Champs traduisibles title, content via les lignes de traduction de texte
Champs partagés/de réglages media_id partagé ; url canonique partagée
Champs médias/relations Relation directe avec le média via media_id, avec repli sur une URL externe
Comportement enfant/conteneur N'est pas un conteneur ; les lignes enfants historiques sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
État actuel clear
Lacunes connues / notes Le bloc industrialise le moteur de rendu File déjà livré avec un formulaire d'administration dédié et rend explicite la propriété partagée de la source du fichier entre la médiathèque et le repli sur une URL externe.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/file.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/file.blade.php
Contrat de la racine du moteur de rendu Possède sa racine de carte de fichier
Tests / couverture MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

Video — video

Contenu et comportement
Champ Contrat
Slug video
Label Video
Catégorie content
Champs traduisibles title, content via les lignes de traduction de texte
Champs partagés/de réglages media_id partagé ; url canonique partagée
Champs médias/relations Relation directe avec le média via media_id, avec repli sûr sur une URL externe
Comportement enfant/conteneur N'est pas un conteneur ; les lignes enfants historiques sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
État actuel clear
Lacunes connues / notes Le bloc ajoute le formulaire d'administration et le chemin d'enregistrement manquants, de sorte que la vidéo téléversée, les URL sûres de fournisseurs externes, le texte visible traduit et le comportement public de repli décrivent désormais le même contrat.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/video.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/video.blade.php
Contrat de la racine du moteur de rendu Possède sa racine de carte vidéo
Tests / couverture MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

Audio — audio

Contenu et comportement
Champ Contrat
Slug audio
Label Audio
Catégorie content
Champs traduisibles title, content via les lignes de traduction de texte
Champs partagés/de réglages media_id partagé ; url canonique partagée
Champs médias/relations Relation directe avec le média via media_id, avec repli sur une URL externe
Comportement enfant/conteneur N'est pas un conteneur ; les lignes enfants historiques sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
État actuel clear
Lacunes connues / notes Admin, Content Plan et écritures de blocs incrémentielles acceptent les médias audio avec le type other et un type MIME audio/* ; les supports incompatibles sont rejetés. La copie localisée et le rendu sécurisé sans contrôles vides restent natifs.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/audio.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/audio.blade.php
Contrat de la racine du moteur de rendu Possède sa racine de carte audio
Tests / couverture MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

Table — table

Contenu et comportement
Champ Contrat
Slug table
Label Table
Catégorie content
Champs traduisibles title, content via les lignes de traduction de texte
Champs partagés/de réglages variant partagé ; le moteur de rendu vérifie aussi le repli settings.rows
Champs médias/relations Aucun
Comportement enfant/conteneur N'est pas un conteneur ; les lignes enfants historiques sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
État actuel mostly clear
Lacunes connues / notes Le bloc aligne la propriété du titre traduit et du texte des lignes sur l'architecture de traduction de texte existante et ignore désormais les arbres d'enfants historiques arbitraires dans la sortie publique ; le chemin de repli hérité settings.rows reste documenté.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/table.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/table.blade.php
Contrat de la racine du moteur de rendu Possède la racine de son conteneur de tableau
Tests / couverture PublicRichContentTest, BlockTypePhaseThreeContractsTest, PageBuilderExperienceTest

Quote — quote

Contenu et comportement
Champ Contrat
Slug quote
Label Quote
Catégorie content
Champs traduisibles Aucun dans le registre actuel
Champs partagés/de réglages title, subtitle, content et variant canoniques
Champs médias/relations Aucun
Comportement enfant/conteneur N'est pas un conteneur ; les lignes enfants historiques sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
État actuel clear
Lacunes connues / notes Le bloc cesse de traiter Quote comme un conteneur ou un wrapper de mise en page dans la sortie publique, tout en préservant les lignes enfants déjà enregistrées dans les arbres de blocs côté administration.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/quote.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/quote.blade.php
Contrat de la racine du moteur de rendu Possède sa racine de citation
Tests / couverture PublicRichContentTest, PageBuilderExperienceTest

Hero — hero

Contenu et comportement
Champ Contrat
Slug hero
Label Hero
Catégorie content
Champs traduisibles title, subtitle, content via les lignes de traduction de texte
Champs partagés/de réglages media_id partagé ; partagé variant ; settings.layout ; settings.title_tag ; settings.background_position ; settings.background_overlay
Champs médias/relations Arrière-plan optionnel image via media_id direct ; enfants button_link blocs pour les actions
Comportement enfant/conteneur Conteneur ; Enfants button_link (l'héritage button est également autorisé), pas de nombre fixe
État actuel transitional
Lacunes connues / notes Hero est désormais un contrat principal publié et adossé à une source. La copie d'introduction appartient aux paramètres régionaux, les boutons d'action sont des enfants button_link ordinaires qui possèdent leurs propres étiquettes et URL, et les images d'arrière-plan facultatives de la bibliothèque multimédia sont rendues via la primitive de support d'arrière-plan native WebBlocks UI. Les anciennes solutions de secours content restent lisibles là où les champs canoniques traduits sont vides.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/hero.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/hero.blade.php
Contrat de la racine du moteur de rendu Possède sa promo racine <section>
Tests / couverture PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Columns — columns

Contenu et comportement
Champ Contrat
Slug columns
Label Columns
Catégorie content
Champs traduisibles title, subtitle, content via les lignes de traduction de texte
Champs partagés/de réglages variant partagé
Champs médias/relations Blocs column_item enfants
Comportement enfant/conteneur Conteneur ; uniquement des enfants column_item
État actuel clear
Lacunes connues / notes Columns est désormais un bloc de contenu structuré publié et de premier ordre. Le texte d'introduction appartient à chaque langue, tandis que la variante, l'ordre des enfants et les URL des enfants restent partagés.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/columns.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/columns.blade.php
Contrat de la racine du moteur de rendu Possède sa racine structurée-content <section>
Tests / couverture PublicColumnsRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Column Item — column_item

Contenu et comportement
Champ Contrat
Slug column_item
Label Column Item
Catégorie content
Champs traduisibles title, eyebrow comme étiquette de badge, subtitle, content via des lignes de traduction de texte
Champs partagés/de réglages Canonique partagé url, settings.icon_slug, settings.icon_tone, settings.icon_size, settings.badge_tone L'élément de colonne
Champs médias/relations Relation avec le columns parent
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes utilise la composition WebBlocks UI wb-icon-card fournie pour les variantes simples à icône et card. Les modifications locales mettent à jour la copie des éléments sans écraser les URL partagées, le slug d'icône, la tonalité de l'icône, la taille de l'icône ou la tonalité du badge.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/column_item.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/column_item.blade.php
Contrat de la racine du moteur de rendu La racine de l'élément est déterminée par le parent et varie selon la variante de Columns
Tests / couverture PublicColumnsRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

CTA — cta

Contenu et comportement
Champ Contrat
Slug cta
Label CTA
Catégorie content
Champs traduisibles title, subtitle, content via les lignes de traduction de texte
Champs partagés/de réglages media_id partagé ; partagé variant ; settings.background_position ; settings.background_overlay
Champs médias/relations Arrière-plan optionnel image via media_id direct ; enfants button_link blocs pour les actions Conteneur
Comportement enfant/conteneur ; Enfants button_link (l'héritage button est également autorisé), pas de nombre fixe
État actuel clear
Lacunes connues / notes CTA est désormais un contrat promotionnel publié avec une copie appartenant aux paramètres régionaux, des boutons d'action en tant qu'enfants button_link ordinaires, des images d'arrière-plan facultatives de la bibliothèque multimédia et un moteur de rendu public appartenant à la racine.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/cta.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/cta.blade.php
Contrat de la racine du moteur de rendu Possède sa promo racine <section>
Tests / couverture PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Feature Grid — feature-grid

Contenu et comportement
Champ Contrat
Slug feature-grid
Label Feature Grid
Catégorie content
Champs traduisibles title, subtitle, content via des lignes de traduction de texte ; enfant feature-item title, étiquette de badge et content
Champs partagés/de réglages Structure enfant partagée, ordre, liens, slugs d'icônes, tonalités d'icône et tonalités de badge
Champs médias/relations Blocs feature-item enfants, avec prise en charge compatible de l'ancien column_item
Comportement enfant/conteneur Conteneur ; les enfants autorisés sont feature-item et column_item
État actuel transitional
Lacunes connues / notes Feature Grid est désormais un alias de compatibilité publié, car il dispose de véritables chemins d'administration et de rendu livrés, mais il continue délibérément de déléguer au contrat en cartes de Columns.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/feature-grid.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/feature-grid.blade.php
Contrat de la racine du moteur de rendu Délègue à la présentation en cartes de Columns et utilise toujours le conteneur public générique
Tests / couverture PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

Feature Item — feature-item

Contenu et comportement
Champ Contrat
Slug feature-item
Label Feature Item
Catégorie content
Champs traduisibles title, eyebrow comme étiquette de badge, content via des lignes de traduction de texte
Champs partagés/de réglages Canonique partagé url, settings.icon_slug, settings.icon_tone, settings.icon_size, settings.badge_tone L'élément de fonctionnalité
Champs médias/relations Relation avec le feature-grid parent
Comportement enfant/conteneur N'est pas un conteneur
État actuel transitional
Lacunes connues / notes est désormais un contrat enfant de support publié pour Feature Grid tout en partageant les cartes d'élément de colonne existantes et le rendu des icônes content.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/feature-item.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/feature-item.blade.php
Contrat de la racine du moteur de rendu Délègue à la présentation en cartes de Column Item
Tests / couverture PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

Disposition

Section — section

Contenu et comportement
Champ Contrat
Slug section
Label Section
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages media_id partagé ; settings.layout_name ; settings.spacing ; settings.background_position ; settings.background_overlay
Champs médias/relations Image d'arrière-plan en option via media_id direct ; les blocs enfants restent un contenu structurel
Comportement enfant/conteneur Conteneur ; pas de liste blanche explicite des enfants
État actuel clear
Lacunes connues / notes Le bloc conserve l'orientation de la section layout : les paramètres partagés layout restent canoniques, le support d'arrière-plan facultatif utilise le contrat standard de la bibliothèque multimédia, il possède la racine sémantique <section> et ne déplace pas la copie destinée à l'utilisateur dans des paramètres arbitraires.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/section.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/section.blade.php
Contrat de la racine du moteur de rendu Possède sa racine <section>
Tests / couverture PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Container — container

Contenu et comportement
Champ Contrat
Slug container
Label Container
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages settings.layout_name; settings.width; settings.flow
Champs médias/relations Blocs enfants uniquement
Comportement enfant/conteneur Conteneur ; pas de liste blanche explicite des enfants
État actuel clear
Lacunes connues / notes Le conteneur est layout neutre lorsque le débit n'est pas défini ou none ; seul Flow: Stack explicite ajoute un flux enfant vertical.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/container.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/container.blade.php
Contrat de la racine du moteur de rendu Possède sa racine container <div>
Tests / couverture PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Pile — stack

Contenu et comportement
Champ Contrat
Slug stack
Label Pile
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages settings.layout_name; settings.spacing
Champs médias/relations Blocs enfants uniquement
Comportement enfant/conteneur Conteneur ; pas de liste blanche explicite des enfants
État actuel clear
Lacunes connues / notes Le flux enfant vertical est mappé uniquement aux classes wb-stack et wb-stack-* livrées.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/stack.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/stack.blade.php
Contrat de la racine du moteur de rendu Possède sa racine stack <div>
Tests / couverture StackSplitCatalogTest, StackSplitContractTest

Fractionner — split

Contenu et comportement
Champ Contrat
Slug split
Label Fractionner
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages settings.layout_name; settings.gap; settings.items_alignment; settings.width
Champs médias/relations Exactement deux blocs enfants directs Conteneur
Comportement enfant/conteneur ; pas de liste blanche explicite de type enfant, mais le nombre direct d'enfants est limité à deux
État actuel clear
Lacunes connues / notes Le premier enfant direct grandit et le second conserve la taille du contenu. Une pile peut être imbriquée de chaque côté. L’interface utilisateur épinglée n’a pas encore de modificateur split-à-stack réactif.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/split.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/split.blade.php
Contrat de la racine du moteur de rendu Possède sa racine split <div>
Tests / couverture StackSplitCatalogTest, StackSplitContractTest

Cluster — cluster

Contenu et comportement
Champ Contrat
Slug cluster
Label Cluster
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages settings.layout_name; settings.gap; settings.alignment; settings.items_alignment; settings.wrap; settings.width
Champs médias/relations Blocs enfants uniquement
Comportement enfant/conteneur Conteneur ; pas de liste blanche explicite des enfants
État actuel clear
Lacunes connues / notes Les réglages de layout partagés restent explicites et détenus par le moteur de rendu, y compris la voie de composition existante compatible navbar (full-width, between, center, nowrap), sans ajouter de logique spécifique à la navbar.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/cluster.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/cluster.blade.php
Contrat de la racine du moteur de rendu Possède sa racine cluster <div>
Tests / couverture PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Grid — grid

Contenu et comportement
Champ Contrat
Slug grid
Label Grid
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages settings.layout_name; settings.columns; settings.gap; settings.alternate_media_text_sections; settings.alternate_start
Champs médias/relations Blocs enfants uniquement
Comportement enfant/conteneur Conteneur ; pas de liste blanche explicite des enfants
État actuel clear
Lacunes connues / notes Les paramètres grid partagés restent canoniques. Les grilles média/texte alternées conservent le wrapper wb-grid-* fourni et réorganisent les paires enfants média/texte directes, y compris les structures Slider plus Text Section, en fonction du contenu visuel détecté. Les grilles alternées frères et sœurs sous le même parent partagent une séquence même lorsque d'autres blocs apparaissent entre eux, la première grille alternée contrôlant la direction de départ.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/grid.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/grid.blade.php
Contrat de la racine du moteur de rendu Possède sa racine grid <div>
Tests / couverture PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Motif

Content Header — content_header

Contenu et comportement
Champ Contrat
Slug content_header
Label Content Header
Catégorie pattern
Champs traduisibles title, eyebrow comme étiquette de badge, subtitle, meta via des lignes de traduction de texte
Champs partagés/de réglages media_id partagé ; settings.alignment, settings.icon_slug, settings.icon_tone, settings.icon_size, settings.badge_tone, settings.background_position, settings.background_overlay
Champs médias/relations Image d'arrière-plan en option via media_id direct ; meta est stocké sous forme de liste structurée content
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes est un bloc content-shell pattern. Il conserve title, l'étiquette de badge, l'intro et la copie meta appartenant aux paramètres régionaux, restitue toujours son title en tant que H1, ignore toutes les valeurs de niveau de titre enregistrées au moment du rendu et conserve l'alignement, le slug d'icône, la tonalité d'icône, la taille de l'icône, la tonalité de badge et les médias d'arrière-plan facultatifs partagés.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/content_header.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/content_header.blade.php
Contrat de la racine du moteur de rendu Possède sa racine <header> L'en-tête de contenu
Tests / couverture PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, BlockTranslationIntegrityTest, PublicIconBadgeSupportTest

Alert — alert

Contenu et comportement
Champ Contrat
Slug alert
Label Alert
Catégorie pattern
Champs traduisibles title, content via les lignes de traduction de texte
Champs partagés/de réglages settings.variant
Champs médias/relations Aucun
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes La variante partagée et le texte traduit s'alignent proprement.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/alert.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/alert.blade.php
Contrat de la racine du moteur de rendu Possède la racine de son alerte
Tests / couverture PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest
Champ Contrat
Slug link-list
Label Link List
Catégorie navigation
Champs traduisibles title, subtitle, content via les lignes de traduction de texte
Champs partagés/de réglages settings.row_layout en option (index/empilé) et settings.list_frame (joint/cartes)
Champs médias/relations Blocs link-list-item enfants
Comportement enfant/conteneur Conteneur ; uniquement des enfants link-list-item
État actuel clear
Lacunes connues / notes Le bloc rend désormais le texte d'introduction traduit existant au-dessus de la liste de liens publique, sans modifier le comportement des éléments enfants.
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/link-list.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/link-list.blade.php
Contrat de la racine du moteur de rendu Possède sa racine .wb-link-list lorsque des lignes enfants existent, en ajoutant wb-link-list--stacked et wb-link-list--cards pour les styles sélectionnés
Tests / couverture LinkListBlockTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest
Champ Contrat
Slug link-list-item
Label Link List Item
Catégorie navigation
Champs traduisibles title requis, eyebrow en option comme étiquette de badge, subtitle en option, content en option via des lignes de traduction de texte
Champs partagés/de réglages url partagé requis, miniature media_id partagée en option, settings.icon_slug en option, settings.icon_tone, settings.icon_size, settings.badge_tone
Champs médias/relations Média miniature facultatif via la relation de bloc direct media_id ; relation parent link-list
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes L'URL partagée avec la copie de ligne traduite est cohérente. Les icônes facultatives utilisent des slugs de catalogue content actifs et s'affichent uniquement via des classes d'icônes, de tons et de tailles sécurisées. Une vignette d'image facultative s'affiche sous la forme wb-link-list-thumb dans la seule première colonne de la ligne et l'emporte sur l'icône lorsque les deux sont définies.
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/link-list-item.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/link-list-item.blade.php
Contrat de la racine du moteur de rendu possède sa racine de lien de ligne, ajoute wb-link-list-item--media lors du rendu d'une vignette ou d'une icône et omet l'élément de description lorsque content est vide
Tests / couverture LinkListBlockTest, LinkListThumbnailTest, PageBuilderExperienceTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest, PublicIconBadgeSupportTest

TOC — toc

Contenu et comportement
Champ Contrat
Slug toc
Label TOC
Catégorie navigation
Champs traduisibles Aucun
Champs partagés/de réglages Uniquement le title canonique
Champs médias/relations Blocs header publiés au même emplacement avec ancres valides
Comportement enfant/conteneur N'est pas un conteneur ; les lignes enfants historiques sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
État actuel clear
Lacunes connues / notes TOC est un type de bloc système. Il analyse uniquement l'emplacement dans lequel il est placé (et non la page entière) parcouru dans l'ordre du document, et ne traite plus les blocs enfants arbitraires comme une table des matières publique content.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/toc.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/toc.blade.php
Contrat de la racine du moteur de rendu Possède son wrapper TOC généré lorsque des titres existent
Tests / couverture PublicRichContentTest, PageBuilderExperienceTest, TocHeadingScanTest

Breadcrumb — breadcrumb

Contenu et comportement
Champ Contrat
Slug breadcrumb
Label Breadcrumb
Catégorie navigation
Champs traduisibles Aucun
Champs partagés/de réglages settings.home_label ; settings.include_current partagés
Champs médias/relations Contexte de fil d'Ariane de la page, du site et de la langue (locale) courants
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Le bloc préserve les réglages de fil d'Ariane exposés via le chemin partagé BlockRequest, de sorte que le comportement du formulaire correspond désormais à la persistance et au rendu.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/breadcrumb.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/breadcrumb.blade.php
Contrat de la racine du moteur de rendu possède sa racine <nav.wb-breadcrumb>
Tests / couverture PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest

Header Actions — header-actions

Contenu et comportement
Champ Contrat
Slug header-actions
Label Header Actions
Catégorie navigation
Champs traduisibles Aucun
Champs partagés/de réglages settings.show_mode_toggle partagé ; settings.show_accent_toggle ; settings.show_search ; settings.show_language_switcher
Champs médias/relations Route de recherche et hooks d'interface côté client
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Bloc utilitaire système ; par conception, il ne détient aucune traduction.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/header-actions.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/header-actions.blade.php
Contrat de la racine du moteur de rendu Possède uniquement son cluster d'actions interne
Tests / couverture PublicEditorialBlocksRenderingTest

Navbar — sticky-navbar

Contenu et comportement
Champ Contrat
Slug sticky-navbar
Label Navbar
Catégorie navigation
Champs traduisibles Aucun
Champs partagés/de réglages settings.layout_name; settings.sticky_mode
Champs médias/relations Blocs enfants imbriqués de la navbar
Comportement enfant/conteneur Conteneur ; les enfants autorisés sont container, cluster, header, plain_text, rich-text, button_link, navbar-brand, navbar-navigation, header-actions, search-form
État actuel clear
Lacunes connues / notes Le bloc aligne le slug persisté sticky-navbar sur Block::ownsPublicRoot(), de sorte que Navbar ne reçoit plus de wrapper de bloc public générique supplémentaire.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/sticky-navbar.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/sticky-navbar.blade.php
Contrat de la racine du moteur de rendu Le moteur de rendu public possède la racine externe <nav.wb-navbar>
Tests / couverture PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, BlockTypePhaseThreeContractsTest

Navbar Brand — navbar-brand

Contenu et comportement
Champ Contrat
Slug navbar-brand
Label Navbar Brand
Catégorie navigation
Champs traduisibles title, subtitle via les lignes de traduction de texte
Champs partagés/de réglages settings.url ; settings.target ; settings.aria_label partagés
Champs médias/relations Média du logo partagé via media_id ; repli sur l'URL d'accueil du site
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Le bloc aligne le comportement d'enregistrement de l'administration sur le contrat du moteur de rendu livré : l'URL enregistrée explicite l'emporte, sinon le chemin d'accueil du site courant est utilisé lorsqu'il est disponible, puis / en dernier repli sûr.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/navbar-brand.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/navbar-brand.blade.php
Contrat de la racine du moteur de rendu Possède uniquement le lien de marque interne
Tests / couverture PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest

Navbar Navigation — navbar-navigation

Contenu et comportement
Champ Contrat
Slug navbar-navigation
Label Navbar Navigation
Catégorie navigation
Champs traduisibles Aucun
Champs partagés/de réglages Canonical title en tant qu'étiquette ARIA partagée ; settings.menu_key ; settings.active_indicator ; settings.active_matching
Champs médias/relations Arbre de menu NavigationItem partagé
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes La liaison de menu partagé, l'étiquette ARIA, l'indicateur actif et la correspondance active sont des comportements actuels appartenant au produit.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/navbar-navigation.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/navbar-navigation.blade.php
Contrat de la racine du moteur de rendu Possède uniquement le wrapper interne navigation et mappe les paramètres des indicateurs actifs aux classes actives de la barre de navigation WebBlocks UI.
Tests / couverture PublicEditorialBlocksRenderingTest

Sidebar Brand — sidebar-brand

Contenu et comportement
Champ Contrat
Slug sidebar-brand
Label Sidebar Brand
Catégorie navigation
Champs traduisibles title, subtitle via les lignes de traduction de texte
Champs partagés/de réglages settings.url ; settings.target ; settings.aria_label partagés
Champs médias/relations Média du logo partagé via media_id ; repli sur l'URL d'accueil du site
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Le bloc donne à Sidebar Brand le même ordre de repli du nom accessible en cas de logo seul que Navbar Brand, ainsi que le même contrat de repli prudent pour l'URL partagée.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/sidebar-brand.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/sidebar-brand.blade.php
Contrat de la racine du moteur de rendu Possède uniquement le lien de marque interne
Tests / couverture PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest

Sidebar Navigation — sidebar-navigation

Contenu et comportement
Champ Contrat
Slug sidebar-navigation
Label Sidebar Navigation
Catégorie navigation
Champs traduisibles title via les lignes de traduction de texte
Champs partagés/de réglages settings.menu_key ; settings.layout_name ; settings.show_icons ; settings.active_matching partagés
Champs médias/relations Soit l'arbre NavigationItem du CMS, soit des blocs enfants manuels
Comportement enfant/conteneur Conteneur ; uniquement des enfants sidebar-nav-item et sidebar-nav-group
État actuel clear
Lacunes connues / notes Les réglages partagés du mode menu et le mode enfants manuels sont tous deux explicites.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/sidebar-navigation.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/sidebar-navigation.blade.php
Contrat de la racine du moteur de rendu possède sa racine <nav.wb-sidebar-nav>
Tests / couverture PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Sidebar Nav Item — sidebar-nav-item

Contenu et comportement
Champ Contrat
Slug sidebar-nav-item
Label Sidebar Nav Item
Catégorie navigation
Champs traduisibles title via les lignes de traduction de texte
Champs partagés/de réglages settings.url ; settings.target ; settings.icon ; settings.active_mode ; settings.manual_active partagés
Champs médias/relations Slug partagé du catalogue d'icônes ; relation avec la barre latérale parente
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Le comportement de lien partagé et le libellé traduit s'accordent bien.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/sidebar-nav-item.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/sidebar-nav-item.blade.php
Contrat de la racine du moteur de rendu Possède la racine de son lien de barre latérale
Tests / couverture PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Sidebar Nav Group — sidebar-nav-group

Contenu et comportement
Champ Contrat
Slug sidebar-nav-group
Label Sidebar Nav Group
Catégorie navigation
Champs traduisibles title via les lignes de traduction de texte
Champs partagés/de réglages settings.icon ; settings.initially_open ; settings.layout_name partagés
Champs médias/relations Blocs sidebar-nav-item enfants ; slug du catalogue d'icônes
Comportement enfant/conteneur Conteneur ; uniquement des enfants sidebar-nav-item
État actuel clear
Lacunes connues / notes Le bloc conserve le contrat du wrapper nav-group livré de WebBlocks UI, tandis que les liens enfants manuels imbriqués réutilisent désormais la même sémantique d'élément de barre latérale pour href, target, icône et sortie de l'état actif.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/sidebar-nav-group.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/sidebar-nav-group.blade.php
Contrat de la racine du moteur de rendu Possède sa racine .wb-nav-group
Tests / couverture PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest

Search Form — search-form

Contenu et comportement
Champ Contrat
Slug search-form
Label Search Form
Catégorie navigation
Champs traduisibles title, subtitle, content via les lignes de traduction de texte
Champs partagés/de réglages variant ; settings.show_button partagés
Champs médias/relations Contexte de la route de recherche, du site et de la langue (locale)
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Les réglages partagés d'affichage du bouton et les libellés traduits sont explicites.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/search-form.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/search-form.blade.php
Contrat de la racine du moteur de rendu possède sa racine <form role="search">
Tests / couverture SearchFormTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest
Champ Contrat
Slug sidebar-footer
Label Sidebar Footer
Catégorie navigation
Champs traduisibles title, subtitle, content via les lignes de traduction de texte
Champs partagés/de réglages settings.variant partagé
Champs médias/relations Aucun
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes La variante partagée avec du texte traduit est simple.
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/sidebar-footer.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/sidebar-footer.blade.php
Contrat de la racine du moteur de rendu Possède la racine de son bloc de pied de page interne
Tests / couverture PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Formulaires

Contact Form — contact_form

Contenu et comportement
Champ Contrat
Slug contact_form
Label Contact Form
Catégorie form
Champs traduisibles title, content, submit_label, success_message via des lignes de traduction du formulaire de contact
Champs partagés/de réglages settings.recipient_email ; settings.send_email_notification ; settings.store_submissions partagés
Champs médias/relations Les envois contact_messages sont rattachés au bloc et à la page
Comportement enfant/conteneur N'est pas un conteneur
État actuel clear
Lacunes connues / notes Le moteur de rendu émet un champ de vérification anti-spam caché appartenant au CMS qui n'est pas une entrée normale du visiteur et ne doit pas être créé manuellement. Les soumissions de champs de vérification remplis renvoient un succès générique sans stockage ni notification. Les messages légitimes sont stockés avant la notification, le spam noté est conservé pour examen par l'administrateur, le destinataire de secours est le bloc, le site, CONTACT_RECIPIENT_EMAIL, puis MAIL_FROM_ADDRESS, et les pages de contact ne doivent pas utiliser HTML de confiance/raw Forms/mailto: comme substituts. Les plans Internal Content API content conservent submit_label et success_message, et le rendu des paramètres régionaux allemands utilise les étiquettes form allemandes par défaut lorsque la copie personnalisée est absente.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/contact_form.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/contact_form.blade.php
Contrat de la racine du moteur de rendu Possède sa racine section.wb-card et émet un formulaire natif protégé par CSRF qui poste vers /contact-messages
Tests / couverture ContactFormModuleTest, InternalContentApiTest, ContactMailDiagnoseCommandTest

Avancé

HTML (Trusted) — html

Contenu et comportement
Champ Contrat
Slug html
Libellé HTML (Trusted)
Catégorie advanced
Champs traduisibles Aucun
Champs partagés/de réglage Le content HTML de confiance canonique
Champs média/relation Les registres publics d'overlay et de fin de body peuvent recevoir des fragments extraits
Comportement enfants/conteneur Pas un conteneur ; les anciennes lignes enfants sont conservées, mais l'ajout de nouveaux enfants n'est pas pris en charge
Statut actuel mostly clear
Lacunes connues / notes Le bloc cesse de traiter Trusted HTML comme un wrapper conteneur d'enfants public. Le balisage de confiance peut toujours affecter la sortie partagée d'overlay ou de fin de body au-delà de la racine visible.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/html.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/html.blade.php
Contrat de racine du moteur de rendu Entoure le balisage de confiance d’un <div> et peut aussi produire des contenus de superposition ou de fin de body hors de cette racine.
Tests / couverture PublicEditorialBlocksRenderingTest, PublicRichContentTest, PageBuilderExperienceTest

Contrats publiés supplémentaires Curseur

— slider

Contenu et comportement
Champ Contrat
Slug slider
Label
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages settings.layout_name; settings.height; settings.min_height; settings.aspect_ratio; settings.transition; settings.interval_ms; settings.autoplay; settings.pause_on_hover; settings.show_arrows; settings.show_dots; settings.loop; settings.swipe; settings.keyboard; settings.overlay; settings.content_position; settings.content_width; settings.text_color; settings.background_fit
Champs médias/relations Les blocs enfants slide constituent la relation principale. Slider lui-même ne prend pas en charge la propriété directe des médias.
Comportement enfant/conteneur Compatible conteneur. Le type d'enfant autorisé est slide.
État actuel clear
Lacunes connues / notes Aucun
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/slider.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/slider.blade.php
Contrat de la racine du moteur de rendu Possède sa racine publique <section data-wb-slider>, sa piste interne, ses commandes et son point navigation.
Tests / couverture SliderContentPositionTest Diapositive

— slide

Contenu et comportement
Champ Contrat
Slug slide
Label
Catégorie layout
Champs traduisibles Aucun
Champs partagés/de réglages media_id; settings.layout_name; settings.aria_label; settings.background_position; settings.background_overlay; settings.content_position; settings.content_width; settings.text_color; settings.background_fit; mobile_media_id
Champs médias/relations Le support d’arrière-plan slide facultatif appartient via la relation de bloc direct media_id. Les blocs enfants sont la relation visible content.; mobile_media_id attribue un enregistrement de bibliothèque multimédia d'images via block_media.mobile_image. Envoyez null à clear le remplacement.
Comportement enfant/conteneur Compatible conteneur. Les types enfants ne sont pas explicitement restreints dans l’assistant actuel.
État actuel clear
Lacunes connues / notes Aucun
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/slide.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/slide.blade.php
Contrat de la racine du moteur de rendu Possède sa racine publique <article class="wb-slide"> et délègue la copie/interface utilisateur visible aux blocs enfants imbriqués. Avec des largeurs de fenêtre allant jusqu'à 768 px, une image mobile publique remplace le visuel par défaut via l'image/source ou l'image d'arrière-plan ; les remplacements absents ou indisponibles utilisent l’image par défaut.
Tests / couverture SliderContentPositionTest

Navigation automatique — navigation-auto

Contenu et comportement
Champ Contrat
Slug navigation-auto
Label Navigation automatique
Catégorie navigation
Champs traduisibles Aucun
Champs partagés/de réglages settings.menu_key
Champs médias/relations Le contexte actuel du site et des paramètres régionaux résout l'arborescence du menu rendu au moment du rendu.
Comportement enfant/conteneur Pas un conteneur. Les éléments de menu proviennent des enregistrements de navigation et non des blocs enfants.
État actuel clear
Lacunes connues / notes Aucun
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/navigation-auto.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/navigation-auto.blade.php
Contrat de la racine du moteur de rendu Possède sa racine publique <nav class="wb-stack wb-gap-2" data-wb-menu-key="..."> et restitue l'arborescence de menu visible sous forme de listes <ul> imbriquées d'ancres wb-link.
Tests / couverture ManagedCtaApiTest Note

Titre — rating

Contenu et comportement
Champ Contrat
Slug rating
Label Titre
Catégorie system
Champs traduisibles ; sous-titre
Champs partagés/de réglages settings.scale; settings.allow_change; settings.show_summary; settings.data_scope
Champs médias/relations La page, le site, le bloc, le hachage du visiteur et l'URL source actuels sont enregistrés sur les lignes rating.
Comportement enfant/conteneur Pas de conteneur dans le contrat actuel.
État actuel clear
Lacunes connues / notes Aucun
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/rating.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/rating.blade.php
Contrat de la racine du moteur de rendu Possède sa racine publique section.wb-card.wb-rating, restitue une copie localisée facultative du titre/sous-titre, une moyenne wb-rating-stars en lecture seule et un formulaire en étoile wb-rating-input sans JS qui publie chaque soumission à /content-ratings.
Tests / couverture Test de gestion de l'engagement Commentaires

— comments

Contenu et comportement
Champ Contrat
Slug comments
Label
Catégorie system
Champs traduisibles Aucun
Champs partagés/de réglages settings.form_enabled; settings.show_approved; settings.show_author_name; settings.sort_order; settings.data_scope
Champs médias/relations La page, le site, le bloc, le hachage du visiteur et l'URL source actuels sont enregistrés sur les lignes de commentaires.
Comportement enfant/conteneur Pas de conteneur dans le contrat actuel.
État actuel clear
Lacunes connues / notes Aucun
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/comments.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/comments.blade.php
Contrat de la racine du moteur de rendu possède sa racine publique section.wb-card, restitue le comments approuvé et émet un formulaire de commentaire natif protégé par CSRF qui publie sur /comment-entries.
Tests / couverture Test de gestion de l'engagement Liste des pages

— page-list

Contenu et comportement
Champ Contrat
Slug page-list
Label
Catégorie content
Champs traduisibles Aucun
Champs partagés/de réglages settings.scope; settings.page_type; settings.path_prefix; settings.sort; settings.limit; settings.layout; settings.columns; settings.show_thumbnail; settings.show_description; settings.exclude_current; settings.clickable_card
Champs médias/relations Aucun support de bloc. Les miniatures sont résolues à partir de chaque traduction de page répertoriée au moment du rendu.
Comportement enfant/conteneur Pas un conteneur. Les lignes proviennent d'une requête de page et non de blocs enfants.
État actuel clear
Lacunes connues / notes Les descriptions et miniatures des cartes réutilisent la description SEO et l'image Open Graph, qui sont créées pour la recherche et les réseaux sociaux plutôt que pour une carte. Des paramètres de page dédiés list_excerpt et list_image sont prévus. Application
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/page-list.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/page-list.blade.php
Contrat de la racine du moteur de rendu Possède sa racine publique : un wb-grid d'articles wb-card ou des ancres de carte entière dans les fiches layout, ou un wb-link-list d'ancres wb-link-list-item dans les liens layout. Ne restitue rien lorsque la requête ne renvoie aucune page.
Tests / couverture PageListBlockRenderTest

— application

Contenu et comportement
Champ Contrat
Slug application
Label
Catégorie content
Champs traduisibles Aucun
Champs partagés/de réglages settings.application_handle; settings.application_settings; settings.width; settings.loading; settings.aspect_ratio; settings.min_height; settings.show_loading_state; settings.show_failure_state
Champs médias/relations Aucune relation directe avec les médias CMS. Les actifs exécutables application sont des fichiers appartenant au registre et non des supports éditoriaux.
Comportement enfant/conteneur Pas un conteneur. Le runtime application possède son DOM interne.
État actuel clear
Lacunes connues / notes La gestion du code d'application et du registre reste distincte du placement éditorial ; le bloc sélectionne une définition activée et valide ses paramètres.
Sources et tests
Source Contrat
Source du formulaire d'administration resources/views/admin/blocks/types/application.blade.php
Source du moteur de rendu public resources/views/pages/partials/blocks/application.blade.php
Contrat de la racine du moteur de rendu Possède une racine .wb-application. Les définitions en ligne reçoivent un élément de montage sécurisé ; Les définitions iframe reçoivent un wrapper iframe appartenant au CMS. Les définitions manquantes ou invalides ne brisent jamais la page environnante.
Tests / couverture Test d'applications intégrées

Vue d'ensemble de la validation et de la persistance

Les types de blocs publiés n'ont pas chacun leur propre classe de requête dédiée aujourd'hui.

  • WebBlocks\Cms\Http\Requests\Admin\BlockRequest est le chemin de demande de modification partagé
  • branches spécifiques au slug à l'intérieur de cette demande de normalisation des champs dans le stockage canonique actuel
  • WebBlocks\Cms\Support\Blocks\BlockPayloadWriter conserve le format normalisé charge utile de bloc
  • WebBlocks\Cms\Support\Blocks\BlockTranslationWriter déplace les champs appartenant aux paramètres régionaux dans des lignes de traduction pour les familles enregistrées
  • WebBlocks\Cms\Support\Blocks\BlockTranslationResolver résout les valeurs traduites ou de secours sur une instance de bloc pouvant être rendue

Comportement De Compatibilité

Les paramètres hérités Gallery et Table peuvent rester lisibles en l’absence de traductions canoniques ou de médias ordonnés. Les anciens recours ne sont pas le format de création privilégié. Utilisez la matrice actuelle.

Les lignes de brouillon et identifiants de compatibilité réservés au renderer ne sont pas des contrats publiés. La découverte et le dialogue peuvent indiquer qu’aucun contrat livré n’est disponible.

Ajouts de médias et d'éditeurs via la version 1.94.2

À partir de CMS 1.91.0, diapositive, image, héros, section, carte, CTA, en-tête de contenu et élément de liste de liens prennent en charge mobile_media_id en option dans les plans et les mises à jour de blocs existants. La relation utilise block_media.role = mobile_image, est partagée entre les paramètres régionaux et remplace l'image par défaut jusqu'à 768 px par une solution de secours lorsqu'elle n'est pas disponible. Il n’introduit pas de texte alternatif ou de légendes mobiles distincts. Voir les variantes d'images multimédia .

Depuis la version 1.91.1, Slide et Slider proposent neuf positions de contenu : centre, centre-gauche, centre-droit, haut-gauche, haut-centre, haut-droit, bas-gauche, bas-centre et bas-droit. Ces valeurs sont partagées par l'administrateur, l'API et le moteur de rendu.

Depuis la version 1.93.0, l'éditeur de texte enrichi permet d'annuler/rétablir par champ, de restaurer la sélection, du mode de mise au point et du nombre de mots. Les titres collés et le texte des cellules du tableau restent des paragraphes de corps sûrs ; les titres sémantiques, les tableaux et les médias appartiennent à des blocs dédiés. Cela n’ajoute pas de nouvelle variante de texte enrichi stockée et n’autorise pas le balisage exécutable. Voir Rich Text.