Skip to content

Gilliard block map - ACF field-groups -> Umbraco blocks (Stage B, 2026-07-24)

Measured from the client's WordPress export (tools/*.WordPress.*.xml, git-ignored), parsed by tools/seed-gen/wxr-extract.mjs. The aa-base-theme uses FIXED PHP templates + named ACF field groups (not flexible content). This maps each real group to the shared Umbraco block library; it is the Stage B reconciliation for MIGRATION-PROMPT.md section 1b. We map ONTO the Block Grid + compositions (more editable), we do NOT clone WordPress's frozen groups.

Template -> Umbraco doctype

WP templateused byUmbraco doctype
page-home-2021.phphome (bienvenue-maison-gilliard)homepage (contentBlocks grid)
page-team.php~20 pages: a-propos, vinotheque, nos-valeurs, team, emploi, venues, ambassadeurs...contentpage
page-contact.phpcontactcontentpage
page-events.php / -temp.phpevenements, rencontres-exterieureseventlist
page-experience-*.php (4)activites, activites-oenotouristiques, lieux-d-accueil, events-a-la-cavecontentpage (+ activity/venue where structured)
page-gammes.phpgammescontentpage + productGrid
page-club*.php (3)communaute (pdn/pdn-3), bon-de-reduction*contentpage
page-blog.phpblogbloglist
page-promo.phppromoscontentpage + productGrid
page-newsletter.phpnewslettercontentpage
Single Product (Woo)product detailproduct (NEW, e-commerce-adjacent)
Single Events / Single Activitésevent / activity detailevent (exists) / activity (gap)

ACF group -> block (status: KEEP maps 1:1 / EXTEND needs fields / NEW to build)

ACF group . fieldshapeUmbraco blockstatus
Page Sections . Hero Page Banner + Hero Custom Bannerimage + {image,title,subtitle,text,radio layout,btn}pageHero compositionEXTEND (add heroSubtitle, heroText, heroBtn, heroLayout)
Page Sections . Articles de blog{text, relationship}childListing (related posts)KEEP
Section Left/Right . Image Content Rowrepeater{image, group}mediaText (list)KEEP
Intro Blockgroup{text title, wysiwyg body}richIntroKEEP
Home . Main Sliderslider refheroSlider + heroSlide (structured slider)KEEP
Home . Hero Boxesrepeater{text,text,image,text}cardCollection + cardKEEP
Home . Wine Selection{text, repeater, ...}cardCollection (products) / productGridKEEP (+ productGrid link)
Home . Activités{group, repeater}cardCollectionKEEP
Home . Section Welcome / Miss Swiss / Hero Banner(-Welcome)image+text bandsmediaText / heroSlideKEEP
Home . Newsletter{image, textarea, text}newslettersignupKEEP
Home . Feed insta{text, text}mediagalleryKEEP
Page Maison Gilliard . Main Info Blockrepeater{text, wysiwyg, repeater info-box}richIntro + cardCollection/cardKEEP
Page Maison Gilliard . Team Info{hide, title, text, repeater categories, repeater person_box}teamGrid + teamGroup + personKEEP
Page Maison Gilliard . Vacancies{hide, title, text}richIntro + childListingKEEP
Page Maison Gilliard . Contact Form CTA{title, label, form title, shortcode}formBlock (+ ctaBanner)KEEP
Contact . Contact Info Boxrepeater{text, wysiwyg, image}cardCollection + cardKEEP
Contact . Contact form Title + Acf Maptext + google_mapformBlock + mapKEEP
Page Events . Eventsrepeater{startDate, endDate, title, image, wysiwyg, link, ...}eventList -> event + scheduleFactsKEEP
Single Events . Event Row / date / formrepeater{image,group} + date + formmediaText + scheduleFacts + formBlockKEEP
Single Activités . Activités Row / En bref / Carrousel / Booking / CTArows + facts + carousel + bookingmediaText + cardCollection + formBlock (+ activityFacts)EXTEND (activity facts: price/location/icon)
Nos lieux d'accueil . Activités Row / EventsrepeatersmediaText + cardCollection + venue/venueListKEEP
Single Product . Additional Infogroup{6 text specs}product doctype + productSpecsNEW (e-commerce-adjacent, visual only)
Page Club PDN . Related Products{text, text} product refsproductGridNEW
Website Fields / User / Category / *Type / default quantity / promo bannersite/taxonomy/product configsiteSettings + taxonomy (not page bands)KEEP / n-a

Gaps to build in Stage C (the ONLY new work)

  1. EXTEND pageHero: add heroSubtitle (RTE/textarea), heroText, heroCtaLabel+heroCtaLink, heroLayout (radio left|center). Live's "Hero Custom Banner" carries all of these; our pageHero only has image/pretitle/title/banniere. (Same subtitle gap seen in the PDN hero work.) Shared composition -> benefits all brands. One ModelsBuilder cycle.
  2. NEW productGrid block + a product detail rendering (e-commerce-adjacent, IN scope visually per the 2026-07-24 clarification): product cards grid + a product page with Additional Info specs. Representative content; cart/checkout/real data wired later; buy links -> live.
  3. EXTEND activity detail: activityFacts composition (price / location / icon / booking-toggle) for Single Activités, OR reuse the chevaliers activity doctype pattern. Decide in Stage C.

Dedupe / lean confirmation

  • Many groups collapse to the SAME three blocks (mediaText, cardCollection, richIntro) - confirms the shared library is correct and no per-band doctypes are needed.
  • Page Club PDN's 3 near-duplicate ACF groups (PDN / copy / PDN-2) -> ONE contentpage.
  • page-team.php's ~20 pages -> ONE contentpage (they are the same band set with different content).
  • Element types stay shared across brands with unchanged aliases; per-brand BlockGrid DataType gates authoring only.

Contributors

No contributors

Changelog

No recent changes