Blok Türü Sözleşmeleri
Amaç ve Kapsam
Bu belge, WebBlocks CMS'te hâlihazırda dağıtılan yayındaki çekirdek blok türlerinin Faz 1 envanteri olarak başladı; artık Faz 2 salt okunur yönetim sözleşmesi görünümünü de belgeliyor ve bugüne kadar tamamlanan Faz 3 boşluk standartlaştırma düzeltmelerini kaydediyor. Bunlara section, container, grid, cluster, card ve content_header için Yerleşim + Kart temizliği; hero, columns, column_item, cta, feature-grid ve feature-item için Pazarlama / Yapılandırılmış İçerik temizliği; ve eski uyumluluk slug'larını yayındaki çekirdek kataloğa terfi ettirmeden dürüstçe belgelenmiş tutan Eski / Geçiş temizliği dahildir.
Faz 1 yalnızca salt okunur dokümantasyondur.
- Blok formlarını yeniden tasarlamaz.
- Veritabanı güdümlü bir form oluşturucu eklemez.
- Blok içeriğini taşımaz.
- Herkese açık render sürecini değiştirmez.
Admin -> System -> Block Typesdüzenlemelerinin bugün nasıl çalıştığını değiştirmez.
Mevcut Blok Türleri yönetim ekranı bir katalog ve meta veri ekranı olmaya devam ediyor. Faz 2'de artık listelenen her satır için salt okunur bir Sözleşme kipi (modal) açabiliyor, ancak yine de dinamik bir form oluşturucu veya şema editörü değildir.
Eklenti Faz 3, PluginBlockTypeDefinition, PluginBlockPackDefinition ve PluginBlockRegistry aracılığıyla yalnızca bildirime dayalı eklenti blok kancaları ekler. Etkin eklentiler, keşif için analytics-tools::score-card gibi eklentiye ait tanıtıcıları sunabilir; ancak bu bildirimler dağıtılan çekirdek blok sözleşmelerinin, çekirdek blok görünümlerinin, çekirdek seeder'ların veya blok düzenleme hizmetlerinin yerini almaz. hero gibi nitelenmemiş çekirdek tarzı tanıtıcılar çekirdeğe ait kalır ve eklenti bildirimleri için reddedilir.
Tanım
Bir Blok Türü Sözleşmesi, bir blok türünün CMS katmanları arasında nasıl davrandığına ilişkin güncel teknik anlaşmadır:
- katalog kimliği: slug, etiket, kategori, durum ve sistem ya da kapsayıcı meta verileri
- yönetim formu kaynağı: bloku şu anda hangi Blade parçasının düzenlediği ve hangi alanları sunduğu
- doğrulama ve istek işleme:
App\Http\Requests\Admin\BlockRequestsınıfının blok yüklerini şu anda nasıl normalleştirip doğruladığı - depolama sahipliği: hangi değerlerin
blockstablosunda, özel çeviri satırlarında,block_mediatablosunda veya ilişkili kayıtlarda yaşadığı - çeviri sahipliği: kullanıcıya görünen hangi alanların dile (locale) ait olduğu
- ortak sahiplik: hangi ayarların veya ilişkilerin diller arasında ortak kaldığı
- medya veya ilişki sahipliği: doğrudan
media_id, sıralıblock_media, gezinme aramaları veya aynı sayfa ilişkileri - alt öğe desteği: blokun bir kapsayıcı olup olmadığı ve alt türlerin kısıtlanıp kısıtlanmadığı
- herkese açık renderer kaynağı: bloku bugün hangi herkese açık Blade parçasının render ettiği
- renderer kök sözleşmesi: blokun herkese açık kök işaretlemesine sahip olup olmadığı veya genel sarmalayıcı yoluna mı dayandığı
- taşınabilirlik ve revizyonlar: mevcut depolama biçiminin revizyonlar, klonlama, dışa/içe aktarma ve terfi süreçlerinde dolaşmaya devam edip etmeyeceği
- testler ve boşluklar: bilinen odaklı kapsam, belirsiz davranış veya uyumluluk borcu
Güncel Sözleşme Terimleri
Aşağıda kullanılan durum terimleri:
clear: yönetim formu, istek işleme, depolama ve renderer çoğunlukla örtüşüyormostly clear: güncel sözleşme anlaşılabilir ama kayda değer bir çekincesi vartransitional: güncel sözleşme bilinçli olarak bir uyumluluk yolu veya karma sahiplik deseni taşıyorneeds review: güncel kod yolları uyuşmuyor veya davranış, Faz 2'nin daha net göstermesini gerektirecek kadar az belgelenmişlegacy/fallback: yayındaki davranış bir yedek (fallback) veya uyumluluk yoluna dayanıyor
Depolama Sahipliği Kuralları
Güncel ve gelecekteki sözleşme çalışmaları bu sahiplik kurallarını açık tutmalıdır:
- blok dile (locale) aitse kullanıcıya görünen metinler çeviri satırlarına aittir
- ortak operasyonel veya ayar verileri ortak blok ayarlarına veya açık ilişkilere aittir
- medya, uygun olduğunda
media_idveyablock_mediasahiplik yollarını kullanmalıdır - kullanıcıya görünen içeriği rastgele ayar JSON'ına taşımaktan kaçının
- uyumluluk depolama yolları herkese açık çıktıyı veya içe aktarmaları hâlâ etkiliyorsa belgelenmiş tutun
Dağıtılan Kaynaklar
Bu Faz 1 envanteri tahminlere değil, dağıtılan kaynak koduna dayanır.
- katalog kaynağı:
app/Support/Blocks/CoreBlockTypeCatalogSyncer.php - blok düzenleme isteği normalleştirmesi:
app/Http/Requests/Admin/BlockRequest.php - kalıcılık yardımcıları:
app/Support/Blocks/BlockPayloadWriter.php,app/Support/Blocks/BlockTranslationWriter.php,app/Support/Blocks/BlockTranslationResolver.php - çeviri kayıt defteri:
app/Support/Blocks/BlockTranslationRegistry.php - yönetim formları:
resources/views/admin/blocks/types/*.blade.php - herkese açık renderer'lar:
resources/views/pages/partials/blocks/*.blade.php - kapsam referansları:
tests/Feature/altındaki blok kataloğu, render, çeviri ve slug'a özgü testler
Şu anda burada belgelenen yayındaki çekirdek blok türleri: 42.
Denetim Komutu
Faz 1, güvenli bir geliştirici denetim komutu ekler:
php artisan block-types:contracts-audit
php artisan block-types:contracts-audit --json
Komut salt okunurdur.
- veritabanını değiştirmez
- kurulu site içeriğine bağımlı değildir
- dağıtılan çekirdek katalog tanımlarını okur
- dağıtılan yönetim formu ve herkese açık renderer dosyalarının varlığını doğrular
- çeviri ailesi meta verilerini ve temel kapsayıcı desteğini raporlar
Komut, katalog ve dosya varlığı sapmaları için bir güncellik yardımcısıdır. Bu belgedeki daha kapsamlı sözleşme notlarının yerini tutmaz.
Faz 2 Yönetim Görünümü
Faz 2, sözleşme ayrıntılarını Admin -> System -> Block Types içinde salt okunur olarak sunar.
- her satır bir
Block Type Contractkipi (modal) açabilir - kip yalnızca bilgilendirme amaçlıdır ve güncelleme göndermez
- dağıtılan koddan katalog, yönetim formu, depolama, çeviri, medya veya ilişki, alt öğe, renderer ve boşluk ayrıntılarını gösterir
- Blok Türleri yönetimini bir şema editörüne veya form oluşturucuya dönüştürmez
- özel veya taslak blok türleri kipi yine açabilir, ancak tanımlı bir çekirdek sözleşme yoksa
No shipped contract is documented for this block type yet.mesajını gösterebilir
Yayındaki Blok Sözleşmesi Matrisi
İçerik
| Slug | Etiket | Kategori | Yönetim formu kaynağı | Çevrilebilir alanlar | Ortak/ayar alanları | Medya/ilişki alanları | Alt öğe/kapsayıcı davranışı | Genel (public) renderer kaynağı | Renderer kök sözleşmesi | Mevcut durum | Testler / kapsam | Bilinen eksikler / notlar |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| header | Başlık | content | resources/views/admin/blocks/types/header.blade.php | title metin çeviri satırları üzerinden | variant başlık düzeyi; settings.alignment; settings.anchor içinde ortak çapa, eski url geri dönüşüyle birlikte | Aynı sayfadaki içindekiler tablosu (TOC), çapa eklenmiş Başlık bloklarını okur | Kapsayıcı değildir | resources/views/pages/partials/blocks/header.blade.php | Kök başlık öğesine kendisi sahiptir | clear | SyncCoreBlockTypesCommandTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest | Kanonik başlık bloğudur; ortak çapa sözleşmesi nettir ancak eski url geri dönüş davranışı hâlâ mevcuttur. |
| plain_text | Düz Metin | content | resources/views/admin/blocks/types/plain_text.blade.php | content metin çeviri satırları üzerinden | settings.alignment | Yok | Kapsayıcı değildir | resources/views/pages/partials/blocks/plain_text.blade.php | Kök öğesine kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest | Çevrilen gövde metni için basit bir temel bloktur. |
| rich-text | Zengin Metin | content | resources/views/admin/blocks/types/rich-text.blade.php | content metin çeviri satırları üzerinden | Yok | Yok | Kapsayıcı değildir | resources/views/pages/partials/blocks/rich-text.blade.php | İçerik mevcut olduğunda .wb-rich-text köküne kendisi sahiptir | clear | RichTextBlockTest, PublicRichContentTest, BlockTranslationIntegrityTest | Güvenli HTML saklama ve çeviri sahipliği nettir. |
| code | Kod | content | resources/views/admin/blocks/types/code.blade.php | title, subtitle, content metin çeviri satırları üzerinden | settings.language | Yok | Kapsayıcı değildir; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleştirme desteklenmez | resources/views/pages/partials/blocks/code.blade.php | köküne kendisi sahiptir | clear | PublicRichContentTest, BlockTypePhaseThreeContractsTest, PageBuilderExperienceTest | 3. Aşama, çevrilen kod başlığını, etiketini ve parçacık gövdesini mevcut metin çevirisi mimarisiyle hizalar ve artık genel çıktıda geçmişten kalan rastgele alt öğe ağaçlarını yok sayar. |
| button_link | Düğme Bağlantısı | content | resources/views/admin/blocks/types/button_link.blade.php | title etiketi metin çeviri satırları üzerinden | settings.url; settings.target; ortak variant | Yok | Kapsayıcı değildir | resources/views/pages/partials/blocks/button_link.blade.php | köküne kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest | Ortak URL ve hedef, çevrilen etiketle tutarlıdır. |
| card | Kart | layout | resources/views/admin/blocks/types/card.blade.php | Yok | settings.layout_name | Yapıyı alt bölge blokları tanımlar; doğrudan medya veya çeviri sözleşmesi yoktur | Kapsayıcıdır; izin verilen doğrudan alt öğeler yalnızca card_header, card_body ve card_footer bloklarıdır | resources/views/pages/partials/blocks/card.blade.php | köküne kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, BlockTranslationIntegrityTest, MediaVisualBlockContractsTest | Kart artık birleştirilebilir bir kabuktur. Kart köküne kendisi sahiptir, kaydetme sırasında eski içerik veya medya alanlarını temizler ve yalnızca Kart bölge alt öğesi olmayan eski kayıtlı satırlar için asgari bir eski işleme geri dönüşü tutar. |
| card_header | Kart Başlığı | layout | resources/views/admin/blocks/types/card_header.blade.php | Yok | settings.layout_name | Yalnızca üst card ilişkisi | Kapsayıcıdır; yalnızca card altına yerleştirilebilir; kart bölgesi alt öğelerine izin verilmez | resources/views/pages/partials/blocks/card_header.blade.php | köküne kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Başlık içeriği için birleştirilebilir Kart bölge bloğudur. |
| card_body | Kart Gövdesi | layout | resources/views/admin/blocks/types/card_body.blade.php | Yok | settings.layout_name | Yalnızca üst card ilişkisi | Kapsayıcıdır; yalnızca card altına yerleştirilebilir; kart bölgesi alt öğelerine izin verilmez | resources/views/pages/partials/blocks/card_body.blade.php | köküne kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Ana gövde içeriği için birleştirilebilir Kart bölge bloğudur. |
| card_footer | Kart Altbilgisi | layout | resources/views/admin/blocks/types/card_footer.blade.php | Yok | settings.layout_name | Yalnızca üst card ilişkisi | Kapsayıcıdır; yalnızca card altına yerleştirilebilir; kart bölgesi alt öğelerine izin verilmez | resources/views/pages/partials/blocks/card_footer.blade.php | köküne kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Altbilgi veya eylem içeriği için birleştirilebilir Kart bölge bloğudur. |
| stat-card | İstatistik Kartı | content | resources/views/admin/blocks/types/stat-card.blade.php | title, subtitle, content metin çeviri satırları üzerinden | Kanonik url blok satırında ortak kalır | Yok | Kapsayıcı değildir | resources/views/pages/partials/blocks/stat-card.blade.php | İstatistik kartı köküne kendisi sahiptir | clear | StatCardTest, BlockTranslationIntegrityTest | 3. Aşama, mevcut isteğe bağlı URL alanını korur ve URL bulunduğunda artık basit bir genel bağlantı işler. |
| image | Görsel | content | resources/views/admin/blocks/types/image.blade.php | caption, alt text görsel çeviri satırları üzerinden | Ortak media_id; ortak kanonik url | media_id üzerinden doğrudan görsel medya ilişkisi | Kapsayıcı değildir; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleştirme desteklenmez | resources/views/pages/partials/blocks/image.blade.php | Medya mevcut olduğunda anlamsal köküne kendisi sahiptir | clear | MediaVisualBlockContractsTest, PublicMediaBlocksTest, BlockTranslationIntegrityTest | 3. Aşama, Görsel bloğunu mevcut görsel çevirisi mimarisiyle hizalar; böylece altyazı ve alternatif metin dile (locale) ait olurken seçilen medya ve isteğe bağlı bağlantı URL'si ortak kalır. |
| gallery | Galeri | content | resources/views/admin/blocks/types/gallery.blade.php ile birlikte resources/views/admin/blocks/types/partials/gallery-items-editor.blade.php | Galeri öğesi başına alt_text, caption, overlay_title ve overlay_text, block_gallery_item_translations üzerinden | Ortak galeri sunum ayarları ile sıralı block_media galeri öğesi ilişkileri | gallery_item rolüne sahip sıralı block_media satırları; dile ait galeri öğesi metinleri block_gallery_item_translations üzerinde tutulur; blokta eski kayıtlı title/subtitle değerleri hâlâ bulunabilir ancak genel işleme tarafından yok sayılır | Kapsayıcı değildir; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleştirme desteklenmez | resources/views/pages/partials/blocks/gallery.blade.php | Galeri sarmalayıcı köküne kendisi sahiptir ve lightbox etkinleştirildiğinde #wb-overlay-root altında bir görüntüleyici modalı kaydeder | clear | MediaVisualBlockContractsTest, PublicMediaBlocksTest, PageBuilderExperienceTest, SiteCloneServiceTest, SiteExportImportTest, SitePromotionTest, ReconstructionIntegrityTest, SharedSlotRevisionTest | Galeri artık bir medya koleksiyonu bloğudur. Normal yönetim formu, eski seçili varlıklar ızgarası yerine kompakt bir liste satırı editörü kullanır. İç içe açılan Add Gallery Items seçicisi, ortak yönetim #wb-overlay-root sözleşmesinde kalır; böylece yığılmış modal yaşam döngüsüne WebBlocks UI sahip olur ve uzun kompakt sonuç listeleri doğal satır yüksekliğini korurken kaydırma kapsayıcısı modal gövdesi olmaya devam eder. Genel varyantlar birbirinden farklıdır: grid eşit hücreleri korur, masonry doğal görsel yüksekliğiyle CSS sütunları kullanır ve collage öne çıkan öğe önce gelecek şekilde kompozisyonu korur. Eski kayıtlı masonary değerleri hâlâ kabul edilir ve kanonik masonry yoluna normalleştirilir. Galeri artık giriş başlığı veya paragraf çıktısına sahip değildir; bölüm metni gerektiğinde editörler Galeri'den önce content_header ile birlikte plain_text veya rich-text yerleştirmelidir. Eski, ayar tabanlı geri dönüş öğeleri eski içerik için okunabilir kalır. |
| download | İndirme | content | resources/views/admin/blocks/types/download.blade.php | title, subtitle metin çeviri satırları üzerinden | Ortak media_id; ortak variant | media_id üzerinden doğrudan indirme medyası ilişkisi | Kapsayıcı değildir; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleştirme desteklenmez | resources/views/pages/partials/blocks/download.blade.php | Medya mevcut olduğunda CTA sarmalayıcı köküne kendisi sahiptir | clear | MediaVisualBlockContractsTest, PublicMediaBlocksTest | 3. Aşama, seçilen indirme medyasını ve düğme varyantını ortak tutarken görünen etiketi ve yardımcı metni mevcut metin çevirisi yoluna taşır. |
| file | Dosya | content | resources/views/admin/blocks/types/file.blade.php | title, content metin çeviri satırları üzerinden | Ortak media_id; ortak kanonik url | media_id üzerinden doğrudan medya ilişkisi, harici URL geri dönüşüyle birlikte | Kapsayıcı değildir; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleştirme desteklenmez | resources/views/pages/partials/blocks/file.blade.php | Dosya kartı köküne kendisi sahiptir | clear | MediaVisualBlockContractsTest, PublicMediaBlocksTest | 3. Aşama, halihazırda gelen Dosya renderer'ını özel bir yönetim formuyla ürünleştirir ve ortak dosya kaynağı sahipliğini Medya ile harici URL geri dönüşü arasında açık tutar. |
| video | Video | content | resources/views/admin/blocks/types/video.blade.php | title, content metin çeviri satırları üzerinden | Ortak media_id; ortak kanonik url | media_id üzerinden doğrudan medya ilişkisi, güvenli harici URL geri dönüşüyle birlikte | Kapsayıcı değildir; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleştirme desteklenmez | resources/views/pages/partials/blocks/video.blade.php | Video kartı köküne kendisi sahiptir | clear | MediaVisualBlockContractsTest, PublicMediaBlocksTest | 3. Aşama, eksik yönetim formunu ve kaydetme yolunu ekler; böylece yüklenen video medyası, güvenli harici sağlayıcı URL'leri, çevrilen görünür metinler ve genel geri dönüş davranışı artık aynı sözleşmeyi tanımlar. |
| audio | Ses | content | resources/views/admin/blocks/types/audio.blade.php | title, content metin çeviri satırları üzerinden | Ortak media_id; ortak kanonik url | media_id üzerinden doğrudan medya ilişkisi, harici URL geri dönüşüyle birlikte | Kapsayıcı değildir; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleştirme desteklenmez | resources/views/pages/partials/blocks/audio.blade.php | Ses kartı köküne kendisi sahiptir | clear | MediaVisualBlockContractsTest, PublicMediaBlocksTest | 3. Aşama, eksik yönetim formunu ve kaydetme yolunu ekler; böylece yüklenen ses medyası, çevrilen görünür metinler ve boş oynatıcı denetimleri göstermeyen güvenli işleme artık belgelenen sözleşmeyle eşleşir. |
| table | Tablo | content | resources/views/admin/blocks/types/table.blade.php | title, content metin çeviri satırları üzerinden | Ortak variant; renderer ayrıca settings.rows geri dönüşünü de denetler | Yok | Kapsayıcı değildir; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleştirme desteklenmez | resources/views/pages/partials/blocks/table.blade.php | Tablo sarmalayıcı köküne kendisi sahiptir | mostly clear | PublicRichContentTest, BlockTypePhaseThreeContractsTest, PageBuilderExperienceTest | 3. Aşama, çevrilen başlık ve satır metni sahipliğini mevcut metin çevirisi mimarisiyle hizalar ve artık genel çıktıda geçmişten kalan rastgele alt öğe ağaçlarını yok sayar; eski settings.rows geri dönüş yolu belgelenmeye devam eder. |
| quote | Alıntı | content | resources/views/admin/blocks/types/quote.blade.php | Bugün itibarıyla registry'de yok | Kanonik title, subtitle, content, variant | Yok | Kapsayıcı değildir; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleştirme desteklenmez | resources/views/pages/partials/blocks/quote.blade.php | Alıntı köküne kendisi sahiptir | clear | PublicRichContentTest, PageBuilderExperienceTest | 3. Aşama, yönetimdeki blok ağaçlarında mevcut kayıtlı alt satırları korurken genel çıktıda Alıntı'yı bir yerleşim/kapsayıcı sarmalayıcısı olarak ele almayı bırakır. |
| hero | Hero | content | resources/views/admin/blocks/types/hero.blade.php | title, subtitle, content metin çeviri satırları üzerinden | Ortak variant; settings.layout; settings.title_tag | Yönetilen CTA'lar için alt button blokları | Kapsayıcıdır; yalnızca button alt öğeleri | resources/views/pages/partials/blocks/hero.blade.php | Tanıtım köküne kendisi sahiptir | transitional | PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Hero artık kaynağa dayalı, yayınlanmış bir çekirdek sözleşmedir. Giriş metni dile aittir, CTA etiketleri alt düğmelerde çevrilir ve CTA URL'leri ortak kalır. Kanonik çevrilmiş alanlar boş olduğunda eski içerik geri dönüşleri okunabilir kalır. |
| columns | Sütunlar | content | resources/views/admin/blocks/types/columns.blade.php | title, subtitle, content metin çeviri satırları üzerinden | Ortak variant | Alt column_item blokları | Kapsayıcıdır; yalnızca column_item alt öğeleri | resources/views/pages/partials/blocks/columns.blade.php | Yapılandırılmış içerik köküne kendisi sahiptir | clear | PublicColumnsRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Sütunlar artık yayınlanmış, birinci sınıf bir yapılandırılmış içerik bloğudur. Giriş metni dile aitken varyant, alt öğe sırası ve alt öğe URL'leri ortak kalır. |
| column_item | Sütun Öğesi | content | resources/views/admin/blocks/types/column_item.blade.php | title, subtitle, content metin çeviri satırları üzerinden | Ortak kanonik url | Üst columns ilişkisi | Kapsayıcı değildir | resources/views/pages/partials/blocks/column_item.blade.php | Üst öğe tarafından belirlenen öğe kökü, Sütunlar varyantına göre değişir | clear | PublicColumnsRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Sütun Öğesi artık Sütunlar için yayınlanmış, destekleyici bir alt öğe sözleşmesidir. Dil düzenlemeleri, ortak URL'lerin üzerine yazmadan öğe metnini günceller. |
| cta | CTA | content | resources/views/admin/blocks/types/cta.blade.php | title, subtitle, content metin çeviri satırları üzerinden | Ortak variant | Yönetilen CTA'lar için alt button blokları | Kapsayıcıdır; yalnızca button alt öğeleri | resources/views/pages/partials/blocks/cta.blade.php | Tanıtım köküne kendisi sahiptir | clear | PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | CTA artık dile ait metinlere ve CTA etiketlerine, ortak CTA URL'lerine ve köküne sahip çıkan bir genel renderer'a sahip, yayınlanmış bir tanıtım sözleşmesidir. |
| feature-grid | Özellik Izgarası | content | resources/views/admin/blocks/types/feature-grid.blade.php | title, subtitle, content metin çeviri satırları üzerinden | Ortak alt öğe yapısı dışında yok | Eskiyle uyumlu column_item desteğiyle birlikte alt feature-item blokları | Kapsayıcıdır; izin verilen alt öğeler feature-item ve column_item bloklarıdır | resources/views/pages/partials/blocks/feature-grid.blade.php | Sütunlar kart sunumuna devreder ve hâlâ genel amaçlı public sarmalayıcıyı kullanır | transitional | PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Özellik Izgarası artık yayınlanmış bir uyumluluk takma adıdır; çünkü gerçekten üründe var olan yönetim ve işleme yollarına sahiptir, ancak yine de bilinçli olarak Sütunlar kart sözleşmesine devreder. |
| feature-item | Özellik Öğesi | content | resources/views/admin/blocks/types/feature-item.blade.php | title, content metin çeviri satırları üzerinden | Ortak kanonik url | Üst feature-grid ilişkisi | Kapsayıcı değildir | resources/views/pages/partials/blocks/feature-item.blade.php | Sütun Öğesi kart sunumuna devreder | transitional | PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Özellik Öğesi artık Özellik Izgarası için yayınlanmış, destekleyici bir alt öğe sözleşmesidir ve mevcut Sütun Öğesi kart kabuğunu paylaşmaya devam eder. |
Yerleşim
| Slug | Etiket | Kategori | Yönetim formu kaynağı | Çevrilebilir alanlar | Ortak/ayar alanları | Medya/ilişki alanları | Alt öğe/kapsayıcı davranışı | Genel (public) renderer kaynağı | Renderer kök sözleşmesi | Mevcut durum | Testler / kapsam | Bilinen eksikler / notlar |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| section | Bölüm | layout | resources/views/admin/blocks/types/section.blade.php | Yok | settings.layout_name; settings.spacing | Yalnızca alt bloklar | Kapsayıcıdır; açık bir alt öğe beyaz listesi yoktur | resources/views/pages/partials/blocks/section.blade.php | Kök öğesine kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | 3. Aşama, Bölüm'ü yalnızca yerleşim odaklı tutar: ortak yerleşim ayarları kanonik kalır, anlamsal köküne blok kendisi sahiptir ve kullanıcıya görünen metinler rastgele ayarlara taşınmaz. |
| container | Kapsayıcı | layout | resources/views/admin/blocks/types/container.blade.php | Yok | settings.layout_name; settings.width; settings.flow | Yalnızca alt bloklar | Kapsayıcıdır; açık bir alt öğe beyaz listesi yoktur | resources/views/pages/partials/blocks/container.blade.php | Kök kapsayıcı öğesine kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Eski varsayılan, ayar yapılmadığında hâlâ yığılmış (stacked) akışa geri döner; açıkça seçilen Flow: None ise yerleşimden bağımsız birleştirme yolu olmaya devam eder. |
| cluster | Küme | layout | resources/views/admin/blocks/types/cluster.blade.php | Yok | settings.layout_name; settings.gap; settings.alignment; settings.items_alignment; settings.wrap; settings.width | Yalnızca alt bloklar | Kapsayıcıdır; açık bir alt öğe beyaz listesi yoktur | resources/views/pages/partials/blocks/cluster.blade.php | Kök küme öğesine kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Ortak yerleşim ayarları açık ve renderer'a ait kalır; buna navbar'a özgü mantık eklenmeden, mevcut navbar uyumlu tam genişlik, between, center ve nowrap birleştirme yolu da dahildir. |
| grid | Izgara | layout | resources/views/admin/blocks/types/grid.blade.php | Yok | settings.layout_name; settings.columns; settings.gap | Yalnızca alt bloklar | Kapsayıcıdır; açık bir alt öğe beyaz listesi yoktur | resources/views/pages/partials/blocks/grid.blade.php | Kök ızgara öğesine kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest | Ortak ızgara ayarları kanonik kalır ve genel çıktı, üründe yer alan wb-grid- ve desteklenen wb-gap- sınıf eşlemeleriyle sınırlı kalmaya devam eder. |
Desen
| Slug | Etiket | Kategori | Yönetim formu kaynağı | Çevrilebilir alanlar | Ortak/ayar alanları | Medya/ilişki alanları | Alt öğe/kapsayıcı davranışı | Genel (public) renderer kaynağı | Renderer kök sözleşmesi | Mevcut durum | Testler / kapsam | Bilinen eksikler / notlar |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| content_header | İçerik Başlığı | pattern | resources/views/admin/blocks/types/content_header.blade.php | title, subtitle, meta metin çeviri satırları üzerinden | settings.alignment | meta, yapılandırılmış liste içeriği olarak saklanır | Kapsayıcı değildir | resources/views/pages/partials/blocks/content_header.blade.php | Kök öğesine kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, BlockTranslationIntegrityTest | İçerik Başlığı, içerik kabuğu görevi gören bir desen bloğudur. Başlık, giriş ve meta metinlerini dile (locale) ait tutar, başlığını her zaman H1 olarak işler, işleme sırasında eski kayıtlı başlık düzeyi değerlerini yok sayar ve yalnızca hizalamayı ortak tutar. |
| alert | Uyarı | pattern | resources/views/admin/blocks/types/alert.blade.php | title, content metin çeviri satırları üzerinden | settings.variant | Yok | Kapsayıcı değildir | resources/views/pages/partials/blocks/alert.blade.php | Uyarı köküne kendisi sahiptir | clear | PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest | Ortak varyant ile çevrilen metinler sorunsuz biçimde örtüşür. |
Gezinme
| Slug | Etiket | Kategori | Yönetim formu kaynağı | Çevrilebilir alanlar | Ortak/ayar alanları | Medya/ilişki alanları | Alt öğe/kapsayıcı davranışı | Genel renderer kaynağı | Renderer kök sözleşmesi | Mevcut durum | Testler / kapsam | Bilinen eksikler / notlar |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| link-list | Link List | navigation | resources/views/admin/blocks/types/link-list.blade.php | title, subtitle, content metin çevirisi satırları üzerinden | Yok | Alt link-list-item blokları | Kapsayıcı; yalnızca link-list-item alt öğeleri | resources/views/pages/partials/blocks/link-list.blade.php | Alt satırlar mevcut olduğunda .wb-link-list köküne sahiptir | clear | LinkListBlockTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest | 3. Faz, alt öğe davranışını değiştirmeden mevcut çevrilmiş giriş metnini artık genel bağlantı listesinin üzerinde gösteriyor. |
| link-list-item | Link List Item | navigation | resources/views/admin/blocks/types/link-list-item.blade.php | Zorunlu title, isteğe bağlı subtitle, isteğe bağlı content metin çevirisi satırları üzerinden | Zorunlu ortak url | Üst link-list ilişkisi | Kapsayıcı değil | resources/views/pages/partials/blocks/link-list-item.blade.php | Satır bağlantısı köküne sahiptir ve içerik boş olduğunda açıklama öğesini atlar | clear | LinkListBlockTest, PageBuilderExperienceTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest | Ortak URL ile çevrilmiş satır metni tutarlıdır. |
| toc | TOC | navigation | resources/views/admin/blocks/types/toc.blade.php | Yok | Yalnızca kanonik title | Aynı sayfadaki, geçerli çapalara sahip yayında header blokları | Kapsayıcı değil; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleşimi desteklenmez | resources/views/pages/partials/blocks/toc.blade.php | Başlıklar mevcut olduğunda oluşturulan TOC sarmalayıcısına sahiptir | clear | PublicRichContentTest, PageBuilderExperienceTest | 3. Faz, TOC'yi yalnızca keşfedilen sayfa başlıklarına odaklı tutar ve rastgele alt blokları artık genel TOC içeriği olarak ele almaz. |
| breadcrumb | Breadcrumb | navigation | resources/views/admin/blocks/types/breadcrumb.blade.php | Yok | Ortak settings.home_label; settings.include_current | Geçerli sayfa, site ve dil (locale) breadcrumb bağlamı | Kapsayıcı değil | resources/views/pages/partials/blocks/breadcrumb.blade.php | köküne sahiptir | clear | PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest | 3. Faz, sunulan breadcrumb ayarlarını ortak BlockRequest yolu üzerinden korur; böylece form davranışı artık kalıcılık ve render işlemiyle uyumludur. |
| header-actions | Header Actions | navigation | resources/views/admin/blocks/types/header-actions.blade.php | Yok | Ortak settings.show_mode_toggle; settings.show_accent_toggle; settings.show_search | Arama rotası ve istemci tarafı UI kancaları | Kapsayıcı değil | resources/views/pages/partials/blocks/header-actions.blade.php | Yalnızca iç eylem kümesine sahiptir | clear | PublicEditorialBlocksRenderingTest | Sistem yardımcı bloğu; tasarım gereği çeviri sahipliği yoktur. |
| sticky-navbar | Navbar | navigation | resources/views/admin/blocks/types/sticky-navbar.blade.php | Yok | settings.layout_name; settings.sticky_mode | İç içe navbar alt blokları | Kapsayıcı; izin verilen alt öğeler: container, cluster, header, plain_text, rich-text, button_link, navbar-brand, navbar-navigation, header-actions, search-form | resources/views/pages/partials/blocks/sticky-navbar.blade.php | Genel renderer, dıştaki köküne sahiptir | clear | PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, BlockTypePhaseThreeContractsTest | 3. Faz, kalıcı sticky-navbar slug'ını Block::ownsPublicRoot() ile hizalar; böylece Navbar artık fazladan genel bir blok sarmalayıcısı almaz. |
| navbar-brand | Navbar Brand | navigation | resources/views/admin/blocks/types/navbar-brand.blade.php | title, subtitle metin çevirisi satırları üzerinden | Ortak settings.url; settings.target; settings.aria_label | media_id üzerinden ortak logo medyası; site ana sayfa URL'si geri dönüşü | Kapsayıcı değil | resources/views/pages/partials/blocks/navbar-brand.blade.php | Yalnızca iç marka bağlantısına sahiptir | clear | PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest | 3. Faz, yönetim tarafındaki kaydetme davranışını yayınlanan renderer sözleşmesiyle hizalar: açıkça kaydedilmiş URL önceliklidir; yoksa mevcutsa geçerli site ana sayfa yolu kullanılır, son güvenli geri dönüş olarak da / kullanılır. |
| navbar-navigation | Navbar Navigation | navigation | resources/views/admin/blocks/types/navbar-navigation.blade.php | Yok | Ortak ARIA etiketi olarak kanonik title; settings.menu_key | Ortak NavigationItem menü ağacı | Kapsayıcı değil | resources/views/pages/partials/blocks/navbar-navigation.blade.php | Yalnızca iç gezinme sarmalayıcısına sahiptir | clear | PublicEditorialBlocksRenderingTest | Ortak menü bağlama ve ARIA etiketi, mevcut ürün sahipliğindeki davranıştır. |
| sidebar-brand | Sidebar Brand | navigation | resources/views/admin/blocks/types/sidebar-brand.blade.php | title, subtitle metin çevirisi satırları üzerinden | Ortak settings.url; settings.target; settings.aria_label | media_id üzerinden ortak logo medyası; site ana sayfa URL'si geri dönüşü | Kapsayıcı değil | resources/views/pages/partials/blocks/sidebar-brand.blade.php | Yalnızca iç marka bağlantısına sahiptir | clear | PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest | 3. Faz, Sidebar Brand'e Navbar Brand ile aynı yalnızca-logo erişilebilir ad geri dönüş sırasını ve aynı temkinli ortak URL geri dönüş sözleşmesini verir. |
| sidebar-navigation | Sidebar Navigation | navigation | resources/views/admin/blocks/types/sidebar-navigation.blade.php | title metin çevirisi satırları üzerinden | Ortak settings.menu_key; settings.layout_name; settings.show_icons; settings.active_matching | CMS NavigationItem ağacı veya manuel alt bloklar | Kapsayıcı; yalnızca sidebar-nav-item ve sidebar-nav-group alt öğeleri | resources/views/pages/partials/blocks/sidebar-navigation.blade.php | köküne sahiptir | clear | PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest | Ortak menü modu ayarları ve manuel alt öğe modunun her ikisi de açıkça tanımlıdır. |
| sidebar-nav-item | Sidebar Nav Item | navigation | resources/views/admin/blocks/types/sidebar-nav-item.blade.php | title metin çevirisi satırları üzerinden | Ortak settings.url; settings.target; settings.icon; settings.active_mode; settings.manual_active | Ortak simge kataloğu slug'ı; üst kenar çubuğu ilişkisi | Kapsayıcı değil | resources/views/pages/partials/blocks/sidebar-nav-item.blade.php | Kenar çubuğu bağlantısı köküne sahiptir | clear | PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest | Ortak bağlantı davranışı ile çevrilmiş etiket iyi örtüşür. |
| sidebar-nav-group | Sidebar Nav Group | navigation | resources/views/admin/blocks/types/sidebar-nav-group.blade.php | title metin çevirisi satırları üzerinden | Ortak settings.icon; settings.initially_open; settings.layout_name | Alt sidebar-nav-item blokları; simge kataloğu slug'ı | Kapsayıcı; yalnızca sidebar-nav-item alt öğeleri | resources/views/pages/partials/blocks/sidebar-nav-group.blade.php | .wb-nav-group köküne sahiptir | clear | PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest | 3. Faz, yayınlanan WebBlocks UI nav-group sarmalayıcı sözleşmesini korurken iç içe manuel alt bağlantılar artık href, target, simge ve etkin durum çıktısı için aynı kenar çubuğu öğesi semantiğini yeniden kullanır. |
| search-form | Search Form | navigation | resources/views/admin/blocks/types/search-form.blade.php | title, subtitle, content metin çevirisi satırları üzerinden | Ortak variant; settings.show_button | Arama rotası, site ve dil (locale) bağlamı | Kapsayıcı değil | resources/views/pages/partials/blocks/search-form.blade.php | köküne sahiptir | clear | SearchFormTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest | Ortak düğme görüntüleme ayarları ve çevrilmiş etiketler açıkça tanımlıdır. |
| sidebar-footer | Sidebar Footer | navigation | resources/views/admin/blocks/types/sidebar-footer.blade.php | title, subtitle, content metin çevirisi satırları üzerinden | Ortak settings.variant | Yok | Kapsayıcı değil | resources/views/pages/partials/blocks/sidebar-footer.blade.php | İç altbilgi bloğu köküne sahiptir | clear | PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest | Ortak varyant ile çevrilmiş metin doğrudan ve nettir. |
Formlar
| Slug | Etiket | Kategori | Yönetim formu kaynağı | Çevrilebilir alanlar | Ortak/ayar alanları | Medya/ilişki alanları | Alt öğe/kapsayıcı davranışı | Genel renderer kaynağı | Renderer kök sözleşmesi | Mevcut durum | Testler / kapsam | Bilinen eksikler / notlar |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| contact_form | Contact Form | form | resources/views/admin/blocks/types/contact_form.blade.php | title, content, submit_label, success_message iletişim formu çeviri satırları üzerinden | Ortak settings.recipient_email; settings.send_email_notification; settings.store_submissions | contact_messages gönderimleri bloğa ve sayfaya geri bağlanır | Kapsayıcı değil | resources/views/pages/partials/blocks/contact_form.blade.php | section.wb-card köküne sahiptir ve /contact-messages adresine gönderim yapan, CSRF korumalı yerel bir form üretir | clear | ContactFormModuleTest, InternalContentApiTest, ContactMailDiagnoseCommandTest | Renderer, normal ziyaretçi girdisi olmayan ve manuel olarak oluşturulmaması gereken, CMS'e ait gizli, otomatik üretilen bir spam önleme denetim alanı üretir. Denetim alanı doldurulmuş gönderimler, kayıt veya bildirim olmadan genel bir başarı yanıtı döndürür. Meşru mesajlar bildirimden önce kaydedilir, spam olarak puanlanan içerik yönetici incelemesi için saklanır, alıcı geri dönüş sırası blok, site, CONTACT_RECIPIENT_EMAIL ve ardından MAIL_FROM_ADDRESS şeklindedir; İletişim sayfaları ikame olarak Trusted HTML/ham formlar/mailto: kullanmamalıdır. |
Gelişmiş
| Slug | Etiket | Kategori | Yönetim formu kaynağı | Çevrilebilir alanlar | Ortak/ayar alanları | Medya/ilişki alanları | Alt öğe/kapsayıcı davranışı | Genel renderer kaynağı | Renderer kök sözleşmesi | Mevcut durum | Testler / kapsam | Bilinen eksikler / notlar |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| html | HTML (Trusted) | advanced | resources/views/admin/blocks/types/html.blade.php | Yok | Kanonik güvenilir HTML content | Genel katman (overlay) ve gövde sonu kayıtları ayıklanmış parçaları alabilir | Kapsayıcı değil; geçmişten kalan alt satırlar korunur ancak yeni alt öğe yerleşimi desteklenmez | resources/views/pages/partials/blocks/html.blade.php | Güvenilir işaretlemenin etrafında bir sarmalayıcı 'e sahiptir ve ayrıca bant dışı katman (overlay) veya gövde sonu içeriği de üretebilir | mostly clear | PublicEditorialBlocksRenderingTest, PublicRichContentTest, PageBuilderExperienceTest | 3. Faz, Trusted HTML'i genel bir alt öğe kapsayıcı sarmalayıcısı olarak ele almayı bırakır. Güvenilir işaretleme, görünür kökün ötesinde ortak katman (overlay) veya gövde sonu çıktısını yine de etkileyebilir. |
Doğrulama ve Kalıcılık Genel Bakışı
Yayında olan blok tipleri bugün her biri için ayrılmış kendi istek (request) sınıfına sahip değildir.
App\Http\Requests\Admin\BlockRequestortak düzenleme isteği yoludur- bu istek içindeki slug'a özgü dallar, alanları mevcut kanonik depolamaya normalleştirir
App\Support\Blocks\BlockPayloadWriternormalleştirilmiş blok yükünü kalıcı hale getirirApp\Support\Blocks\BlockTranslationWriterdile (locale) ait alanları kayıtlı aileler için çeviri satırlarına taşırApp\Support\Blocks\BlockTranslationResolverçevrilmiş veya geri dönüş değerlerini render edilebilir bir blok örneğine geri çözümler
Bu ortak istek yolu, 1. Fazın herhangi bir şema güdümlü düzenleme çalışmasından önce ilk olarak sözleşmeleri belgelemesinin nedenlerinden biridir.
Eksikler ve Bekleyen İşler
Mevcut 3. Faz düzeltmelerinden sonra kalan yüksek önemdeki eksikler:
gallery, kanonik sıralıblock_mediasatırları eksik olduğunda hâlâ ayarlara dayalı eski bir geri dönüş öğe yolunu koruyortablerenderer'ı, çekirdek yönetim formu çevrilmiş satır metnini yazsa da hâlâ eski birsettings.rowsgeri dönüş yolunu destekliyorhero, kanonik çevrilmiş giriş alanları boş olduğunda hâlâ eski alan geri dönüşlerini koruyorfeature-gridvefeature-itemkaynak destekli oldukları için artık yayında, ancak ortak Columns veya Column Item sunum yolları üzerinde bilinçli olarak geçici temsilci (delegate) sözleşmeleri olarak kalıyorlartabs,slider,menuvefaq-list, uyumluluk formları veya renderer'larıyla hâlâ eski taslak katalog satırları olarak duruyor; ancak yayında olan çekirdek sözleşmeler değiller ve sözleşme kipinde (modal) ve denetim çıktısında güvenli biçimde başarısız olmaya devam etmelilershowcase-listvecontact-infohâlâ yalnızca genel render uyumluluk yolları olarak var; yayınlanmış çekirdek katalog blokları değiller; ayar güdümlü bağlantıları artık diğer blok renderer'larıyla aynı güvenli genel URL kurallarını izliyor- yayında ve taslak kataloglar bir arada bulunuyor; bu nedenle gelecekteki yönetim arayüzü, yayında olan çekirdek sözleşmeler ile taslak veya kuruluma özgü satırlar arasındaki ayrımı açıkça korumalı
Önerilen 3. Faz
Blok grupları için önerilen sonraki standartlaştırma çalışması:
- yerleşim, içerik, gezinme, desen ve gelişmiş gibi kararlı, ürün sahipliğindeki blok gruplarını tek bir doğruluk kaynağında tanımlayın
- seçici gruplandırmalarını, dokümantasyon gruplandırmalarını ve Block Types yönetim gruplandırmalarını aynı kaynağa hizalayın
- şu anda taslak veya geçiş aşamasında olan blokların hangilerinin desteklenen, arşivlenen veya açıkça eski (legacy) olacağına karar verin
- herhangi bir şema güdümlü form çalışması başlamadan önce hangi sözleşmelerin çeviri destekli, hangilerinin bilinçli olarak yalnızca ortak olduğunu standartlaştırın
1. Faz Özeti
1. Faz, blok düzenleme davranışını, blok depolamayı veya genel render işlemini değiştirmeden mevcut yayında sözleşme envanterini oluşturur.
1. Faz sürümü için amaçlanan durma noktası buydu.
2. Faz Özeti
2. Faz, blok düzenleme davranışını, depolamayı, renderer'ları ve seçici davranışını değiştirmeden, belgelenen sözleşmeyi Block Types yönetiminde salt okunur bilgi olarak görünür kılar.
3. Faz Özeti
3. Faz, bir şema editörü, dinamik form oluşturucu veya veritabanı güdümlü blok form sistemi eklemeden, belgelenmiş düşük riskli sözleşme eksiklerini çözmeye başlar.
codeartık başlık, etiket ve kod parçası gövdesi için mevcut metin çevirisi yolunu izliyor; sözdizimi dili ortak kalıyortableartık başlık ve satır metni için mevcut metin çevirisi yolunu izliyor; tablo stili ortak kalıyorbreadcrumbartık kaydetme sırasında sunulan ortak ayarları koruyorstat-cardartık genel renderer'da mevcut isteğe bağlı URL'yi basit ve güvenli bir bağlantıyla kullanıyorlink-listartık mevcut çevrilmiş giriş metnini alt öğe listesinin üzerinde gösteriyorsticky-navbarartık kalıcı Navbar kök sahipliğiniBlock::ownsPublicRoot()ile hizalıyor; böylece genel kabuk fazladan genel bir sarmalayıcı eklemiyorimageartık altyazı ve alternatif metin için mevcut görsel çevirisi yolunu izliyor; seçilen medya ve isteğe bağlı bağlantı URL'si ortak kalıyorgalleryartık öğe başına alternatif metin, altyazı, kaplama başlığı ve kaplama metni için dile (locale) aitblock_gallery_item_translationskullanıyor; sıralı galeri medyası ve sunum ayarları ortak kalıyor, eski içerik için eski geri dönüş öğeleri korunuyor ve eski galeri başlığı/açıklaması normal düzenlemenin ve genel çıktının dışında tutuluyordownloadartık görünür etiket ve yardım metni için mevcut metin çevirisi yolunu izliyor; seçilen medya ve düğme varyantı ortak kalıyorfile,videoveaudioartık birinci sınıf yönetim formlarına ve istek normalleştirmesine sahip; böylece çevrilmiş görünür metin ile ortak medya veya URL kaynakları, zaten genel tarafta render ettikleri aynı sözleşme üzerinden gidip geliyorimage,gallery,download,file,videoveaudioartık yeni rastgele alt öğe yerleşimini kabul etmiyor ve rastgele geçmiş alt ağaçları genel tarafta render etmiyor; mevcut alt satırlar yönetim blok ağaçlarında korunmaya devam ediyorcode,table,quote,tocvehtmlartık yeni normal alt öğe yerleşimini kabul etmiyor ve rastgele geçmiş alt ağaçları genel tarafta render etmiyor; mevcut alt satırlar yönetim blok ağaçlarında korunmaya devam ediyornavbar-brandvesidebar-brandartık temkinli bir kayıtlı URL veya site ana sayfası geri dönüş sözleşmesini paylaşıyor ve her ikisi de görünür metin zorlamadan yalnızca-logo çıktısı için güvenli erişilebilir adlandırmayı koruyorsidebar-nav-groupartık iç içe alt bağlantılar içinsidebar-nav-itemile aynı manuel kenar çubuğu öğesi çıktı semantiğini yeniden kullanıyor; mevcut WebBlocks UI nav-group sarmalayıcı sözleşmesi korunuyorsection,container,grid,cluster,cardvecontent_headerartık kayıt (registry), salt okunur yönetim sözleşme kipi, denetim çıktısı, dokümantasyon ve odaklı regresyon kapsamı genelinde aynı yayınlanan sözleşme kaynağını kullanıyorhero,columns,column_item,cta,feature-gridvefeature-itemartık yayınlanan çekirdek katalogda yayında, ortak sözleşme kaydında belgelenmiş durumda ve yalnızca taslak veya yetersiz belgelenmiş kalmak yerine kaynak destekli pazarlama veya yapılandırılmış içerik sözleşmeleri olarak kapsanıyor- yönetilen CTA düğmeleri ve yapılandırılmış alt öğeler için yalnızca-dil düzenlemeleri artık çevrilmiş etiketleri veya metni güncellerken ortak URL'leri koruyor
- yerleşim temel öğeleri, ortak yerleşim ayarlarını ve alt yapıyı çeviri satırları veya rastgele metin alanları yerine kanonik blok depolamada tutuyor
cardartık bileşebilir bir kabuk sözleşmesi kullanıyor: üst Cardwb-cardköküne sahip, Card bölgeleriwb-card-header,wb-card-bodyvewb-card-footer'a sahip, bölge blokları yalnızca Card altında geçerli ve eski kaydedilmiş Card metni yalnızca minimal, bölgesiz bir geri dönüş renderer yolu üzerinden korunuyorcontent_headerçevrilmiş başlık, giriş ve meta metnini koruyor, başlığını her zaman H1 olarak render ediyor, eski kaydedilmiş başlık düzeyi değerlerini güvenle yok sayıyor ve semantik<header class="wb-content-header">kökünü genel bir sarmalayıcı olmadan renderer sahipliğinde tutuyortestimonialvestats, bağımsız yayınlanmış çekirdek sözleşmeler olarak değil, mevcut Quote veya Columns render yollarına devreden yalnızca-takma-ad davranışı olarak dürüstçe belgelenmeye devam ediyortabs,slider,menuvefaq-list, yayınlanmış çekirdek sözleşmeler değil, taslak veya takma ad dönemi uyumluluk slug'ları olarak kalıyor;showcase-listvecontact-infoise yayınlanan çekirdek sözleşme girdisi olmayan, yalnızca genel tarafta çalışan uyumluluk renderer'ları olarak kalıyor