Subversion Repositories eFlore/Applications.coel-consultation

Compare Revisions

Ignore whitespace Rev 16 → Rev 17

/trunk/modeles/CollectionDao.php
New file
0,0 → 1,55
<?php
// declare(encoding='UTF-8');
/**
* Modèle d'accès à la base de données des Collections pour le module Collections.
*
* @package Collection
* @category php 5.2
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright 2010 Tela-Botanica
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version SVN: $Id$
*
*/
class CollectionDao extends ColModele {
 
/**
* Retourne l'ensemble des information sur une collection.
*
* @param integer l'id de la collection.
* @return array un tableau contenant les informations sur la collection.
*/
public function getCollection($id) {
$json = file_get_contents("http://www.tela-botanica.org/eflore/coel/jrest/CoelCollection/*/$id/*");
$donnees = json_decode($json, true);
return $donnees[1];
}
/**
* Retourne l'ensemble des personnes liées à une collection.
*
* @param integer l'id de la collection.
* @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");
$donnees = json_decode($json, true);
$this->nettoyerTableauDeTableauxAssoc($donnees);
return $donnees;
}
/**
* Retourne l'ensemble des publications liées à 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 getCollectionAPublication($id_collection) {
$json = file_get_contents("http://www.tela-botanica.org/eflore/coel/jrest/CoelCollectionAPublication/$id_collection");
$donnees = json_decode($json, true);
$this->nettoyerTableauDeTableauxAssoc($donnees);
return $donnees;
}
}
?>
/trunk/bibliotheque/noyau/ColControleur.php
189,6 → 189,13
return $txt_a_retourner;
}
protected function formaterDate($date) {
if ($date == '' || $date == '0000-00-00' || $date == '0000-00-00 00:00:00') {
$date = 'Inconnue';
}
return $date;
}
protected function nettoyerPointFinal($mot) {
$mot = preg_replace('/[.]$/', '', $mot);
return $mot;
/trunk/squelettes/fiche_collection.tpl.html
1,0 → 0,0
<h1>Collection <?=$id?></h1>
<h1><?=$info['cc_nom']?> <span class="discretion">(id:<?=$id?>)</span></h1>
<dl>
<dt>Structure</dt> <dd><?=$info['_structure_nom_']?></dd>
<dt>Ville</dt> <dd><?=$info['_structure_ville_']?></dd>
</dl>
 
<h2>Général</h2>
<h3>Renseignements administratifs</h3>
<dl>
<dt>Autres intitulés</dt> <dd><?=$info['_nom_alternatif_']?></dd>
<dt>À pour collection parente</dt> <dd><?=$info['_collection_mere_nom_']?> <?php if ($info['cc_ce_mere'] != '0') : ?><span class="discretion">(id:<?=$info['cc_ce_mere']?>)</span><?php endif; ?></dd>
<dt>Type de collection</dt> <dd><?=$info['_type_ncd_']?></dd>
<dt>Statut</dt> <dd><?=$info['_type_depot_']?></dd>
<dt>Identifiants alternatifs</dt> <dd><?=$info['_identifiant_alternatif_']?></dd>
<dt>Acronymes</dt> <dd><?=$info['_code_']?></dd>
<dt>Cote</dt> <dd><?=$info['cc_cote']?></dd>
</dl>
 
<h3>Statut, intitulés et codes</h3>
<dl>
<dt>Description</dt> <dd><?=$info['cc_description']?></dd>
<dt>Description spécialiste</dt> <dd><?=$info['cc_description_specialiste']?></dd>
<dt>Historique</dt> <dd><?=$info['cc_historique']?></dd>
<dt>Site web</dt> <dd><?=$info['_url_']?></dd>
</dl>
 
<h3>Spécimens «types»</h3>
<dl>
<dt>Présence</dt> <dd><?=$info['_specimen_type_']?></dd>
<dt>Nombre</dt> <dd><?=$info['cc_specimen_type_nbre']?> <?=$info['_specimen_type_nbre_precision_']?></dd>
<dt>Classement</dt> <dd><?=$info['_specimen_type_classement_']?></dd>
</dl>
 
<h3>Couvertures</h3>
<dl>
<dt>Principe de groupement</dt> <dd><?=$info['_groupement_principe_']?></dd>
<dt>But du groupement</dt> <dd><?=$info['_groupement_but_']?></dd>
<dt>Lieux concernés</dt> <dd><?=$info['_couverture_lieu_']?></dd>
</dl>
 
<h3>Divers</h3>
<dl>
<dt>GUID</dt> <dd><?=$info['cc_guid']?> </dd>
<dt>Notes</dt> <dd><?=$info['cmhl_notes']?> </dd>
<dt>Sources</dt> <dd><?=$info['cmhl_source']?> </dd>
<dt>Modifié par</dt> <dd><?=$info['_modifier_par_']?> </dd>
<dt>Date de dernière modification</dt> <dd><?=$info['cmhl_date_modification']?> </dd>
<dt>État de l'enregistrement</dt> <dd><?=$info['_etat_']?> </dd>
</dl>
 
<h2>Personnes</h2>
<h3>Personne(s) liées à la collection</h3>
<?php if (count($personnes) > 0) : ?>
<table>
<thead>
<tr>
<th>Relation</th>
<th>Nom Complet</th>
<th>Nom</th>
<th>Prénom</th>
<th>Date de naissance</th>
<th>Lieu de naissance</th>
<th>Décès</th>
<th>Date de décès</th>
<th>Lieu de décès</th>
</tr>
</thead>
<tbody>
<?php foreach ($personnes as $personne) : ?>
<tr>
<td><?=$personne['_role_']?></td>
<td><?=$personne['cp_fmt_nom_complet']?></td>
<td><?=$personne['cp_nom']?></td>
<td><?=$personne['cp_prenom']?></td>
<td><?=$personne['_naissance_date_']?></td>
<td><?=$personne['cp_naissance_lieu']?></td>
<td><?=$personne['_deces_']?></td>
<td><?=$personne['_deces_date_']?></td>
<td><?=$personne['cp_deces_lieu']?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php else : ?>
<p>Aucune</p>
<?php endif; ?>
<h2>Publications</h2>
<h3>Publication(s) de la collection</h3>
<?php if (count($publications) > 0) : ?>
<table>
<thead>
<tr>
<th>Auteurs</th>
<th>Titre</th>
<th>Nom de la revue / collection</th>
<th>Éditeur</th>
<th>Année</th>
<th>Série / Tome</th>
<th>Fascicule</th>
<th>Page(s)</th>
</tr>
</thead>
<tbody>
<?php foreach ($publications as $publication) : ?>
<tr>
<td><?=$publication['cpu_fmt_auteur']?></td>
<td><?=$publication['cpu_titre']?></td>
<td><?=$publication['cpu_collection']?></td>
<td><?=$publication['_editeur_']?></td>
<td><?=$publication['_date_parution_']?></td>
<td><?=$publication['cpu_indication_nvt']?></td>
<td><?=$publication['cpu_fascicule']?></td>
<td><?=$publication['cpu_truk_pages']?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php else : ?>
<p>Aucune</p>
<?php endif; ?>
<h2>Description</h2>
<h2>Contenu</h2>
<h2>Inventaire</h2>
<h2>Notes</h2>
/trunk/controleurs/Fiche.php
24,7 → 24,6
public function afficherStructure() {
$donnees = array();
$structureDao = $this->getModele('StructureDao');
// Gestion des actions par défaut
$this->executerAction('Recherche', 'chargerMoteurRecherche');
34,6 → 33,7
} else {
$donnees['id'] = $_GET['id'];
$structureDao = $this->getModele('StructureDao');
$donnees['info'] = $structureDao->getStructure($donnees['id']);
$donnees['personnel'] = $structureDao->getPersonnel($donnees['id']);
$this->traiterMetaDonnees($donnees['info']);
41,7 → 41,6
$this->traiterPersonnel($donnees['personnel']);
$this->traiterDonneesStructureConservation($donnees['info']);
$this->traiterDonneesStructureValorisation($donnees['info']);
Debug::printr($donnees);
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_structure', $donnees));
}
}
170,6 → 169,9
public function afficherCollection() {
$donnees = array();
 
// Gestion des actions par défaut
$this->executerAction('Recherche', 'chargerMoteurRecherche');
// Gestion des données de la requête
if (!isset($_GET['id'])) {
176,10 → 178,70
} else {
$donnees['id'] = $_GET['id'];
$collectionDao = $this->getModele('CollectionDao');
$donnees['info'] = $collectionDao->getCollection($donnees['id']);
$donnees['personnes'] = $collectionDao->getCollectionAPersonne($donnees['id']);
$donnees['publications'] = $collectionDao->getCollectionAPublication($donnees['id']);
$this->traiterMetaDonnees($donnees['info']);
$this->traiterDonneesCollection($donnees['info']);
$this->traiterDonneesCollectionAPersonne($donnees['personnes']);
$this->traiterDonneesCollectionAPublication($donnees['publications']);
Debug::printr($donnees);
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_collection', $donnees));
}
}
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);
// Gestion du squelette et de la sortie
$this->executerAction('Recherche', 'chargerMoteurRecherche');
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_collection', $donnees));
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);
// liste 30 : Liste des types de dépôt de collection
Ontologie::chargerListe(1033);
// liste 31 : Liste des principes de groupement d'une collection dans le standard NCD
Ontologie::chargerListe(1034);
// liste 32 : Liste des buts de réalisation d'une collection dans le standard NCD
Ontologie::chargerListe(1035);
// liste 38 : Liste indéterminé/peut-être/oui/non
Ontologie::chargerListe(1041);
// liste 39 : Liste des types de classement des spécimens types dans une collection
Ontologie::chargerListe(1042);
// liste 79 : Liste exact/approximatif
Ontologie::chargerListe(1082);
$donnees['_nom_alternatif_'] = $this->construireTxtTruck($donnees['cc_truk_nom_alternatif']);
$donnees['_type_ncd_'] = $this->construireTxtListeOntologie($donnees['cc_ce_type']);
$donnees['_type_depot_'] = $this->construireTxtListeOntologie($donnees['cc_ce_type_depot']);
$donnees['_identifiant_alternatif_'] = $this->construireTxtTruckSansMajuscule($donnees['cc_truk_identifiant_alternatif']);
$donnees['_code_'] = $this->construireTxtTruckSansMajuscule($donnees['cc_truk_code']);
$donnees['_url_'] = $this->construireTxtTruckSansMajuscule($donnees['cc_truk_url']);
$donnees['_specimen_type_'] = $this->construireTxtListeOntologie($donnees['cc_ce_specimen_type']);
$donnees['_specimen_type_nbre_precision_'] = $this->construireTxtListeOntologie($donnees['cc_ce_specimen_type_nbre_precision']);
$donnees['_specimen_type_nbre_precision_'] = $this->formaterParenthese($donnees['_specimen_type_nbre_precision_']);
$donnees['_specimen_type_classement_'] = $this->construireTxtListeOntologie($donnees['cc_ce_specimen_type_classement']);
$donnees['_groupement_principe_'] = $this->construireTxtListeOntologie($donnees['cc_truk_groupement_principe']);
$donnees['_groupement_but_'] = $this->construireTxtListeOntologie($donnees['cc_truk_groupement_but']);
$donnees['_couverture_lieu_'] = $this->construireTxtTruck($donnees['cc_truk_couverture_lieu']);
}
}