Skip to content

Modele de contenu

Document types serialises dans src/Umbraco/uSync/v9/ContentTypes/ (~90 fichiers, widgets inclus).

Document types principaux

AliasRole
domainRacine du site. Proprietes : skinName, header/footer widgets (BlockList), GA4 property, GTM, dossier favicons
pagePage generique : theme, widgets (BlockGrid) + compositions SEO/Sitemap
postArticle / actualite (auteur, date, image, intro, texte riche + SEO)
feedConteneur d'articles (Posts)
event / eventsEvenement (dates, lieu, description) et son conteneur
announcement / announcementsNotices / annonces avec planification
affiliateOrganisation / entite (contact, adresse, reseaux sociaux, horaires) - destinataire des formulaires, footer
contacttopicCategories de sujets pour les formulaires de contact
company / general / websitesettingsDonnees de configuration / parametres de site
sitemapNoeud sitemap
scheduledmedia / scheduledmediasMedia planifie et son conteneur

Specificites chezzen

AliasRole
chezzenStoreMagasin / point de vente (adresse, ville, coordonnees)
storesConteneur de magasins
chezzentestimonialTemoignage client
chezzentestimonials / testimonialsrootConteneurs 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 :

ProprieteDossier wwwroot/ cibleUsage
catalogProdecatalogue/<lang>/catalogue feuilletable prod (servi au public)
catalogStagecataloguetest/<lang>/catalogue de test
festiveCatalogProdcfetes/<lang>/catalogue de fetes prod
festiveCatalogStagcfetestest/<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 *.tmp puis 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) et media sont 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. Voir business-rules.md et le README.
  • Limites connues : seules les cultures fr/de sont gerees (en-GB tombe sur de).

Compositions (groupes de proprietes partages)

  • compositionSeo : meta (title, description, robots, canonical, url alias) -> page, post
  • compositionSitemap : exclusion sitemap, frequence, priorite
  • compositionWidget : proprietes de base communes aux widgets (incl. Advanced settings : Anchor ID, classes custom - voir doc/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.

Contributors

No contributors

Changelog

No recent changes