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 laBlogPagecorrespondante, valide l'existence de l'article viaheadlessCmsApiService.GetArticleIdFromSlug(), stocke l'id resolu dansHttpContext.Items["resolvedArticleId"], renvoie 200. - NotFoundContentFinder : resout la
NotFoundPagede 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(vsHomePage.cshtml). - Suffixe :
ArticlePage--icogne.cshtml,ArticlePage--linfo.cshtml(vsArticlePage.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.cshtmlAncestorOrSelf<LinfoHomePage>()->_LinfoLayout.cshtmlAncestorOrSelf<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.

