/tags/v1.5-graves/bibliotheque/dao/RechercheDao.php |
---|
New file |
0,0 → 1,57 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Modèle d'accès à la base de données des Collections pour la Recherche |
* |
* @package Collection |
* @category php5 |
* @author aurelien <aurelien@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$ |
* |
*/ |
class RechercheDao extends Dao { |
const SERVICE = 'CoelRecherche'; |
/** |
* Recherche une collection en fonction de paramêtres |
* @return array un tableau contenant des objets d'informations sur les collections |
*/ |
public function chercherStructureNbre($parametres) { |
$url = $this->construireUrlRecherche('Nombre', $parametres, false); |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json); |
return $donnees; |
} |
/** |
* Recherche une collection en fonction de paramêtres |
* @return array un tableau contenant des objets d'informations sur les collections |
*/ |
public function chercher($parametres) { |
$url = $this->construireUrlRecherche('ParDefaut', $parametres); |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
private function construireUrlRecherche($type, $parametres, $limitation = true) { |
$url = $this->url_jrest.self::SERVICE.'/'.$type; |
$params_a_passer = array('mots', 'sci', 'bot', 'zg', 'p', 'pr', 'str-d', 'veg'); |
foreach ($params_a_passer as $param_cle) { |
if (isset($parametres[$param_cle]) && $parametres[$param_cle] != '') { |
$valeur = urlencode(trim($parametres[$param_cle])); |
$url .= '/'.$valeur; |
} else { |
$url .= '/*'; |
} |
} |
return $url; |
} |
} |
?> |
Property changes: |
Added: svn:keywords |
+Id Author Date Revision HeadURL |
\ No newline at end of property |
/tags/v1.5-graves/bibliotheque/dao/PersonneDao.php |
---|
New file |
0,0 → 1,183 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Modèle d'accès à la base de données des Collections pour le module Personnes. |
* |
* @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$ |
* |
*/ |
class PersonneDao extends Dao { |
const SERVICE_PERSONNE = 'CoelPersonne'; |
const SERVICE_PERSONNE_A_PUBLICATION = 'CoelPublicationAPersonne'; |
const SERVICE_PERSONNE_A_COLLECTION = 'CoelCollectionAPersonne'; |
const SERVICE_PERSONNE_A_STRUCTURE = 'CoelStructureAPersonne'; |
private $cache = array(); |
/** |
* Retourne l'ensemble des information d'une personne. |
* |
* @param integer l'id de la personne. |
* @return array un tableau contenant les informations sur la personne. |
*/ |
public function getPersonne($id) { |
$donnees = array(); |
if (is_numeric($id)) { |
$url = $this->url_jrest.self::SERVICE_PERSONNE."/$id"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
if ($donnees['nbElements'] == 1) { |
$donnees = $donnees['personnes'][0]; |
} |
} |
return $donnees; |
} |
/** |
* Retourne l'ensemble des publications liées à une personne. |
* |
* @param integer l'id de la personne. |
* @return array un tableau contenant les informations sur les publications liées à la personne. |
*/ |
public function getPublicationsLiees($id_personne) { |
$donnees = $this->getPersonneAPublication($id_personne); |
return $donnees['publicationsAPersonne']; |
} |
/** |
* Retourne le nombre des publications liées à une personne. |
* |
* @param integer l'id de la personne. |
* @return integer le nombre de publications liées à la personne. |
*/ |
public function getNbrePublicationsLiees($id_personne) { |
$donnees = $this->getPersonneAPublication($id_personne); |
return $donnees['nbElements']; |
} |
private function getPersonneAPublication($id_personne) { |
$cache =& $this->cache['PersonneAPublication']; |
if (isset($cache[$id_personne])) { |
$donnees = $cache[$id_personne]; |
} else { |
$url = $this->url_jrest.self::SERVICE_PERSONNE_A_PUBLICATION."/*/$id_personne/2361,2362,2363"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
$cache[$id_personne] = $donnees; |
} |
return $donnees; |
} |
/** |
* Retourne l'ensemble des collections liées à une personne. |
* |
* @param integer l'id de la personne. |
* @return array un tableau contenant les informations sur les collections liées à la personne. |
*/ |
public function getCollectionsLiees($id_personne) { |
$donnees = $this->getPersonneACollection($id_personne); |
return $donnees['collectionsAPersonne']; |
} |
/** |
* Retourne le nombre de collections liées à une personne. |
* |
* @param integer l'id de la personne. |
* @return integer le nombre de collections liées à la personne. |
*/ |
public function getNbreCollectionsLiees($id_personne) { |
$donnees = $this->getPersonneACollection($id_personne); |
return $donnees['nbElements']; |
} |
private function getPersonneACollection($id_personne) { |
$cache =& $this->cache['PersonneACollection']; |
if (isset($cache[$id_personne])) { |
$donnees = $cache[$id_personne]; |
} else { |
$url = $this->url_jrest.self::SERVICE_PERSONNE_A_COLLECTION."/*/*/$id_personne"; |
$this->addOrdre('cc_nom', self::ORDRE_ASCENDANT); |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
$cache[$id_personne] = $donnees; |
} |
return $donnees; |
} |
/** |
* Retourne l'ensemble des structures liées à une personne. |
* |
* @param integer l'id de la personne. |
* @return array un tableau contenant les informations sur les structures liées à la personne. |
*/ |
public function getStructuresLiees($id_personne) { |
$donnees = $this->getPersonneAStructure($id_personne); |
return $donnees['structuresAPersonne']; |
} |
/** |
* Retourne le nombre de structures liées à une personne. |
* |
* @param integer l'id de la personne. |
* @return integer le nombre de structures liées à la personne. |
*/ |
public function getNbreStructuresLiees($id_personne) { |
$donnees = $this->getPersonneAStructure($id_personne); |
return $donnees['nbElements']; |
} |
private function getPersonneAStructure($id_personne) { |
$cache =& $this->cache['PersonneAStructure']; |
if (isset($cache[$id_personne])) { |
$donnees = $cache[$id_personne]; |
} else { |
$url = $this->url_jrest.self::SERVICE_PERSONNE_A_STRUCTURE."/*/*/$id_personne"; |
$this->addOrdre('cp_nom', self::ORDRE_ASCENDANT); |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
$cache[$id_personne] = $donnees; |
} |
return $donnees; |
} |
/** |
* Retourne le nom complet d'une personne. |
* |
* @param integer l'id de la personne. |
* @return string le nom complet de la personne. |
*/ |
public function getPersonneNomComplet($id) { |
$nom_complet = ''; |
$donnees = $this->getPersonne($id); |
if (isset($donnees['nbElements']) && $donnees['nbElements'] >= 1) { |
$nom_complet = $donnees['personnes'][0]['cp_fmt_nom_complet']; |
} else if (isset($donnees['cp_fmt_nom_complet'])) { |
$nom_complet = $donnees['cp_fmt_nom_complet']; |
} |
return $nom_complet; |
} |
/** |
* Retourne la chaine "truk" des courriels d'une personne. |
* |
* @param integer l'id de la personne. |
* @return string la chaine "truk" des courriels de la personne. |
*/ |
public function getPersonneCourriels($id) { |
$courriels = ''; |
$donnees = $this->getPersonne($id); |
if (isset($donnees['nbElements']) && $donnees['nbElements'] >= 1) { |
$courriels = $donnees['personnes'][0]['cp_truk_courriel']; |
} else if (isset($donnees['cp_truk_courriel'])) { |
$courriels = $donnees['cp_truk_courriel']; |
} |
return $courriels; |
} |
} |
?> |
Property changes: |
Added: svn:keywords |
+Id Author Date Revision HeadURL |
\ No newline at end of property |
/tags/v1.5-graves/bibliotheque/dao/CollectionDao.php |
---|
New file |
0,0 → 1,149 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* DAO des Collections pour le module Collections. |
* |
* @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$ |
* |
*/ |
class CollectionDao extends Dao { |
const SERVICE_COLLECTION = 'CoelCollection'; |
const SERVICE_COLLECTION_A_PERSONNE = 'CoelCollectionAPersonne'; |
const SERVICE_COLLECTION_A_PUBLICATION = 'CoelCollectionAPublication'; |
const SERVICE_COLLECTION_A_COMMENTAIRE = 'CoelCollectionACommentaire'; |
/** |
* Retourne l'ensemble des information sur une collection. |
* |
* @param integer l'id de la collection. |
* @return array un tableau contenant les informations sur la collection. |
*/ |
public function getCollection($id) { |
$url = $this->url_jrest.self::SERVICE_COLLECTION."/*/$id/*"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees['collections']; |
} |
/** |
* Retourne le nombre de collections correspondant à un id strucutre précis. |
* |
* @param integer l'id d'une structure. |
* @return array un tableau contenant les collections correspondant à l'id structure. |
*/ |
public function getNbreParIdStructure($id_structure) { |
$url = $this->url_jrest.self::SERVICE_COLLECTION."/NbreParIdStructure/$id_structure"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
/** |
* Retourne les collection correspondant à un id strucutre précis. |
* |
* @param integer l'id d'une structure. |
* @return array un tableau contenant les collections correspondant à l'id structure. |
*/ |
public function getParIdStructure($id_structure) { |
$url = $this->url_jrest.self::SERVICE_COLLECTION."/ParIdStructure/$id_structure"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
/** |
* Retourne l'ensemble des personnes liées à une collection. |
* |
* @param integer l'id de la collection. |
* @return array un tableau contenant les informations sur les personnes liées à la collection. |
*/ |
public function getPersonnesLiees($id_collection) { |
$this->addOrdre('cp_nom'); |
$donnees = $this->getCollectionAPersonne($id_collection); |
return $donnees['collectionsAPersonne']; |
} |
/** |
* Retourne le nombre de personnes liées à une collection. |
* |
* @param integer l'id de la collection. |
* @return integer le nombre de personnes liées à la collection. |
*/ |
public function getNbrePersonnesLiees($id_collection) { |
$donnees = $this->getCollectionAPersonne($id_collection); |
return $donnees['nbElements']; |
} |
private function getCollectionAPersonne($id_collection) { |
$url = $this->url_jrest.self::SERVICE_COLLECTION_A_PERSONNE."/$id_collection"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
/** |
* Retourne l'ensemble des publications liées à une collection. |
* |
* @param integer l'id de la collection. |
* @return array un tableau contenant les informations sur les publications liées à la collection. |
*/ |
public function getPublicationsLiees($id_collection) { |
$donnees = $this->getCollectionAPublication($id_collection); |
return $donnees['collectionsAPublication']; |
} |
/** |
* Retourne le nombre de publications liées à une collection. |
* |
* @param integer l'id de la collection. |
* @return integer le nombre de publications liées à la collection. |
*/ |
public function getNbrePublicationsLiees($id_collection) { |
$donnees = $this->getCollectionAPublication($id_collection); |
return $donnees['nbElements']; |
} |
private function getCollectionAPublication($id_collection) { |
$url = $this->url_jrest.self::SERVICE_COLLECTION_A_PUBLICATION."/$id_collection"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
/** |
* Retourne l'ensemble des commentaires publics liés à une collection. |
* |
* @param integer l'id de la collection. |
* @return array un tableau contenant les informations sur les publications liées à la collection. |
*/ |
public function getCommentairesLies($id_collection) { |
$donnees = $this->getCollectionACommentaire($id_collection); |
return $donnees['collectionsACommentaire']; |
} |
/** |
* Retourne le nombre de commentaires publics liés à une collection. |
* |
* @param integer l'id de la collection. |
* @return integer le nombre de commentaires publics liés à la collection. |
*/ |
public function getNbreCommentairesLies($id_collection) { |
$donnees = $this->getCollectionACommentaire($id_collection); |
return $donnees['nbElements']; |
} |
private function getCollectionACommentaire($id_collection) { |
$commentaire_public = '1'; |
$url = $this->url_jrest.self::SERVICE_COLLECTION_A_COMMENTAIRE."/$id_collection/$commentaire_public"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
} |
?> |
Property changes: |
Added: svn:keywords |
+Id Author Date Revision HeadURL |
\ No newline at end of property |
/tags/v1.5-graves/bibliotheque/dao/Ontologie.php |
---|
New file |
0,0 → 1,134 |
<?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$ |
* |
*/ |
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'], |
'projet' => $valeur['cmlv_ce_projet'], |
'nom' => $valeur['cmlv_nom'], |
'abreviation' => $valeur['cmlv_abreviation'], |
'description' => $valeur['cmlv_description'], |
'meta' => $valeur['cmlv_ce_meta']); |
} |
return $valeur_formatee; |
} |
} |
?> |
Property changes: |
Added: svn:keywords |
+Id Author Date Revision HeadURL |
\ No newline at end of property |
/tags/v1.5-graves/bibliotheque/dao/Dao.php |
---|
New file |
0,0 → 1,218 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe modèle spécifique à l'application, donc d'accés au données, elle ne devrait pas être appelée de l'extérieur. |
* Elle est abstraite donc doit obligatoirement être étendue. |
* |
* @category Php5 |
* @package Referentiel |
* @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$ |
*/ |
abstract class Dao { |
const ORDRE_ASCENDANT = 'ASC'; |
const ORDRE_DESCENDANT = 'DESC'; |
const HTTP_REQUETE_SEPARATEUR = '&'; |
protected $distinction = '0'; |
protected $limite_debut = null; |
protected $limite_nbre = null; |
protected $ordre = null; |
protected $url_jrest = null; |
public function __construct() { |
$this->url_jrest = Config::get('url_jrest'); |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// ACCESSEURS |
public function setDistinction($distinct) { |
$this->distinction = $distinct; |
} |
public function getDistinction() { |
return $this->distinction; |
} |
public function viderDistinction() { |
$this->distinction = null; |
} |
public function avoirLimitation() { |
$limitation = false; |
if (!is_null($this->limite_debut) && !is_null($this->limite_nbre)) { |
$limitation = true; |
} |
return $limitation; |
} |
public function setLimitation($limite_debut, $limite_nbre) { |
$this->limite_debut = $limite_debut; |
$this->limite_nbre = $limite_nbre; |
} |
public function getLimiteDebut() { |
return $this->limite_debut; |
} |
public function getLimiteNbre() { |
return $this->limite_nbre; |
} |
public function viderLimite() { |
$this->limite_debut = null; |
$this->limite_nbre = null; |
} |
public function addOrdre($champ, $trie = self::ORDRE_ASCENDANT) { |
if (!isset($this->ordre[$champ])) { |
if (self::ORDRE_ASCENDANT == $trie || self::ORDRE_DESCENDANT == $trie) { |
$this->ordre[$champ] = $trie; |
} else { |
$e = "La valeur pour le trie doit être : {self::ORDRE_ASCENDANT} ou {self::ORDRE_DESCENDANT}."; |
trigger_error($e, E_USER_WARNING); |
} |
} else { |
$e = "Le champ $champ existe déjà dans le tableau des ordres."; |
trigger_error($e, E_USER_WARNING); |
} |
} |
public function getOrdre() { |
$champs = array(); |
foreach ($this->ordre as $champ => $trie) { |
$champs[] = "$champ $trie"; |
} |
return implode(', ', $champs); |
} |
public function viderOrdre() { |
$this->ordre = null; |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// MÉTHODES |
protected function envoyerRequeteConsultation($url) { |
$url = $this->traiterUrlParametres($url); |
Debug::printr($url); |
$retour = $this->envoyerRequete($url, 'GET'); |
return $retour; |
} |
protected function envoyerRequeteAjout($url, Array $donnees) { |
$retour = $this->envoyerRequete($url, 'PUT', $donnees); |
return $retour; |
} |
protected function envoyerRequeteModif($url, Array $donnees) { |
$retour = $this->envoyerRequete($url, 'POST', $donnees); |
return $retour; |
} |
protected function envoyerRequeteSuppression($url) { |
$retour = $this->envoyerRequete($url, 'DELETE'); |
return $retour; |
} |
private function envoyerRequete($url, $mode, Array $donnees = array()) { |
$contenu = false; |
if ($mode != 'GET' && $mode != 'PUT' && $mode != 'POST' && $mode != 'DELETE') { |
$e = "Le mode de requête '$mode' n'est pas accepté!"; |
trigger_error($e, E_USER_WARNING); |
} else { |
$contexte = stream_context_create(array( |
'http' => array( |
'method' => $mode, |
'header' => "Content-type: application/x-www-form-urlencoded\r\n", |
'content' => http_build_query($donnees, null, self::HTTP_REQUETE_SEPARATEUR)))); |
$flux = @fopen($url, 'r', false, $contexte); |
if (!$flux) { |
$this->traiterEntete($http_response_header, $url); |
$e = "L'ouverture de l'url '$url' par la méthode HTTP '$mode' a échoué!"; |
trigger_error($e, E_USER_WARNING); |
} else { |
// Informations sur les en-têtes et métadonnées du flux |
$entetes = stream_get_meta_data($flux); |
$this->traiterEntete($entetes, $url); |
// Contenu actuel de $url |
$contenu = stream_get_contents($flux); |
fclose($flux); |
} |
} |
$this->reinitialiser(); |
return $contenu; |
} |
private function traiterUrlParametres($url) { |
$parametres = array(); |
if (! is_null($this->getLimiteDebut())) { |
$parametres[] = 'start='.$this->getLimiteDebut(); |
} |
if (! is_null($this->getLimiteNbre())) { |
$parametres[] = 'limit='.$this->getLimiteNbre(); |
} |
if (! is_null($this->ordre)) { |
$parametres[] = 'orderby='.urlencode($this->getOrdre()); |
} |
if ($this->getDistinction() != 0) { |
$parametres[] = 'distinct='.$this->getDistinction(); |
} |
if (count($parametres) > 0) { |
$url_parametres = implode('&', $parametres); |
$url = $url.'?'.$url_parametres; |
} |
return $url; |
} |
private function traiterEntete($entetes, $uri) { |
$infos = $this->analyserEntete($entetes, $uri); |
$this->traiterEnteteDebug($infos); |
$this->traiterEnteteMessage($infos); |
} |
private function analyserEntete($entetes, $uri) { |
$infos = array('date' => null, 'uri' => $uri, 'debugs' => null, 'messages' => null); |
if (isset($entetes['wrapper_data'])) { |
$entetes = $entetes['wrapper_data']; |
} |
foreach ($entetes as $entete) { |
if (preg_match('/^X-DebugJrest-Data: (.+)$/', $entete, $match)) { |
$infos['debugs'] = json_decode($match[1]); |
} |
if (preg_match('/^X-MessageJrest-Data: (.+)$/', $entete, $match)) { |
$infos['messages'] = json_decode($match[1]); |
} |
if (preg_match('/^Date: .+ ([012][0-9]:[012345][0-9]:[012345][0-9]) .*$/', $entete, $match)) { |
$infos['date'] = $match[1]; |
} |
} |
return $infos; |
} |
private function traiterEnteteDebug($entetes) { |
if (isset($entetes['debugs'])) { |
$date = $entetes['date']; |
$uri = $entetes['uri']; |
$debugs = $entetes['debugs']; |
foreach ($debugs as $debug) { |
Debug::printr("DEBUG : $date - $uri :\n$debug"); |
} |
} |
} |
private function traiterEnteteMessage($entetes) { |
if (isset($entetes['messages'])) { |
$date = $entetes['date']; |
$uri = $entetes['uri']; |
$messages = $entetes['messages']; |
foreach ($messages as $message) { |
Debug::printr("MESSAGE : $date - $uri :\n$message"); |
} |
} |
} |
private function reinitialiser() { |
$this->viderDistinction(); |
$this->viderLimite(); |
$this->viderOrdre(); |
} |
} |
/tags/v1.5-graves/bibliotheque/dao/MetadonneeDao.php |
---|
New file |
0,0 → 1,47 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Modèle d'accès à la base de données des Collections pour le module Métadonnées. |
* |
* @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$ |
* |
*/ |
class MetadonneeDao extends Dao { |
const SERVICE_ONTOLOGIE = 'CoelValeurListe'; |
/** |
* Retourne l'ensemble des information d'une liste de valeurs. |
* |
* @param integer l'id de la liste. |
* @return array un tableau contenant les valeurs de la liste. |
*/ |
public function getOntologie($id) { |
$url = $this->url_jrest.self::SERVICE_ONTOLOGIE."/id/$id?limit=500"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
/** |
* Retourne l'ensemble des information d'une liste de valeurs. |
* |
* @param integer l'id d'une valeur ou un ensemble d'id de valeurs séparés par des virgules. |
* @return array un tableau contenant les valeurs. |
*/ |
public function getOntologieValeur($id_valeurs) { |
$donnees = array(); |
if (!empty($id_valeurs)) { |
$url = $this->url_jrest.self::SERVICE_ONTOLOGIE."/idv/$id_valeurs"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
} |
return $donnees; |
} |
} |
?> |
Property changes: |
Added: svn:keywords |
+Id Author Date Revision HeadURL |
\ No newline at end of property |
/tags/v1.5-graves/bibliotheque/dao/StructureDao.php |
---|
New file |
0,0 → 1,88 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Modèle d'accès à la base de données des Collections pour le module Structure. |
* |
* @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$ |
* |
*/ |
class StructureDao extends Dao { |
const ROLE_EQUIPE = 2027; |
const SERVICE_STRUCTURE = 'CoelStructure'; |
const SERVICE_STRUCTURE_A_PERSONNE = 'CoelStructureAPersonne'; |
/** |
* Retourne l'ensemble des information sur une structure. |
* |
* @param integer l'id de la structure. |
* @return array un tableau contenant les informations sur la structure. |
*/ |
public function getStructure($id_structure) { |
$url = $this->url_jrest.self::SERVICE_STRUCTURE."/*/$id_structure/*"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees['structures']; |
} |
/** |
* Retourne le nombre de structure par zone géographique. |
* |
* @param integer le type de recherche à effectuée. |
* @return array un tableau contenant les informations sur le nombre de structures par zone. |
*/ |
public function getStructureParZoneGeo($type_recherche) { |
$url = $this->url_jrest.self::SERVICE_STRUCTURE."/ParZoneGeo/$type_recherche"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
/** |
* Retourne l'ensemble des informations du personnel d'une structure. |
* |
* @param integer l'id de la structure. |
* @return array un tableau contenant les informations sur le personnel de la structure. |
*/ |
public function getPersonnel($id_structure) { |
$donnees = $this->getStructureAPersonne($id_structure); |
$personnel = $this->filtrerRoleEquipe($donnees['structuresAPersonne']); |
return $personnel; |
} |
/** |
* Retourne le nombre de personnel d'une structure. |
* |
* @param integer l'id de la structure. |
* @return integer le nombre de personnel de la structure. |
*/ |
public function getNbrePersonnel($id_structure) { |
$donnees = $this->getStructureAPersonne($id_structure); |
$personnel = $this->filtrerRoleEquipe($donnees['structuresAPersonne']); |
$nbre_personnel = count($personnel); |
return $nbre_personnel; |
} |
private function getStructureAPersonne($id_structure) { |
$url = $this->url_jrest.self::SERVICE_STRUCTURE_A_PERSONNE."/$id_structure"; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
private function filtrerRoleEquipe($personnes) { |
$personnel = array(); |
foreach ($personnes as $personne) { |
if ($personne['csap_id_role'] == self::ROLE_EQUIPE) { |
$personnel[] = $personne; |
} |
} |
return $personnel; |
} |
} |
?> |
Property changes: |
Added: svn:keywords |
+Id Author Date Revision HeadURL |
\ No newline at end of property |
/tags/v1.5-graves/bibliotheque/dao/SyndicationDao.php |
---|
New file |
0,0 → 1,30 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Modèle d'accès à la base de données des Collections pour les flux de Syndication. |
* |
* @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$ |
* |
*/ |
class SyndicationDao extends Dao { |
const SERVICE = 'CoelSyndication'; |
/** |
* Retourne l'ensemble des information sur les flux de syndication disponibles. |
* |
* @return array un tableau contenant les informations. |
*/ |
public function getListeDesFlux() { |
$url = $this->url_jrest.self::SERVICE.'/liste_des_flux'; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
} |
?> |