<Installation> <Les fichiers du site> <Les données du site> <Nos points forts> <Extensions envisagées>

Nos points forts

Ce sujet de projet nous a beaucoup intéressé. En effet, un tel site peut être réellement utilisé pour présenter le catalogue en ligne d'une entreprise.
C'est pourquoi, nous avons développé certains points supplémentaires qui nous ont paru utiles à intégrer, bien qu'ils ne soient pas mentionnés dans le sujet.


Une organisation particulière des pages - lancées par index.php

Nous avons adopté une organisation particulière pour les pages de notre site.
En effet, les différentes pages de notre site, qui se situent dans le répertoire /pages, ne sont pas appelées directement dans le navigateur : celui-ci appelle index.php?p=unePage.
Cette organisation nous a permi de réaliser notre site totalement en Programmation Objet :
Chaque page du site est elle-même une sous-classe de la classe Page, et le script index.php ne fait qu'instancier la classe de la page demandée et appeler sa methode afficher().


Du code HTML/CSS propre, et un template de mise en forme

L'ensemble du code HTML et CSS a été écrit et optimisé manuellement.
De plus, la plus grande partie du code HTML, commun à toutes les pages, a été regroupée dans le fichier skin_global.php.
On peut ainsi très facilement changer la présentation générale du site, il suffit d'éditer le code HTML se trouvant dans skin_global pour qu'il soit répercuté sur toutes les pages du site !


MySQL : Une installation automatisée, des requêtes sécurisées

Afin de faciliter l'installation du site, la base MySQL est automatiquement reconstruite avec son jeu d'essai d'origine dès qu'une table nécessaire à l'application est manquante.
De plus, l'ensemble des requêtes ont été sécurisée grâce à l'utilisation des fonctions addslashes() et stripslashes(), de facon à éviter des erreurs de guillemets ou apostrophes lors des insertions de données textuelles depuis des fichiers xml - dont pourraient profiter des utilisateurs mal intentionnés.
Enfin, avec le mode debug activé, il est possible de visualiser toutes les requêtes effectuées sur la base de données.


Utilisateurs : Personnalisation du profil

Il est possible aux clients de personnaliser leur profil et de changer leur mot de passe à volonté, grâce à la rubrique Profil.


Catalogue : Filtrage des articles selon certains critères, et ordonnancement

Le catalogue propose des fonctions puissantes de filtrage d'articles.
Il est ainsi possible de n'afficher que les articles d'une certaine marque, taille, poids, couleur.
Il est également possible de trier les articles, par libellé ou par prix, dans l'ordre croissant ou décroissant.


Requêtes MySQL : Une optimisation maximale

Les jours supplémentaires qui nous ont été accordés pour terminer le projet durant le début des vacances nous ont permi d'optimiser nettement les accès à la base de données.
>> Une première optimisation a été faite pour la liste des Catégories et sous-catégories du menu :
Les catégories ne sont chargées qu'une seule fois depuis la base de données , et leur arborescence est enregistrée en variable de session et réutilisée pour toutes les autres pages. On économise ainsi 1 requête par page !
>> Une seconde optimisation a été faite au niveau de la page de catalogue, pour le contenu des listes proposant le filtrages des articles par marque, taille, poids et couleurs. Plutôt que de faire quatre requêtes à la suite pour sélectioner de facon distinctes ces caractéristiques d'articles, nous avons concu un petit algorithme (fonction getDistinct() de la page catalogue) qui permet, lors du listage des articles d'une sous-catégorie, de reconstituer les caractéristiques distinctes des articles afin de les réutiliser pour les listes de filtrage. On économise ainsi jusqu'à 4 requêtes sur la page catalogue !

Factures, bons de location : Au format PDF !

Curieux de comprendre comment il est possible de créer "à la volée" des documents PDF en PHP, nous nous sommes penchés sur la librairie FPDF qui offre des fonctions de base pour y parvenir.
Nous sommes plutôt satisfaits du résultat, il est ainsi possible aux clients et/ou vendeurs d'imprimer ou enregistrer les factures, bons de livraisons et bons de retour de produits !

Manipulation des fichiers XML : SimpleXML & DOM !

SimpleXML est réellement simple d'utilisation pour parcourir des documents xml.
Pour l'exportation de la base de données, nous avions tout d'abord opté pour formater et écrire manuellement les donénes en xml dans un fichier (fwrite()).
Mais les quelques jours supplémentaires qui nous ont été accordés nous ont permi de lire la documentation de DOM et de revoir notre script pour créer plus proprement les fichiers XML.