Documentation Technique : Carte "Dernières Actualités"
Vue d'ensemble de l'architecture
La fonctionnalité de carte "Dernières Actualités" est implémentée selon un modèle MVC (Modèle-Vue-Contrôleur) avec les composants clés suivants :
- Modèle :
ActualiteCardBean- Stocke les données de configuration de la carte - Modèle de Vue :
ActualiteCardViewModel- Prépare les données pour l'affichage dans la vue - Constructeur de Vue :
ActualiteCardViewBuilder- Transforme le modèle en modèle de vue - Vues : Fichiers JSP pour le rendu front-office et back-office
- Logique Côté Client : Fichiers JavaScript pour le chargement dynamique du contenu et les interactions
Détails des composants
Modèle de Données
ActualiteCardBean
- Package :
com.kosmos.actualite.card - Étend :
CardBean - Objectif : Stocke les données de configuration de la carte d'actualités
- Propriétés Principales :
title: Titre de la cartesubtitle: Sous-titre de la cartetypes: Types d'actualités sélectionnés à affichernewsPerTab: Nombre d'actualités par ongletdisplayStyle: Style d'affichagedisplayContext: Contexte de filtrage des actualitéslinkLabel: Libellé du lien "voir toutes les actualités"
- Chemins des Vues :
- Front-office :
/extensions/actualite/WEB-INF/jsp/actualite/card/fo/actualiteCardView.jsp - Back-office :
/extensions/actualite/WEB-INF/jsp/actualite/card/bo/actualiteCardView.jsp - Fragment d'édition :
/extensions/actualite/WEB-INF/jsp/actualite/card/bo/actualiteCardEdit.jsp
- Front-office :
Modèle de Vue
ActualiteCardViewModel
- Package :
com.kosmos.actualite.card - Étend :
CardViewModel<ActualiteCardBean> - Objectif : Prépare les données pour l'affichage dans la vue
- Propriétés Principales :
title: Titre de la cartesubtitle: Sous-titre de la cartenewsTypes: Liste des types d'actualités avec leurs libellés et URLs de recherchenewsPerTab: Nombre d'actualités par ongletsearchAllNewsUrl: URL pour rechercher toutes les actualitéssearchAllNewsResultsUrl: URL pour afficher tous les résultats de recherchelinkLabel: Libellé du lien "voir toutes les actualités"
- Classe Interne :
NewsTypeViewModel- Représente un type d'actualité avec valeur, libellé et URL de recherche
Constructeur de Vue
ActualiteCardViewBuilder
- Package :
com.kosmos.actualite.card - Étend :
AbstractViewModelBuilder<ActualiteCardBean, ActualiteCardViewModel> - Objectif : Transforme le modèle en modèle de vue
- Méthodes Principales :
getViewModel: Crée un modèle de vue à partir du bean de cartegetNewsTypes: Récupère et filtre les types d'actualités à afficherfilterTypesFromSearch: Filtre les types d'actualités selon les résultats de recherchebuildSearchUrl: Construit les URLs de recherche pour les types d'actualitésgetTypeLabel: Récupère les libellés des types d'actualités
Filtre de Recherche
DateEvenementFilterBuilder
- Package :
com.kosmos.actualite.search - Implémente :
SearchQueryBuilder<SearchFilterRangeConfiguration> - Objectif : Construit les requêtes de recherche pour filtrer les actualités par date
- Constantes Principales :
DATE_FIN: Nom du champ pour la date de fin d'événementDATE_DEBUT: Nom du champ pour la date de début d'événement
- Méthode Principale :
build: Crée une requête qui filtre les événements en cours et à venir
Vues
Vue Front-office (actualiteCardView.jsp)
- Emplacement :
/extensions/actualite/WEB-INF/jsp/actualite/card/fo/actualiteCardView.jsp - Objectif : Affiche la carte d'actualités pour les utilisateurs finaux
- Fonctionnalités Principales :
- Affiche le titre et le sous-titre
- Crée des onglets pour les différents types d'actualités
- Configure les conteneurs pour le chargement dynamique
- Ajoute un lien pour voir toutes les actualités
Vue Back-office (actualiteCardView.jsp)
- Emplacement :
/extensions/actualite/WEB-INF/jsp/actualite/card/bo/actualiteCardView.jsp - Objectif : Affiche un aperçu de la carte dans le back-office
- Fonctionnalités Principales :
- Affiche le nom de la carte
- Indique si la carte est active ou inactive
Vue d'édition Back-office (actualiteCardEdit.jsp)
- Emplacement :
/extensions/actualite/WEB-INF/jsp/actualite/card/bo/actualiteCardEdit.jsp - Objectif : Fournit un formulaire pour configurer la carte
- Fonctionnalités Principales :
- Champs de saisie pour titre, sous-titre et libellé du lien
- Sélection multiple pour les types d'actualités
- Champ numérique pour le nombre d'actualités par onglet
- Sélecteur de style d'affichage
- Sélecteur de contexte d'affichage
Logique Côté Client
Gestionnaire de Carte (actualite_cardsHandlers.js)
- Emplacement :
/js/actualite_cardsHandlers.js - Objectif : Gère la validation et les mises à jour de la vue dans le back-office
- Fonctions Principales :
check: Valide si la carte est correctement configuréeupdateView: Met à jour la vue de la carte dans le back-office
Chargeur de Contenu Dynamique (lastNewsCard.js)
- Emplacement :
/static/js/lastNewsCard.js - Objectif : Charge dynamiquement le contenu dans le front-office
- Fonctions Principales :
loadAndDisplayFetchResult: Récupère et affiche le contenu avec un indicateur de chargementhandleTabClick: Configure les écouteurs d'événements pour les clics sur les ongletsinitAllNewsTabs: Initialise l'onglet "Toutes les actualités" au chargement de la page
Flux de Données
- Configuration : Les administrateurs configurent la carte via le formulaire d'édition back-office
- Création du Modèle : Le système crée un
ActualiteCardBeanavec les données de configuration - Construction du Modèle de Vue :
ActualiteCardViewBuildertransforme le bean enActualiteCardViewModel- Récupère et filtre les types d'actualités
- Construit les URLs de recherche pour chaque type d'actualités
- Rendu : Le JSP front-office affiche la structure initiale de la carte avec les onglets
- Chargement Dynamique :
- Au chargement de la page,
lastNewsCard.jscharge le contenu de l'onglet "Toutes les actualités" - Quand un utilisateur clique sur un onglet, le script charge le contenu pour ce type d'actualité spécifique
- Le contenu est récupéré depuis les URLs de recherche fournies dans le modèle de vue
- Au chargement de la page,
Paramétrage de l'extension Article
Le paramétrage de la carte est réalisé dans le fichier actualite.properties.
Surcharge
La surcharge des propriétés peut se faire en créant un fichier :
application_actualite.propertiesdans les sources d'un projetenv_actualite.propertiesdans le répertoire de configuration d'un environnement (référencé par la propriétéconf.dir)
Propriétés
| Paramètre | Description | Valeurs possibles | Valeur par défault |
|---|---|---|---|
| lastNewsCard.allowed.styles | Liste des styles dans le sélecteur de style de la carte "Dernières actualités" (cf actualite-webapp-front/src/main/resources/tables/actualite/actualite_style_affichage.dat) | chaine sérialisée | 0001,0013 |
| lastNewsCard.default.style | Style d'affichage à utiliser par défaut | chaine | 0001 |
Localisation
La fonctionnalité supporte la localisation via des fichiers de propriétés :
actualite-contrib_fr_FR.properties: Chaînes en françaisactualite-contrib_en.properties: Chaînes en anglais
Les chaînes de localisation principales incluent le nom de la carte, les libellés des champs et les messages utilisateur.
Points d'Intégration
- Search : Utilise le système de recherche pour récupérer et filtrer les actualités
- Layout : S'intègre au système de mise en page comme composant de carte
- Système de Libellés : Utilise le système de libellés pour les types d'actualités