Modifier le fichier

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 :

  1. Modèle : ActualiteCardBean - Stocke les données de configuration de la carte
  2. Modèle de Vue : ActualiteCardViewModel - Prépare les données pour l'affichage dans la vue
  3. Constructeur de Vue : ActualiteCardViewBuilder - Transforme le modèle en modèle de vue
  4. Vues : Fichiers JSP pour le rendu front-office et back-office
  5. 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 carte
    • subtitle : Sous-titre de la carte
    • types : Types d'actualités sélectionnés à afficher
    • newsPerTab : Nombre d'actualités par onglet
    • displayStyle : Style d'affichage
    • displayContext : Contexte de filtrage des actualités
    • linkLabel : 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

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 carte
    • subtitle : Sous-titre de la carte
    • newsTypes : Liste des types d'actualités avec leurs libellés et URLs de recherche
    • newsPerTab : Nombre d'actualités par onglet
    • searchAllNewsUrl : URL pour rechercher toutes les actualités
    • searchAllNewsResultsUrl : URL pour afficher tous les résultats de recherche
    • linkLabel : 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 carte
    • getNewsTypes : Récupère et filtre les types d'actualités à afficher
    • filterTypesFromSearch : Filtre les types d'actualités selon les résultats de recherche
    • buildSearchUrl : Construit les URLs de recherche pour les types d'actualités
    • getTypeLabel : 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énement
    • DATE_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ée
    • updateView : 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 chargement
    • handleTabClick : Configure les écouteurs d'événements pour les clics sur les onglets
    • initAllNewsTabs : Initialise l'onglet "Toutes les actualités" au chargement de la page

Flux de Données

  1. Configuration : Les administrateurs configurent la carte via le formulaire d'édition back-office
  2. Création du Modèle : Le système crée un ActualiteCardBean avec les données de configuration
  3. Construction du Modèle de Vue : ActualiteCardViewBuilder transforme le bean en ActualiteCardViewModel
    • Récupère et filtre les types d'actualités
    • Construit les URLs de recherche pour chaque type d'actualités
  4. Rendu : Le JSP front-office affiche la structure initiale de la carte avec les onglets
  5. Chargement Dynamique :
    • Au chargement de la page, lastNewsCard.js charge 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

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.properties dans les sources d'un projet
  • env_actualite.properties dans le répertoire de configuration d'un environnement (référencé par la propriété conf.dir)

Propriétés

ParamètreDescriptionValeurs possiblesValeur par défault
lastNewsCard.allowed.stylesListe 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ée0001,0013
lastNewsCard.default.styleStyle d'affichage à utiliser par défautchaine0001

Localisation

La fonctionnalité supporte la localisation via des fichiers de propriétés :

  • actualite-contrib_fr_FR.properties : Chaînes en français
  • actualite-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