Subversion Repositories eFlore/Applications.coel-consultation

Compare Revisions

Ignore whitespace Rev 18 → Rev 19

/trunk/configurations/config.default.ini
0,0 → 1,42
; Info sur l'application
info.nom = Consultation des Collections
info.abr = COLL
;Encodage de l'application. (Pour l'utf-8 ne pas mettre le tiret!)
appli_encodage = "UTF8"
; URL de base de l'application, si elle est laissée vide, l'application fonctionnera en Stand-alone
url_base = "http://localhost/collection/index.php"
; Mettre à true si l'application nécessite de s'identifier.
identification = false
 
; +------------------------------------------------------------------------------------------------------+
; Paramètrage de la base de données.
; abstraction de la base de données.
bdd_abstraction = pdo
; Protocole de la base de données.
bdd_protocole = mysql
; Nom du serveur de bases de données.
bdd_serveur = localhost
; Nom de l'utilisateur de la base de données.
bdd_utilisateur = ""
; Mot de passe de l'utilisateur de la base de données.
bdd_mot_de_passe = ""
; Nom de la base de données principale.
bdd_nom = "tb_coel"
; Encodage de la base de données principale. (Pour l'utf-8 ne pas mettre le tiret!)
bdd_encodage = "UTF8"
 
; +------------------------------------------------------------------------------------------------------+
; Paramètrage de la session
; Devons nous démarrer une session : oui (true) ou non (false)
session_demarrage = "php:true"
; Définition du nom de la session à utiliser
session_nom = "collection"
 
; +------------------------------------------------------------------------------------------------------+
; Débogage
; Indique si oui ou non on veut afficher le débogage.
fw_debogage = true
 
; +------------------------------------------------------------------------------------------------------+
; Spécifique à l'application
url_jrest = "http://www.tela-botanica.org/eflore/coel/jrest/"
/trunk/bibliotheque/pear/Pager.php
180,7 → 180,7
 
// If the class exists, return a new instance of it.
if (class_exists($classname)) {
$pager =& new $classname($options);
$pager = new $classname($options);
return $pager;
}
 
/trunk/bibliotheque/noyau/ColControleur.php
237,12 → 237,11
}
// Type correspondant à une entrée de l'ontologie
if ($typeEstOntologie) {
$valeurTypeOntologie = '[0-9]+'.self::SEPARATEUR_TYPE_VALEUR;
if (preg_match('/^'.$valeurTypeOntologie.'.+$/', $valeur)) {
$type = substr($valeur, 0, strripos($valeur, self::SEPARATEUR_TYPE_VALEUR));
$valeurOntologie = Ontologie::getValeur($type);
if ($valeurOntologie != '') {
$valeurOntologieNom = $valeurOntologie['nom'];
$valeurTypeOntologie = '([0-9]+)'.self::SEPARATEUR_TYPE_VALEUR;
if (preg_match('/^'.$valeurTypeOntologie.'.*$/', $valeur, $match)) {
$type = $match[1];
$valeurOntologieNom = Ontologie::getValeurNom($type);
if ($valeurOntologieNom !== false) {
$valeur = preg_replace('/^'.$type.'/', $valeurOntologieNom.': ', $valeur);
}
}
253,9 → 252,8
if (preg_match('/^.+'.$donneeOntologie.'$/', $valeur, $match)) {
$donnee = $match[1];
$donnee = str_replace(self::SEPARATEUR_TYPE_VALEUR, '', $donnee);
$valeurOntologie = Ontologie::getValeur($donnee);
if ($valeurOntologie != '') {
$valeurOntologieNom = $valeurOntologie['nom'];
$valeurOntologieNom = Ontologie::getValeurNom($donnee);
if ($valeurOntologieNom !== false) {
$valeur = preg_replace('/'.$donnee.'$/', $valeurOntologieNom, $valeur);
}
}
295,4 → 293,18
$this->url->unsetVariablesRequete(array('module', 'action', 'id'));
return $url;
}
protected function postraiterDonnees(&$tableau) {
if (count($tableau) > 0) {
foreach ($tableau as $cle => &$valeur) {
if ($valeur == '') {
$valeur = ' ';
} else if (is_string($valeur)) {
$valeur = preg_replace('/&(?!amp;)/i', '&', $valeur, -1);
} else if (is_array($valeur)) {
$this->postraiterDonnees($valeur);
}
}
}
}
}
/trunk/bibliotheque/noyau/ColModele.php
15,7 → 15,13
abstract class ColModele extends Modele {
protected $limite_debut = null;
protected $limite_nbre = null;
protected $url_jrest = null;
public function __construct() {
parent::__construct();
$this->url_jrest = config::get('url_jrest');
}
public function avoirLimitation() {
$limitation = false;
if (!is_null($this->limite_debut) && !is_null($this->limite_nbre)) {
/trunk/squelettes/fiche_structure.tpl.html
90,7 → 90,7
<dt>Intérêt pour une formation</dt> <dd><?=$info['_formation_interet_']?></dd>
</dl>
 
<h3>Opérations & matériels</h3>
<h3>Opérations &amp; matériels</h3>
<dl>
<dt>Opérations actuelles de restauration</dt> <dd><?=$info['_restauration_']?> <?=$info['_restauration_operation_']?></dd>
<dt>Utilisation de matériel de conservation</dt> <dd><?=$info['_materiel_conservation_']?> <?=$info['_materiel_autre_']?></dd>
128,7 → 128,7
<dt>Futures actions de valorisation</dt> <dd><?=$info['_action_future_']?> <?=$info['_action_future_info_']?></dd>
</dl>
 
<h3>Accès & Usages</h3>
<h3>Accès &amp; Usages</h3>
<dl>
<dt>Condition de visite</dt> <dd><?=$info['_visite_avec_motif_']?> <?=$info['_visite_avec_motif_info_']?></dd>
<dt>Condition d'accès</dt> <dd><?=$info['_acces_ss_motif_']?> <?=$info['_acces_ss_motif_info_']?></dd>
/trunk/squelettes/resultat.tpl.html
1,5 → 1,6
<div id="col_resultat">
<?=$fragmenteur;?>
<?php if (isset($infos)) : ?>
<ul>
<?php foreach ($infos as $info) : ?>
<li><?=$info['structure']['ville']?> - <a href="<?=$info['structure']['url']?>"><?=$info['structure']['nom']?></a>
11,4 → 12,5
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
/trunk/squelettes/fiche_collection.tpl.html
197,84 → 197,84
 
<h3>Conservation</h3>
<dl>
<dt>Type de papier</dt> <dd><?=$info['']?></dd>
<dt>Méthode</dt> <dd><?=$info['']?></dd>
<dt>Type de papier</dt> <dd><?=$info['_conservation_papier_type_']?></dd>
<dt>Méthode</dt> <dd><?=$info['_conservation_methode_']?></dd>
</dl>
 
<h3>Étiquettes</h3>
<dl>
<dt>% de spécimen fixés</dt> <dd><?=$info['']?></dd>
<dt>% d'étiquettes fixées</dt> <dd><?=$info['']?></dd>
<dt>Méthode de fixation du spécimen</dt> <dd><?=$info['']?></dd>
<dt>Méthode de fixation des étiquettes au support</dt> <dd><?=$info['']?></dd>
<dt>Méthode de fixation des étiquettes au spécimen</dt> <dd><?=$info['']?></dd>
<dt>Type d'écriture des étiquettes</dt> <dd><?=$info['']?></dd>
<dt>% de spécimen fixés</dt> <dd><?=$info['ccb_specimen_fixation_pourcent']?>%</dd>
<dt>% d'étiquettes fixées</dt> <dd><?=$info['ccb_etiquette_fixation_pourcent']?>%</dd>
<dt>Méthode de fixation du spécimen</dt> <dd><?=$info['_specimen_fixation_methode_']?></dd>
<dt>Méthode de fixation des étiquettes au support</dt> <dd><?=$info['_etiquette_fixation_support_']?></dd>
<dt>Méthode de fixation des étiquettes au spécimen</dt> <dd><?=$info['_etiquette_fixation_specimen_']?></dd>
<dt>Type d'écriture des étiquettes</dt> <dd><?=$info['_etiquette_ecriture_']?></dd>
</dl>
 
<h3>Traitements</h3>
<dl>
<dt>Traitement</dt> <dd><?=$info['']?></dd>
<dt>Empoisonnement</dt> <dd><?=$info['']?></dd>
<dt>Pesticide</dt> <dd><?=$info['']?></dd>
<dt>Traitement</dt> <dd><?=$info['_traitement_']?></dd>
<dt>Empoisonnement</dt> <dd><?=$info['_traitement_poison_']?></dd>
<dt>Pesticide</dt> <dd><?=$info['_traitement_insecte_']?></dd>
</dl>
 
<h3>État général et dégradation</h3>
<dl>
<dt>État général</dt> <dd><?=$info['']?></dd>
<dt>Causes de dégradation des spécimens</dt> <dd><?=$info['']?></dd>
<dt>Causes de dégradation de la présentation</dt> <dd><?=$info['']?></dd>
<dt>Détermination des échantillons</dt> <dd><?=$info['']?></dd>
<dt>État général</dt> <dd><?=$info['_etat_general_']?></dd>
<dt>Causes de dégradation des spécimens</dt> <dd><?=$info['_degradation_specimen_']?></dd>
<dt>Causes de dégradation de la présentation</dt> <dd><?=$info['_degradation_presentation_']?></dd>
<dt>Détermination des échantillons</dt> <dd><?=$info['_determination_']?></dd>
</dl>
 
<h2>Contenu</h2>
<h3>Nature</h3>
<dl>
<dt>Nature de la collection</dt> <dd><?=$info['']?></dd>
<dt>Collection spécialisée</dt> <dd><?=$info['']?></dd>
<dt>Nature de la collection</dt> <dd><?=$info['_nature_']?></dd>
<dt>Collection spécialisée</dt> <dd><?=$info['ccb_specialite']?></dd>
</dl>
 
<h3>Période de constitution</h3>
<dl>
<dt>Période de constitution</dt> <dd><?=$info['']?></dd>
<dt>Date de DÉBUT de récolte</dt> <dd><?=$info['']?></dd>
<dt>Date de FIN de récolte</dt> <dd><?=$info['']?></dd>
<dt>Période de constitution</dt> <dd><?=$info['_periode_constitution_']?></dd>
<dt>Date de DÉBUT de récolte</dt> <dd><?=$info['ccb_recolte_date_debut']?> <?=$info['_recolte_date_debut_type_']?></dd>
<dt>Date de FIN de récolte</dt> <dd><?=$info['ccb_recolte_date_fin']?> <?=$info['_recolte_date_fin_type_']?></dd>
</dl>
 
<h3>Classement</h3>
<dl>
<dt>État du classement</dt> <dd><?=$info['']?></dd>
<dt>Principe de classement</dt> <dd><?=$info['']?></dd>
<dt>État du classement</dt> <dd><?=$info['_classement_etat_']?></dd>
<dt>Principe de classement</dt> <dd><?=$info['ccb_annotation_classement']?></dd>
</dl>
 
<h3>Étiquette</h3>
<dl>
<dt>Renseignements</dt> <dd><?=$info['']?></dd>
<dt>Localités précises</dt> <dd><?=$info['']?></dd>
<dt>Dates précises</dt> <dd><?=$info['']?></dd>
<dt>Annotations</dt> <dd><?=$info['']?></dd>
<dt>Renseignements</dt> <dd><?=$info['_etiquette_renseignement_']?></dd>
<dt>Localités précises</dt> <dd><?=$info['_precision_localite_']?></dd>
<dt>Dates précises</dt> <dd><?=$info['_precision_date_']?></dd>
<dt>Annotations</dt> <dd><?=$info['ccb_annotation_diverse']?></dd>
</dl>
 
<h3>Collections intégrées</h3>
<dl>
<dt>Intégration de collection antérieures</dt> <dd><?=$info['']?></dd>
<dt>Nom de la collection sur les étiquettes</dt> <dd><?=$info['']?></dd>
<dt>Intégration de collection antérieures</dt> <dd><?=$info['_collection_integre_']?></dd>
<dt>Nom de la collection sur les étiquettes</dt> <dd><?=$info['_collection_integre_info_']?></dd>
</dl>
 
<h2>Inventaire</h2>
<h3>Inventaire (autre que celui de l'auteur)</h3>
<dl>
<dt>Existence inventaire</dt> <dd><?=$info['']?></dd>
<dt>Participation de l'auteur</dt> <dd><?=$info['']?></dd>
<dt>Forme de l'inventaire</dt> <dd><?=$info['']?></dd>
<dt>Informations disponibles</dt> <dd><?=$info['']?></dd>
<dt>Logiciel utilisé</dt> <dd><?=$info['']?></dd>
<dt>% en base de données</dt> <dd><?=$info['']?></dd>
<dt>État inventaire</dt> <dd><?=$info['']?></dd>
<dt>Existence inventaire</dt> <dd><?=$info['_inventaire_']?></dd>
<dt>Participation de l'auteur</dt> <dd><?=$info['_inventaire_auteur_']?></dd>
<dt>Forme de l'inventaire</dt> <dd><?=$info['_inventaire_forme_']?></dd>
<dt>Informations disponibles</dt> <dd><?=$info['ccb_inventaire_info']?></dd>
<dt>Logiciel utilisé</dt> <dd><?=$info['_inventaire_digital_']?></dd>
<dt>% en base de données</dt> <dd><?=$info['ccb_inventaire_digital_pourcent']?>%</dd>
<dt>État inventaire</dt> <dd><?=$info['_inventaire_etat_']?></dd>
</dl>
 
<h2>Notes</h2>
<h3>Notes liées à la collection</h3>
<?php if (count($notes) > 0) : ?>
<?php if (count($commentaires) > 0) : ?>
<table>
<thead>
<tr>
281,19 → 281,17
<th>Type</th>
<th>Titre</th>
<th>Importance</th>
<th>Accès</th>
</tr>
</thead>
<tbody>
<?php foreach ($notes as $note) : ?>
<?php foreach ($commentaires as $commentaire) : ?>
<tr>
<td><?=$note['']?></td>
<td><?=$note['']?></td>
<td><?=$note['']?></td>
<td><?=$note['']?></td>
<td><?=$commentaire['_type_']?></td>
<td><?=$commentaire['ccm_titre']?></td>
<td><?=$commentaire['ccm_ponderation']?></td>
</tr>
<tr>
<td colspan="4"><?=$note['']?></td>
<td colspan="3"><?=$commentaire['ccm_texte']?></td>
</tr>
<?php endforeach; ?>
</tbody>
/trunk/controleurs/Fiche.php
51,7 → 51,8
$this->traiterDonneesStructureConservation($donnees['info']);
$this->traiterDonneesStructureValorisation($donnees['info']);
$this->traiterDonneesStructureCollections($donnees['collections']);
//Debug::printr($donnees['collections']);
$this->postraiterDonnees($donnees);
//Debug::printr($donnees);
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_structure', $donnees));
}
}
199,54 → 200,20
$donnees['info'] = $collectionDao->getCollection($donnees['id']);
$donnees['personnes'] = $collectionDao->getCollectionAPersonne($donnees['id']);
$donnees['publications'] = $collectionDao->getCollectionAPublication($donnees['id']);
$donnees['commentaires'] = $collectionDao->getCollectionACommentaire($donnees['id']);
$this->traiterMetaDonnees($donnees['info']);
$this->traiterDonneesCollection($donnees['info']);
$this->traiterDonneesCollectionAPersonne($donnees['personnes']);
$this->traiterDonneesCollectionAPublication($donnees['publications']);
$this->traiterDonneesCollectionDescription($donnees['info']);
Debug::printr($donnees);
$this->traiterDonneesCollectionContenu($donnees['info']);
$this->traiterDonneesCollectionInventaire($donnees['info']);
$this->traiterDonneesCollectionACommentaire($donnees['commentaires']);
$this->postraiterDonnees($donnees);
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_collection', $donnees));
}
}
private function traiterDonneesCollectionDescription(&$donnees) {
// liste 41 : Liste des types d'unité de rangement pour les collections botaniques
Ontologie::chargerListe(1044);
// liste 42 : Liste des états
Ontologie::chargerListe(1045);
// liste 43 : Liste des types de support pour les spécimens des collections botaniques
Ontologie::chargerListe(1046);
// liste 80 : Liste des types de collection botanique
Ontologie::chargerListe(1083);
 
$donnees['_type_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_truk_type']);
$donnees['_unite_rangement_etat_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_unite_rangement_etat']);
$donnees['_rangements_'] = $this->parserValeurUniteRangement($donnees['ccb_truk_unite_rangement']);
$donnees['_unites_base_'] = $this->parserValeurUniteBase($donnees['ccb_truk_unite_base']);
 
}
private function traiterDonneesCollectionAPublication(&$publications) {
foreach ($publications as &$publication) {
$publication['_editeur_'] = $this->construireTxtTruck($publication['cpu_ce_truk_editeur']);
$publication['_date_parution_'] = rtrim($publication['cpu_date_parution'],'-00-00');
}
}
private function traiterDonneesCollectionAPersonne(&$personnes) {
// liste 27 : Liste des relations entre une collection et une personne
Ontologie::chargerListe(1030);
// liste 77 : Liste indéterminé/oui/non
Ontologie::chargerListe(1080);
foreach ($personnes as &$personne) {
$personne['_role_'] = $this->construireTxtListeOntologie($personne['ccap_id_role']);
$personne['_deces_'] = $this->construireTxtListeOntologie($personne['cp_ce_deces']);
$personne['_naissance_date_'] = $this->formaterDate($personne['cp_naissance_date']);
$personne['_deces_date_'] = $this->formaterDate($personne['cp_deces_date']);
}
}
private function traiterDonneesCollection(&$donnees) {
// liste 29 : Liste des types de collection dans le standard NCD
Ontologie::chargerListe(1032);
281,6 → 248,181
$donnees['_couverture_lieu_'] = $this->construireTxtTruck($donnees['cc_truk_couverture_lieu']);
}
private function traiterDonneesCollectionAPersonne(&$personnes) {
// liste 27 : Liste des relations entre une collection et une personne
Ontologie::chargerListe(1030);
// liste 77 : Liste indéterminé/oui/non
Ontologie::chargerListe(1080);
foreach ($personnes as &$personne) {
$personne['_role_'] = $this->construireTxtListeOntologie($personne['ccap_id_role']);
$personne['_deces_'] = $this->construireTxtListeOntologie($personne['cp_ce_deces']);
$personne['_naissance_date_'] = $this->formaterDate($personne['cp_naissance_date']);
$personne['_deces_date_'] = $this->formaterDate($personne['cp_deces_date']);
}
}
private function traiterDonneesCollectionAPublication(&$publications) {
foreach ($publications as &$publication) {
$publication['_editeur_'] = $this->construireTxtTruck($publication['cpu_ce_truk_editeur']);
$publication['_date_parution_'] = rtrim($publication['cpu_date_parution'],'-00-00');
}
}
private function traiterDonneesCollectionDescription(&$donnees) {
// liste 22 : Liste de traitement anti-insecte pour les collections botaniques
Ontologie::chargerListe(1025);
// liste 23 : Liste des poisons utilisés pour les collections botaniques
Ontologie::chargerListe(1026);
// liste 38 : Liste indéterminé/peut-être/oui/non
Ontologie::chargerListe(1041);
// liste 41 : Liste des types d'unité de rangement pour les collections botaniques
Ontologie::chargerListe(1044);
// liste 42 : Liste des états
Ontologie::chargerListe(1045);
// liste 43 : Liste des types de support pour les spécimens des collections botaniques
Ontologie::chargerListe(1046);
// liste 44 : Liste des types de papier de support pour les spécimens des collections botaniques
Ontologie::chargerListe(1047);
// liste 45 : Liste des méthodes de rangement des supports pour les spécimens des collections botaniques
Ontologie::chargerListe(1048);
// liste 46 : Liste des méthodes de fixation sur le support pour les collections botaniques
Ontologie::chargerListe(1049);
// liste 47 : Liste des méthodes de fixation des étiquettes sur les spécimens pour les collections botaniques
Ontologie::chargerListe(1050);
// liste 48 : Liste des types d'écriture d'étiquette
Ontologie::chargerListe(1051);
// liste 49 : Liste des origines des dégradations des spécimens de collections botaniques
Ontologie::chargerListe(1052);
// liste 50 : Liste des origines des dégradations des supports de collections botaniques
Ontologie::chargerListe(1053);
// liste 51 : Liste des niveaux de détermination des spécimens de collections botaniques
Ontologie::chargerListe(1054);
 
$donnees['_type_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_truk_type']);
$donnees['_unite_rangement_etat_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_unite_rangement_etat']);
$donnees['_rangements_'] = $this->parserValeurUniteRangement($donnees['ccb_truk_unite_rangement']);
$donnees['_unites_base_'] = $this->parserValeurUniteBase($donnees['ccb_truk_unite_base']);
$donnees['_conservation_papier_type_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_conservation_papier_type']);
$donnees['_conservation_methode_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_conservation_methode']);
$donnees['_specimen_fixation_methode_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_specimen_fixation_methode']);
$donnees['_etiquette_fixation_support_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_etiquette_fixation_support']);
$donnees['_etiquette_fixation_specimen_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_etiquette_fixation_specimen']);
$donnees['_etiquette_ecriture_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_etiquette_ecriture']);
$donnees['_traitement_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_traitement']);
$donnees['_traitement_poison_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_traitement_poison']);
$donnees['_traitement_insecte_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_traitement_insecte']);
$donnees['_etat_general_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_etat_general']);
$valeurEstOntologie = false;
$typeEstOntologie = true;
$donneeEstOntologie = true;
$donnees['_degradation_specimen_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_degradation_specimen'], $valeurEstOntologie, $typeEstOntologie, $donneeEstOntologie);
$donnees['_degradation_presentation_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_degradation_presentation'], $valeurEstOntologie, $typeEstOntologie, $donneeEstOntologie);
$donnees['_determination_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_determination']);
}
private function traiterDonneesCollectionContenu(&$donnees) {
// liste 20 : Liste oui/non/en partie
Ontologie::chargerListe(1023);
// liste 37 : Liste des siècles pour les collections naturalistes
Ontologie::chargerListe(1040);
// liste 38 : Liste indéterminé/peut-être/oui/non
Ontologie::chargerListe(1041);
// liste 42 : Liste des états
Ontologie::chargerListe(1045);
// liste 52 : Liste des types de date de début
Ontologie::chargerListe(1055);
// liste 53 : Liste des types de date de fin
Ontologie::chargerListe(1056);
// liste 80 : Liste des types de collection botanique
Ontologie::chargerListe(1083);
$donnees['_nature_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_nature']);
$donnees['_periode_constitution_'] = $this->construireTxtListeOntologie($donnees['cc_truk_periode_constitution']);
$donnees['_recolte_date_debut_type_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_recolte_date_debut_type']);
$donnees['_recolte_date_debut_type_'] = $this->formaterParenthese($donnees['_recolte_date_debut_type_']);
$donnees['_recolte_date_fin_type_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_recolte_date_fin_type']);
$donnees['_recolte_date_fin_type_'] = $this->formaterParenthese($donnees['_recolte_date_fin_type_']);
$donnees['_classement_etat_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_classement_etat']);
$donnees['_etiquette_renseignement_'] = $this->construireTxtEtiquetteRenseignement($donnees['ccb_truk_etiquette_renseignement']);
$donnees['_precision_localite_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_precision_localite']);
$donnees['_precision_date_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_precision_date']);
$donnees['_collection_integre_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_collection_integre']);
$donnees['_collection_integre_info_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_collection_integre_info']);
}
private function traiterDonneesCollectionInventaire(&$donnees) {
// liste 38 : Liste indéterminé/peut-être/oui/non
Ontologie::chargerListe(1041);
// liste 57 : Liste indéterminé/parfois/oui/non
Ontologie::chargerListe(1060);
// liste 58 : Liste des formes d'inventaire
Ontologie::chargerListe(1061);
// liste 59 : Liste des types de logiciel pour les inventaires informatiques
Ontologie::chargerListe(1062);
// liste 60 : Liste des états d'inventaire
Ontologie::chargerListe(1063);
$donnees['_inventaire_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_inventaire']);
$donnees['_inventaire_auteur_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_inventaire_auteur']);
$donnees['_inventaire_forme_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_inventaire_forme']);
$donnees['_inventaire_digital_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_truk_inventaire_digital']);
$donnees['_inventaire_etat_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_inventaire_etat']);
}
private function traiterDonneesCollectionACommentaire(&$commentaires) {
// liste 65 : Liste des types de commentaires associés à une collection
Ontologie::chargerListe(1068);
foreach ($commentaires as &$commentaire) {
$commentaire['_type_'] = $this->construireTxtListeOntologie($commentaire['ccac_truk_type']);
}
}
private function construireTxtEtiquetteRenseignement($valeur) {
$etiquetteRenseignements = '';
$infos = $this->parserEtiquetteRenseignement($valeur);
if (count($infos) > 0) {
foreach ($infos as $cle => $info) {
if ($cle == 'AT') {
$etiquetteRenseignements .= 'auteur de la collection';
} else if ($cle == 'F') {
$etiquetteRenseignements .= 'famille';
} else if ($cle == 'G') {
$etiquetteRenseignements .= 'genre';
} else if ($cle == 'SP') {
$etiquetteRenseignements .= 'espèce';
} else if ($cle == 'ASP') {
$etiquetteRenseignements .= "auteur de l'espèce";
} else if ($cle == 'L') {
$etiquetteRenseignements .= 'localité';
} else if ($cle == 'D') {
$etiquetteRenseignements .= 'date de récolte';
} else {
$etiquetteRenseignements .= 'Inconnue';
}
$etiquetteRenseignements .= ': '.$info.'%, ';
}
$etiquetteRenseignements = rtrim($etiquetteRenseignements, ', ').'.';
}
return $etiquetteRenseignements;
}
private function parserEtiquetteRenseignement($valeurTruk) {
$infos = array();
if ($valeurTruk != '') {
$pourcentages = explode(self::SEPARATEUR_VALEURS, $valeurTruk);
foreach ($pourcentages as $pourcentage) {
$pourcentageIdValeur = explode(self::SEPARATEUR_TYPE_VALEUR, $pourcentage);
$id = $pourcentageIdValeur[0];
$valeur = $pourcentageIdValeur[1];
$infos[$id] = $valeur;
}
}
return $infos;
}
private function parserValeurUniteBase($valeurTruk) {
$unitesEnregistrees = array();
if ($valeurTruk != '') {
/trunk/modeles/RechercheDao.php
13,33 → 13,18
*
*/
class RechercheDao extends ColModele {
 
const SERVICE = 'CoelRecherche';
/**
* Recherche une collection en fonction de paramêtres
* @return array un tableau contenant des objets d'informations sur les collections
*/
public function chercherStructureNbre($parametres) {
$requete = 'SELECT COUNT(cc_id_collection) AS nbre '.
'FROM coel_collection LEFT JOIN coel_structure ON (cc_ce_structure = cs_id_structure) '.
'WHERE ('.
" cc_nom LIKE '%{$parametres['mots']}%' ".
" OR cc_truk_nom_alternatif LIKE '%{$parametres['mots']}%' ".
" OR cc_truk_code LIKE '%{$parametres['mots']}%' ".
" OR cc_description LIKE '%{$parametres['mots']}%' ".
" OR cc_description_specialiste LIKE '%{$parametres['mots']}%' ".
" OR cc_historique LIKE '%{$parametres['mots']}%' ".
" OR cs_nom LIKE '%{$parametres['mots']}%' ".
" OR cs_adresse_01 LIKE '%{$parametres['mots']}%' ".
" OR cs_adresse_02 LIKE '%{$parametres['mots']}%' ".
" OR cs_ville LIKE '%{$parametres['mots']}%' ".
" OR cs_truk_identifiant_alternatif LIKE '%{$parametres['mots']}%' ".
') '.
'ORDER BY cs_ville ASC, cc_nom ASC ';
$donnees = $this->requeteUn($requete);
//Debug::printr($requete);
return $donnees['nbre'];
$mots = urlencode($parametres['mots']);
$url = $this->url_jrest.self::SERVICE."/Nombre/$mots";
$json = file_get_contents($url);
$donnees = json_decode($json);
return $donnees;
}
/**
47,29 → 32,12
* @return array un tableau contenant des objets d'informations sur les collections
*/
public function chercher($parametres) {
$requete = 'SELECT cs_id_structure, cs_ville, cs_nom, '.
' cc_id_collection, cc_nom '.
'FROM coel_collection LEFT JOIN coel_structure ON (cc_ce_structure = cs_id_structure) '.
'WHERE ('.
" cc_nom LIKE '%{$parametres['mots']}%' ".
" OR cc_truk_nom_alternatif LIKE '%{$parametres['mots']}%' ".
" OR cc_truk_code LIKE '%{$parametres['mots']}%' ".
" OR cc_description LIKE '%{$parametres['mots']}%' ".
" OR cc_description_specialiste LIKE '%{$parametres['mots']}%' ".
" OR cc_historique LIKE '%{$parametres['mots']}%' ".
" OR cs_nom LIKE '%{$parametres['mots']}%' ".
" OR cs_adresse_01 LIKE '%{$parametres['mots']}%' ".
" OR cs_adresse_02 LIKE '%{$parametres['mots']}%' ".
" OR cs_ville LIKE '%{$parametres['mots']}%' ".
" OR cs_truk_identifiant_alternatif LIKE '%{$parametres['mots']}%' ".
') '.
'ORDER BY cs_ville ASC, cc_nom ASC '.
($this->avoirLimitation() ? "LIMIT {$this->getLimiteDebut()}, {$this->getLimiteNbre()} " : '');
$donnees = $this->requeteTous($requete);
//Debug::printr($requete);
$mots = urlencode($parametres['mots']);
$url = $this->url_jrest.self::SERVICE."/ParDefaut/$mots";
$url .= ($this->avoirLimitation() ? "?start={$this->getLimiteDebut()}&limit={$this->getLimiteNbre()}" : '');
$json = file_get_contents($url);
$donnees = json_decode($json, true);
return $donnees;
}
}
}
?>
/trunk/modeles/PersonneDao.php
13,6 → 13,7
*
*/
class PersonneDao extends ColModele {
const SERVICE_PERSONNE = 'CoelPersonne';
 
/**
* Retourne l'ensemble des information d'une personne.
21,7 → 22,8
* @return array un tableau contenant les informations sur la personne.
*/
public function getPersonne($id) {
$json = file_get_contents("http://www.tela-botanica.org/eflore/coel/jrest/CoelPersonne/$id");
$url = $this->url_jrest.self::SERVICE_PERSONNE."/$id";
$json = file_get_contents($url);
$donnees = json_decode($json, true);
return $donnees;
}
/trunk/modeles/CollectionDao.php
13,7 → 13,10
*
*/
class CollectionDao extends ColModele {
 
const SERVICE_COLLECTION = 'CoelCollection';
const SERVICE_COLLECTION_A_PERSONNE = 'CoelCollectionAPersonne';
const SERVICE_COLLECTION_A_PUBLICATION = 'CoelCollectionAPublication';
const SERVICE_COLLECTION_A_COMMENTAIRE = 'CoelCollectionACommentaire';
/**
* Retourne l'ensemble des information sur une collection.
*
33,7 → 36,8
* @return array un tableau contenant les collections correspondant à l'id structure.
*/
public function getParIdStructure($id_structure) {
$json = file_get_contents("http://www.tela-botanica.org/eflore/coel/jrest/CoelCollection/ParIdStructure/$id_structure");
$url = $this->url_jrest.self::SERVICE_COLLECTION."/ParIdStructure/$id_structure";
$json = file_get_contents($url);
$donnees = json_decode($json, true);
$this->nettoyerTableauDeTableauxAssoc($donnees);
return $donnees;
46,7 → 50,8
* @return array un tableau contenant les informations sur les personnes liées à la collection.
*/
public function getCollectionAPersonne($id_collection) {
$json = file_get_contents("http://www.tela-botanica.org/eflore/coel/jrest/CoelCollectionAPersonne/$id_collection");
$url = $this->url_jrest.self::SERVICE_COLLECTION_A_PERSONNE."/$id_collection";
$json = file_get_contents($url);
$donnees = json_decode($json, true);
$this->nettoyerTableauDeTableauxAssoc($donnees);
return $donnees;
59,10 → 64,26
* @return array un tableau contenant les informations sur les publications liées à la collection.
*/
public function getCollectionAPublication($id_collection) {
$json = file_get_contents("http://www.tela-botanica.org/eflore/coel/jrest/CoelCollectionAPublication/$id_collection");
$url = $this->url_jrest.self::SERVICE_COLLECTION_A_PUBLICATION."/$id_collection";
$json = file_get_contents($url);
$donnees = json_decode($json, true);
$this->nettoyerTableauDeTableauxAssoc($donnees);
return $donnees;
}
/**
* Retourne l'ensemble des commentaires publics liés à une collection.
*
* @param integer l'id de la collection.
* @return array un tableau contenant les informations sur les publications liées à la collection.
*/
public function getCollectionACommentaire($id_collection) {
$commentaire_public = '1';
$url = $this->url_jrest.self::SERVICE_COLLECTION_A_COMMENTAIRE."/$id_collection/$commentaire_public";
$json = file_get_contents($url);
$donnees = json_decode($json, true);
$this->nettoyerTableauDeTableauxAssoc($donnees);
return $donnees;
}
}
?>
/trunk/modeles/MetadonneeDao.php
13,7 → 13,8
*
*/
class MetadonneeDao extends ColModele {
 
const SERVICE_ONTOLOGIE = 'CoelValeurListe';
/**
* Retourne l'ensemble des information d'une liste de valeurs.
*
21,7 → 22,8
* @return array un tableau contenant les valeurs de la liste.
*/
public function getOntologie($id) {
$json = file_get_contents("http://www.tela-botanica.org/eflore/coel/jrest/CoelValeurListe/id/$id?limit=500");
$url = $this->url_jrest.self::SERVICE_ONTOLOGIE."/id/$id?limit=500";
$json = file_get_contents($url);
$donnees = json_decode($json, true);
return $donnees;
}
33,7 → 35,8
* @return array un tableau contenant les valeurs.
*/
public function getOntologieValeur($id_valeurs) {
$json = file_get_contents("http://www.tela-botanica.org/eflore/coel/jrest/CoelValeurListe/idv/$id_valeurs");
$url = $this->url_jrest.self::SERVICE_ONTOLOGIE."/idv/$id_valeurs";
$json = file_get_contents($url);
$donnees = json_decode($json, true);
return $donnees;
}
/trunk/modeles/StructureDao.php
13,7 → 13,9
*
*/
class StructureDao extends ColModele {
 
const SERVICE_STRUCTURE = 'CoelStructure';
const SERVICE_STRUCTURE_A_PERSONNE = 'CoelStructureAPersonne';
/**
* Retourne l'ensemble des information sur une structure.
*
21,7 → 23,8
* @return array un tableau contenant les informations sur la structure.
*/
public function getStructure($id) {
$json = file_get_contents("http://www.tela-botanica.org/eflore/coel/jrest/CoelStructure/*/$id/*");
$url = $this->url_jrest.self::SERVICE_STRUCTURE."/*/$id/*";
$json = file_get_contents($url);
$donnees = json_decode($json, true);
return $donnees[1];
}
33,7 → 36,8
* @return array un tableau contenant les informations sur le personnel de la structure.
*/
public function getPersonnel($id) {
$json = file_get_contents("http://www.tela-botanica.org/eflore/coel/jrest/CoelStructureAPersonne/$id");
$url = $this->url_jrest.self::SERVICE_STRUCTURE_A_PERSONNE."/$id";
$json = file_get_contents($url);
$donnees = json_decode($json, true);
$this->nettoyerTableauDeTableauxAssoc($donnees);
return $donnees;