Subversion Repositories eFlore/Applications.coel-consultation

Rev

Rev 15 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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