Subversion Repositories eFlore/Applications.coel-consultation

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
15 jpm 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Classe contenant les données de l'ontologie des Collections en Ligne.
5
 * Elle contient un cache de l'ontologie.
6
 * C'est un Singleton.
7
 *
8
 * @package		Collection
9
 * @category	php 5.2
10
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
11
 * @copyright	2010 Tela-Botanica
12
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
13
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
14
 * @version		SVN: $Id$
15
 *
16
 */
17
class Ontologie {
18
	public static $ontologie_liste = array();
19
	public static $ontologie_valeur = array();
20
 
21
	public static function chargerListe($id_liste) {
22
		$retour = false;
23
		if (!isset(self::$ontologie_liste[$id_liste])) {
24
			$metadonnees = new MetadonneeDao();
25
			$donnees = $metadonnees->getOntologie($id_liste);
26
			$traitementValeursOk = self::traiterValeurs($donnees['valeurs']);
27
			if ($traitementValeursOk) {
28
				self::$ontologie_liste[$id_liste] = $donnees['valeurs'];
29
				$retour = true;
30
			}
31
		}
32
		return $retour;
33
	}
34
 
35
	public static function getListe($id_liste) {
36
		$retour = false;
37
		$chargementOk = self::chargerListe($id_liste);
38
		if ($chargementOk) {
39
			$retour = self::$ontologie_liste[$id_liste];
40
		}
41
		return $retour;
42
	}
43
 
44
	public static function chargerValeur($id_valeur) {
45
		$retour = true;
46
		if (!isset(self::$ontologie_valeur[$id_valeur])) {
47
			$metadonnees = new MetadonneeDao();
48
			$donnees = $metadonnees->getOntologieValeur($id_valeur);
49
			$retour = self::traiterValeurs($donnees['valeurs']);
50
		}
51
		return $retour;
52
	}
53
 
54
	public static function getValeur($id_valeur) {
55
		$retour = false;
56
		$chargementOk = self::chargerValeur($id_valeur);
57
		if ($chargementOk) {
58
			$retour = self::$ontologie_valeur[$id_valeur];
59
		}
60
		return $retour;
61
	}
62
 
63
	public static function getValeurNom($id_valeur) {
64
		$retour = false;
65
		$valeur = self::getValeur($id_valeur);
66
		if ($valeur !== false) {
67
			$retour = $valeur['nom'];
68
		}
69
		return $retour;
70
	}
71
 
72
	private static function traiterValeurs($valeurs) {
73
		$retour = true;
74
		if (is_null($valeurs)) {
75
			$retour = false;
76
		} else {
77
			if (count($valeurs) == 0) {
78
				$retour = false;
79
			} else {
80
				foreach ($valeurs as $valeur) {
81
					self::$ontologie_valeur[$valeur['cmlv_id_valeur']] = array(
82
						'parent' => $valeur['cmlv_id_valeur'],
83
						'projet' => $valeur['cmlv_ce_projet'],
84
						'nom' => $valeur['cmlv_nom'],
85
						'abreviation' => $valeur['cmlv_abreviation'],
86
						'description' => $valeur['cmlv_description'],
87
						'meta' => $valeur['cmlv_ce_meta']
88
					);
89
				}
90
			}
91
		}
92
		return $retour;
93
	}
94
}
95
?>