Application "Species" - Documentation technique#
1. Les données#
Trois principaux blocs de données appelés par l’application sont : - Les données sur les noms d’espèces. - Les références de description. - Les références de spécimens types. - Les publications. Les noms d’espèces sont appelés via la vue SPECIES_STORE. Les références de description sont appelées via la vue TAXON_STORE. Les références de spécimens types sont appelées via la vue SPECIMEN_STORE. Les publications sont appellées via la vue PUBLI_STORE. + Les rangs via la vue RANK_STORE. (voir le document La base de données pour plus de détails - en cours de rédaction).
2. Les données#
2.1 Côté serveur#
Tout le code coté serveur (PHP) est stocké dans le dossier “back_end” (Figure 1) . Les fichiers de configuration (connection BDD et constantes) sont stockés dans “back_end/config”. Les librairies de codes sont stockées dans “back_end/libs”. Les règles de nomenclature zoologiques sont considérées comme un module. Le code correspondant est stocké dans “back_end/modules/”. La plus grande partie du code est stockée dans dans les sous-dossiers de “back_end/common”. Le code côté serveur renvoie uniquement des JSONs suivant les reqêtes du client et quasiment jamais de HTML. Le HTML est généré par le framework ExtJS (voir 2. 2). Les classes d’objets sont instanciées dans autant de fichiers que de fonctionalité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). L’application se compose de trois dossiers principaux (Figure 2) : - Un dossier “app” qui contient le ou les fichiers de contrôle, les modèles ainsi que les vues. Il contient aussi un dossier store utilisé principalement pour appeler les données pour l’autocomplétion et les grilles. - Un dossier “localisation” qui contient les chemins vers les fichiers côté serveur ainsi que les labels des composants de la vue (titres de fenêtres, labels des champs de formulaires, etc.) - Un dossier “ressources” qui contient principalement le CSS et les images utilisés pour l’affichage.3. Diagrammes des objets JS et des méthodes, par fonctionnalité#
- Pour les formulaires de saisie :
-Pour le remplissage des grilles :Tableau 1. Liste des noms de fichiers côté serveur, chemins et rôles.
Nom du fichier | Chemin | Rôle |
---|---|---|
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_species.control.php | back_end/common/control/ | Récupère le POST l'identifiant du contributeur |
last_added_species.data.php | back_end/common/data/ | Envoie la reqète SQL pour sélectionner les derniers noms d’espèces entrés par le contributeur |
last_added_species.view.php | back_end/common/view/ | Encode les résultats de la requête SQL en JSON |
my_added_species.control.php | back_end/common/control/ | Récupère le POST l'identifiant du contributeur |
my_added_species.data.php | back_end/common/data/ | Envoie la requête SQL pour sélectionner tous les noms d’espèces entrés par le contributeur |
my_added_species.view.php | back_end/common/view/ | Encode les résultats de la requête SQL en JSON |
species_filter_grid.control.php | back_end/common/control/ | Récupère les POSTs nom d’espèce, auteurs, année envoyé par la grille à filtre |
species_filter_grid.data.php | back_end/common/data/ | Envoie une requête de sélection des noms d’espèces qui correspondent aux paramètres du filtre |
species_filter_grid.view.php | back_end/common/view/ | Encode les résultats de la requête SQL en JSON |
species_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 nom espèce) |
species_store.data.php | back_end/common/data/ | Envoie la requête SQL de sélection de noms d’espèces avec les paramètres récupérés |
species_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 |
original_name_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 nom espèce) |
original_name_store.data.php | back_end/common/data/ | Envoie la requête SQL de sélection de noms originaux d’espèces avec les paramètres récupérés |
original_name_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 |
rank_store.control.php | Récupère le POST du paramètre série nominale | |
rank_store.data.php | Envoie la requête SQL de sélection des noms de rangs de la serie espèce | |
rank_store.view.php | Récupère le résultat de la requête de sélection et l’encode en JSON | |
create_species.control.php | back_end/common/control/ | Reçoit les POSTs du formulaire d’insertion d’un nouveau nom d’espèce |
create_species.data.php | back_end/common/data/ | Envoie la requête SQL d’insertion d’un nouveau nom d’espèce. Envoie une requête de sélection de la nouvelle entrée |
create_species.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_paronym.control.php | back_end/common/control/ | Reçoit les POSTs du formulaire de modification du nom |
modify_paronym.data.php | back_end/common/data/ | Envoie la requête SQL de mise à jour du nom. Envoie une requête de sélection du nom mis à jour. |
modify_paronym.view.php | back_end/common/view/ | Récupère le résultat de la requête de sélection et l’encode en JSON |
add_taxon.control.php | back_end/common/control/ | Reçoit les POSTs du formulaire d’insertion et lien d’une nouvelle référence de description à un nom d’espèce |
add_taxon.data.php | back_end/common/data/ | Envoie la requête SQL d’insertion de la nouvelle référence de description. Envoie une requête de sélection du nom en cours avec la nouvelle référence de description |
add_taxon.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_taxon.control.php | back_end/common/control/ | Reçoit les POSTs du formulaire de modification de la référence de description |
modify_taxon.data.php | back_end/common/data/ | Envoie la requête SQL de mise à jour de la référence de description.Envoie une requête de sélection du nom et de la référence de description mise à jour. |
modify_taxon.view.php | back_end/common/view/ | Récupère le résultat de la requête de sélection et l’encode en JSON |
remove_taxon.control.php | back_end/common/control/ | Reçoit l’identifiant de la référence de description considéré en POST |
remove_taxon.data.php | back_end/common/data/ | Envoie la requête de suppression de la référence de description considéré.Envoie une requête de sélection du nom (mis à jour, avec la référence de description supprimée). |
remove_taxon.view.php | back_end/common/view/ | Récupère le résultat de la requête de sélection et l’encode en JSON |
add_specimen_to_taxon.control.php | back_end/common/control/ | Reçoit les POSTs du formulaire d’insertion et lien d’une nouvelle référence de specimen type à une description |
add_specimen_to_taxon.data.php | back_end/common/data/ | Envoie la requête SQL d’insertion de la nouvelle référence de specimen. Envoie une requête de sélection du nom en cours avec la nouvelle référence de specimen type |
add_specimen_to_taxon.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_onomato_specimen.control.php | back_end/common/control/ | Reçoit les POSTs du formulaire de modification de la référence de specimen type |
modify_onomato_specimen.data.php | back_end/common/data/ | Envoie la requête SQL de mise à jour de la référence de specimen type. Envoie une requête de sélection du nom et de la référence de specimen type mise à jour. |
modify_onomato_specimen.view.php | back_end/common/view/ | Récupère le résultat de la requête de sélection et l’encode en JSON |
del_onomato_specimen.control.php | back_end/common/control/ | Reçoit l’identifiant de la référence du specimen type considéré en POST |
del_onomato_specimen.data.php | back_end/common/data/ | Envoie la requête de suppression de la référence du specimen type considéré. Envoie une requête de sélection du nom (mis à jour, avec la référence du specimen type supprimée) |
del_onomato_specimen.view.php | back_end/common/view/ | Récupère le résultat de la requête de sélection et l’encode en JSON |
publi_store.control.php | back_end/common/control/ | Récupère le POST du paramètres envoyés par le client (e. g. champ autocompletion recherche publication) |
publi_store.data.php | back_end/common/data/ | Envoie la requête SQL de sélection des publication |
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 |
code_nomen_zoo_fourth_edit. class.php | back_end/modules/code_nomenclature /code_nomen_zoo_fourth_edit/class/ | Contient les classes qui traitent des régles de nomenclature. |
other_form_name.php | back_end/modules/code_nomenclature /code_nomen_zoo_fourth_edit/ | Récupère l’identifiant du nom considéré et de son nom original en POST. Envoie une requête SQL qui sélectionne tous les noms subséquents au nom original. Encode un JSON à partir du résultat de la requête SQL. |
objective_synonymy.php | back_end/modules/code_nomenclature /code_nomen_zoo_fourth_edit/ | Récupère l’identifiant du nom considéré et de la référence de son specimen type. Envoie une requête SQL qui sélectionne tous les noms liés à la référence du specimen type. Encode un JSON à partir du résultat de la requête SQL. |
Tableau 2. Liste des noms de fichiers côté client, chemins et rôles.
Nom du fichier | Chemin | Rôle |
---|---|---|
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. |
species.js | app/model/ | Spécifie les champs envoyés par la base de données, et qui concernent les noms d’espèces |
publi.js | app/model/ | Spécifie les champs envoyés par la base de données, et qui concernent les publications. |
onomatoSpecimen.js | app/model/ | Spécifie les champs envoyés par la base de données, et qui concernent les références de spécimens types. |
taxon.js | app/model/ | Spécifie les champs envoyés par la base de données, et qui concernent les références de description. |
AllSpecies.js | app/store/ | Appelle une liste de tous les noms d’espèces. |
LastAddedSpecies.js | app/store/ | Appelle une liste des derniers noms d’espèce ajoutés par un utilisateur. |
MyAddedSpecies | app/store/ | Appelle une liste de tous les noms d’espèce ajoutés par un utilisateur. |
currentSpeciesStore.js | app/store/ | Appelle les données concernant le nom d’espèce sélectionné. |
SpeciesSearch.js | app/store/ | Appelle une liste de noms d’espèces suivant un paramètre POST. Utilisé surtout pour la recherche par autocomplétion. |
allRanks.js | app/store/ | Appelle tous les rangs. |
Rank.js | Appelle tous les rangs d’une série nominale. | |
originalNameStore.js | app/store/ | Appelle une liste de noms originaux d’espèces suivant un paramètre POST. Utilisé surtout pour la recherche par autocomplétion. |
taxonStore.js | app/store/ | Appelle une liste de référence de descriptions correspondant à un nom d’espèce. |
onomatoSpecimenStore.js | app/store/ | Appelle une liste de référence de specimens types correspondant à un nom d’espèce. |
publiTitle.js | app/store/ | Appelle une liste de références de publication suivant un paramètre POST. Utilisé surtout pour la recherche par autocomplétion. |
paronymPubliTitle.js | app/store/ | Appelle une liste de références de publication suivant un paramètre POST. Utilisé surtout pour la recherche par autocomplétion spécifiquement dans les formulaires d’ajout/modification de nom d’espèces. |
otherFormName.js | app/store/ | Appelle une liste de noms liés à un même nom d’origine. |
objectiveSynonymy.js | app/store/ | Appelle une liste de noms liés à un même spécimen type. |
AllSpecies.js | app/view/ | Affiche une liste de tous les noms espèce 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, banière, topmenu, etc). |
addSpecimenTo TaxonWindow.js | app/view/ | Affiche le formulaire d’ajout d’une référence de spécimen type à un nom d’espèce. |
addTaxonWindow.js | app/view/ | Affiche le formulaire d’ajout d’une référence de description à un nom d’espèce. |
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é. |
createSpeciesWindow.js | app/view/ | Affiche le formulaire d’ajout d’un nouveau nom d’espèce. |
createSpecimenWindow.js | app/view/ | Affiche le formulaire d’ajout d’une nouvelle référence de spécimen type à un nouveau nom d’espèce. |
myAccountView.js | Affiche les informations du compte contributeur. | |
modifyAccountWindow.js | app/view/ | Affiche le formulaire de modification du compte contributeur. |
modifyParonymWindow.js | app/view/ | Affiche le formulaire de modification du nom d’espèce. |
modifySpecimenWindow.js | app/view/ | Affiche le formulaire de modification de la référence d’un spécimen type. |
modifyTaxonWindow.js | app/view/ | Affiche le formulaire de modification de la référence d’une référence de déscription. |
speciesFilterGrid.js | app/view/ | Affiche une grille des noms d’espèces avec des filtres. |
speciesView.js | app/view/ | Affiche tous les éléments qui constituent une fiche nom d’espèce. |
specimenContextMenu.js | app/view/ | Affiche le menu clic droit sur une référence de spécimen type. |
taxonContextMenu.js | app/view/ | Affiche le menu clic droit sur une référence de description. |
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) |