Skip to content

Multi-sites & skins

Trois sites : Crans-Montana (skin par defaut default/accm), Icogne, L-Info.

Routage (ContentFinders/)

  • BlogContentFinder (IContentLastChanceFinder) : route les URLs d'articles de blog (/.../{slug}). Recupere la racine du domaine (request.Domain.ContentId), trouve la BlogPage correspondante, valide l'existence de l'article via headlessCmsApiService.GetArticleIdFromSlug(), stocke l'id resolu dans HttpContext.Items["resolvedArticleId"], renvoie 200.
  • NotFoundContentFinder : resout la NotFoundPage de la racine du domaine courant (fallback : premiere racine), renvoie 404.

Le mapping site est base sur le binding de domaine Umbraco (request.Domain.ContentId).

Selection de vue par skin

Deux patterns :

  • Vue dediee : IcogneHomePage.cshtml, LinfoHomePage.cshtml (vs HomePage.cshtml).
  • Suffixe : ArticlePage--icogne.cshtml, ArticlePage--linfo.cshtml (vs ArticlePage.cshtml).

Dans ArticlePageController, le skin est converti en Domain (ConvertSkinToDomain) puis la vue est choisie (ArticlePage / ArticlePage--icogne / ArticlePage--linfo). Mapping skin -> domaine (StringExtensions) : linfo/l-info -> LINFO, icogne -> ICOGNE, generic -> OTHER, defaut -> ACCM.

Layouts (Extensions/PublishedContentExtensions.cs)

GetLayoutPath(content) choisit le layout par ascendance :

  • AncestorOrSelf<IcogneHomePage>() -> _IcogneLayout.cshtml
  • AncestorOrSelf<LinfoHomePage>() -> _LinfoLayout.cshtml
  • AncestorOrSelf<DomainPage>() -> _DomainLayout.cshtml
  • sinon -> _MasterLayout.cshtml (accm par defaut)

Types de page principaux

homePage, icogneHomePage, linfoHomePage, articlePage, blogPage, aboutPage, activitiesPage/activityPage, contactPage, eventsPage, searchPage, servicesPage, testimonialsPage, freeContentPage/freeDomainContentPage, domainPage, notFoundPage, internalServerErrorPage, memberPage. Detail dans ../modules/content-model.md.

Themes SCSS

Chaque skin a son theme sous src/Web/styles/themes/{default,icogne,l-info}/ (un main.scss par theme), compile vers wwwroot/css/{skin}/main.css. Voir frontend-build.md. Difference visible notamment sur la couleur d'accent (accm rouge, icogne bleu, l-info custom).

Regle

Conserver le pattern de vues/layouts/themes par skin pour toute personnalisation specifique a un site.

Contributors

No contributors

Changelog

No recent changes