3. Structure détaillée du système
3.1. Structure Générale des Dossiers
cc/
│
├── includes/
│ ├── css/ → Fichiers CSS gérant la mise en forme (styles généraux, entête, impression, adaptation mobile)
│ ├── img/ → Images utilisées dans l'application (logos, icônes, etc.)
│ ├── classes/ → Ensemble des fichiers de classes regroupant la logique métier
│ │ ├── clOpe.php → Gestion des opérations et transactions sur les cartes cadeaux
│ │ ├── clAdmin.php → Interface d'administration (ex: gestion des droits)
│ │ ├── clLogin.php → Processus et vérification de connexion utilisateur
│ │ ├── clDet.php → Détail d'une carte cadeau, affichage de son historique et de ses informations
│ │ ├── clCompte.php → Gestion de la modification du mot de passe et du compte utilisateur
│ │ ├── clCc.php → Affichage et gestion de la liste des cartes cadeaux avec leur solde
│ │ ├── clAjout.php → Ajout d'opérations sur les cartes cadeaux (transactions de débit/crédit)
│ │ ├── clUsers.php → Récupération et affichage des utilisateurs et de leurs droits
│ │ └── clRecherche.php → Recherche de cartes cadeaux par numéro ou autres critères
│ │ └── modules/
│ │ └── modDroits.php → Module de gestion des droits utilisateur et d'administration des permissions
│ ├── include.php → Chargement centralisé des fichiers et initialisation des ressources communes
│ ├── conf.php → Fichier de configuration (accès base de données, constantes, etc.)
│ ├── fonctions.php → Ensemble des fonctions partagées utilisées dans l'application
│ └── sql.php → Fonctions et définitions liées à l'exécution de requêtes SQL
│
├── index.php → Point d'entrée principal ; gère l'affichage de la page d'accueil, les redirections et le routage selon les paramètres (affichage de la page principale ou du détail d'une carte)
├── login.php → Formulaire et traitement de connexion (vérification des identifiants, établissement des sessions)
├── logout.php → Fin de session (détruit la session et redirige vers la page d'accueil ou login)
├── process.php → Traitement AJAX : met à jour l'état des opérations (modification du champ « checked » dans la base)
└── print.php → Vue dédiée à l'impression des informations d'une carte cadeau (mise en forme spécifique pour l'impression
3.2. Rôle et Fonctionnement de Chaque Fichier
Fichiers Racine
• index.php
• Initialisation de la session et inclusion du fichier central (includes/include.php).
• Connexion à la base de données et vérification de la session utilisateur.
• Selon l’état de la connexion et des paramètres (par exemple la présence d’un message ou d’un identifiant de carte), affiche soit le détail d’une carte cadeau, soit la page principale via l’appel aux fonctions dédiées (ex. page(), details()).
• login.php
• Affiche un formulaire de connexion.
• Lors de la soumission du formulaire, vérifie les identifiants (login et mot de passe) grâce à des requêtes préparées.
• En cas de succès, établit la session utilisateur (stockage des informations : id, login, nom, logo, droits) et redirige vers la page correspondante (ou demande de modification du mot de passe si nécessaire).
• logout.php
• Détruit la session en cours et redirige vers la page d’accueil ou la page de connexion.
• process.php
• Reçoit via AJAX les mises à jour concernant l’état (checkbox) des opérations.
• Met à jour la base de données en exécutant une requête préparée pour modifier le champ checked d’une opération selon l’identifiant envoyé.
• print.php
• Génère une vue d’impression pour une carte cadeau.
• Utilise des styles dédiés (fichiers CSS d’impression) pour présenter les informations de la carte (destinataire, acheteur, montant, message, numéro, date).
Dossier includes/
• include.php
• Chargement central des fichiers de configuration, fonctions et de connexions à la base (inclusion de conf.php, fonctions.php, sql.php, etc.).
• Sert de point d’initialisation pour que tous les scripts ultérieurs aient accès aux ressources communes.
• conf.php
• Contient les constantes et paramètres de configuration (ex. accès à la base de données, noms de tables, etc.).
• fonctions.php
• Recense l’ensemble des fonctions génériques utilisées dans l’application (ex. fonctions d’affichage, conversions de texte, gestion des logs, etc.).
• sql.php
• Regroupe des fonctions et requêtes SQL standardisées ou la définition d’interfaces pour l’exécution des requêtes sur la base de données.
Sous-dossier css/
Contient plusieurs fichiers CSS :
• style40.css
Définit les règles générales de style (typographie, mise en page, styles des formulaires et des éléments interactifs).
• entete40.css
Styles spécifiques pour l’en-tête de l’application, incluant la mise en forme des logos, menus déroulants et éléments de navigation.
• print40.css et printview41.css
Feuilles de style dédiées à la mise en forme pour l’impression des informations sur une carte cadeau.
Sous-dossier img/
Contient toutes les ressources graphiques (logos, icônes, images de fond, etc.) utilisées par l’application.
Dossier classes/
Contient les fichiers de classes et modules qui gèrent la logique métier de l’application.
• clOpe.php
• Contient un script JavaScript embarqué pour la mise à jour AJAX des cases à cocher dans la liste des opérations.
• Regroupe les fonctions SQL et PHP pour extraire :
• Le solde total des opérations.
• La liste des opérations associées aux cartes cadeaux.
• Gère l’affichage d’un tableau listant les transactions et propose des fonctionnalités de filtrage (via TableFilter et un script JavaScript de filtrage additionnel).
• clAdmin.php
• Inclut le module de gestion des droits (modDroits.php).
• Affiche l’interface d’administration et permet la gestion et la modification des droits des utilisateurs à l’aide de tableaux et de formulaires.
• clLogin.php
• Similaire au fichier login.php, il contient le traitement de la connexion, la vérification des identifiants et l’établissement de la session, avec redirection vers la page correspondante.
• clDet.php
• Gère l’affichage du détail d’une carte cadeau.
• Selon qu’un identifiant ou un numéro est fourni via GET/POST, il exécute des requêtes SQL pour :
• Obtenir les informations générales de la carte (numéro, dates, destinataire, message, etc.).
• Obtenir l’historique des opérations associées.
• Calcule le solde restant et affiche des informations complémentaires (expiration, durée restante, état de validité) sous forme de tableau.
• Intègre une fonctionnalité d’impression en liant vers le module d’impression (print.php).
• clCompte.php
• Gère la gestion du compte utilisateur, notamment la modification du mot de passe.
• Affiche un formulaire permettant de définir un nouveau mot de passe et effectue la mise à jour en base.
• clCc.php
• Affiche la liste des cartes cadeaux et leurs soldes.
• Utilise un formulaire pour filtrer les cartes (par validité ou date) et met à jour la liste affichée.
• Gère les interactions avec la base de données pour récupérer la liste consolidée des cartes et leur solde.
• clAjout.php
• Gère l’ajout d’opérations sur une carte cadeau.
• Vérifie le montant saisi et le solde de la carte, puis construit et exécute la requête SQL pour enregistrer la transaction (débit/crédit).
• En cas de transaction valide, redirige vers la page principale avec confirmation, sinon affiche un message d’erreur.
• clUsers.php
• Contient les fonctions SQL pour récupérer la liste des utilisateurs.
• Permet la consultation des droits et des informations concernant chaque utilisateur.
• Sert de base pour l’affichage et la gestion des comptes utilisateurs.
• clRecherche.php
• Affiche un formulaire pour rechercher une carte cadeau par numéro.
• Envoie le critère de recherche et exécute les requêtes SQL correspondantes.
• Affiche le résultat sous forme de tableau, en cas de correspondance unique ou multiple, et permet la navigation vers le détail de la carte.
Dossier modules/ (situé dans includes/classes/modules/)
• modDroits.php
• Module dédié à la gestion des droits des utilisateurs.
• Exécute des requêtes SQL pour récupérer la liste des droits à partir de la table de droits.
• Affiche, dans un tableau, une ligne par utilisateur et une colonne par droit, avec des cases à cocher permettant de modifier les permissions.
• Gère la mise à jour des droits en traitant le formulaire soumis et en mettant à jour la table correspondante en base.
Dossier cc/tablefilter
• Contient un script JavaScript externe (volumineux) qui permet d’apporter des fonctionnalités avancées de filtrage et tri sur les tableaux affichés dans l’application.
• Ce script est utilisé dans plusieurs modules (ex. liste des cartes et liste des opérations) pour faciliter la recherche et l’analyse des données affichées.
3.3. Récapitulatif du Fonctionnement Global
1. Initialisation et Navigation
• L’application démarre via index.php, qui vérifie la session et détermine la page à afficher selon les paramètres (liste des cartes, détails d’une carte, etc.).
• La connexion se fait via login.php, et la déconnexion via logout.php.
2. Gestion des Opérations sur les Cartes Cadeaux
• Les opérations (transactions) sont gérées dans clOpe.php (affichage de l’historique, mise à jour AJAX des états) et dans clAjout.php (enregistrement de nouvelles opérations avec vérification du solde).
3. Détails, Impression et Recherche
• clDet.php affiche le détail complet d’une carte cadeau, y compris son historique et ses informations complémentaires.
• print.php et les feuilles de styles associées offrent une version optimisée pour l’impression.
• clRecherche.php permet de rechercher une carte cadeau par numéro ou d’autres critères et d’afficher les résultats en liste.
4. Gestion des Comptes et des Utilisateurs
• clCompte.php gère la modification du mot de passe et les mises à jour du compte utilisateur.
• clUsers.php offre une vue sur la liste des utilisateurs et leurs paramètres.
5. Administration des Droits
• clAdmin.php intègre le module modDroits.php pour permettre l’administration des droits d’accès.
• modDroits.php fournit une interface permettant d’attribuer ou modifier les droits pour chaque utilisateur via des cases à cocher.
6. Ressources Graphiques et Interface
• Les feuilles de styles contenues dans includes/css et les images dans includes/img assurent une cohérence visuelle.
• Le script dans cc/tablefilter ajoute des fonctionnalités avancées de filtrage et tri sur les tableaux affichés dans l’application.