Subversion Repositories eFlore/Applications.coel-consultation

Rev

Rev 156 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 156 Rev 195
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: Ontologie.php 156 2010-09-13 12:27:07Z jpm $
14
 * @version		SVN: $Id: Ontologie.php 195 2014-01-22 13:29:20Z aurelien $
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 {
31
		} else {
32
			$retour = true;
32
			$retour = true;
33
		}
33
		}
34
		return $retour;
34
		return $retour;
35
	}
35
	}
36
	
36
	
37
	public static function getListe($id_liste) {
37
	public static function getListe($id_liste) {
38
		$retour = false;
38
		$retour = false;
39
		$chargementOk = self::chargerListe($id_liste);
39
		$chargementOk = self::chargerListe($id_liste);
40
		if ($chargementOk) {
40
		if ($chargementOk) {
41
			$retour = self::$ontologie_liste[$id_liste];
41
			$retour = self::$ontologie_liste[$id_liste];
42
		}
42
		}
43
		return $retour;
43
		return $retour;
44
	}
44
	}
45
	
45
	
46
	public static function getListeFormatee($id_liste) {
46
	public static function getListeFormatee($id_liste) {
47
		$retour = false;
47
		$retour = false;
48
		$liste = self::getListe($id_liste);
48
		$liste = self::getListe($id_liste);
49
		if ($liste !== false) {
49
		if ($liste !== false) {
50
			foreach ($liste as $cle => $valeur) {
50
			foreach ($liste as $cle => $valeur) {
51
				$liste[$cle] = self::formaterTableauValeur($valeur);
51
				$liste[$cle] = self::formaterTableauValeur($valeur);
52
			}
52
			}
53
			$retour = $liste;
53
			$retour = $liste;
54
		}
54
		}
55
		return $retour;
55
		return $retour;
56
	}
56
	}
57
 
57
 
58
	public static function getListeTrieeParAbreviation($id_liste) {
58
	public static function getListeTrieeParAbreviation($id_liste) {
59
		$retour = false;
59
		$retour = false;
60
		$liste = self::getListe($id_liste);
60
		$liste = self::getListe($id_liste);
61
		if ($liste !== false) {
61
		if ($liste !== false) {
62
			$liste_par_abr = array();
62
			$liste_par_abr = array();
63
			foreach ($liste as $cle => $valeur) {
63
			foreach ($liste as $cle => $valeur) {
64
				$valeur_fromatee = self::formaterTableauValeur($valeur);
64
				$valeur_fromatee = self::formaterTableauValeur($valeur);
65
				$abreviation = $valeur_fromatee['abreviation'];
65
				$abreviation = $valeur_fromatee['abreviation'];
66
				$liste_par_abr[$abreviation] = $valeur_fromatee;
66
				$liste_par_abr[$abreviation] = $valeur_fromatee;
67
			}
67
			}
68
			$retour = $liste_par_abr;
68
			$retour = $liste_par_abr;
69
		}
69
		}
70
		return $retour;
70
		return $retour;
71
	}
71
	}
72
	
72
	
73
	public static function chargerValeur($id_valeur) {
73
	public static function chargerValeur($id_valeur) {
74
		$retour = true;
74
		$retour = true;
75
		if (empty($id_valeur)) {
75
		if (empty($id_valeur)) {
76
			$retour = false;
76
			$retour = false;
77
		} else if (!isset(self::$ontologie_valeur[$id_valeur])) {
77
		} else if (!isset(self::$ontologie_valeur[$id_valeur])) {
78
			$metadonnees = new MetadonneeDao();
78
			$metadonnees = new MetadonneeDao();
79
			$donnees = $metadonnees->getOntologieValeur($id_valeur);
79
			$donnees = $metadonnees->getOntologieValeur($id_valeur);
80
			$retour = self::traiterValeurs($donnees['valeurs']);
80
			$retour = self::traiterValeurs($donnees['valeurs']);
81
		}
81
		}
82
		return $retour;
82
		return $retour;
83
	}
83
	}
84
	
84
	
85
	public static function getValeur($id_valeur) {
85
	public static function getValeur($id_valeur) {
86
		$retour = false;
86
		$retour = false;
87
		$chargementOk = self::chargerValeur($id_valeur);
87
		$chargementOk = self::chargerValeur($id_valeur);
88
		if ($chargementOk) {
88
		if ($chargementOk) {
89
			$retour = self::$ontologie_valeur[$id_valeur];
89
			$retour = self::$ontologie_valeur[$id_valeur];
90
		}
90
		}
91
		return $retour;
91
		return $retour;
92
	}
92
	}
93
	
93
	
94
	public static function getValeurNom($id_valeur) {
94
	public static function getValeurNom($id_valeur) {
95
		$retour = false;
95
		$retour = false;
96
		$valeur = self::getValeur($id_valeur);
96
		$valeur = self::getValeur($id_valeur);
97
		if ($valeur !== false) {
97
		if ($valeur !== false) {
98
			$retour = $valeur['nom'];
98
			$retour = $valeur['nom'];
99
		}
99
		}
100
		return $retour;
100
		return $retour;
101
	}
101
	}
102
	
102
	
103
	private static function traiterValeurs($valeurs) {
103
	private static function traiterValeurs($valeurs) {
104
		$retour = true;
104
		$retour = true;
105
		if (is_null($valeurs)) {
105
		if (is_null($valeurs)) {
106
			$retour = false;
106
			$retour = false;
107
		} else {
107
		} else {
108
			if (count($valeurs) == 0) {
108
			if (count($valeurs) == 0) {
109
				$retour = false;
109
				$retour = false;
110
			} else {
110
			} else {
111
				foreach ($valeurs as $valeur) {
111
				foreach ($valeurs as $valeur) {
112
					self::$ontologie_valeur[$valeur['cmlv_id_valeur']] = self::formaterTableauValeur($valeur);
112
					self::$ontologie_valeur[$valeur['cmlv_id_valeur']] = self::formaterTableauValeur($valeur);
113
				}
113
				}
114
			}
114
			}
115
		}
115
		}
116
		return $retour;
116
		return $retour;
117
	}
117
	}
118
	
118
	
119
	private static function formaterTableauValeur($valeur) {
119
	private static function formaterTableauValeur($valeur) {
120
		$valeur_formatee = array();
120
		$valeur_formatee = array();
121
		if (is_array($valeur) && count($valeur) > 0) {
121
		if (is_array($valeur) && count($valeur) > 0) {
122
			$valeur_formatee = array(
122
			$valeur_formatee = array(
123
				'id' => $valeur['cmlv_id_valeur'],
123
				'id' => $valeur['cmlv_id_valeur'],
124
				'parent' => $valeur['cmlv_ce_parent'],
124
				'parent' => $valeur['cmlv_ce_parent'], 
125
				'projet' => $valeur['cmlv_ce_projet'], 
-
 
126
				'nom' => $valeur['cmlv_nom'],
125
				'nom' => $valeur['cmlv_nom'],
127
				'abreviation' => $valeur['cmlv_abreviation'],
126
				'abreviation' => $valeur['cmlv_abreviation'],
128
				'description' => $valeur['cmlv_description'],
127
				'description' => $valeur['cmlv_description'],
129
				'meta' => $valeur['cmlv_ce_meta']);
128
				'meta' => $valeur['cmlv_ce_meta']);
130
		}
129
		}
131
		return $valeur_formatee;
130
		return $valeur_formatee;
132
	}
131
	}
133
}
132
}
134
?>
133
?>