feat: #3610651 Package the Educare site template recipe: Canvas config, content, media, patterns, Events and News

Closes #3610651: https://www.drupal.org/project/educare/issues/3610651

What

This MR grew from the original install-failure fix into the full packaging of the Educare site-template recipe (1.0.x). Verified with a fresh install from a dropped database, both with drush site:install and through the Varbase browser installer's site-template picker.

  1. Canvas config renamed to the Educare theme namespace. The recipe shipped 70 canvas.component.sdc.vartheme_bs5.*.yml files plus 2 canvas.page_region.vartheme_bs5.*.yml whose contents already declared vartheme_bs5_educare, so the install died with "The configuration name … does not match the ID …". Renamed, and the config refreshed from the working Educare site.
  2. The Blog view repointed. varbase_blog_base binds views.view.blog to vartheme_bs5:* SDCs, which do not exist on the Educare theme, so the Latest Updates block failed with a Twig LoaderError. Repointed with a config action, so Educare reuses varbase_blog_base instead of forking the view.
  3. Content refreshed from the working Educare site: 12 Canvas pages, media, files and menu links.
  4. Editor-friendly media. Raw upload names (image-124-(1).png, images.png, the typo quate-mark.png) are renamed descriptively, and every media item has a human name plus alt and title text describing the picture.
  5. No duplication of the sub-recipes. Dropped the media varbase_media_assets already ships under the same UUIDs, dropped varbase_demo_content (no Varbase blog demo content or images), dropped the Varbase-branded Features page left over from the varbase_starter clone, dropped the duplicated Privacy policy link.
  6. Patterns. The 8 ready patterns from the Educare site, plus 6 common sections adapted from Varbase Starter (Hero Slider, CTA Banner, CTA Cards, Contact Form with Info, Latest News Posts, Page Intro Banner) — SDCs repointed to the Educare theme, component versions pinned to the Educare components, imagery rebound to the education photography this recipe ships, and the Varbase marketing copy rewritten as education copy. The exported patterns referenced media by the source site's numeric entity ids (e.g. target_id: 69), which point at nothing on a fresh install; they are now resolved through the media UUIDs.
  7. Events. Apply drupal/events. Following varbase_blog_base, the Event content type gets a VMI card view display, a Canvas full content template (title, smart date, body) and a Canvas card template, and the Events view renders through the Educare Canvas grid. Six demo events ship. Without a full content template an event page rendered completely empty, because the theme places no blocks and Canvas owns the content region.
  8. News keeps the Varbase Blog content type; only the wording changes (page titled News, aliased /news, filter and block labels read as news).
  9. Privacy. drupal_cms_privacy_basic ships its Privacy policy page unpublished while linking to it, so the Klaro consent banner 404s. Core recipes import content with Existing::Skip, so it cannot be republished from Educare; Educare publishes its own page at /privacy and points the consent banner at it.
  10. Layout and asset fixes. The Upcoming Events section was a two-column section, so the events listing was squeezed into half the page — now full width. The footer page region pointed the "Powered by Vardot" logo at themes/custom/… while the theme installs into themes/contrib/…, so it 404'd on every page.

Test results

Verified on a fresh install from a dropped database, both with drush site:install and through the Varbase browser installer's site-template picker: 12 Canvas pages, 6 events, 17 media, 14 patterns; every page returns 200 with no Twig error; every shipped menu link resolves.

AI-Generated: Yes (Packaging drafted with Claude Code; reviewed by rajab-natshah.)

Checkpoints

  • File an issue about this project
  • Addition/Change/Update/Fix to this project
  • Testing to ensure no regression
  • Automated unit/functional testing coverage
  • Developer Documentation support on feature change/addition
  • User Guide Documentation support on feature change/addition
  • UX/UI designer responsibilities
  • Accessibility and Readability
  • Reviewed by a human
  • Code review by maintainers
  • Full testing and approval
  • Credit contributors
  • Review with the product owner
  • Update Release Notes
  • Release
Edited by Rajab Natshah

Merge request reports

Loading