Contratti dei tipi di blocco

Scopo e ambito

Il riferimento descrive blocchi pubblicati, campi modificabili, traduzioni, regole dei figli e rendering pubblico. L’amministrazione mostra il contratto in sola lettura; non definisce schemi personalizzati o nuovi moduli di modifica.

Il sistema di plugin dei plugin aggiunge hook di blocco per plugin di sola dichiarazione tramite PluginBlockTypeDefinition, PluginBlockPackDefinition e PluginBlockRegistry. I plugin abilitati possono esporre handle di proprietà del plugin come analytics-tools::score-card ai fini della scoperta, ma tali dichiarazioni non sostituiscono i contratti dei blocchi core distribuiti, le view dei blocchi core, i seeder core o i servizi di modifica dei blocchi. Gli handle non qualificati in stile core come hero restano di proprietà del core e vengono rifiutati nelle dichiarazioni dei plugin.

Definizione

A Block Type Contract è l'accordo tecnico attuale sul comportamento di un tipo di blocco tra i livelli CMS:

  • Identità catalogo: slug, etichetta, categoria, stato e metadati di sistema o contenitore
  • origine modulo amministratore: quale parziale Blade attualmente modifica il blocco e quali campi espone
  • convalida e richiesta gestione: come WebBlocks\Cms\Http\Requests\Admin\BlockRequest attualmente normalizza e convalida i payload dei blocchi
  • proprietà dello storage: quali valori risiedono su blocks, righe di traduzione dedicate, block_media o record correlati
  • proprietà della traduzione: quali campi rivolti all'utente sono di proprietà delle impostazioni locali
  • proprietà condivisa: quali impostazioni o relazioni rimangono condivise tra le impostazioni locali
  • proprietà dei media o delle relazioni: diretta media_id, ordinata block_media, ricerche di navigazione o relazioni sulla stessa pagina
  • supporto figlio: se il blocco è un contenitore e se i tipi figlio sono limitati
  • origine renderer pubblica: quale parziale Blade pubblico esegue il rendering del blocco oggi
  • contratto root del renderer: se il blocco possiede il markup root pubblico o si basa sul wrapper generico percorso
  • portabilità e revisioni: se la forma di archiviazione corrente deve continuare a viaggiare attraverso revisioni, clonazione, esportazione/importazione e promozione
  • test e lacune: copertura focalizzata nota, comportamento poco chiaro o debito di compatibilità

Termini del contratto attuale

Termini di stato usati di seguito:

  • clear: form di amministrazione, gestione delle richieste, storage e renderer sono sostanzialmente allineati
  • mostly clear: il contratto attuale è comprensibile ma presenta un'avvertenza rilevante
  • transitional: il contratto attuale mantiene intenzionalmente un percorso di compatibilità o uno schema di proprietà misto
  • needs review: confermare il contratto installato prima di basarsi sul comportamento
  • legacy/fallback: il comportamento pubblicato dipende da un percorso di fallback o di compatibilità

Regole di proprietà dello storage

Il lavoro contrattuale attuale e futuro dovrebbe mantenere esplicite queste regole di proprietà:

  • La copia rivolta all'utente appartiene alle righe di traduzione quando il blocco è di proprietà locale
  • I dati operativi o di impostazione condivisi appartengono alle impostazioni del blocco condiviso o alle relazioni esplicite
  • i media dovrebbero utilizzare media_id o block_media percorsi di proprietà ove applicabile
  • Evita di spostare i contenuti rivolti all'utente in impostazioni condivise arbitrarie
  • mantieni documentati i percorsi di archiviazione di compatibilità quando influiscono ancora sull'output o sulle importazioni pubbliche

Da CMS 1.98.6, il modello settings/campo API compatibile è supportato da record relazionali. I campi principali noti utilizzano colonne di aspetto tipizzato finito, media, navigazione e contenuto. Le associazioni di contenuto, la configurazione della raccolta e i valori delle istanze dell'applicazione hanno record separati; i nodi digitati mantengono la struttura, l'ordinamento e le estensioni storiche/plugin. CMS 1.98.8 ha rimosso le copie di rollback temporanee JSON; SQL è autorevole. L'editor, la proprietà della traduzione, i payload API e i metodi di rendering mantengono i contratti esistenti; la migrazione dell'archiviazione non sposta la copia di proprietà locale nelle impostazioni condivise.

Convalida delle impostazioni di modifica

CMS 1.105.9 aggiunge il rilevamento authoring_settings_schema revisionato per tutti i 55 blocchi principali pubblicati. Leggere i flag separati di creazione, PATCH e scrittura dell'amministratore prima di fornire un campo. I valori nuovi o modificati devono soddisfare i tipi, le enumerazioni e i limiti dichiarati; i campi non supportati restituiscono errori di convalida invece di essere accettati o cancellati silenziosamente. Questo rimane un contratto di proprietà del codice, non uno schema modificabile o un generatore di moduli generato.

I valori storici invariati sopravvivono a modifiche non correlate e clonazione, gestione temporanea e revisioni attendibili. I nuovi blocchi e le sostituzioni complete devono superare la convalida corrente. I plugin senza schema mantengono il comportamento esistente; gli schemi scalari dei plugin opzionali non sostituiscono supporti, applicazioni o validatori Dynamic Content. HTML rimane solo umano.

Vedere Schemi delle impostazioni di modifica per blocco per i metadati delle operazioni, le regole di compatibilità e il comando di compatibilità di sola lettura webblocks:blocks:audit-settings. La verifica separata del catalogo seguente controlla moduli e renderer distribuiti, non le impostazioni salvate.

Sorgenti distribuite

Il riferimento usa catalogo, moduli e renderer distribuiti.

  • origine catalogo: src/Support/Blocks/CoreBlockTypeCatalogSyncer.php
  • normalizzazione richiesta di modifica blocco: src/Http/Requests/Admin/BlockRequest.php
  • helper persistenza: src/Support/Blocks/BlockPayloadWriter.php, src/Support/Blocks/BlockTranslationWriter.php, src/Support/Blocks/BlockTranslationResolver.php
  • registro di traduzione: src/Support/Blocks/BlockTranslationRegistry.php
  • moduli di amministrazione: resources/views/admin/blocks/types/*.blade.php
  • renderer pubblici: resources/views/pages/partials/blocks/*.blade.php
  • riferimenti di copertura: catalogo dei blocchi, rendering, traduzione e test specifici degli slug in tests/Feature/

Tipi di blocchi principali pubblicati attualmente documentati qui: 55.

Riconciliazione catalogo: WebBlocks CMS 1.105.8. La tabella copre tutte le 55 definizioni principali pubblicate; sette definizioni aggiuntive rimangono inedite. Le note sulla fase successiva riportate di seguito sono documenti storici, non un secondo conteggio attuale del catalogo.

Comando di audit

Operatori e sviluppatori possono eseguire questo controllo del catalogo in sola lettura:

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

Il comando è in sola lettura.

  • non modifica il database
  • non dipende dal contenuto del sito installato
  • legge le definizioni del catalogo core distribuito
  • verifica la presenza dei file del form di amministrazione e del renderer pubblico distribuiti
  • riporta i metadati della famiglia di traduzione e il supporto di base per i contenitori

Il comando è un supporto di aggiornamento per rilevare scostamenti di catalogo e di presenza dei file. Non sostituisce le note di contratto più complete contenute in questo documento.

Vista Amministrativa Di Sola Lettura

Aprire i dettagli in sola lettura in Admin -> System -> Block Types.

  • ogni riga può aprire un modale Block Type Contract
  • il modale è solo informativo e non invia aggiornamenti
  • mostra i dettagli di catalogo, form di amministrazione, storage, traduzione, media o relazioni, figli, renderer e lacune a partire dal codice distribuito
  • non trasforma l'amministrazione di Block Types in un editor di schemi o in un costruttore di form
  • i tipi di blocco personalizzati o in bozza possono comunque aprire il modale, ma possono mostrare No shipped contract is documented for this block type yet. quando non è definito alcun contratto core

Matrice dei contratti dei blocchi pubblicati

Contenuto

Header — header

Contenuto e comportamento
Campo Contratto
Slug header
Label Header
Categoria content
Campi traducibili title tramite righe di traduzione testuale
Campi condivisi/di impostazione variant livello di intestazione; settings.alignment; ancora condivisa in settings.anchor con ripiego legacy su url
Campi media/relazione Il TOC dello stesso slot legge i blocchi di intestazione ancorati
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note Blocco di intestazione canonico; il contratto dell'ancora condivisa è chiaro, ma conserva ancora il comportamento di ripiego legacy su url.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/header.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/header.blade.php
Contratto della radice del renderer Possiede il proprio elemento di intestazione radice
Test / copertura SyncCoreBlockTypesCommandTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Plain Text — plain_text

Contenuto e comportamento
Campo Contratto
Slug plain_text
Label Plain Text
Categoria content
Campi traducibili content tramite righe di traduzione testuale
Campi condivisi/di impostazione settings.alignment
Campi media/relazione Nessuno
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note Semplice primitiva di testo corrente tradotto.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/plain_text.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/plain_text.blade.php
Contratto della radice del renderer Possiede la radice <p>
Test / copertura PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Rich Text — rich-text

Contenuto e comportamento
Campo Contratto
Slug rich-text
Label Rich Text
Categoria content
Campi traducibili content tramite righe di traduzione testuale
Campi condivisi/di impostazione Nessuno
Campi media/relazione Nessuno
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note L'archiviazione sicura dell'HTML e la titolarità della traduzione sono chiare.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/rich-text.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/rich-text.blade.php
Contratto della radice del renderer Possiede la propria radice .wb-rich-text quando è presente del contenuto
Test / copertura RichTextBlockTest, PublicRichContentTest, BlockTranslationIntegrityTest

Code — code

Contenuto e comportamento
Campo Contratto
Slug code
Label Code
Categoria content
Campi traducibili title, subtitle, content tramite righe di traduzione testuale
Campi condivisi/di impostazione settings.language
Campi media/relazione Nessuno
Comportamento come figlio/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale clear
Lacune note / note Il blocco allinea il titolo tradotto del codice, l'etichetta e il corpo dello snippet all'architettura di traduzione testuale esistente e ora ignora nell'output pubblico gli alberi di figli storici arbitrari.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/code.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/code.blade.php
Contratto della radice del renderer Possiede la radice <pre><code>
Test / copertura PublicRichContentTest, BlockTypePhaseThreeContractsTest, PageBuilderExperienceTest
Campo Contratto
Slug button_link
Label Button Link
Categoria content
Campi traducibili l'etichetta title tramite righe di traduzione testuale
Campi condivisi/di impostazione settings.url; settings.target; variant condiviso
Campi media/relazione Nessuno
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note L'URL e il target condivisi, insieme all'etichetta tradotta, sono coerenti.
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/button_link.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/button_link.blade.php
Contratto della radice del renderer Possiede la radice <a.wb-btn>
Test / copertura PublicEditorialBlocksRenderingTest

Card — card

Contenuto e comportamento
Campo Contratto
Slug card
Label Card
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione Condiviso media_id; settings.layout_name; settings.background_position; settings.background_overlay; settings.url e settings.target opzionali
Campi media/relazione Sfondo opzionale image tramite diretto media_id; i blocchi della regione figlio definiscono la struttura
Comportamento come figlio/contenitore Contenitore; gli unici figli diretti ammessi sono card_header, card_body e card_footer
Stato attuale clear
Lacune note / note Card è una scocca componibile. Il suo URL intero card opzionale è sicuro e semantico; gli editor non devono inserire controlli interattivi nidificati nelle schede collegate. Supporta gli sfondi della libreria multimediale e mantiene un fallback legacy minimo per le righe più vecchie senza regioni della scheda.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/card.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/card.blade.php
Contratto della radice del renderer Possiede la radice <article class="wb-card"> o una radice semantica <a class="wb-card wb-no-decoration"> quando collegata
Test / copertura CardClickableRenderTest, PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, BlockTranslationIntegrityTest, MediaVisualBlockContractsTest

Card Header — card_header

Contenuto e comportamento
Campo Contratto
Slug card_header
Label Card Header
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.layout_name, settings.icon_slug, settings.icon_tone, settings.icon_size
Campi media/relazione Solo la relazione con il card padre
Comportamento come figlio/contenitore Contenitore; può essere collocato solo sotto card; non sono ammessi figli di regione card
Stato attuale clear
Lacune note / note Blocco regione scheda componibile per header content. Le icone opzionali utilizzano slug del catalogo content attivi ed eseguono il rendering solo tramite classi di icone, tono e dimensioni sicure. L'intestazione della scheda non ha una copia del badge e pertanto non espone il tono del badge.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/card_header.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/card_header.blade.php
Contratto della radice del renderer Possiede la radice <div class="wb-card-header">
Test / copertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

Card Body — card_body

Contenuto e comportamento
Campo Contratto
Slug card_body
Label Card Body
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.layout_name
Campi media/relazione Solo la relazione con il card padre
Comportamento come figlio/contenitore Contenitore; può essere collocato solo sotto card; non sono ammessi figli di regione card
Stato attuale clear
Lacune note / note Blocco di regione Card componibile per il contenuto principale.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/card_body.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/card_body.blade.php
Contratto della radice del renderer Possiede la radice <div class="wb-card-body">
Test / copertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest
Campo Contratto
Slug card_footer
Label Card Footer
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.layout_name
Campi media/relazione Solo la relazione con il card padre
Comportamento come figlio/contenitore Contenitore; può essere collocato solo sotto card; non sono ammessi figli di regione card
Stato attuale clear
Lacune note / note Blocco di regione Card componibile per il piè di pagina o i contenuti di azione.
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/card_footer.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/card_footer.blade.php
Contratto della radice del renderer Possiede la radice <div class="wb-card-footer">
Test / copertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Stat Card — stat-card

Contenuto e comportamento
Campo Contratto
Slug stat-card
Label Stat Card
Categoria content
Campi traducibili title, subtitle, content tramite righe di traduzione testuale
Campi condivisi/di impostazione L'url canonico resta condiviso sulla riga del blocco
Campi media/relazione Nessuno
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note Il blocco mantiene il campo URL facoltativo esistente e ora rende un semplice link pubblico quando è presente.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/stat-card.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/stat-card.blade.php
Contratto della radice del renderer Possiede la propria radice stat-card
Test / copertura StatCardTest, BlockTranslationIntegrityTest

Image — image

Contenuto e comportamento
Campo Contratto
Slug image
Label Image
Categoria content
Campi traducibili caption, alt text tramite righe di traduzione delle immagini
Campi condivisi/di impostazione Condiviso media_id; canonica condivisa url; settings.viewer_enabled; settings.viewer_group
Campi media/relazione Relazione diretta con il media immagine tramite media_id
Comportamento come figlio/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale clear
Lacune note / note Didascalia e alt text sono di proprietà delle impostazioni locali mentre i contenuti multimediali, l'URL di collegamento facoltativo e il raggruppamento dei visualizzatori rimangono condivisi. I collegamenti espliciti hanno la precedenza; altrimenti abilitato I blocchi immagine con lo stesso gruppo condividono il visualizzatore galleria CMS esistente senza modificare la composizione della pagina.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/image.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/image.blade.php
Contratto della radice del renderer Possiede la radice semantica <figure> quando il supporto esiste e può registrarsi con un visualizzatore di gallerie raggruppato
Test / copertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, BlockTranslationIntegrityTest, PublicOverlayRegistryTest
Campo Contratto
Slug gallery
Label Gallery
Categoria content
Campi traducibili Per ciascun elemento della galleria: alt_text, caption, overlay_title e overlay_text tramite block_gallery_item_translations
Campi condivisi/di impostazione Impostazioni di presentazione gallery condivise più visualizzatore opzionale title e relazioni articolo ordinato block_media gallery
Campi media/relazione Righe block_media ordinate con ruolo gallery_item; i testi degli elementi della galleria specifici della lingua risiedono in block_gallery_item_translations; possono ancora esistere valori legacy title/subtitle salvati sul blocco, ma il rendering pubblico li ignora
Comportamento come figlio/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale clear
Lacune note / note Galleria è ora un blocco di raccolta multimediale. Il normale modulo di amministrazione utilizza un editor compatto di righe di elenco invece del vecchio grid per le risorse selezionate. Il suo selettore Add Gallery Items nidificato rimane sul contratto di amministrazione condiviso #wb-overlay-root, quindi WebBlocks UI possiede il ciclo di vita modale in pila e gli elenchi di risultati lunghi e compatti mantengono l'altezza naturale delle righe mentre il corpo modale rimane il contenitore di scorrimento. Le varianti pubbliche sono distinte: grid mantiene celle uguali, masonry utilizza CSS columns con altezza naturale image e collage mantiene la prima composizione in primo piano. I valori masonary salvati legacy sono ancora accettati e normalizzati nel percorso canonico masonry. La Galleria non possiede più l'intestazione introduttiva o l'output del paragrafo; gli editor devono posizionare content_header più plain_text o rich-text prima della Galleria quando è necessaria la copia della sezione. Il visualizzatore opzionale title etichetta solo il lightbox modale header. Gli elementi di fallback basati su impostazioni legacy rimangono leggibili per content precedenti.
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/gallery.blade.php più resources/views/admin/blocks/types/partials/gallery-items-editor.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/gallery.blade.php
Contratto della radice del renderer Possiede la radice del proprio wrapper di galleria e registra un'unica modale viewer sotto #wb-overlay-root quando il lightbox è attivo
Test / copertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, PageBuilderExperienceTest, SiteCloneServiceTest, SiteExportImportTest, SitePromotionTest, ReconstructionIntegrityTest, SharedSlotRevisionTest

Download — download

Contenuto e comportamento
Campo Contratto
Slug download
Label Download
Categoria content
Campi traducibili title, subtitle tramite righe di traduzione testuale
Campi condivisi/di impostazione media_id condiviso; variant condiviso
Campi media/relazione Relazione diretta con il file di download tramite media_id
Comportamento come figlio/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale clear
Lacune note / note Il blocco mantiene condivisi il media di download selezionato e la variante del pulsante, spostando l'etichetta visibile e il testo di supporto sul percorso di traduzione testuale esistente.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/download.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/download.blade.php
Contratto della radice del renderer Possiede la radice del proprio wrapper CTA quando il media esiste
Test / copertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

File — file

Contenuto e comportamento
Campo Contratto
Slug file
Label File
Categoria content
Campi traducibili title, content tramite righe di traduzione testuale
Campi condivisi/di impostazione media_id condiviso; url canonico condiviso
Campi media/relazione Relazione diretta con il media tramite media_id, con ripiego su URL esterno
Comportamento come figlio/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale clear
Lacune note / note Il blocco rende un prodotto il renderer File già rilasciato, con un modulo di amministrazione dedicato, e rende esplicita la titolarità condivisa dell'origine del file tra la libreria media e il ripiego su URL esterno.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/file.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/file.blade.php
Contratto della radice del renderer Possiede la propria radice di file-card
Test / copertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

Video — video

Contenuto e comportamento
Campo Contratto
Slug video
Label Video
Categoria content
Campi traducibili title, content tramite righe di traduzione testuale
Campi condivisi/di impostazione media_id condiviso; url canonico condiviso
Campi media/relazione Relazione diretta con il media tramite media_id, con ripiego sicuro su URL esterno
Comportamento come figlio/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale clear
Lacune note / note Il blocco aggiunge il modulo di amministrazione e il percorso di salvataggio mancanti, così il video caricato, gli URL sicuri di provider esterni, i testi visibili tradotti e il comportamento pubblico di ripiego descrivono ora lo stesso contratto.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/video.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/video.blade.php
Contratto della radice del renderer Possiede la propria radice di video-card
Test / copertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

Audio — audio

Contenuto e comportamento
Campo Contratto
Slug audio
Label Audio
Categoria content
Campi traducibili title, content tramite righe di traduzione testuale
Campi condivisi/di impostazione media_id condiviso; url canonico condiviso
Campi media/relazione Relazione diretta con il media tramite media_id, con ripiego su URL esterno
Comportamento come figlio/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale clear
Lacune note / note L'amministrazione, il piano dei contenuti e le scritture a blocchi incrementali accettano supporti audio con tipo other e un tipo MIME audio/*; il supporto incompatibile viene rifiutato. La copia localizzata e il rendering sicuro senza controlli vuoti rimangono nativi.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/audio.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/audio.blade.php
Contratto della radice del renderer Possiede la propria radice di audio-card
Test / copertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

Table — table

Contenuto e comportamento
Campo Contratto
Slug table
Label Table
Categoria content
Campi traducibili title, content tramite righe di traduzione testuale
Campi condivisi/di impostazione variant condiviso; il renderer verifica anche il ripiego settings.rows
Campi media/relazione Nessuno
Comportamento come figlio/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale mostly clear
Lacune note / note Il blocco allinea la titolarità del titolo tradotto e del testo delle righe all'architettura di traduzione testuale esistente e ora ignora nell'output pubblico gli alberi di figli storici arbitrari; il percorso di ripiego legacy settings.rows resta documentato.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/table.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/table.blade.php
Contratto della radice del renderer Possiede la radice del proprio wrapper di tabella
Test / copertura PublicRichContentTest, BlockTypePhaseThreeContractsTest, PageBuilderExperienceTest

Quote — quote

Contenuto e comportamento
Campo Contratto
Slug quote
Label Quote
Categoria content
Campi traducibili Nessuno nel registro attuale
Campi condivisi/di impostazione title, subtitle, content e variant canonici
Campi media/relazione Nessuno
Comportamento come figlio/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale clear
Lacune note / note Il blocco smette di trattare Quote come wrapper di layout o contenitore nell'output pubblico, conservando al tempo stesso le righe figlie già salvate negli alberi di blocchi in amministrazione.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/quote.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/quote.blade.php
Contratto della radice del renderer Possiede la propria radice di citazione
Test / copertura PublicRichContentTest, PageBuilderExperienceTest

Hero — hero

Contenuto e comportamento
Campo Contratto
Slug hero
Label Hero
Categoria content
Campi traducibili title, subtitle, content tramite righe di traduzione testuale
Campi condivisi/di impostazione Condiviso media_id; condiviso variant; settings.layout; settings.title_tag; settings.background_position; settings.background_overlay
Campi media/relazione Sfondo opzionale image tramite diretto media_id; blocchi figlio button_link per le azioni
Comportamento come figlio/contenitore Contenitore; Bambini button_link (ammessi anche button legacy), nessun conteggio fisso
Stato attuale transitional
Lacune note / note Hero è ora un contratto principale supportato dal codice sorgente pubblicato. La copia dell'introduzione è di proprietà locale, i pulsanti di azione sono normali figli button_link che possiedono le proprie etichette e URL e le immagini di sfondo della libreria multimediale opzionali vengono visualizzate tramite la primitiva multimediale di sfondo nativa WebBlocks UI. I fallback legacy content rimangono leggibili laddove i campi tradotti canonici sono vuoti.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/hero.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/hero.blade.php
Contratto della radice del renderer Possiede la radice promozionale <section>
Test / copertura PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Columns — columns

Contenuto e comportamento
Campo Contratto
Slug columns
Label Columns
Categoria content
Campi traducibili title, subtitle, content tramite righe di traduzione testuale
Campi condivisi/di impostazione variant condiviso
Campi media/relazione Blocchi column_item figli
Comportamento come figlio/contenitore Contenitore; solo figli column_item
Stato attuale clear
Lacune note / note Columns è ora un blocco di contenuto strutturato pubblicato e di prima classe. Il testo introduttivo appartiene alla singola lingua, mentre variante, ordine dei figli e URL dei figli restano condivisi.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/columns.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/columns.blade.php
Contratto della radice del renderer Possiede la radice strutturata-content <section>
Test / copertura PublicColumnsRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Column Item — column_item

Contenuto e comportamento
Campo Contratto
Slug column_item
Label Column Item
Categoria content
Campi traducibili title, eyebrow come etichetta badge, subtitle, content tramite righe di traduzione del testo
Campi condivisi/di impostazione Canonico condiviso url, settings.icon_slug, settings.icon_tone, settings.icon_size, settings.badge_tone L'elemento colonna
Campi media/relazione Relazione con il columns padre
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note utilizza la composizione WebBlocks UI wb-icon-card spedita per le varianti semplici con guida a icone e card. Le modifiche locali aggiornano la copia dell'elemento senza sovrascrivere gli URL condivisi, lo slug delle icone, il tono delle icone, le dimensioni delle icone o il tono del badge.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/column_item.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/column_item.blade.php
Contratto della radice del renderer La radice dell'elemento è determinata dal padre e varia in base alla variante di Columns
Test / copertura PublicColumnsRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

CTA — cta

Contenuto e comportamento
Campo Contratto
Slug cta
Label CTA
Categoria content
Campi traducibili title, subtitle, content tramite righe di traduzione testuale
Campi condivisi/di impostazione Condiviso media_id; condiviso variant; settings.background_position; settings.background_overlay
Campi media/relazione Sfondo opzionale image tramite diretto media_id; blocchi figlio button_link per le azioni
Comportamento come figlio/contenitore Contenitore; Bambini button_link (ammessi anche button legacy), nessun conteggio fisso
Stato attuale clear
Lacune note / note CTA è ora un contratto promozionale pubblicato con copia di proprietà locale, pulsanti di azione come elementi secondari button_link ordinari, immagini di sfondo della libreria multimediale opzionali e un renderer pubblico proprietario del root.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/cta.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/cta.blade.php
Contratto della radice del renderer Possiede la radice promozionale <section>
Test / copertura PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Feature Grid — feature-grid

Contenuto e comportamento
Campo Contratto
Slug feature-grid
Label Feature Grid
Categoria content
Campi traducibili title, subtitle, content tramite righe di traduzione del testo; bambino feature-item title, etichetta badge e content
Campi condivisi/di impostazione Struttura secondaria condivisa, ordine, collegamenti, slug di icone, toni di icone e toni di badge
Campi media/relazione Blocchi feature-item figli, con supporto compatibile per il legacy column_item
Comportamento come figlio/contenitore Contenitore; i figli ammessi sono feature-item e column_item
Stato attuale transitional
Lacune note / note Feature Grid è ora un alias di compatibilità pubblicato, perché dispone di percorsi reali di amministrazione e rendering già rilasciati, ma continua intenzionalmente a delegare al contratto a card di Columns.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/feature-grid.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/feature-grid.blade.php
Contratto della radice del renderer Delega alla presentazione a card di Columns e usa ancora il wrapper pubblico generico
Test / copertura PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

Feature Item — feature-item

Contenuto e comportamento
Campo Contratto
Slug feature-item
Label Feature Item
Categoria content
Campi traducibili title, eyebrow come etichetta badge, content tramite righe di traduzione del testo
Campi condivisi/di impostazione Canonico condiviso url, settings.icon_slug, settings.icon_tone, settings.icon_size, settings.badge_tone L'elemento funzione
Campi media/relazione Relazione con il feature-grid padre
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale transitional
Lacune note / note è ora un contratto secondario di supporto pubblicato per la griglia delle funzioni pur condividendo le schede elemento colonna esistenti e il rendering dell'icona content.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/feature-item.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/feature-item.blade.php
Contratto della radice del renderer Delega alla presentazione a card di Column Item
Test / copertura PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

Disposizione

Section — section

Contenuto e comportamento
Campo Contratto
Slug section
Label Section
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione Condiviso media_id; settings.layout_name; settings.spacing; settings.background_position; settings.background_overlay
Campi media/relazione Immagine di sfondo opzionale tramite media_id diretto; i blocchi secondari rimangono contenuti strutturali
Comportamento come figlio/contenitore Contenitore; nessuna whitelist esplicita dei figli
Stato attuale clear
Lacune note / note Il blocco mantiene la Sezione layout orientata: le impostazioni layout condivise rimangono canoniche, i media in background opzionali utilizzano il contratto standard della libreria multimediale, possiede la radice semantica <section> e non sposta la copia rivolta all'utente in impostazioni arbitrarie.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/section.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/section.blade.php
Contratto della radice del renderer Possiede la radice <section>
Test / copertura PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Container — container

Contenuto e comportamento
Campo Contratto
Slug container
Label Container
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.layout_name; settings.width; settings.flow
Campi media/relazione Solo blocchi figli
Comportamento come figlio/contenitore Contenitore; nessuna whitelist esplicita dei figli
Stato attuale clear
Lacune note / note Il contenitore è layout neutro quando il flusso non è impostato o none; solo Flow: Stack esplicito aggiunge il flusso figlio verticale.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/container.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/container.blade.php
Contratto della radice del renderer Possiede la sua radice container <div>
Test / copertura PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Pila — stack

Contenuto e comportamento
Campo Contratto
Slug stack
Label Pila
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.layout_name; settings.spacing
Campi media/relazione Solo blocchi figli
Comportamento come figlio/contenitore Contenitore; nessuna whitelist esplicita dei figli
Stato attuale clear
Lacune note / note Mappe del flusso figlio verticale solo per le classi wb-stack e wb-stack-* spedite.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/stack.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/stack.blade.php
Contratto della radice del renderer Possiede la sua radice stack <div>
Test / copertura StackSplitCatalogTest, StackSplitContractTest

Dividi — split

Contenuto e comportamento
Campo Contratto
Slug split
Label Dividi
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.layout_name; settings.gap; settings.items_alignment; settings.width
Campi media/relazione Esattamente due blocchi secondari diretti
Comportamento come figlio/contenitore Contenitore; nessuna whitelist esplicita di tipo figlio, ma il conteggio diretto dei bambini è limitato a due
Stato attuale clear
Lacune note / note Il primo figlio diretto cresce e il secondo mantiene le dimensioni del contenuto. Una pila può essere annidata su entrambi i lati. L'interfaccia utente bloccata non dispone ancora del modificatore reattivo da split a stack.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/split.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/split.blade.php
Contratto della radice del renderer Possiede la sua radice split <div>
Test / copertura StackSplitCatalogTest, StackSplitContractTest

Cluster — cluster

Contenuto e comportamento
Campo Contratto
Slug cluster
Label Cluster
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.layout_name; settings.gap; settings.alignment; settings.items_alignment; settings.wrap; settings.width
Campi media/relazione Solo blocchi figli
Comportamento come figlio/contenitore Contenitore; nessuna whitelist esplicita dei figli
Stato attuale clear
Lacune note / note Le impostazioni di layout condivise restano esplicite e di proprietà del renderer, incluso il percorso di composizione esistente compatibile con la navbar (full-width, between, center, nowrap) senza aggiungere logica specifica per la navbar.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/cluster.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/cluster.blade.php
Contratto della radice del renderer Possiede la sua radice cluster <div>
Test / copertura PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Grid — grid

Contenuto e comportamento
Campo Contratto
Slug grid
Label Grid
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.layout_name; settings.columns; settings.gap; settings.alternate_media_text_sections; settings.alternate_start
Campi media/relazione Solo blocchi figli
Comportamento come figlio/contenitore Contenitore; nessuna whitelist esplicita dei figli
Stato attuale clear
Lacune note / note Le impostazioni grid condivise rimangono canoniche. Le griglie multimediali/testo alternate mantengono il wrapper wb-grid-* spedito e riordinano le coppie figlie dirette media/testo, incluse le strutture Slider e Sezione testo, in base al contenuto visivo rilevato. Le griglie alternate di pari livello sotto lo stesso genitore condividono una sequenza anche quando altri blocchi appaiono tra di loro, con la prima griglia alternata che controlla la direzione di inizio.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/grid.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/grid.blade.php
Contratto della radice del renderer Possiede la sua radice grid <div>
Test / copertura PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Modello

Content Header — content_header

Contenuto e comportamento
Campo Contratto
Slug content_header
Label Content Header
Categoria pattern
Campi traducibili title, eyebrow come etichetta badge, subtitle, meta tramite righe di traduzione del testo
Campi condivisi/di impostazione Condiviso media_id; settings.alignment, settings.icon_slug, settings.icon_tone, settings.icon_size, settings.badge_tone, settings.background_position, settings.background_overlay
Campi media/relazione Immagine di sfondo opzionale tramite media_id diretto; meta viene memorizzato come elenco strutturato content
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note è un blocco content-shell pattern. Mantiene title di proprietà locale, etichetta badge, introduzione e copia meta, esegue sempre il rendering di title come H1, ignora qualsiasi valore legacy salvato a livello di intestazione al momento del rendering e mantiene condivisi l'allineamento, lo slug dell'icona, il tono dell'icona, la dimensione dell'icona, il tono del badge e il supporto di sfondo opzionale.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/content_header.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/content_header.blade.php
Contratto della radice del renderer Possiede la radice <header> L'intestazione del contenuto
Test / copertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, BlockTranslationIntegrityTest, PublicIconBadgeSupportTest

Alert — alert

Contenuto e comportamento
Campo Contratto
Slug alert
Label Alert
Categoria pattern
Campi traducibili title, content tramite righe di traduzione testuale
Campi condivisi/di impostazione settings.variant
Campi media/relazione Nessuno
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note La variante condivisa e il testo tradotto si allineano senza problemi.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/alert.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/alert.blade.php
Contratto della radice del renderer Possiede la radice del proprio alert
Test / copertura PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest
Campo Contratto
Slug link-list
Label Link List
Categoria navigation
Campi traducibili title, subtitle, content tramite righe di traduzione testuale
Campi condivisi/di impostazione Opzionale settings.row_layout (indice/impilato) e settings.list_frame (uniti/schede)
Campi media/relazione Blocchi link-list-item figli
Comportamento come figlio/contenitore Contenitore; solo figli link-list-item
Stato attuale clear
Lacune note / note La fase 3 ora rende il testo introduttivo tradotto esistente sopra l'elenco di link pubblico, senza modificare il comportamento degli elementi figli.
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/link-list.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/link-list.blade.php
Contratto della radice del renderer Possiede la radice .wb-link-list quando esistono righe secondarie, aggiungendo wb-link-list--stacked e wb-link-list--cards per gli stili selezionati
Test / copertura LinkListBlockTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest
Campo Contratto
Slug link-list-item
Label Link List Item
Categoria navigation
Campi traducibili Richiesto title, opzionale eyebrow come etichetta badge, opzionale subtitle, opzionale content tramite righe di traduzione del testo
Campi condivisi/di impostazione url condiviso obbligatorio, miniatura media_id condivisa opzionale, settings.icon_slug opzionale, settings.icon_tone, settings.icon_size, settings.badge_tone
Campi media/relazione Supporti miniature opzionali tramite la relazione di blocco diretto media_id; relazione padre link-list
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note L'URL condiviso con la copia della riga tradotta è coerente. Le icone opzionali utilizzano slug del catalogo content attivi ed eseguono il rendering solo tramite classi di icone, tono e dimensioni sicure. Una miniatura dell'immagine opzionale viene visualizzata come wb-link-list-thumb nella singola colonna iniziale della riga e prevale sull'icona quando entrambe sono impostate.
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/link-list-item.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/link-list-item.blade.php
Contratto della radice del renderer Possiede la radice del collegamento riga, aggiunge wb-link-list-item--media quando viene eseguito il rendering di una miniatura o di un'icona e omette l'elemento descrizione quando content è vuoto
Test / copertura LinkListBlockTest, LinkListThumbnailTest, PageBuilderExperienceTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest, PublicIconBadgeSupportTest

TOC — toc

Contenuto e comportamento
Campo Contratto
Slug toc
Label TOC
Categoria navigation
Campi traducibili Nessuno
Campi condivisi/di impostazione Solo il title canonico
Campi media/relazione Blocchi header pubblicati nello stesso slot con ancoraggi validi
Comportamento come figlio/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale clear
Lacune note / note TOC è un tipo di blocco di sistema. Esegue la scansione solo dello slot in cui è inserito, non dell'intera pagina, seguendo l'ordine dei documenti e non tratta più i blocchi secondari arbitrari come TOC pubblico content.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/toc.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/toc.blade.php
Contratto della radice del renderer Possiede il proprio wrapper TOC generato quando esistono intestazioni
Test / copertura PublicRichContentTest, PageBuilderExperienceTest, TocHeadingScanTest

Breadcrumb — breadcrumb

Contenuto e comportamento
Campo Contratto
Slug breadcrumb
Label Breadcrumb
Categoria navigation
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.home_label; settings.include_current condivisi
Campi media/relazione Contesto di breadcrumb della pagina, del sito e della lingua (locale) correnti
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note La fase 3 conserva le impostazioni di breadcrumb esposte attraverso il percorso condiviso BlockRequest, così il comportamento del form corrisponde ora alla persistenza e al rendering.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/breadcrumb.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/breadcrumb.blade.php
Contratto della radice del renderer Possiede la radice <nav.wb-breadcrumb>
Test / copertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest

Header Actions — header-actions

Contenuto e comportamento
Campo Contratto
Slug header-actions
Label Header Actions
Categoria navigation
Campi traducibili Nessuno
Campi condivisi/di impostazione Condiviso settings.show_mode_toggle; settings.show_accent_toggle; settings.show_search; settings.show_language_switcher
Campi media/relazione Rotta di ricerca più hook di interfaccia lato client
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note Blocco di utilità di sistema; per scelta progettuale non possiede traduzioni.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/header-actions.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/header-actions.blade.php
Contratto della radice del renderer Possiede solo il proprio cluster di azioni interno
Test / copertura PublicEditorialBlocksRenderingTest

Navbar — sticky-navbar

Contenuto e comportamento
Campo Contratto
Slug sticky-navbar
Label Navbar
Categoria navigation
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.layout_name; settings.sticky_mode
Campi media/relazione Blocchi figli annidati della navbar
Comportamento come figlio/contenitore Contenitore; i figli consentiti sono container, cluster, header, plain_text, rich-text, button_link, navbar-brand, navbar-navigation, header-actions, search-form
Stato attuale clear
Lacune note / note La fase 3 allinea lo slug persistito sticky-navbar con Block::ownsPublicRoot(), così Navbar non riceve più un wrapper di blocco pubblico generico aggiuntivo.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/sticky-navbar.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/sticky-navbar.blade.php
Contratto della radice del renderer Il renderer pubblico possiede la root esterna <nav.wb-navbar>
Test / copertura PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, BlockTypePhaseThreeContractsTest

Navbar Brand — navbar-brand

Contenuto e comportamento
Campo Contratto
Slug navbar-brand
Label Navbar Brand
Categoria navigation
Campi traducibili title, subtitle tramite righe di traduzione testuale
Campi condivisi/di impostazione settings.url; settings.target; settings.aria_label condivisi
Campi media/relazione Media del logo condiviso tramite media_id; fallback all'URL della home del sito
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note La fase 3 allinea il comportamento di salvataggio dell'amministrazione con il contratto del renderer distribuito: l'URL salvato esplicito ha la precedenza, altrimenti si utilizza il percorso della home del sito corrente quando disponibile e infine / come fallback sicuro finale.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/navbar-brand.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/navbar-brand.blade.php
Contratto della radice del renderer Possiede solo il link del brand interno
Test / copertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest

Navbar Navigation — navbar-navigation

Contenuto e comportamento
Campo Contratto
Slug navbar-navigation
Label Navbar Navigation
Categoria navigation
Campi traducibili Nessuno
Campi condivisi/di impostazione Canonical title come etichetta ARIA condivisa; settings.menu_key; settings.active_indicator; settings.active_matching
Campi media/relazione Albero di menu NavigationItem condiviso
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note Il collegamento del menu condiviso, l'etichetta ARIA, l'indicatore attivo e la corrispondenza attiva sono comportamenti correnti di proprietà del prodotto.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/navbar-navigation.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/navbar-navigation.blade.php
Contratto della radice del renderer Possiede solo il wrapper interno navigation e mappa le impostazioni dell'indicatore attivo sulle classi attive della barra di navigazione WebBlocks UI
Test / copertura PublicEditorialBlocksRenderingTest

Sidebar Brand — sidebar-brand

Contenuto e comportamento
Campo Contratto
Slug sidebar-brand
Label Sidebar Brand
Categoria navigation
Campi traducibili title, subtitle tramite righe di traduzione testuale
Campi condivisi/di impostazione settings.url; settings.target; settings.aria_label condivisi
Campi media/relazione Media del logo condiviso tramite media_id; fallback all'URL della home del sito
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note La fase 3 assegna a Sidebar Brand lo stesso ordine di fallback del nome accessibile in presenza del solo logo di Navbar Brand e lo stesso contratto conservativo di fallback dell'URL condiviso.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/sidebar-brand.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/sidebar-brand.blade.php
Contratto della radice del renderer Possiede solo il link del brand interno
Test / copertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest

Sidebar Navigation — sidebar-navigation

Contenuto e comportamento
Campo Contratto
Slug sidebar-navigation
Label Sidebar Navigation
Categoria navigation
Campi traducibili title tramite righe di traduzione testuale
Campi condivisi/di impostazione settings.menu_key; settings.layout_name; settings.show_icons; settings.active_matching condivisi
Campi media/relazione L'albero NavigationItem del CMS oppure blocchi figli manuali
Comportamento come figlio/contenitore Contenitore; solo figli sidebar-nav-item e sidebar-nav-group
Stato attuale clear
Lacune note / note Sia le impostazioni condivise della modalità menu sia la modalità con figli manuali sono esplicite.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/sidebar-navigation.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/sidebar-navigation.blade.php
Contratto della radice del renderer Possiede la radice <nav.wb-sidebar-nav>
Test / copertura PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Sidebar Nav Item — sidebar-nav-item

Contenuto e comportamento
Campo Contratto
Slug sidebar-nav-item
Label Sidebar Nav Item
Categoria navigation
Campi traducibili title tramite righe di traduzione testuale
Campi condivisi/di impostazione settings.url; settings.target; settings.icon; settings.active_mode; settings.manual_active condivisi
Campi media/relazione Slug condiviso del catalogo icone; relazione con la sidebar padre
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note Il comportamento del link condiviso e l'etichetta tradotta si accordano bene.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/sidebar-nav-item.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/sidebar-nav-item.blade.php
Contratto della radice del renderer Possiede la radice del proprio link della sidebar
Test / copertura PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Sidebar Nav Group — sidebar-nav-group

Contenuto e comportamento
Campo Contratto
Slug sidebar-nav-group
Label Sidebar Nav Group
Categoria navigation
Campi traducibili title tramite righe di traduzione testuale
Campi condivisi/di impostazione settings.icon; settings.initially_open; settings.layout_name condivisi
Campi media/relazione Blocchi sidebar-nav-item figli; slug del catalogo icone
Comportamento come figlio/contenitore Contenitore; solo figli sidebar-nav-item
Stato attuale clear
Lacune note / note La fase 3 mantiene il contratto del wrapper nav-group distribuito di WebBlocks UI, mentre i link figli manuali annidati riutilizzano ora la stessa semantica dell'elemento sidebar per href, target, icona e output dello stato attivo.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/sidebar-nav-group.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/sidebar-nav-group.blade.php
Contratto della radice del renderer Possiede la propria radice .wb-nav-group
Test / copertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest

Search Form — search-form

Contenuto e comportamento
Campo Contratto
Slug search-form
Label Search Form
Categoria navigation
Campi traducibili title, subtitle, content tramite righe di traduzione testuale
Campi condivisi/di impostazione variant; settings.show_button condivisi
Campi media/relazione Contesto della rotta di ricerca, del sito e della lingua (locale)
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note Le impostazioni condivise di visualizzazione del pulsante e le etichette tradotte sono esplicite.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/search-form.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/search-form.blade.php
Contratto della radice del renderer Possiede la radice <form role="search">
Test / copertura SearchFormTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest
Campo Contratto
Slug sidebar-footer
Label Sidebar Footer
Categoria navigation
Campi traducibili title, subtitle, content tramite righe di traduzione testuale
Campi condivisi/di impostazione settings.variant condiviso
Campi media/relazione Nessuno
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note La variante condivisa con testo tradotto è semplice.
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/sidebar-footer.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/sidebar-footer.blade.php
Contratto della radice del renderer Possiede la radice del proprio blocco footer interno
Test / copertura PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Moduli

Contact Form — contact_form

Contenuto e comportamento
Campo Contratto
Slug contact_form
Label Contact Form
Categoria form
Campi traducibili title, content, submit_label, success_message tramite righe di traduzione del modulo di contatto
Campi condivisi/di impostazione settings.recipient_email; settings.send_email_notification; settings.store_submissions condivisi
Campi media/relazione Gli invii di contact_messages sono collegati al blocco e alla pagina
Comportamento come figlio/contenitore Non è un contenitore
Stato attuale clear
Lacune note / note Il renderer emette un campo di controllo anti-spam generato nascosto di proprietà del CMS che non è un normale input del visitatore e non deve essere creato manualmente. Gli invii con i campi di controllo compilati restituiscono un successo generico senza archiviazione o notifica. I messaggi legittimi vengono archiviati prima della notifica, lo spam classificato viene conservato per la revisione da parte dell'amministratore, il fallback del destinatario viene bloccato, il sito, CONTACT_RECIPIENT_EMAIL, quindi MAIL_FROM_ADDRESS e le pagine dei contatti non devono utilizzare HTML attendibili/moduli grezzi/mailto: come sostituti. I piani Internal Content API content preservano submit_label e success_message e il rendering locale tedesco utilizza le etichette form predefinite tedesche quando la copia personalizzata è assente.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/contact_form.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/contact_form.blade.php
Contratto della radice del renderer Possiede la propria radice section.wb-card ed emette un modulo nativo protetto da CSRF che invia a /contact-messages
Test / copertura ContactFormModuleTest, InternalContentApiTest, ContactMailDiagnoseCommandTest

Avanzato

HTML (Trusted) — html

Contenuto e comportamento
Campo Contratto
Slug html
Etichetta HTML (Trusted)
Categoria advanced
Campi traducibili Nessuno
Campi condivisi/di impostazione Il content HTML attendibile canonico
Campi media/relazione I registri pubblici di overlay e di fine body possono ricevere frammenti estratti
Comportamento figli/contenitore Non è un contenitore; le righe figlie storiche vengono conservate, ma non è supportato l'inserimento di nuovi figli
Stato attuale mostly clear
Lacune note / note La fase 3 smette di trattare Trusted HTML come wrapper contenitore di figli pubblico. Il markup attendibile può comunque influenzare l'output condiviso di overlay o di fine body oltre la radice visibile.
Sorgenti e test
Sorgente Contratto
Sorgente del form di amministrazione resources/views/admin/blocks/types/html.blade.php
Sorgente del renderer pubblico resources/views/pages/partials/blocks/html.blade.php
Contratto della radice del renderer Racchiude il markup attendibile in un <div> e può anche emettere contenuti overlay o di fine body al di fuori della radice visibile.
Test / copertura PublicEditorialBlocksRenderingTest, PublicRichContentTest, PageBuilderExperienceTest

Contratti pubblicati aggiuntivi

Dispositivo di scorrimento — slider

Contenuto e comportamento
Campo Contratto
Slug slider
Label Dispositivo di scorrimento
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione 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
Campi media/relazione I blocchi secondari slide rappresentano la relazione primaria. Lo stesso Slider non supporta la proprietà diretta dei media.
Comportamento come figlio/contenitore Compatibile con contenitori. Il tipo di bambino consentito è slide.
Stato attuale clear
Lacune note / note Nessuno
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/slider.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/slider.blade.php
Contratto della radice del renderer Possiede la radice pubblica <section data-wb-slider>, la traccia interna, i controlli e il punto navigation.
Test / copertura SliderContentPositionTest

Diapositiva — slide

Contenuto e comportamento
Campo Contratto
Slug slide
Label Diapositiva
Categoria layout
Campi traducibili Nessuno
Campi condivisi/di impostazione 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
Campi media/relazione Il supporto in background slide opzionale è posseduto tramite la relazione di blocco diretto media_id. I blocchi secondari sono la relazione content visibile.; mobile_media_id assegna un record della libreria multimediale di immagini tramite block_media.mobile_image. Invia null a clear l'override.
Comportamento come figlio/contenitore Compatibile con contenitori. I tipi secondari non sono esplicitamente limitati nell'helper corrente.
Stato attuale clear
Lacune note / note Nessuno
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/slide.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/slide.blade.php
Contratto della radice del renderer Possiede la radice pubblica <article class="wb-slide"> e delega la copia/interfaccia utente visibile ai blocchi figlio nidificati. Con larghezze del viewport fino a 768 px, un'immagine mobile pubblica sovrascrive l'immagine predefinita tramite l'immagine/sorgente o l'immagine di sfondo; le sostituzioni assenti o non disponibili utilizzano l'immagine predefinita.
Test / copertura SliderContentPositionTest

Navigazione automatica — navigation-auto

Contenuto e comportamento
Campo Contratto
Slug navigation-auto
Label Navigazione automatica
Categoria navigation
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.menu_key
Campi media/relazione Il sito corrente e il contesto locale risolvono la struttura del menu renderizzata al momento del rendering.
Comportamento come figlio/contenitore Non è un contenitore. Le voci di menu provengono dai record di navigazione, non dai blocchi secondari.
Stato attuale clear
Lacune note / note Nessuno
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/navigation-auto.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/navigation-auto.blade.php
Contratto della radice del renderer Possiede la radice pubblica <nav class="wb-stack wb-gap-2" data-wb-menu-key="..."> e rende la struttura del menu visibile come elenchi <ul> nidificati di ancoraggi wb-link.
Test / copertura ManagedCtaApiTest

Valutazione Titolo — rating

Contenuto e comportamento
Campo Contratto
Slug rating
Label Valutazione Titolo
Categoria system
Campi traducibili ; sottotitolo
Campi condivisi/di impostazione settings.scale; settings.allow_change; settings.show_summary; settings.data_scope
Campi media/relazione La pagina corrente, il sito, il blocco, l'hash del visitatore e l'URL di origine vengono registrati sulle righe rating.
Comportamento come figlio/contenitore Non è un contenitore nel contratto corrente.
Stato attuale clear
Lacune note / note Nessuno
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/rating.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/rating.blade.php
Contratto della radice del renderer Possiede la radice pubblica section.wb-card.wb-rating, esegue il rendering di una copia localizzata opzionale di titoli/sottotitoli, una media wb-rating-stars di sola lettura e un modulo stella senza JS wb-rating-input che pubblica ciascun invio su /content-ratings.
Test / copertura Test di gestione del coinvolgimento

Commenti — comments

Contenuto e comportamento
Campo Contratto
Slug comments
Label Commenti
Categoria system
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.form_enabled; settings.show_approved; settings.show_author_name; settings.sort_order; settings.data_scope
Campi media/relazione La pagina corrente, il sito, il blocco, l'hash del visitatore e l'URL di origine vengono registrati nelle righe dei commenti.
Comportamento come figlio/contenitore Non è un contenitore nel contratto corrente.
Stato attuale clear
Lacune note / note Nessuno
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/comments.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/comments.blade.php
Contratto della radice del renderer Possiede la radice pubblica section.wb-card, esegue il rendering di comments approvato ed emette un modulo di commento nativo protetto da CSRF che pubblica su /comment-entries.
Test / copertura Test di gestione del coinvolgimento

Elenco pagine — page-list

Contenuto e comportamento
Campo Contratto
Slug page-list
Label Elenco pagine
Categoria content
Campi traducibili Nessuno
Campi condivisi/di impostazione 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
Campi media/relazione Nessun supporto di blocco. Le miniature vengono risolte dalla traduzione di ciascuna pagina elencata al momento del rendering.
Comportamento come figlio/contenitore Non è un contenitore. Le righe provengono da una query di pagina, non da blocchi secondari.
Stato attuale clear
Lacune note / note Le descrizioni e le miniature delle schede riutilizzano la descrizione SEO e l'immagine Open Graph, create per la ricerca e i social anziché per una scheda. Sono previste impostazioni delle pagine dedicate list_excerpt e list_image. Applicazione
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/page-list.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/page-list.blade.php
Contratto della radice del renderer Possiede la sua radice pubblica: uno wb-grid di articoli wb-card o ancoraggi di schede intere nelle schede layout o uno wb-link-list di ancoraggi wb-link-list-item nei collegamenti layout. Non esegue il rendering di nulla quando la query non restituisce pagine.
Test / copertura PageListBlockRenderTest

— application

Contenuto e comportamento
Campo Contratto
Slug application
Label
Categoria content
Campi traducibili Nessuno
Campi condivisi/di impostazione settings.application_handle; settings.application_settings; settings.width; settings.loading; settings.aspect_ratio; settings.min_height; settings.show_loading_state; settings.show_failure_state
Campi media/relazione Nessuna relazione diretta con i media CMS. Le risorse eseguibili application sono file di proprietà del registro, non supporti editoriali.
Comportamento come figlio/contenitore Non è un contenitore. Il runtime application possiede il proprio DOM interno.
Stato attuale clear
Lacune note / note Il codice dell'applicazione e la gestione del registro rimangono separati dal posizionamento editoriale; il blocco seleziona una definizione abilitata e ne convalida le impostazioni.
Sorgenti e test
Sorgente Contratto
Origine del modulo di amministrazione resources/views/admin/blocks/types/application.blade.php
Origine del renderer pubblico resources/views/pages/partials/blocks/application.blade.php
Contratto della radice del renderer Possiede una radice .wb-application. Le definizioni in linea ricevono un elemento di montaggio sicuro; Le definizioni iframe ricevono un wrapper iframe di proprietà del CMS. Le definizioni mancanti o non valide non interrompono mai la pagina circostante.
Test / copertura Test applicazioni incorporate

Panoramica su validazione e persistenza

I tipi di blocco pubblicati oggi non hanno ciascuno la propria classe di richiesta dedicata.

  • WebBlocks\Cms\Http\Requests\Admin\BlockRequest è il percorso condiviso della richiesta di modifica
  • rami specifici dello slug all'interno della richiesta di normalizzare i campi nell'archiviazione canonica corrente
  • WebBlocks\Cms\Support\Blocks\BlockPayloadWriter mantiene il payload del blocco normalizzato
  • WebBlocks\Cms\Support\Blocks\BlockTranslationWriter sposta i campi di proprietà delle impostazioni locali nelle righe di traduzione per le famiglie registrate
  • WebBlocks\Cms\Support\Blocks\BlockTranslationResolver risolve i valori tradotti o di fallback su un'istanza di blocco renderizzabile

Comportamento Di Compatibilità

Le impostazioni legacy Gallery e Table possono restare leggibili se mancano traduzioni canoniche o media ordinati. I fallback storici non sono il formato preferito di creazione. Usare la matrice corrente.

Le righe bozza e gli handle di sola compatibilità renderer non sono contratti pubblicati. Discovery e finestra del contratto possono segnalare l’assenza di un contratto distribuito.

Aggiunte di contenuti multimediali ed editor fino alla versione 1.94.2

Da CMS 1.91.0, diapositiva, immagine, eroe, sezione, scheda, invito all'azione, intestazione contenuto ed elemento elenco collegamenti supportano mobile_media_id opzionale nei piani e negli aggiornamenti dei blocchi esistenti. La relazione utilizza block_media.role = mobile_image, è condivisa tra più impostazioni locali e sostituisce l'immagine predefinita fino a 768 px con fallback quando non disponibile. Non introduce testo alternativo o didascalie mobili separati. Vedi Varianti immagine multimediale.

Dalla versione 1.91.1, Slide e Slider offrono nove posizioni dei contenuti: centro, centro-sinistra, centro-destra, alto-sinistra, alto-centro, alto-destra, basso-sinistra, basso-centro e basso-destra. Questi valori sono condivisi dall'amministratore, dall'API e dal renderer.

Dalla versione 1.93.0, l'editor Rich Text dispone di operazioni di annullamento/ripetizione per campo, ripristino della selezione, modalità di messa a fuoco e conteggio delle parole. Le intestazioni incollate e il testo delle celle della tabella rimangono come paragrafi del corpo sicuri; le intestazioni semantiche, le tabelle e i media appartengono a blocchi dedicati. Ciò non aggiunge una nuova variante Rich Text memorizzata né consente markup eseguibile. Vedi Rich Text.