Le moteur graphique génère automatiquement pour chaque page les onglets et les menus graphiques. Ils sont pour l'instant réalisés par un tableau colorés. On pourra aussi créer des images pour améliorer le rendu graphique et donner un aspect de 3D au site.
Pour activer le moteur graphique sur une page, on a besoin d'inclure quelques fichiers au début et à la fin de chaque page, comme le montre le script PHP qui suit:
fichier : home/actualite.php
Mettre ici l'actualité de l'association
include "../commun/fin.inc.php"; ?>Les deux premières variables $rubrique et $page indiquent respectivement le nom de la rubrique et de la page. le nom de la rubrique doit être le nom du répertoire où se trouve la page, le nom de la page doit être le nom du fichier PHP privé de son extension .php, comme l'illustre l'exemple précédent.
Le fichier conf.inc.php contient toutes les informations nécessaires permettant d'accéder à la base de données. Le fichier structure.inc contient la structure des pages. Les pages sont classés dans une sructure de tableau à double entrée:
On désigne tout d'abord par "home" une rubrique du site, qui sera affichée comme un onglet contenant "Accueil", cette rubrique sera disponible en accés public ou privé ($BOTH), la page par défaut en mode public et privé est "actualite". Cette rubrique se compose de deux pages: "actualite" et "assoce" qui sont disponibles en public et en privé, et qui sont affichées dans la barre des menus respectivement "Actulité" et "Connaître l'assoce". Il convient de changer les entrées de ce tableau pour adapter le site à une association particulière.
Pour créer une nouvelle page, il faut lui inclure les fihiers PHP comme dans l'exemple en présisant son nom et sa rubrique. Il faut aussi préciser cette page et sa rubrique dans la structure $rubrique pour que le moteur graphique tienne compte de cette page dans la génération du rendu HTML.
L'interface d'inscription est gérée par le fichier inscription.php, ce fichier respecte l'architecture du site, sa structure est la suivante :
- Inclusion de l'entête propre à l'inscription.
- Inclusion du corps propre à l'inscription.
- Inclusion de la fin de page.
Le formulaire est posté par une méthode POST pour une transparence
du traitement par rapport à l'utilisateur (en effet les paramètres
seront transportés dans le corps de la requête sans être
visible dans la barre d'adresse).
Le traitement de la requête se fait en appelant un fichier séparé
: inscription_process.php. Ce fichier traite les points suivants :
- Vérification que tous les champs obligatoires ont été
saisis. Dans le cas où une information manque, la page inscription.php
est rappelée en renvoyant toutefois les champs déjà
saisis par l'utilisateur (ceci assouplit grandement la navigation et évite
ainsi à l'utilisateur de tout re-saisir à chaque erreur).
- Vérification du login. Cela se fait en envoyant une requête
vers la base pour vérifier la non-existence du login choisi.
- Vérification de la saisie du mot de passe.
Si aucune erreur n'est rencontrée, les informations de l'utilisateur
ainsi que l'audience choisie pour chaque paramètre sont insérées
dans la base de donnée et un message de confirmation est affiché
sur l'interface.
L'interface utilisateur de la modification de profil ainsi que son traitement
sont similaires à ceux de l'inscription. Cependant, ces deux aspects
(interface et traitement) sont unifiés dans un même fichier.
Les informations de l'utilisateur sont stockées dans la table USER de la base de données ASSOCIATION. La structure de cette table est la suivante :
Nom de l'attribut
|
Type
|
Descritpion
|
USER_ID |
Entier
|
La clé primaire de la table USER |
USER_Login |
Texte
|
Le login |
USER_Login_D |
Entier
|
L'audience pour l'identité courte (login, nom, prénom) |
USER_Password |
Texte
|
Le mot de passe |
USER_Name |
Texte
|
Le nom de famille |
USER_FirstName |
Texte
|
Le prénom |
USER_Address |
Texte
|
L'adresse |
USER_City |
Texte
|
La ville |
USER_ZipCode |
Texte
|
La code postal |
USER_Country |
Texte
|
Le pays |
USER_Address_D |
Entier
|
L'audience de l'adresse |
USER_Telephone |
Texte
|
Le téléphone |
USER_Telephone_D |
Entier
|
L'audience du téléphone |
USER_Mail |
Texte
|
Le mail |
USER_Mail_D |
Entier
|
L'audience du mail |
USER_Function |
Texte
|
La profession |
USER_Function_D |
Entier
|
L'audience de la profession |
USER_Session |
Texte
|
Chaîne de caractères permettant de gérer la session de l'utilisateur |
USER_DateSubscription |
Date
|
La date de l'inscription |
USER_Status |
Entier
|
Le statut de l'utilsateur (0 : en attente d'inscription, 1 : inscrit, 2 : membre) |
Pour rechercher un utilisateur du site, on peut combiner plusieurs critères: nom, prénom, login, ville, code postal et pays. Sauf pour le code postal, on peut donner les premières lettres, par exemple il suffit de donner "pa" pour chercher des gens à Paris. Le formulaire est replit dans recherche.php, il est envoyé en suite à resultat.php qui combine les critèrs souhaités dans une requête SQL avec dans opération de ET (AND) logiques, les critères sont aussi filtrés suivant le degré de confidentialité de l'information recherchée.
Après l'interrogation de la base de données, un tableau est renvoyé avec Les login, nom, prénom, ville et pays des utilisateurs trouvés. Le login porte un lien vers la fiche de la personne en question.
Cette fiche est affichée par fiche.php . Encore une autre fois, on n'affiche que les données qui sont autorisées à être affichée.
Il existe sur notre site la possibilité pour un utilisateur qu'il soit public ou privé de poster des annonces. Suite aux besoins exprimés nous avons décidé de rendre les annonces accessibles à n'importe qui, il n'est donc pas nécessaire de s'authentifier pour pouvoir lire ou poster une annonce. C'est le webmaster qui sera chargé d'accepter ou non les annonces et de les rendre visibles aux utilisateurs.
Pour gérer les annonces, nous avons decidé de créer 3 tables MySQL indépendantes: la table annonces elle même et les tables types et categories. En effet, pour classer les annonces nous avons choisi une subdivision a deux niveaux. On choisit d'abord la catégorie (ex: Achat, Location, Concerts, Faire-Parts .. ). A chaque catégorie se voit attaché un ou plusieurs types, chaque type aura un identifiant unique et correspondra à une unique categorie.
Chaque annonce se voit affecter un type lors de l'enregistrement par l'utilisateur, il sera dans l'intérêt de l'utilisateur de mettre le type qui correspond le mieux à son annonce. Un type est prévu (le type autre) pour qu'un utilisateur y poste son annonce si aucun des types existants ne convient. Le webmaster sera alors chargé de créer le type et éventuellement la catégorie correspondant a l'annonce et d'y déplacer l'annonce.
Une annonce comporte plusieurs champs:
Un utilisateur pourra rechercher des annonces dans la base de données, poster de nouvelles annnonces et voir le détail d'une annonce sélectionnée au préalable.
L'ajout d'annonces est simple, l'utilisateur est d'abord convié à choisir une catégorie puis un type pour classer son annonce. Ensuite il entre ses données personnelles pour pouvoir etre contacté si quelqu'un est intéressé par son annonce. Enfin il n'a plus qu'à entrer la description et le texte de son annonce.
La recherche quand à elle se fait selon 3 critères principaux au choix sur les annonces validées:
Par défaut, toutes les annonces sont affichées. L'organisation des annonces lors de l'affichage des résultats de la recherche se fait d'abord par dates, puis par nom d'utilisateur. A coté de chaque annonce existe un lien view qui permet de voir le détail de l'annonce et éventuellement de contacter par email la personne qui a posté l'annonce.
Un administrateur pourra effectuer toutes les actions d'un utilisateur et bien plus encore, il pourra voir les annonces non validées et ajouter ou supprimer des types.
Pour la partie recherche d'annonces, l'interface est la même que pour l'utilisateur de base. Par contre lors de l'affichage des résultats, nous voyons quelques différences notables:
Cette approche a été adoptée pour permettre une administration simple et efficace des annonces, il est en effet possible de déplacer, supprimer et valider un grand nombre d'annonces en une seule opération. L'interface administrateur est de ce point de vue bien optimisee.
De plus l'administrateur peut créer des catégories et des types, comme il peut les supprimer a partir de la gestion des tables des annonces. Lors de la création d'un type, il faut spécifier la catégorie à laquelle le type est associé. Il n'est pas conseillé de laisser une catégorie vide de types.
Lors de la suppression d'un type ou d'une catégorie, la gestion des effets de bords sera automatique. Toutes les annonces correspondant à un type effacé seront effacées aussi. Toutes les annonces et tous les types correspondant a une categorie effacée seront effacés aussi.
Il faut donc bien faire attention lorsqu'on supprime une catégorie ou un type pour ne pas perdre toutes les annonces. Le plus simple est encore de déplacer les annonces au prealable dans un type temporaire.