Subversion Repositories eFlore/Applications.coel-consultation

Rev

Rev 18 | Rev 55 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 18 Rev 19
Line 7... Line 7...
7
 * @category	Php 5.2
7
 * @category	Php 5.2
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @copyright	2010 Tela-Botanica
9
 * @copyright	2010 Tela-Botanica
10
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
11
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @version		SVN: $Id: Fiche.php 18 2010-03-23 18:14:32Z jpm $
12
 * @version		SVN: $Id: Fiche.php 19 2010-03-24 18:22:25Z jpm $
13
 */
13
 */
14
class Fiche extends ColControleur {
14
class Fiche extends ColControleur {
Line 15... Line 15...
15
	
15
	
16
	private $structureDao = null;
16
	private $structureDao = null;
Line 49... Line 49...
49
			$this->traiterDonneesStructure($donnees['info']);
49
			$this->traiterDonneesStructure($donnees['info']);
50
			$this->traiterPersonnel($donnees['personnel']);
50
			$this->traiterPersonnel($donnees['personnel']);
51
			$this->traiterDonneesStructureConservation($donnees['info']);
51
			$this->traiterDonneesStructureConservation($donnees['info']);
52
			$this->traiterDonneesStructureValorisation($donnees['info']);
52
			$this->traiterDonneesStructureValorisation($donnees['info']);
53
			$this->traiterDonneesStructureCollections($donnees['collections']);
53
			$this->traiterDonneesStructureCollections($donnees['collections']);
-
 
54
			$this->postraiterDonnees($donnees);
54
			//Debug::printr($donnees['collections']);
55
			//Debug::printr($donnees);
55
			$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_structure', $donnees)); 
56
			$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_structure', $donnees)); 
56
		}
57
		}
57
	}
58
	}
Line 58... Line 59...
58
	
59
	
Line 197... Line 198...
197
			$donnees['id'] = $_GET['id'];
198
			$donnees['id'] = $_GET['id'];
198
			$collectionDao = $this->getModele('CollectionDao');
199
			$collectionDao = $this->getModele('CollectionDao');
199
			$donnees['info'] = $collectionDao->getCollection($donnees['id']);
200
			$donnees['info'] = $collectionDao->getCollection($donnees['id']);
200
			$donnees['personnes'] = $collectionDao->getCollectionAPersonne($donnees['id']);
201
			$donnees['personnes'] = $collectionDao->getCollectionAPersonne($donnees['id']);
201
			$donnees['publications'] = $collectionDao->getCollectionAPublication($donnees['id']);
202
			$donnees['publications'] = $collectionDao->getCollectionAPublication($donnees['id']);
-
 
203
			$donnees['commentaires'] = $collectionDao->getCollectionACommentaire($donnees['id']);
202
			$this->traiterMetaDonnees($donnees['info']);
204
			$this->traiterMetaDonnees($donnees['info']);
203
			$this->traiterDonneesCollection($donnees['info']);
205
			$this->traiterDonneesCollection($donnees['info']);
204
			$this->traiterDonneesCollectionAPersonne($donnees['personnes']);
206
			$this->traiterDonneesCollectionAPersonne($donnees['personnes']);
205
			$this->traiterDonneesCollectionAPublication($donnees['publications']);
207
			$this->traiterDonneesCollectionAPublication($donnees['publications']);
206
			$this->traiterDonneesCollectionDescription($donnees['info']);
208
			$this->traiterDonneesCollectionDescription($donnees['info']);
-
 
209
			$this->traiterDonneesCollectionContenu($donnees['info']);
-
 
210
			$this->traiterDonneesCollectionInventaire($donnees['info']);
-
 
211
			$this->traiterDonneesCollectionACommentaire($donnees['commentaires']);
207
			Debug::printr($donnees);
212
			$this->postraiterDonnees($donnees);
208
			$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_collection', $donnees));
213
			$this->setSortie(self::RENDU_CORPS, $this->getVue('fiche_collection', $donnees));
209
		}
214
		}
210
	}
215
	}
211
	
-
 
212
	private function traiterDonneesCollectionDescription(&$donnees) {
-
 
213
		// liste 41 : Liste des types d'unité de rangement pour les collections botaniques
-
 
214
		Ontologie::chargerListe(1044);
-
 
215
		// liste 42 : Liste des états
-
 
216
		Ontologie::chargerListe(1045);
-
 
217
		// liste 43 : Liste des types de support pour les spécimens des collections botaniques
-
 
218
		Ontologie::chargerListe(1046);
-
 
219
		// liste 80 : Liste des types de collection botanique
-
 
220
		Ontologie::chargerListe(1083);
-
 
221
 
-
 
222
		$donnees['_type_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_truk_type']);
-
 
223
		$donnees['_unite_rangement_etat_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_unite_rangement_etat']);
-
 
224
		$donnees['_rangements_'] = $this->parserValeurUniteRangement($donnees['ccb_truk_unite_rangement']);
-
 
225
		$donnees['_unites_base_'] = $this->parserValeurUniteBase($donnees['ccb_truk_unite_base']);
-
 
Line 226... Line -...
226
 
-
 
227
	}
-
 
228
	
-
 
229
	private function traiterDonneesCollectionAPublication(&$publications) {
-
 
230
		foreach ($publications as &$publication) {
-
 
231
			$publication['_editeur_'] = $this->construireTxtTruck($publication['cpu_ce_truk_editeur']);
-
 
232
			$publication['_date_parution_'] = rtrim($publication['cpu_date_parution'],'-00-00');
-
 
233
		}
-
 
234
	}
-
 
235
	
-
 
236
	private function traiterDonneesCollectionAPersonne(&$personnes) {
-
 
237
		// liste 27 : Liste des relations entre une collection et une personne
-
 
238
		Ontologie::chargerListe(1030);
-
 
239
		// liste 77 : Liste indéterminé/oui/non
-
 
240
		Ontologie::chargerListe(1080);
-
 
241
		
-
 
242
		foreach ($personnes as &$personne) {
-
 
243
			$personne['_role_'] = $this->construireTxtListeOntologie($personne['ccap_id_role']);
-
 
244
			$personne['_deces_'] = $this->construireTxtListeOntologie($personne['cp_ce_deces']);
-
 
245
			$personne['_naissance_date_'] = $this->formaterDate($personne['cp_naissance_date']);
-
 
246
			$personne['_deces_date_'] = $this->formaterDate($personne['cp_deces_date']);
-
 
247
		}
-
 
248
	}
-
 
249
	
216
 
250
	private function traiterDonneesCollection(&$donnees) {
217
	private function traiterDonneesCollection(&$donnees) {
251
		// liste 29 : Liste des types de collection dans le standard NCD
218
		// liste 29 : Liste des types de collection dans le standard NCD
252
		Ontologie::chargerListe(1032);
219
		Ontologie::chargerListe(1032);
253
		// liste 30 : Liste des types de dépôt de collection
220
		// liste 30 : Liste des types de dépôt de collection
Line 279... Line 246...
279
		$donnees['_groupement_principe_'] = $this->construireTxtListeOntologie($donnees['cc_truk_groupement_principe']);
246
		$donnees['_groupement_principe_'] = $this->construireTxtListeOntologie($donnees['cc_truk_groupement_principe']);
280
		$donnees['_groupement_but_'] = $this->construireTxtListeOntologie($donnees['cc_truk_groupement_but']);
247
		$donnees['_groupement_but_'] = $this->construireTxtListeOntologie($donnees['cc_truk_groupement_but']);
281
		$donnees['_couverture_lieu_'] = $this->construireTxtTruck($donnees['cc_truk_couverture_lieu']);
248
		$donnees['_couverture_lieu_'] = $this->construireTxtTruck($donnees['cc_truk_couverture_lieu']);
282
	}
249
	}
Line -... Line 250...
-
 
250
	
-
 
251
	private function traiterDonneesCollectionAPersonne(&$personnes) {
-
 
252
		// liste 27 : Liste des relations entre une collection et une personne
-
 
253
		Ontologie::chargerListe(1030);
-
 
254
		// liste 77 : Liste indéterminé/oui/non
-
 
255
		Ontologie::chargerListe(1080);
-
 
256
		
-
 
257
		foreach ($personnes as &$personne) {
-
 
258
			$personne['_role_'] = $this->construireTxtListeOntologie($personne['ccap_id_role']);
-
 
259
			$personne['_deces_'] = $this->construireTxtListeOntologie($personne['cp_ce_deces']);
-
 
260
			$personne['_naissance_date_'] = $this->formaterDate($personne['cp_naissance_date']);
-
 
261
			$personne['_deces_date_'] = $this->formaterDate($personne['cp_deces_date']);
-
 
262
		}
-
 
263
	}
-
 
264
	
-
 
265
	private function traiterDonneesCollectionAPublication(&$publications) {
-
 
266
		foreach ($publications as &$publication) {
-
 
267
			$publication['_editeur_'] = $this->construireTxtTruck($publication['cpu_ce_truk_editeur']);
-
 
268
			$publication['_date_parution_'] = rtrim($publication['cpu_date_parution'],'-00-00');
-
 
269
		}
-
 
270
	}
-
 
271
	
-
 
272
	private function traiterDonneesCollectionDescription(&$donnees) {
-
 
273
		// liste 22 : Liste de traitement anti-insecte pour les collections botaniques
-
 
274
		Ontologie::chargerListe(1025);
-
 
275
		// liste 23 : Liste des poisons utilisés pour les collections botaniques
-
 
276
		Ontologie::chargerListe(1026);
-
 
277
		// liste 38 : Liste indéterminé/peut-être/oui/non
-
 
278
		Ontologie::chargerListe(1041);
-
 
279
		// liste 41 : Liste des types d'unité de rangement pour les collections botaniques
-
 
280
		Ontologie::chargerListe(1044);
-
 
281
		// liste 42 : Liste des états
-
 
282
		Ontologie::chargerListe(1045);
-
 
283
		// liste 43 : Liste des types de support pour les spécimens des collections botaniques
-
 
284
		Ontologie::chargerListe(1046);
-
 
285
		// liste 44 : Liste des types de papier de support pour les spécimens des collections botaniques
-
 
286
		Ontologie::chargerListe(1047);
-
 
287
		// liste 45 : Liste des méthodes de rangement des supports pour les spécimens des collections botaniques
-
 
288
		Ontologie::chargerListe(1048);
-
 
289
		// liste 46 : Liste des méthodes de fixation sur le support pour les collections botaniques
-
 
290
		Ontologie::chargerListe(1049);
-
 
291
		// liste 47 : Liste des méthodes de fixation des étiquettes sur les spécimens pour les collections botaniques
-
 
292
		Ontologie::chargerListe(1050);
-
 
293
		// liste 48 : Liste des types d'écriture d'étiquette
-
 
294
		Ontologie::chargerListe(1051);
-
 
295
		// liste 49 : Liste des	origines des dégradations des spécimens de collections botaniques
-
 
296
		Ontologie::chargerListe(1052);
-
 
297
		// liste 50 : Liste des origines des dégradations des supports de collections botaniques
-
 
298
		Ontologie::chargerListe(1053);
-
 
299
		// liste 51 : Liste des niveaux de détermination des spécimens de collections botaniques
-
 
300
		Ontologie::chargerListe(1054);
-
 
301
 
-
 
302
		$donnees['_type_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_truk_type']);
-
 
303
		$donnees['_unite_rangement_etat_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_unite_rangement_etat']);
-
 
304
		$donnees['_rangements_'] = $this->parserValeurUniteRangement($donnees['ccb_truk_unite_rangement']);
-
 
305
		$donnees['_unites_base_'] = $this->parserValeurUniteBase($donnees['ccb_truk_unite_base']);
-
 
306
		$donnees['_conservation_papier_type_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_conservation_papier_type']);
-
 
307
		$donnees['_conservation_methode_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_conservation_methode']);
-
 
308
		$donnees['_specimen_fixation_methode_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_specimen_fixation_methode']);
-
 
309
		$donnees['_etiquette_fixation_support_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_etiquette_fixation_support']);
-
 
310
		$donnees['_etiquette_fixation_specimen_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_etiquette_fixation_specimen']);
-
 
311
		$donnees['_etiquette_ecriture_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_etiquette_ecriture']);
-
 
312
		$donnees['_traitement_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_traitement']);
-
 
313
		$donnees['_traitement_poison_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_traitement_poison']);
-
 
314
		$donnees['_traitement_insecte_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_traitement_insecte']);
-
 
315
		$donnees['_etat_general_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_etat_general']);
-
 
316
		$valeurEstOntologie = false;
-
 
317
		$typeEstOntologie = true;
-
 
318
		$donneeEstOntologie = true;
-
 
319
		$donnees['_degradation_specimen_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_degradation_specimen'], $valeurEstOntologie, $typeEstOntologie, $donneeEstOntologie);
-
 
320
		$donnees['_degradation_presentation_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_degradation_presentation'], $valeurEstOntologie, $typeEstOntologie, $donneeEstOntologie);
-
 
321
		$donnees['_determination_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_determination']);
-
 
322
		
-
 
323
	}
-
 
324
	
-
 
325
	private function traiterDonneesCollectionContenu(&$donnees) {
-
 
326
		// liste 20 : Liste oui/non/en partie
-
 
327
		Ontologie::chargerListe(1023);
-
 
328
		// liste 37 : Liste des siècles pour les collections naturalistes
-
 
329
		Ontologie::chargerListe(1040);
-
 
330
		// liste 38 : Liste indéterminé/peut-être/oui/non
-
 
331
		Ontologie::chargerListe(1041);
-
 
332
		// liste 42 : Liste des états
-
 
333
		Ontologie::chargerListe(1045);
-
 
334
		// liste 52 : Liste des types de date de début
-
 
335
		Ontologie::chargerListe(1055);
-
 
336
		// liste 53 : Liste des types de date de fin
-
 
337
		Ontologie::chargerListe(1056);
-
 
338
		// liste 80 : Liste des types de collection botanique
-
 
339
		Ontologie::chargerListe(1083);
-
 
340
		
-
 
341
		$donnees['_nature_'] = $this->construireTxtListeOntologie($donnees['ccb_truk_nature']);
-
 
342
		$donnees['_periode_constitution_'] = $this->construireTxtListeOntologie($donnees['cc_truk_periode_constitution']);
-
 
343
		$donnees['_recolte_date_debut_type_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_recolte_date_debut_type']);
-
 
344
		$donnees['_recolte_date_debut_type_'] = $this->formaterParenthese($donnees['_recolte_date_debut_type_']);
-
 
345
		$donnees['_recolte_date_fin_type_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_recolte_date_fin_type']);
-
 
346
		$donnees['_recolte_date_fin_type_'] = $this->formaterParenthese($donnees['_recolte_date_fin_type_']);
-
 
347
		$donnees['_classement_etat_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_classement_etat']);
-
 
348
		$donnees['_etiquette_renseignement_'] = $this->construireTxtEtiquetteRenseignement($donnees['ccb_truk_etiquette_renseignement']);
-
 
349
		$donnees['_precision_localite_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_precision_localite']);
-
 
350
		$donnees['_precision_date_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_precision_date']);
-
 
351
		$donnees['_collection_integre_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_collection_integre']);
-
 
352
		$donnees['_collection_integre_info_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_collection_integre_info']);
-
 
353
	}
-
 
354
	
-
 
355
	private function traiterDonneesCollectionInventaire(&$donnees) {
-
 
356
		// liste 38 : Liste indéterminé/peut-être/oui/non
-
 
357
		Ontologie::chargerListe(1041);
-
 
358
		// liste 57 : Liste indéterminé/parfois/oui/non
-
 
359
		Ontologie::chargerListe(1060);
-
 
360
		// liste 58 : Liste des formes d'inventaire
-
 
361
		Ontologie::chargerListe(1061);
-
 
362
		// liste 59 : Liste des types de logiciel pour les inventaires informatiques
-
 
363
		Ontologie::chargerListe(1062);
-
 
364
		// liste 60 : Liste des états d'inventaire
-
 
365
		Ontologie::chargerListe(1063);
-
 
366
		
-
 
367
		$donnees['_inventaire_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_inventaire']);
-
 
368
		$donnees['_inventaire_auteur_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_inventaire_auteur']);
-
 
369
		$donnees['_inventaire_forme_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_inventaire_forme']);
-
 
370
		$donnees['_inventaire_digital_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_truk_inventaire_digital']);
-
 
371
		$donnees['_inventaire_etat_'] = $this->construireTxtListeOntologie($donnees['ccb_ce_inventaire_etat']);
-
 
372
	}
-
 
373
	
-
 
374
	private function traiterDonneesCollectionACommentaire(&$commentaires) {
-
 
375
		// liste 65 : Liste des types de commentaires associés à une collection
-
 
376
		Ontologie::chargerListe(1068);
-
 
377
		
-
 
378
		foreach ($commentaires as &$commentaire) {
-
 
379
			$commentaire['_type_'] = $this->construireTxtListeOntologie($commentaire['ccac_truk_type']);
-
 
380
		}
-
 
381
	}
-
 
382
	
-
 
383
	private function construireTxtEtiquetteRenseignement($valeur) {
-
 
384
		$etiquetteRenseignements = '';
-
 
385
		$infos = $this->parserEtiquetteRenseignement($valeur);
-
 
386
		if (count($infos) > 0) {
-
 
387
			foreach ($infos as $cle => $info) {
-
 
388
				if ($cle == 'AT') {
-
 
389
					$etiquetteRenseignements .= 'auteur de la collection';
-
 
390
				} else if ($cle == 'F') {
-
 
391
					$etiquetteRenseignements .= 'famille';
-
 
392
				} else if ($cle == 'G') {
-
 
393
					$etiquetteRenseignements .= 'genre';
-
 
394
				} else if ($cle == 'SP') {
-
 
395
					$etiquetteRenseignements .= 'espèce';
-
 
396
				} else if ($cle == 'ASP') {
-
 
397
					$etiquetteRenseignements .= "auteur de l'espèce";
-
 
398
				} else if ($cle == 'L') {
-
 
399
					$etiquetteRenseignements .= 'localité';
-
 
400
				} else if ($cle == 'D') {
-
 
401
					$etiquetteRenseignements .= 'date de récolte';
-
 
402
				} else {
-
 
403
					$etiquetteRenseignements .= 'Inconnue';
-
 
404
				}
-
 
405
				$etiquetteRenseignements .= ': '.$info.'%, ';
-
 
406
			}
-
 
407
			$etiquetteRenseignements = rtrim($etiquetteRenseignements, ', ').'.';
-
 
408
		}
-
 
409
		return $etiquetteRenseignements;
-
 
410
	}
-
 
411
	
-
 
412
	private function parserEtiquetteRenseignement($valeurTruk) {
-
 
413
		$infos = array();
-
 
414
		if ($valeurTruk != '') {
-
 
415
			$pourcentages = explode(self::SEPARATEUR_VALEURS, $valeurTruk);
-
 
416
			foreach ($pourcentages as $pourcentage) {
-
 
417
				$pourcentageIdValeur = explode(self::SEPARATEUR_TYPE_VALEUR, $pourcentage);
-
 
418
				$id = $pourcentageIdValeur[0];
-
 
419
				$valeur = $pourcentageIdValeur[1];
-
 
420
				$infos[$id] = $valeur;
-
 
421
			}
-
 
422
		}
-
 
423
		return $infos;
-
 
424
	}
283
	
425
	
284
	private function parserValeurUniteBase($valeurTruk) {
426
	private function parserValeurUniteBase($valeurTruk) {
285
		$unitesEnregistrees = array();
427
		$unitesEnregistrees = array();
286
		if ($valeurTruk != '') {
428
		if ($valeurTruk != '') {
287
			$unites = explode(self::SEPARATEUR_VALEURS, $valeurTruk);
429
			$unites = explode(self::SEPARATEUR_VALEURS, $valeurTruk);