Rev 195 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Classe contenant les données de l'ontologie des Collections en Ligne.* Elle contient un cache de l'ontologie.* C'est un Singleton.** @package Collection* @category php 5.2* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>* @copyright 2010 Tela-Botanica* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL* @version SVN: $Id: Ontologie.php 195 2014-01-22 13:29:20Z aurelien $**/class Ontologie {public static $ontologie_liste = array();public static $ontologie_valeur = array();public static function chargerListe($id_liste) {$retour = false;if (!isset(self::$ontologie_liste[$id_liste])) {$metadonnees = new MetadonneeDao();$donnees = $metadonnees->getOntologie($id_liste);$traitementValeursOk = self::traiterValeurs($donnees['valeurs']);if ($traitementValeursOk) {self::$ontologie_liste[$id_liste] = $donnees['valeurs'];$retour = true;}} else {$retour = true;}return $retour;}public static function getListe($id_liste) {$retour = false;$chargementOk = self::chargerListe($id_liste);if ($chargementOk) {$retour = self::$ontologie_liste[$id_liste];}return $retour;}public static function getListeFormatee($id_liste) {$retour = false;$liste = self::getListe($id_liste);if ($liste !== false) {foreach ($liste as $cle => $valeur) {$liste[$cle] = self::formaterTableauValeur($valeur);}$retour = $liste;}return $retour;}public static function getListeTrieeParAbreviation($id_liste) {$retour = false;$liste = self::getListe($id_liste);if ($liste !== false) {$liste_par_abr = array();foreach ($liste as $cle => $valeur) {$valeur_fromatee = self::formaterTableauValeur($valeur);$abreviation = $valeur_fromatee['abreviation'];$liste_par_abr[$abreviation] = $valeur_fromatee;}$retour = $liste_par_abr;}return $retour;}public static function chargerValeur($id_valeur) {$retour = true;if (empty($id_valeur)) {$retour = false;} else if (!isset(self::$ontologie_valeur[$id_valeur])) {$metadonnees = new MetadonneeDao();$donnees = $metadonnees->getOntologieValeur($id_valeur);$retour = self::traiterValeurs($donnees['valeurs']);}return $retour;}public static function getValeur($id_valeur) {$retour = false;$chargementOk = self::chargerValeur($id_valeur);if ($chargementOk) {$retour = self::$ontologie_valeur[$id_valeur];}return $retour;}public static function getValeurNom($id_valeur) {$retour = false;$valeur = self::getValeur($id_valeur);if ($valeur !== false) {$retour = $valeur['nom'];}return $retour;}private static function traiterValeurs($valeurs) {$retour = true;if (is_null($valeurs)) {$retour = false;} else {if (count($valeurs) == 0) {$retour = false;} else {foreach ($valeurs as $valeur) {self::$ontologie_valeur[$valeur['cmlv_id_valeur']] = self::formaterTableauValeur($valeur);}}}return $retour;}private static function formaterTableauValeur($valeur) {$valeur_formatee = array();if (is_array($valeur) && count($valeur) > 0) {$valeur_formatee = array('id' => $valeur['cmlv_id_valeur'],'parent' => $valeur['cmlv_ce_parent'],'nom' => $valeur['cmlv_nom'],'abreviation' => $valeur['cmlv_abreviation'],'description' => $valeur['cmlv_description'],'meta' => $valeur['cmlv_ce_meta']);}return $valeur_formatee;}}?>