Images de fond pour articles - bannière hero et corps¶
Objectif¶
Permettre d'ajouter des images de fond aux articles comme dans ia-code-article.html :
- backgroundImageUrl : bannière hero dans le header
- bodyBackgroundImageUrl : fond du corps de texte (optionnel)
Implémentation¶
Backend (Ajout bodyBackgroundImageUrl)¶
- Prisma schema (
prisma/schema.prisma) : champbodyBackgroundImageUrl String?ajouté - Schémas Zod : validation
bodyBackgroundImageUrlajoutée aux deux schémas - DTO (
ArticleDTO.ts) : ajout du champ dansDonneesCreerArticleetDonneesModifierArticle - Entité (
Article.ts) : ajout dansArticleData,ArticlePublicet la classe - Handlers : transmettent
bodyBackgroundImageUrl - Repository : mapper et méthode
modifiermis à jour
Frontend¶
- AdminApiClient.ts : ajout du champ dans l'interface
Article - ArticleFormPage.tsx :
- Deux champs images de fond : "bannière" et "corps"
- Upload et aperçu pour chaque champ
- Recommandation: 1920x400 pour la bannière
- Article.ts (frontend) : propriété
bodyBackgroundImageUrlajoutée - ArticlePage.tsx :
- Header hero avec
backgroundImageUrl(256px, overlay sombre) - Corps de texte avec
bodyBackgroundImageUrl(optionnel, background cover)
Fichiers modifiés¶
BackEnd/prisma/schema.prismaBackEnd/src/Modules/Articles/infrastructure/schemas/zod/creerArticle.schemas.tsBackEnd/src/Modules/Articles/infrastructure/schemas/zod/modifierArticle.schemas.tsBackEnd/src/Modules/Articles/domain/types/ArticleDTO.tsBackEnd/src/Modules/Articles/domain/entities/Article.tsBackEnd/src/Modules/Articles/application/usecases/CreerArticleUseCase.tsBackEnd/src/Modules/Articles/interface-adapters/handlers/CreerArticleHandler.tsBackEnd/src/Modules/Articles/interface-adapters/handlers/ModifierArticleHandler.tsBackEnd/src/Modules/Articles/infrastructure/repositories/prisma/ArticleRepositoryPrisma.tsFrontEnd/src/modules/admin/application/AdminApiClient.tsFrontEnd/src/modules/admin/ui/pages/ArticleFormPage.tsxFrontEnd/src/modules/shared/domain/entities/Article.tsFrontEnd/src/modules/blog/ui/pages/ArticlePage.tsx
Pour aller plus loin¶
- Picker de galerie d'images existantes
- Validation dimensions côté frontend
- Lazy loading des images de fond