Skip to main content

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.

3.4 Structure de la base de données

1. Présentation Générale

Nom de la base de données : lgun6998_wp46273

Système de gestion de base de données : MariaDB version 10.6.21

Encodage et Collation : Les tables principales utilisent utf8mb4 (pour supporter l’ensemble des caractères Unicode) ou latin1 dans certains cas, avec des collations spécifiques selon la table.

Moteurs de stockage :

• Les tables de cartes et d’activité utilisent principalement MyISAM.

• Les tables de logs, droits et utilisateurs utilisent InnoDB, ce qui permet notamment les transactions et les relations plus robustes.

 

2. Détail des Tables

A. Table tar_pimwick_gift_card

Objet :

Cette table stocke les informations essentielles de chaque carte cadeau.

Principales colonnes :

pimwick_gift_card_id : Identifiant unique (clé primaire, AUTO_INCREMENT).

number : Numéro de la carte (stocké en texte, partiellement indexé pour assurer une unicité sur les premiers 128 caractères).

active : Indique si la carte est active (valeur binaire par défaut 1).

create_date : Date de création de la carte (timestamp avec la date et l’heure d’insertion, valeur par défaut la date courante).

expiration_date : Date d’expiration éventuelle de la carte (peut être nulle).

pimwick_gift_card_parent : Permet de rattacher une carte à une autre, suggérant une éventuelle hiérarchie ou une relation de regroupement.

recipient_email, recipient_name, from : Informations sur le destinataire de la carte, le nom du destinataire et l’expéditeur.

message : Message lié à la carte cadeau (personnalisable par l’utilisateur).

delivery_date : Date de livraison (format texte dans ce dump).

email_design_id, product_id, variation_id, order_item_id : Champs permettant de lier la carte à des éléments transactionnels ou des configurations produits.

expire : Un flag binaire indiquant si la carte est considérée comme expirée (valeur par défaut 0).

Utilisation :

Cette table centralise toutes les informations sur les cartes cadeaux, accessibles par leur identifiant unique et leur numéro, et sert de référence principale pour toute action ultérieure (transactions, consultation, etc.).

 

B. Table tar_pimwick_gift_card_activity

Objet :

Cette table enregistre chaque opération ou transaction relative à une carte cadeau.

Principales colonnes :

pimwick_gift_card_activity_id : Identifiant unique de l’opération (clé primaire, AUTO_INCREMENT).

pimwick_gift_card_id : Référence à la carte concernée (clé étrangère logique vers tar_pimwick_gift_card).

user_id : Identifiant (de type bigint UNSIGNED) correspondant à l’utilisateur ayant réalisé l’opération (lié à la table des utilisateurs).

activity_date : Date et heure de l’opération (timestamp avec date courante par défaut).

action : Nature de l’opération (par exemple, « transaction » ou autre indication textuelle).

amount : Montant de l’opération (de type decimal pour assurer la précision des valeurs monétaires).

note : Note ou commentaire associé à l’opération.

pdv_id : Identifiant point de vente, permettant de filtrer ou de segmenter les opérations par point de vente.

reference_activity_id : Possibilité de référencer une autre opération (pour lier des transactions ou corrections, par exemple).

checked : Champ binaire indiquant si l’opération a été validée (par défaut 0).

Utilisation :

Elle permet de suivre l’historique complet des opérations appliquées à chaque carte – débit, crédit et autres actions – et d’effectuer des calculs sur le solde en fonction des transactions enregistrées.

 

C. Table tar_pimwick_gift_card_activity_logs

Objet :

Cette table conserve un historique de logs liés aux activités sur les cartes cadeaux, servant d’audit.

Principales colonnes :

id : Identifiant unique du log (clé primaire, AUTO_INCREMENT).

date : Date et heure de l’événement enregistré.

user : Identifiant de l’utilisateur qui a initié l’opération ou modifié la base.

IP : Adresse IP du client qui a réalisé l’opération.

requete : Requête SQL ou description textuelle de l’action effectuée.

Utilisation :

Elle permet de tracer les opérations sensibles, d’auditer les actions et d’identifier éventuellement les dysfonctionnements ou intrusions par l’enregistrement des requêtes exécutées.

 

D. Table tar_pimwick_gift_card_droits

Objet :

Cette table définit la liste des droits (ou permissions) disponibles pour le système.

Principales colonnes :

id : Identifiant unique du droit (clé primaire, AUTO_INCREMENT).

droit : Nom du droit (par exemple, « Administrateur », « Comptabilité », etc.).

description : Courte description explicative du droit.

Utilisation :

Elle sert de référence pour attribuer des permissions aux utilisateurs dans le système de gestion des cartes cadeaux.

 

E. Table tar_pimwick_gift_card_droits_users

Objet :

C’est une table de correspondance (relation plusieurs-à-plusieurs) qui associe les utilisateurs aux différents droits.

Principales colonnes :

id : Identifiant unique de l’association (clé primaire, AUTO_INCREMENT).

idUser : Référence à l’identifiant d’un utilisateur (lié à la table des utilisateurs).

droit : Référence à l’identifiant d’un droit (lié à tar_pimwick_gift_card_droits).

Utilisation :

Elle détermine quelles permissions sont assignées à chaque utilisateur. Par exemple, un utilisateur peut avoir plusieurs droits (ajout de débit, visualisation des opérations, etc.) via des enregistrements multiples.

 

F. Table tar_pimwick_gift_card_users

Objet :

Cette table stocke les informations relatives aux utilisateurs accédant au système.

Principales colonnes :

id : Identifiant unique de l’utilisateur (clé primaire, AUTO_INCREMENT).

login : Nom d’utilisateur utilisé pour l’authentification.

password : Mot de passe haché (sécurisé par un algorithme de hachage comme bcrypt).

nom : Nom complet ou l’identifiant affiché de l’utilisateur.

email : Adresse email de l’utilisateur.

page : Page par défaut ou module auquel l’utilisateur est redirigé après connexion (par exemple, « cc » ou « ope »).

mdp : Indicateur (flag) permettant de gérer la première connexion ou le changement de mot de passe (valeur par défaut 0 ou 1).

Utilisation :

Elle permet de gérer l’authentification, l’affichage personnalisé des utilisateurs et d’assigner les accès et routes via l’attribution des pages et des droits dans d’autres tables.

 

3. Indices et Clés

Indexation primaire :

Chaque table possède un identifiant unique (clé primaire) sur les colonnes appropriées, garantissant l’unicité (exemple : pimwick_gift_card_id dans la table des cartes).

Indices complémentaires :

La table des cartes cadeaux possède une clé unique sur les 128 premiers caractères du champ number, afin d’assurer l’unicité et accélérer les recherches.

Relations implicites :

• Les opérations (tar_pimwick_gift_card_activity) sont liées aux cartes (tar_pimwick_gift_card) via pimwick_gift_card_id.

• Les logs permettent d’auditer les opérations réalisées par les utilisateurs référencés dans la table tar_pimwick_gift_card_users.

• La gestion des droits s’appuie sur une relation entre les utilisateurs (tar_pimwick_gift_card_users) et les droits (tar_pimwick_gift_card_droits) via la table de correspondance (tar_pimwick_gift_card_droits_users).

 

4. Conclusion

• La table tar_pimwick_gift_card centralise les informations de chaque carte.

• La table tar_pimwick_gift_card_activity enregistre chaque transaction ou mouvement sur les cartes.

• Les tables de logs et droits assurent respectivement le suivi des actions et la définition des permissions.

• La table tar_pimwick_gift_card_users gère l’authentification et les informations personnelles des utilisateurs.


Cette structure permet ainsi de supporter toutes les fonctionnalités de l’application telles que la validation, l’historique des transactions et l’administration centralisée des droits d’accès.