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 : comment
WebBlocks\Cms\Http\Requests\Admin\BlockRequestnormalise et valide actuellement les charges utiles de bloc - propriété du stockage : sur quelles valeurs perdurent
blocks, 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 : directe
media_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'essentielmostly clear: le contrat actuel est compréhensible mais comporte une réserve notabletransitional: le contrat actuel conserve intentionnellement un chemin de compatibilité ou un modèle de propriété mixteneeds review: confirmez le contrat installé avant de vous appuyer sur le comportementlegacy/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_idoublock_mediachemins 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 |
Button Link — button_link
Contenu et comportement
| 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. |
Sources et tests
| 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 |
Card Footer — card_footer
Contenu et comportement
| 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. |
Sources et tests
| 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 |
Gallery — gallery
Contenu et comportement
| 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. |
Sources et tests
| 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 |
Navigation
Link List — link-list
Contenu et comportement
| 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. |
Sources et tests
| 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 |
Link List Item — link-list-item
Contenu et comportement
| 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. |
Sources et tests
| 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 |
Sidebar Footer — sidebar-footer
Contenu et comportement
| 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. |
Sources et tests
| 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\BlockRequestest 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\BlockPayloadWriterconserve le format normalisé charge utile de blocWebBlocks\Cms\Support\Blocks\BlockTranslationWriterdéplace les champs appartenant aux paramètres régionaux dans des lignes de traduction pour les familles enregistréesWebBlocks\Cms\Support\Blocks\BlockTranslationResolverré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.