Revenir à la page d'accueil :
Application "Publications" - Documentation technique#
1. Les données#
Les publications sont appelées via la vue PUBLI_STORE.
(voir la page La base de données pour plus de détails).
2. Organisation des répertoires et des fichiers#
2.1 Côté serveur#
L’organisation du code est la même que pour les applications "Species", "Genera"et "Families".
Les classes d’objets sont instanciées dans autant de fichiers que de fonctionnalités (Tableau 1).
2.2 Côté client#
Le code côté client est structuré par le framework ExtJS (voir la documentation ExtJS sur http://docs.sencha.com/extjs/4.2.3/#!/guide pour plus de détails) de la même manière que dans les applications espèces, genres et familles. Les fichiers ainsi que leurs descriptions sont listés dans le Tableau 2.
3. Organisation des classes et méthodes #
3.1 Côté serveur#
- Les méthodes contenues dans common.control.class.php récupèrent les POSTs et GETs envoyés par le client. Elles retournent un tableau PHP.
- Les méthodes contenues dans common.data.class.php envoient les requêtes SQL. Elles retournent un tableau PHP.
- Les méthodes contenues dans common.view.class.php encodent les tableaux PHP des résultats SQL en JSON.
Les méthodes ainsi que leurs descriptions sont listées dans le Tableau 3.
Note : Toutes les méthodes de la vue contenues dans common.view.class.php encodent un JSON à partir des méthodes portant le même nom, contenues dans common.data.class.php.
3.2 Côté client#
Toutes les méthodes de contrôle sont dans le fichier MainController.js sauf celles avec un astérisque qui sont dans le fichier codeNomenController.js (Tableau 4). Les méthodes sont toutes appelées par la méthode control du MainController. Cette méthode pointe vers l’élément HTML (avec son id en général) et déclenche un événement ( "#id" : {event: this.method}).
Exemple : "#homeBtn" : {click: this.homeNav}.
4. Diagrammes des objets JS et des méthodes, par fonctionnalité#
- Pour les formulaires de saisie :
- Pour le remplissage des grilles :
- Pour la suppression de données :
- Pour la recherche par autocomplétion :
Tableau 1. Liste des noms de fichiers côté serveur, chemins ainsi que leurs descriptions.
Nom du fichier | Chemin | Description |
---|---|---|
dispatch.php | back_end/common/ | Inclut un "control", "data" et "view". Prend en paramètre GET[‘file’] un nom de fichier; e. g., dispatch.php?file=login pour appeler : login.control.php, login.data.php, login.view.php |
common.control.class.php | back_end/common/control/classes/ | Contient les classes qui récupèrent les données envoyées par le client (POST, GET, etc) et les traitements éventuels. |
common.data.class.php | back_end/common/data/classes/ | Contient les classes qui envoient les requêtes SQL. |
common.view.class.php | back_end/common/view/classes/ | Contient les classes qui génèrent du JSON à partir des résultats des requêtes SQL |
login.control.php | back_end/common/view/ | Reçoit le POST email et mot de passe pour l’identification du contributeur |
login.data.php | back_end/common/data/ | Envoie la requête SQL avec les paramètres récupérés dans login.control.php |
login.view.php | back_end/common/view/ | Récupère le résultat de la requête SQL dans login.data.php et l’encode en JSON |
register.control.php | back_end/common/control/ | Reçoit les POSTs du formulaire d’inscription d’un nouveau contributeur |
register.data.php | back_end/common/data/ | Envoie la requête SQL d’insertion d’un nouveau contributeur |
register.view.php | back_end/common/view/ | Récupère le résultat de la requête d’insertion et affiche un message de succès ou d’echec |
last_added_publi.control.php | back_end/common/control/ | Récupère le POST l'identifiant du contributeur |
last_added_publi.data.php | back_end/common/data/ | Envoie la reqète SQL pour sélectionner les dernières publications entrées par le contributeur |
last_added_publi.view.php | back_end/common/view/ | Encode les résultats de la requête SQL en JSON |
publi_filter_grid.control.php | back_end/common/control/ | Récupère les POSTs titre de publication, auteurs, année envoyé par la grille à filtre |
publi_filter_grid.data.php | back_end/common/data/ | Envoie une requête de sélection des publications qui correspondent aux paramètres du filtre. |
publi_filter_grid.view.php | back_end/common/view/ | Encode les résultats de la requête SQL en JSON. |
publi_store.control.php | back_end/common/control/ | Récupère le POST du ou des paramètres envoyés par le client (e. g., champ autocomplétion recherche auteurs de publication) |
publi_store.data.php | back_end/common/data/ | Envoie la requête SQL de sélection de publications avec les paramètres récupérés |
publi_store.view.php | back_end/common/view/ | Récupère le résultat de la requête de sélection et l’encode en JSON. |
create_publi.control.php | back_end/common/control/ | Reçoit les POSTs du formulaire d’insertion d’une nouvelle publication. |
create_publi.data.php | back_end/common/data/ | Envoie la requête SQL d’insertion d’une nouvelle publication. Envoie une requête de sélection de la nouvelle entrée. |
create_publi.view.php | back_end/common/view/ | Récupère le résultat de la requête de sélection et l’encode en JSON. |
modify_publi.control.php | back_end/common/control/ | Reçoit les POSTs du formulaire de modification d’une publication. |
modify_publi.data.php | back_end/common/data/ | Envoie la requête SQL de mise à jour de la publication. Envoie une requête de sélection de la publication mise à jour. |
modify_publi.view.php | back_end/common/view/ | Récupère le résultat de la requête de sélection et l’encode en JSON. |
Tableau 2. Liste des noms de fichiers côté client, chemins ainsi que leurs descriptions.
Nom du fichier | Chemin | Description |
---|---|---|
MainController.js | app/controller/ | Contient les les fonctions qui gèrent les événements et les requêtes AJAX. |
codeNomenController.js | app/controller/ | Contient les les fonctions qui gèrent les événements et les requêtes AJAX pour l’application de règles de nomenclature. |
publi.js | app/model/ | Spécifie les champs envoyés par la base de données, et qui concernent les publications. |
AllPubli.js | app/store/ | Appelle une liste de toutes les publications. |
LastAddedPubli.js | app/store/ | Appelle une liste des dernières publications ajoutées par un utilisateur. |
MyAddedPubli | app/store/ | Appelle une liste de toutes les publications ajoutées par un utilisateur. |
currentPubliStore.js | app/store/ | Appelle les données concernant la publication sélectionnée. |
PubliSearch.js | app/store/ | Appelle une liste de publications suivant un paramètre POST. Utilisé surtout pour la recherche par autocomplétion. |
AllPubli.js | app/view/ | Affiche une liste de toutes les publications dans une grille. |
CreateAccountWindow.js | app/view/ | Affiche le formulaire d’ajout de contributeur. |
MainView.js | app/view/ | Affiche les éléments généraux de l’application (logo, bannière, topmenu, etc). |
defaultHome.js | Affiche les éléments généraux de l’application quand il n’y a pas de contributeur identifié. | |
connectedHome.js | app/view/ | Affiche les éléments généraux de l’application quand un contributeur est identifié. |
createPubliWindow.js | app/view/ | Affiche le formulaire d’ajout d’une nouvelle publication. |
myAccountView.js | Affiche les informations du compte contributeur. | |
modifyAccountWindow.js | app/view/ | Affiche le formulaire de modification du compte contributeur. |
modifyPublicationmWindow.js | app/view/ | Affiche le formulaire de modification d'une publication. |
publiFilterGrid.js | app/view/ | Affiche une grille des publications avec des filtres. |
publiView.js | app/view/ | Affiche tous les éléments qui constituent une fiche publication. |
viewPDFWindow.js | app/view/ | Affiche la fenêtre d’affichage des publications numérisées dans BHL (iFrame) |
dataAccess.js | app/localisation/ | Contient les chemins vers les fichiers côté serveur. |
defaultEnglish.js | app/localisation/ | Index des labels des champs (en anglais) |
Tableau 3. liste des méthodes côté serveur avec la classe et le fichier contenant ainsi que leurs descriptions.
Méthode | Classe | Localisation | Description |
---|---|---|---|
login | ContributorControl | common.control.class.php | Reçoit les paramètres suivants en POST : email, password . Retourne un tableau PHP incluant les valeurs des POSTs. |
register | ContributorControl | common.control.class.php | Reçoit les paramètres suivants en POST : title, forename, surname, email, pass, pass_confirm, job_title, institution, institution_address. Retourne un tableau PHP incluant les valeurs des POSTs. |
autoCompleteStore | PubliControl | common.control.class.php | Reçoit les paramètres suivants en GET (champs autocomplétion) : comboFilter (string des caractères entrés), start, limit. Retourne un tableau PHP incluant les valeurs des GETs. |
lastAddedPubli | PubliControl | common.control.class.php | |
myAddedPubli | PubliControl | common.control.class.php | |
publiStore | PubliControl | common.control.class.php | |
publiFilterGrid | PubliControl | common.control.class.php | Reçoit les paramètres suivants en GET : filter (string des lettres entrées dans les grilles à filtre).Retourne un tableau PHP incluant les valeurs des GETs. |
insertNewPubli | PubliControl | common.control.class.php | Reçoit les paramètres en POSTs. Retourne un tableau PHP incluant les valeurs des POSTs. |
insertNewPubli | CreatePubliControl | common.control.class.php | Reçoit les paramètres en POSTs. Retourne un tableau PHP incluant les valeurs des POSTs. |
updatePubli | CreatePubliControl | common.control.class.php | Reçoit les paramètres en POSTs. Retourne un tableau PHP incluant les valeurs des POSTs. |
delPubli | CreatePubliControl | common.control.class.php | Reçoit les paramètres en POSTs. Retourne un tableau PHP incluant les valeurs des POSTs. |
login | ContributorData | common.data.class.php | Envoie une requête SQL select à la table CONTRIBUTOR. Prend les paramètres retournés par ContributorControl -> login. Retourne un tableau PHP contenant les données du compte contributeur. |
register | ContributorData | common.data.class.php | Envoie une requête SQL insert à la table CONTRIBUTOR. Prend les paramètres retournés par ContributorControl -> register. Retourne un tableau PHP contenant les données de succès/échec de la requête. |
lastAddedPubli | PubliData | common.data.class.php | Envoie une requête SQL select à la vue PUBLI_STORE. Prend comme paramètre $_SESSION["CONTRIBUTOR"]. Retourne un tableau PHP contenant les dernières entrées de noms scientifiques. |
myAddedPubli | PubliData | common.data.class.php | Envoie une requête SQL select à la vue PUBLI_STORE. Prend comme paramètre $_SESSION["CONTRIBUTOR"]. Retourne un tableau PHP contenant toutes les entrées publications. |
PubliStore | PubliData | common.data.class.php | Envoie une requête SQL à la vue PUBLI_STORE. Prend les paramètres retournés par PubliControl -> autoCompleteStore. Retourne un tableau PHP contenant les données sur les publications correspondants aux caractères entrés dans le champ d’autocomplétion. |
publiFilterGrid | PubliData | common.data.class.php | Envoie une requête SQL à la vue PUBLI_STORE. Prend les paramètres retournés par PubliControl -> publiFilterGrid. Retourne un tableau PHP contenant les données noms d’espèces correspondants aux caractères entrés dans le champ de filtre. |
insertNewPubli | CreatePubliData | common.data.class.php | Envoie une requête SQL insert à la table PUBLICATION. Prend les paramètres retournés par ContributorControl -> insertNewPubli. Retourne un tableau PHP contenant les données de publication nouvellement entrées. |
updatePubli | CreatePubliData | common.data.class.php | Envoie une requête SQL update à la table PUBLICATION. Prend les paramètres retournés par ContributorControl -> updatePubli. Retourne un tableau PHP contenant les données de la publication en cours. |
delPubli | CreatePubliData | common.data.class.php | Envoie une requête SQL delete à la table PUBLICATION. Prend les paramètres retournés par ContributorControl -> updatePubli. Retourne un tableau PHP contenant les données de la publication en cours. |
Tableau 4. liste des méthodes côté client avec leurs descriptions.
Méthode | Description |
---|---|
homeNav | Charge la page d’accueil |
loginSubmit | Envoie les données du formulaire d’identification |
createAccountSubmit | Envoie les données du formulaire de création de compte |
signOut | Déconnexion du contributeur |
showMyAccount | Affiche les informations du compte contributeur |
openAccountModifyWindow | Ouvre la fenêtre formulaire de modification du compte contributeur |
submitAccountModification | Envoie les données du formulaire de modification du compte contributeur |
viewPDFWindow | Ouvre une iFrame biodiversitylibrary.org de la page de création du nom scientifique |
showModifyPubliWindow | Ouvre la fenêtre formulaire de modification d’une publication. |
showAllPubli | Ouvre la grille à filtre de toutes les publications. |
displayPubli | Affiche la page d’une publication sélectionnée |
createPubliSubmit | Envoie les données du formulaire d’ajout d’une publication. |
modifyPubliSubmit | Envoie les données du formulaire de modification d’une publication. |
delPubli | Envoie les données de suppression d’une publication. |
viewPubli | Ouvre la fenêtre formulaire de modification d’une publication. |