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