Classes et modules
Cette page fournit un inventaire détaillé de chaque classe PHP et module JavaScript du plugin, ainsi que leurs responsabilités. Pour une vue de plus haut niveau sur l’articulation de ces composants, consultez la Vue d’ensemble de l’architecture.
Classes PHP
Section intitulée « Classes PHP »Structure des espaces de noms
Section intitulée « Structure des espaces de noms »Irisolaris\Map\├── Core\│ └── Plugin.php├── Admin\│ └── Admin.php├── API\│ ├── API.php│ └── DensityController.php└── Frontend\ └── Frontend.phpCore\Plugin
Section intitulée « Core\Plugin »Fichier : src/Core/Plugin.php
La classe orchestratrice principale. Gère l’initialisation du plugin, l’enregistrement des hooks WordPress et les gestionnaires AJAX principaux.
Responsabilités :
- Enregistrement des types de contenu personnalisés (
irisolaris_plant,irisolaris_lead) - Enregistrement des taxonomies (
irisolaris_status,irisolaris_region) - Chargement des scripts frontend et admin
- Gestionnaire AJAX de vérification d’éligibilité (avec règles par niveaux basées sur la densité)
- Gestionnaire AJAX de géocodage
- Création de leads (CPT WordPress)
- Notification par e-mail lors de nouveaux leads
Admin\Admin
Section intitulée « Admin\Admin »Fichier : src/Admin/Admin.php
La classe la plus volumineuse du plugin. Gère toutes les fonctionnalités côté administration.
Responsabilités :
- Pages de menu d’administration (5 pages : importateur, paramètres, grille de densité, importateur de densité, liste de densité)
- Meta boxes pour l’édition des centrales et des leads (3 meta boxes)
- Import de centrales depuis CSV/XLSX (AJAX en 3 phases : initialisation, traitement, finalisation)
- Import de grille de densité (AJAX en 3 phases)
- Suppression en masse de centrales (AJAX en 3 phases)
- Planification du cron RGPD et nettoyage des leads
- Colonnes d’administration, filtres et colonnes triables pour les listes de centrales/leads
- Page de paramètres avec l’API WordPress Options
- Gestion du cache (purge manuelle)
Gestionnaires AJAX d’administration (16) :
| Gestionnaire | Rôle |
|---|---|
irisolaris_import_init | Import de centrales : validation du fichier, comptage des lignes |
irisolaris_import_process | Import de centrales : traitement par lots (200 lignes) |
irisolaris_import_finalize | Import de centrales : journalisation, nettoyage des fichiers temporaires |
irisolaris_clear_import_history | Purge de la table du journal d’import |
irisolaris_clear_cache | Purge du cache transient GeoJSON |
irisolaris_remove_plants_init | Suppression en masse de centrales : initialisation |
irisolaris_remove_plants_process | Suppression en masse de centrales : suppression par lots |
irisolaris_remove_plants_finalize | Suppression en masse de centrales : finalisation |
irisolaris_import_density_init | Import de densité : initialisation |
irisolaris_import_density_process | Import de densité : traitement par lots |
irisolaris_import_density_finalize | Import de densité : finalisation |
irisolaris_clear_density_import_history | Purge des journaux d’import de densité |
irisolaris_get_density_details | Obtenir un enregistrement de densité par codgeo |
irisolaris_delete_all_density | Purge de la table de densité |
Fichier : src/API/API.php
Gère tous les endpoints de l’API REST et la logique d’invalidation du cache.
Responsabilités :
- 7 endpoints REST (voir API REST)
- Génération GeoJSON avec cache par transients et invalidation par incrémentation de version
- Proxy de géocodage vers BAN API
- Endpoint de vérification d’éligibilité
- Soumission de formulaire HubSpot avec enrichissement côté serveur
- En-têtes HTTP de cache (
Cache-Control,ETag) - Hooks d’invalidation du cache sur
save_post,delete_post,set_object_terms
API\DensityController
Section intitulée « API\DensityController »Fichier : src/API/DensityController.php
Contrôleur léger pour la recherche de données de densité.
Endpoints :
GET /density/{codgeo}— Recherche par code commune INSEEGET /density/postcode/{postcode}— Recherche par code postal (rétrocompatibilité)
Frontend\Frontend
Section intitulée « Frontend\Frontend »Fichier : src/Frontend/Frontend.php
Gère le rendu frontend et le chargement des scripts.
Responsabilités :
- Chargement de
frontend.jset du CSS sur les pages contenant le shortcode de la carte - Gestionnaire du shortcode
[irisolaris_map](rendu du conteneur de carte + passage de la configuration viawp_localize_script) - Filtre
irisolaris_map_plants_datapour la personnalisation des données GeoJSON
Modules JavaScript
Section intitulée « Modules JavaScript »Côté frontend, le plugin suit une architecture modulaire compilée en un unique bundle via Webpack.
Modules source (assets/src/js/)
Section intitulée « Modules source (assets/src/js/) »Le frontend est construit à partir de fichiers source ES6+ modulaires, compilés via Webpack en un unique bundle (assets/build/frontend.js) :
| Module | Responsabilité |
|---|---|
frontend.js | Orchestrateur principal — importe et connecte tous les modules |
constants.js | Niveaux de périmètre, niveaux de densité, configuration des clusters, correspondance des statuts, timings d’animation |
utils.js | Distance Haversine, correspondance des statuts, formatage des nombres, debounce, détection du viewport |
LoadingManager.js | Overlays de chargement et animations |
PopupManager.js | Création et animation des popups pour centrales/clusters/adresses |
FilterManager.js | Gestion de l’état des filtres et interface utilisateur |
EligibilityChecker.js | Vérification d’éligibilité côté client avec niveaux de densité |
PlantListRenderer.js | Rendu de la liste des centrales en barre latérale avec chargement paresseux |
geocoder.js | Autocomplétion d’adresse via BAN API |
Sortie de build (assets/build/)
Section intitulée « Sortie de build (assets/build/) »| Fichier | Rôle |
|---|---|
assets/build/frontend.js | Bundle compilé : classes IrisolarisMap + IrisolarisGeocoder |
assets/build/frontend-style.css | Styles du composant carte |
assets/build/public-style.css | Styles supplémentaires publics |
Autres scripts
Section intitulée « Autres scripts »| Fichier | Rôle |
|---|---|
admin/js/import.js | Interface d’import de centrales (basée sur jQuery, AJAX en 3 phases) |
src/blocks/map/edit.js | Composant éditeur de bloc Gutenberg |
src/blocks/map/view.js | Vue frontend du bloc Gutenberg |
Activation et désinstallation
Section intitulée « Activation et désinstallation »Le plugin enregistre des hooks pour l’activation et la désinstallation afin de gérer les tables de base de données, les options par défaut et les capacités de rôle.
Activateur (Irisolaris_Map_Activator)
Section intitulée « Activateur (Irisolaris_Map_Activator) »S’exécute lors de l’activation du plugin :
- Création des tables de base de données personnalisées (
irisolaris_import_logs,irisolaris_density) - Définition des options WordPress par défaut (10 options)
- Création des termes de taxonomie par défaut (statut, puissance, région)
- Ajout de capacités personnalisées aux rôles Administrateur et Éditeur
Désinstallateur (Irisolaris_Map_Uninstaller)
Section intitulée « Désinstallateur (Irisolaris_Map_Uninstaller) »S’exécute lors de la suppression du plugin :
- Suppression des tables de base de données personnalisées
- Retrait des capacités personnalisées de tous les rôles
- Suppression optionnelle des données de densité (contrôlée par l’option
irisolaris_map_remove_data_on_uninstall) - Nettoyage des transients et des options