Subversion Repositories eFlore/Applications.coel-consultation

Compare Revisions

Ignore whitespace Rev 17 → Rev 18

/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;
}
}