/trunk/bibliotheque/noyau/ColModele.php |
---|
37,16 → 37,20 |
} |
protected function nettoyerTableauDeTableauxAssoc(&$tableau) { |
foreach ($tableau as $cle => $valeur) { |
$this->nettoyerTableauAssoc($valeur); |
$tableau[$cle] = $valeur; |
if (is_array($tableau) && count($tableau) > 0) { |
foreach ($tableau as $cle => $valeur) { |
$this->nettoyerTableauAssoc($valeur); |
$tableau[$cle] = $valeur; |
} |
} |
} |
protected function nettoyerTableauAssoc(&$tableau) { |
foreach ($tableau as $cle => $valeur) { |
if (is_numeric($cle) && is_int((integer) $cle)) { |
unset($tableau[$cle]); |
if (is_array($tableau) && count($tableau) > 0) { |
foreach ($tableau as $cle => $valeur) { |
if (is_numeric($cle) && is_int((integer) $cle)) { |
unset($tableau[$cle]); |
} |
} |
} |
} |
/trunk/bibliotheque/noyau/ColControleur.php |
---|
278,4 → 278,21 |
return $chaineARetourner; |
} |
protected function obtenirUrlFicheStructure($id_structure) { |
$this->url->setVariableRequete('module', 'Fiche'); |
$this->url->setVariableRequete('action', 'afficherStructure'); |
$this->url->setVariableRequete('id', $id_structure); |
$url = $this->url->getURL(); |
$this->url->unsetVariablesRequete(array('module', 'action', 'id')); |
return $url; |
} |
protected function obtenirUrlFicheColletion($id_collection) { |
$this->url->setVariableRequete('module', 'Fiche'); |
$this->url->setVariableRequete('action', 'afficherCollection'); |
$this->url->setVariableRequete('id', $id_collection); |
$url = $this->url->getURL(); |
$this->url->unsetVariablesRequete(array('module', 'action', 'id')); |
return $url; |
} |
} |
/trunk/squelettes/fiche_collection.tpl.html |
---|
1,6 → 1,6 |
<h1><?=$info['cc_nom']?> <span class="discretion">(id:<?=$id?>)</span></h1> |
<dl> |
<dt>Structure</dt> <dd><?=$info['_structure_nom_']?></dd> |
<dt>Structure</dt> <dd><a href="<?=$info['_structure_url_']?>"><?=$info['_structure_nom_']?></a></dd> |
<dt>Ville</dt> <dd><?=$info['_structure_ville_']?></dd> |
</dl> |
84,6 → 84,7 |
<?php else : ?> |
<p>Aucune</p> |
<?php endif; ?> |
<h2>Publications</h2> |
<h3>Publication(s) de la collection</h3> |
<?php if (count($publications) > 0) : ?> |
118,7 → 119,185 |
<?php else : ?> |
<p>Aucune</p> |
<?php endif; ?> |
<h2>Description</h2> |
<h3>Description et état de la collection</h3> |
<dl> |
<dt>Type d'herbier</dt> <dd><?=$info['_type_']?></dd> |
<dt>Nombre de cartons ou liasses échantillonnés</dt> <dd><?=$info['ccb_nbre_echantillon']?></dd> |
</dl> |
<h3>Types d'unité de rangement de la collection botanique</h3> |
<dl> |
<dt>État général</dt> <dd><?=$info['_unite_rangement_etat_']?></dd> |
</dl> |
<?php if (count($info['_rangements_']) > 0) : ?> |
<table> |
<thead> |
<tr> |
<th>Type</th> |
<th>Nombre</th> |
<th>Précision</th> |
<th>Format</th> |
</tr> |
</thead> |
<tbody> |
<?php foreach ($info['_rangements_'] as $rangement) : ?> |
<tr> |
<td><?=$rangement['type']?></td> |
<td><?=$rangement['nbre']?></td> |
<td><?=$rangement['precision']?></td> |
<td><?=$rangement['format']?></td> |
</tr> |
<?php endforeach; ?> |
</tbody> |
</table> |
<?php else : ?> |
<p>Aucune unité de rangement n'a été renseignée.</p> |
<?php endif; ?> |
<h3>Types d'unité de base de la collection si différent de l'untité de rangement</h3> |
<?php if (count($info['_unites_base_']) > 0) : ?> |
<table> |
<thead> |
<tr> |
<th colspan="4">Unité de base</th> |
<th colspan="2">Parts</th> |
<th colspan="2">Espèces</th> |
</tr> |
<tr> |
<th>Type</th> |
<th>Nombre</th> |
<th>Précision</th> |
<th>Format</th> |
<th>Nombre</th> |
<th>Précision</th> |
<th>Nombre</th> |
<th>Précision</th> |
</tr> |
</thead> |
<tbody> |
<?php foreach ($info['_unites_base_'] as $unite_base) : ?> |
<tr> |
<td><?=$unite_base['type']?></td> |
<td><?=$unite_base['nbre']?></td> |
<td><?=$unite_base['precision']?></td> |
<td><?=$unite_base['format']?></td> |
<td><?=$unite_base['part_nbre']?></td> |
<td><?=$unite_base['part_precision']?></td> |
<td><?=$unite_base['sp_nbre']?></td> |
<td><?=$unite_base['sp_precision']?></td> |
</tr> |
<?php endforeach; ?> |
</tbody> |
</table> |
<?php else : ?> |
<p>Aucune unité de base n'a été renseignée.</p> |
<?php endif; ?> |
<h3>Conservation</h3> |
<dl> |
<dt>Type de papier</dt> <dd><?=$info['']?></dd> |
<dt>Méthode</dt> <dd><?=$info['']?></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> |
</dl> |
<h3>Traitements</h3> |
<dl> |
<dt>Traitement</dt> <dd><?=$info['']?></dd> |
<dt>Empoisonnement</dt> <dd><?=$info['']?></dd> |
<dt>Pesticide</dt> <dd><?=$info['']?></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> |
</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> |
</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> |
</dl> |
<h3>Classement</h3> |
<dl> |
<dt>État du classement</dt> <dd><?=$info['']?></dd> |
<dt>Principe de classement</dt> <dd><?=$info['']?></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> |
</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> |
</dl> |
<h2>Inventaire</h2> |
<h2>Notes</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> |
</dl> |
<h2>Notes</h2> |
<h3>Notes liées à la collection</h3> |
<?php if (count($notes) > 0) : ?> |
<table> |
<thead> |
<tr> |
<th>Type</th> |
<th>Titre</th> |
<th>Importance</th> |
<th>Accès</th> |
</tr> |
</thead> |
<tbody> |
<?php foreach ($notes as $note) : ?> |
<tr> |
<td><?=$note['']?></td> |
<td><?=$note['']?></td> |
<td><?=$note['']?></td> |
<td><?=$note['']?></td> |
</tr> |
<tr> |
<td colspan="4"><?=$note['']?></td> |
</tr> |
<?php endforeach; ?> |
</tbody> |
</table> |
<?php else : ?> |
<p>Aucune note n'a été ajoutée.</p> |
<?php endif; ?> |
/trunk/squelettes/fiche_structure.tpl.html |
---|
142,5 → 142,15 |
<dt>Type de recherche</dt> <dd><?=$info['_recherche_type_']?></dd> |
<?php endif; ?> |
</dl> |
<h2>Collections</h2> |
<h3>Collections liées à cette institution</h3> |
<?php if (count($collections) > 0) : ?> |
<ul> |
<?php foreach ($collections as $collection) : ?> |
<li><a href="<?=$collection['_url_']?>"><?=$collection['cc_nom']?></a></li> |
<?php endforeach; ?> |
</ul> |
<?php endif; ?> |
<hr /> |
<!-- FIN FICHE STRUCTURE --> |
/trunk/controleurs/Fiche.php |
---|
13,6 → 13,15 |
*/ |
class Fiche extends ColControleur { |
private $structureDao = null; |
private $collectionDao = null; |
public function __construct() { |
parent::__construct(); |
$this->structureDao = $this->getModele('StructureDao'); |
$this->collectionDao = $this->getModele('CollectionDao'); |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// Méthodes |
/** |
33,14 → 42,16 |
} else { |
$donnees['id'] = $_GET['id']; |
$structureDao = $this->getModele('StructureDao'); |
$donnees['info'] = $structureDao->getStructure($donnees['id']); |
$donnees['personnel'] = $structureDao->getPersonnel($donnees['id']); |
$donnees['info'] = $this->structureDao->getStructure($donnees['id']); |
$donnees['personnel'] = $this->structureDao->getPersonnel($donnees['id']); |
$donnees['collections'] = $this->collectionDao->getParIdStructure($donnees['id']); |
$this->traiterMetaDonnees($donnees['info']); |
$this->traiterDonneesStructure($donnees['info']); |
$this->traiterPersonnel($donnees['personnel']); |
$this->traiterDonneesStructureConservation($donnees['info']); |
$this->traiterDonneesStructureValorisation($donnees['info']); |
$this->traiterDonneesStructureCollections($donnees['collections']); |
//Debug::printr($donnees['collections']); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_structure', $donnees)); |
} |
} |
145,6 → 156,12 |
$donnees['_visite_avec_motif_info_'] = $this->formaterParenthese($donnees['csv_visite_avec_motif']); |
} |
private function traiterDonneesStructureCollections(&$collections) { |
foreach ($collections as &$collection) { |
$collection['_url_'] = $this->obtenirUrlFicheColletion($collection['cc_id_collection']); |
} |
} |
private function traiterPersonnel(&$donnees) { |
// liste 09 : Liste des fonctions d'une personne au sein d'une structure |
Ontologie::chargerListe(1012); |
186,11 → 203,29 |
$this->traiterDonneesCollection($donnees['info']); |
$this->traiterDonneesCollectionAPersonne($donnees['personnes']); |
$this->traiterDonneesCollectionAPublication($donnees['publications']); |
$this->traiterDonneesCollectionDescription($donnees['info']); |
Debug::printr($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']); |
228,6 → 263,7 |
// liste 79 : Liste exact/approximatif |
Ontologie::chargerListe(1082); |
$donnees['_structure_url_'] = $this->obtenirUrlFicheStructure($donnees['cc_ce_structure']); |
$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']); |
244,4 → 280,105 |
$donnees['_groupement_but_'] = $this->construireTxtListeOntologie($donnees['cc_truk_groupement_but']); |
$donnees['_couverture_lieu_'] = $this->construireTxtTruck($donnees['cc_truk_couverture_lieu']); |
} |
private function parserValeurUniteBase($valeurTruk) { |
$unitesEnregistrees = array(); |
if ($valeurTruk != '') { |
$unites = explode(self::SEPARATEUR_VALEURS, $valeurTruk); |
$unites_nbre = count($unites); |
for ($i = 0; $i < $unites_nbre; $i++) { |
$uniteTypeIdDonnees = explode(self::SEPARATEUR_TYPE_VALEUR, $unites[$i]); |
$uniteChaineDonnees = $uniteTypeIdDonnees[1]; |
$uniteDonnees = explode(self::SEPARATEUR_DONNEES, $uniteChaineDonnees); |
$uniteDonneesNbre = count($uniteDonnees); |
$uniteBase = array(); |
if ($uniteDonneesNbre > 0) { |
$uniteBase['nbre'] = $uniteDonnees[0]; |
} |
if ($uniteBase['nbre'] > 0) { |
if ($uniteDonneesNbre > 1) { |
$uniteBase['precision'] = self::getPrecisionNom($uniteDonnees[1]); |
} |
if ($uniteDonneesNbre > 2) { |
$uniteBase['format'] = $uniteDonnees[2]; |
} |
if ($uniteDonneesNbre > 3) { |
$uniteBase['part_nbre'] = $uniteDonnees[3]; |
} |
if ($uniteDonneesNbre > 4) { |
$uniteBase['part_precision'] = self::getPrecisionNom($uniteDonnees[4]); |
} |
if ($uniteDonneesNbre > 5) { |
$uniteBase['sp_nbre'] = $uniteDonnees[5]; |
} |
if ($uniteDonneesNbre > 6) { |
$uniteBase['sp_precision'] = self::getPrecisionNom($uniteDonnees[6]); |
} |
if (preg_match('/^[0-9]+$/', $uniteTypeIdDonnees[0])) { |
$uniteBase['id'] = $uniteTypeIdDonnees[0]; |
$uniteBase['type'] = Ontologie::getValeurNom($uniteTypeIdDonnees[0]); |
} else { |
$uniteBase['type'] = $uniteTypeIdDonnees[0]; |
} |
$unitesEnregistrees[] = $uniteBase; |
} |
} |
} |
return $unitesEnregistrees; |
} |
private function parserValeurUniteRangement($valeurTruk) { |
$unitesEnregistrees = array(); |
if ($valeurTruk != '') { |
$unites = explode(self::SEPARATEUR_VALEURS, $valeurTruk); |
$unites_nbre = count($unites); |
for ($i = 0; $i < $unites_nbre; $i++) { |
$uniteTypeIdDonnees = explode(self::SEPARATEUR_TYPE_VALEUR, $unites[$i]); |
$uniteChaineDonnees = $uniteTypeIdDonnees[1]; |
$uniteDonnees = explode(self::SEPARATEUR_DONNEES, $uniteChaineDonnees); |
$uniteDonneesNbre = count($uniteDonnees); |
$uniteRangement = array(); |
if ($uniteDonneesNbre > 0) { |
$uniteRangement['nbre'] = $uniteDonnees[0]; |
} |
if ($uniteRangement['nbre'] > 0) { |
if ($uniteDonneesNbre > 1) { |
$uniteRangement['precision'] = self::getPrecisionNom($uniteDonnees[1]); |
} |
if ($uniteDonneesNbre > 2) { |
$uniteRangement['format'] = $uniteDonnees[2]; |
} |
if (preg_match('/^[0-9]+$/', $uniteTypeIdDonnees[0])) { |
$uniteRangement['id'] = $uniteTypeIdDonnees[0]; |
$uniteRangement['type'] = Ontologie::getValeurNom($uniteTypeIdDonnees[0]); |
} else { |
$uniteRangement['type'] = $uniteTypeIdDonnees[0]; |
} |
$unitesEnregistrees[] = $uniteRangement; |
} |
} |
} |
return $unitesEnregistrees; |
} |
private static function getPrecisionNom($precisionAbr) { |
$precision_nom = ''; |
if ($precisionAbr != 'NULL') { |
// liste 79 : Liste exact/approximatif |
$precisions = Ontologie::getListeFormatee(1082); |
foreach ($precisions as $precision) { |
if ($precision['abreviation'] == $precisionAbr) { |
$precision_nom = $precision['nom']; |
break; |
} |
} |
} |
return $precision_nom; |
} |
} |
/trunk/modeles/CollectionDao.php |
---|
27,6 → 27,19 |
} |
/** |
* Retourne les collection correspondant à un id strucutre précis. |
* |
* @param integer l'id d'une structure. |
* @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"); |
$donnees = json_decode($json, true); |
$this->nettoyerTableauDeTableauxAssoc($donnees); |
return $donnees; |
} |
/** |
* Retourne l'ensemble des personnes liées à une collection. |
* |
* @param integer l'id de la collection. |
/trunk/modeles/Ontologie.php |
---|
28,6 → 28,8 |
self::$ontologie_liste[$id_liste] = $donnees['valeurs']; |
$retour = true; |
} |
} else { |
$retour = true; |
} |
return $retour; |
} |
41,6 → 43,18 |
return $retour; |
} |
public static function getListeFormatee($id_liste) { |
$retour = false; |
$liste = self::getListe($id_liste); |
if ($liste !== false) { |
foreach ($liste as $cle => $valeur) { |
$liste[$cle] = self::formaterTableauValeur($valeur); |
} |
$retour = $liste; |
} |
return $retour; |
} |
public static function chargerValeur($id_valeur) { |
$retour = true; |
if (!isset(self::$ontologie_valeur[$id_valeur])) { |
78,18 → 92,25 |
$retour = false; |
} else { |
foreach ($valeurs as $valeur) { |
self::$ontologie_valeur[$valeur['cmlv_id_valeur']] = array( |
'parent' => $valeur['cmlv_id_valeur'], |
'projet' => $valeur['cmlv_ce_projet'], |
'nom' => $valeur['cmlv_nom'], |
'abreviation' => $valeur['cmlv_abreviation'], |
'description' => $valeur['cmlv_description'], |
'meta' => $valeur['cmlv_ce_meta'] |
); |
self::$ontologie_valeur[$valeur['cmlv_id_valeur']] = self::formaterTableauValeur($valeur); |
} |
} |
} |
return $retour; |
} |
private static function formaterTableauValeur($valeur) { |
$valeur_formatee = array(); |
if (is_array($valeur) && count($valeur) > 0) { |
$valeur_formatee = array( |
'parent' => $valeur['cmlv_id_valeur'], |
'projet' => $valeur['cmlv_ce_projet'], |
'nom' => $valeur['cmlv_nom'], |
'abreviation' => $valeur['cmlv_abreviation'], |
'description' => $valeur['cmlv_description'], |
'meta' => $valeur['cmlv_ce_meta']); |
} |
return $valeur_formatee; |
} |
} |
?> |