Modele de contenu
Document types serialises dans src/Umbraco/uSync/v9/ContentTypes/ (~90 fichiers, widgets inclus).
Document types principaux
| Alias | Role |
|---|---|
domain | Racine du site. Proprietes : skinName, header/footer widgets (BlockList), GA4 property, GTM, dossier favicons |
page | Page generique : theme, widgets (BlockGrid) + compositions SEO/Sitemap |
post | Article / actualite (auteur, date, image, intro, texte riche + SEO) |
feed | Conteneur d'articles (Posts) |
event / events | Evenement (dates, lieu, description) et son conteneur |
announcement / announcements | Notices / annonces avec planification |
affiliate | Organisation / entite (contact, adresse, reseaux sociaux, horaires) - destinataire des formulaires, footer |
contacttopic | Categories de sujets pour les formulaires de contact |
company / general / websitesettings | Donnees de configuration / parametres de site |
sitemap | Noeud sitemap |
scheduledmedia / scheduledmedias | Media planifie et son conteneur |
Specificites chezzen
| Alias | Role |
|---|---|
chezzenStore | Magasin / point de vente (adresse, ville, coordonnees) |
stores | Conteneur de magasins |
chezzentestimonial | Temoignage client |
chezzentestimonials / testimonialsroot | Conteneurs de temoignages |
Ces types alimentent les widgets specifiques Chezzen (WidgetChezzenLocationCard, WidgetChezzenLocationDetail, WidgetChezzenTestimonials).
Catalogues (publish -> unzip)
Le document type catalogs (noeud unique Settings/Catalogues, herite de websitesettings) porte 4 champs upload de fichiers .zip, un par cible :
| Propriete | Dossier wwwroot/ cible | Usage |
|---|---|---|
catalogProd | ecatalogue/<lang>/ | catalogue feuilletable prod (servi au public) |
catalogStag | ecataloguetest/<lang>/ | catalogue de test |
festiveCatalogProd | cfetes/<lang>/ | catalogue de fetes prod |
festiveCatalogStag | cfetestest/<lang>/ | catalogue de fetes test |
Mecanisme : a la publication du noeud (handler ContentPublishingEvent sur ContentPublishingNotification, enregistre dans Program.cs), pour chaque langue publiee (fr-CH->fr, sinon de), le .zip reference est decompresse dans le dossier cible. Le code prend l'index.html le moins profond comme racine (aplatit un eventuel dossier parent). Le catalogue est ensuite servi en statique : lien en dur dans Menu/Default.cshtml (/ecatalogue/<lang>/index.html#page/1).
Contraintes / robustesse (voir ContentService/ContentPublishingNotification.cs) :
- Chemins construits via
Path.Combine(cross-platform : l'image runtime est Linux, ne pas reintroduire de\\en dur). - Extraction dans un dossier
*.tmppuis bascule (Directory.Move) : pas de suppression destructive du catalogue live si le zip est corrompu/absent. - Toute erreur est journalisee (Serilog) et n'interrompt jamais la publication (try/catch par champ).
- Les dossiers cibles (
ecatalogue,ecataloguetest,cfetes,cfetestest) etmediasont gitignored donc absents de l'image : ils doivent etre montes en volumes persistants Docker sur/app/wwwroot/...(chemins Linux), sinon les catalogues disparaissent a chaque redeploiement. Voirbusiness-rules.mdet le README. - Limites connues : seules les cultures
fr/desont gerees (en-GB tombe surde).
Compositions (groupes de proprietes partages)
compositionSeo: meta (title, description, robots, canonical, url alias) -> page, postcompositionSitemap: exclusion sitemap, frequence, prioritecompositionWidget: proprietes de base communes aux widgets (incl. Advanced settings : Anchor ID, classes custom - voirdoc/Widgets-Modules-Packages.md)compositionDivItem: proprietes des blocs de layout
Blocs de layout (BlockGrid)
blockgrid (conteneur), blockgridsettingscolumn, blockgridsettingsitem, onecolumnlayoutblock, twocolumnlayoutblock, richtextblock, headlineblock, puis l'ensemble des widget* (voir widgets.md).
Structure editoriale type
Domain chezzen -> Pages (arbre hierarchique, breadcrumb auto) ; chaque page compose son contenu via le BlockGrid. Les actualites sont des post regroupes sous un feed ; les evenements des event sous events. Les magasins (chezzenStore) sous stores, les temoignages (chezzentestimonial) sous la racine temoignages.
SEO & gestion
Meta tags par page (composition SEO), alias d'URL, exclusion sitemap avec priorite/frequence, GA4 et GTM configurables sur le Domain.

