Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1805 → Rev 1806

/trunk/services/bibliotheque/Masque.php
File deleted
\ No newline at end of file
/trunk/services/bibliotheque/Navigation.php
18,7 → 18,10
 
private $conteneur;
private $parametresUrl;
private $urlNavigation;
private $serviceNom;
private $filtresPossibles;
private $filtresActifs;
 
private $total;
private $sansLimite;
 
26,18 → 29,33
* Constructeur de la classe Navigation
* @param Array $parametresUrl (optionnel) la liste des paramètre issus du Conteneur
*/
public function __construct($conteneur, $parametresUrl = null) {
public function __construct($conteneur) {
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->parametresUrl = $parametresUrl;
$this->urlNavigation = $this->conteneur->getUrlService();
$this->urlNavigation->setOption(Url::OPTION_ENCODER_VALEURS, true);
 
$contexte = $this->conteneur->getContexte();
$this->parametresUrl = $contexte->getQS();
$this->serviceNom = $contexte->getRessource(1);
 
$this->filtresPossibles = $this->conteneur->getparametre($this->serviceNom.'.masques_possibles');
$this->chargerFiltresActifs();
}
 
private function chargerFiltresActifs() {
if ($this->parametresUrl != null) {
foreach ($this->parametresUrl as $paramNom => $valeur) {
if (in_array($paramNom, $this->filtresPossibles)) {
$this->filtresActifs[$paramNom] = $valeur;
}
}
}
}
 
/**
* Obtenir la valeur courante de départ
*/
public function getDepart() {
return $this->conteneur->getParametre('navigation.depart') == null ? 0 : $this->conteneur->getParametre('navigation.depart') ;
$navDepart = $this->getParamUrl('navigation.depart');
return ($navDepart == null) ? 0 : $navDepart ;
}
 
/**
44,14 → 62,19
* Obtenir la limite courante
*/
public function getLimite() {
$limiteParam = $this->getParamUrl('navigation.limite');
$limite = 10;
if ($this->conteneur->getParametre('navigation.limite') != null && is_numeric($this->conteneur->getParametre('navigation.limite'))) {
$limiteParam = $this->conteneur->getParametre('navigation.limite');
if ($limiteParam != null && is_numeric($limiteParam)) {
$limite = ($limiteParam < 1000) ? $limiteParam : 1000;// Pour éviter les abus !
}
return $limite;
}
 
private function getParamUrl($nom) {
$valeur = isset($this->parametresUrl[$nom]) ? $this->parametresUrl[$nom] : null;
return $valeur;
}
 
/**
* Récupérer l'url de navigation en concaténant d'éventuels paramètres
* @param $depart l'entier de départ de la recherche
63,8 → 86,11
$parametres['navigation.depart'] = $depart;
$parametres['navigation.limite'] = $limite;
 
$this->urlNavigation->setRequete($parametres);
$url = $this->urlNavigation->getURL();
$urlServiceBase = $this->getParametre('url_service_base').$this->serviceNom;
$urlNavigation = $this->conteneur->getUrl($urlServiceBase);
$urlNavigation->setOption(Url::OPTION_ENCODER_VALEURS, true);
$urlNavigation->setRequete($parametres);
$url = $urlNavigation->getURL();
return $url;
}
 
119,11 → 145,13
}
 
/**
* Créer l'entête en fonction des paramètres donnés
*/
* Génère un tableau contenant les informations pour l'entête des services renvoyant une liste de résultats.
*
* @return array Le tableau d'entête prés à être encodé en JSON.
*/
public function getEntete() {
$entete = array();
$entete['masque'] = $this->conteneur->getMasque()->getChaineMasque();
$entete['masque'] = $this->getChaineFiltresActifs();
 
$entete['total'] = $this->getTotal();
if ($this->sansLimite == false) {
143,4 → 171,30
 
return $entete;
}
 
/**
* Retourne les filtres au format chaine sous la forme filtre1=valeur1&filtre2=valeur2.
*
* @return String la chaine de caractères ou une chaine vide si pas de filtre.
*/
private function getChaineFiltresActifs() {
return (!empty($this->filtresActifs)) ? http_build_query($this->filtresActifs) : '';
}
 
/**
* Récupérer tout ou partie des filtres présent dans l'url.
*
* @param String $filtreNom (optionnel) le nom du filtre tel que présent dans l'url.
* @return mixed si un filtre est passé en paramètre retourn la valeur correspondante, si pas de paramétre
* retourne le tableau complet des filtres. False en cas d'erreur.
* */
public function getFiltre($filtreNom = null) {
$retour = false;
if ($filtreNom == null) {
$retour = $this->filtresActifs;
} else if ($filtreNom != null && isset($this->filtresActifs[$filtreNom])) {
$retour = $this->filtresActifs[$filtreNom];
}
return retour;
}
}
/trunk/services/bibliotheque/Conteneur.php
21,9 → 21,6
protected $parametres;
protected $partages = array();
 
protected $parametresUrl;
protected $serviceNom;
 
/**
* Constructeur de la classe
* @param Array $parametres (optionnel) les paramètres additionnels à ajouter à ceux des fichiers de config
30,11 → 27,6
* */
public function __construct(array $parametres = null) {
$this->parametres = is_null($parametres) ? array() : $parametres;
 
// Récupération du contexte courrant et configuration du conteneur
$contexte = $this->getContexte();
$this->parametresUrl = $contexte->getQS();
$this->serviceNom = $contexte->getRessource(1);
}
 
/**
121,10 → 113,6
return new Url($base);
}
 
public function getUrlService() {
return $this->getUrl($this->getParametre($this->serviceNom.'.url_service'));
}
 
public function getControleAcces() {
if (!isset($this->partages['controleAcces'])) {
$this->partages['controleAcces'] = new ControleAcces($this);
134,18 → 122,11
 
public function getNavigation() {
if (!isset($this->partages['navigation'])) {
$this->partages['navigation'] = new Navigation($this, $this->parametresUrl);
$this->partages['navigation'] = new Navigation($this);
}
return $this->partages['navigation'];
}
 
public function getMasque() {
if (!isset($this->partages['masque'])) {
$this->partages['masque'] = new Masque($this->getparametre($this->serviceNom.'.masques_possibles'), $this->parametresUrl);
}
return $this->partages['masque'];
}
 
public function getContexte() {
if (!isset($this->partages['contexte'])) {
$this->partages['contexte'] = new Contexte($this, $_SERVER, $_GET, $_POST, $_SESSION, $_COOKIE);
/trunk/services/modules/0.1/commentaires/ListeCommentaires.php
21,10 → 21,7
 
private $conteneur;
private $navigation;
private $masque;
private $bdd;
private $parametres = array();
private $ressources = array();
 
private $mapping = array();
private $mappingInverse = array();
32,7 → 29,6
public function __construct(Conteneur $conteneur = null) {
$this->conteneur = ($conteneur == null) ? new Conteneur() : $conteneur;
$this->navigation = $this->conteneur->getNavigation();
$this->masque = $this->conteneur->getMasque();
$this->bdd = $this->conteneur->getBdd();
 
$this->mapping = $this->conteneur->getParametreTableau('commentaires.mapping');
74,7 → 70,7
 
private function creerClauseWhere() {
$where = array();
$filtres = $this->masque->getMasque();
$filtres = $this->navigation->getFiltre();
if (!empty($filtres)) {
foreach ($filtres as $cle => $valeur) {
$where[] = $this->mappingInverse[$cle].' = '.$this->bdd->proteger($valeur);
/trunk/services/modules/0.1/communes/ListeCommunes.php
17,28 → 17,18
 
private $conteneur;
private $navigation;
private $masque;
private $parametres = array();
private $ressources = array();
 
public function __construct(Conteneur $conteneur = null) {
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->conteneur->chargerConfiguration('config_communes.ini');
$this->navigation = $conteneur->getNavigation();
$this->masque = $conteneur->getMasque();
}
 
/**
* Méthode principale de la classe.
* Lance la récupération des images dans la base et les place dans un objet ResultatService
* pour l'afficher.
* @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)
* @param array $parametres les paramètres situés après le ? dans l'url
* */
public function consulter($ressources, $parametres) {
$this->initialiserRessourcesEtParametres($ressources, $parametres);
public function consulter($parametres) {
$this->parametres = $parametres;
 
$communes = $this->chargerCommunes($this->masque->getMasque('nom'));
$communes = $this->chargerCommunes();
$total = $this->compterCommunes($communes);
$this->navigation->setTotal($total);
$this->navigation->setSansLimite();
48,17 → 38,14
return $resultat;
}
 
private function initialiserRessourcesEtParametres($ressources, $parametres) {
$this->ressources = $ressources;
$this->parametres = $parametres;
}
 
private function chargerCommunes($requete) {
private function chargerCommunes() {
$urlCelTpl = $this->conteneur->getParametre('urlServiceCelCommune');
$url = $urlCelTpl.$requete;
$url = $urlCelTpl.$this->navigation->getFiltre('masque.nom');
$restClient = $this->conteneur->getRestClient();
$resultatJson = $restClient->consulter($url);
var_dump($url);
$resultat = json_decode($resultatJson);
 
return $resultat;
}
 
65,4 → 52,4
private function compterCommunes($communes) {
return count($communes);
}
}
}
/trunk/services/modules/0.1/mots_cles/ListeMotsCles.php
19,7 → 19,6
 
private $conteneur;
private $navigation;
private $masque;
private $bdd;
 
private $mapping = array();
28,7 → 27,6
public function __construct(Conteneur $conteneur = null) {
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->navigation = $conteneur->getNavigation();
$this->masque = $conteneur->getMasque();
$this->bdd = $this->conteneur->getBdd();
 
$this->mapping = $this->conteneur->getParametreTableau('mots-cles.mapping');
67,7 → 65,7
 
private function creerClauseWhere() {
$where = array();
$filtres = $this->masque->getMasque();
$filtres = $this->navigation->getFiltre();
if (!empty($filtres)) {
foreach ($filtres as $cle => $valeur) {
$where[] = $this->mappingInverse[$cle].' = '.$this->bdd->proteger($valeur);
/trunk/services/modules/0.1/nomstaxons/ListeTaxons.php
19,7 → 19,6
 
private $conteneur;
private $navigation;
private $masque;
private $bdd;
private $parametres = array();
private $ressources = array();
29,7 → 28,6
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->conteneur->chargerConfiguration('config_nomstaxons.ini');
$this->navigation = $conteneur->getNavigation();
$this->masque = $conteneur->getMasque();
$this->bdd = $this->conteneur->getBdd();
}
 
42,7 → 40,7
$this->initialiserRessourcesEtParametres($ressources, $parametres);
 
// Lancement du service
$taxons = $this->chargerNoms($this->masque->getMasque('referentiel'), $this->masque->getMasque('nom'));
$taxons = $this->chargerNoms($this->navigation->getFiltre('masque.referentiel'), $this->navigation->getFiltre('masque.nom'));
$total = $this->compterNoms($taxons);
$this->navigation->setTotal($total);
$this->navigation->setSansLimite();
/trunk/services/modules/0.1/Communes.php
61,28 → 61,15
}
 
private function traiterRessources() {
$this->chargerConfigService();
$this->analyserRessources();
$retour = $this->initialiserService();
return $retour;
}
 
private function chargerConfigService() {
$chemin = Config::get('chemin_configurations')."config_{$this->serviceNom}.ini";
Config::charger($chemin);
}
 
private function analyserRessources() {
if ($this->methode == 'consulter') {
if (count($this->ressources) == 0) {
if ($this->verifierPresenceParametre('masque.nom')) {
$this->sousServiceNom = 'liste-communes';
} else {
$message = "Le service demandé '{$this->serviceNom}' ".
"nécessite l'utilisation d'un paramètre (non vide) : masque.nom \n";
$code = RestServeur::HTTP_CODE_ECHEC_CONDITION;
throw new Exception($message, $code);
}
if (count($this->ressources) == 0 && $this->verifierPresenceParametre('masque.nom')) {
$this->sousServiceNom = 'liste-communes';
}
}
if ($this->sousServiceNom == null) {
91,11 → 78,12
}
 
private function verifierPresenceParametre($cle) {
$ok = false;
if (isset($this->parametres[$cle]) && trim($this->parametres[$cle]) != '') {
$ok = true;
if (isset($this->parametres[$cle]) && trim($this->parametres[$cle]) == '') {
$message = "Le service demandé '{$this->serviceNom}' ".
"nécessite l'utilisation d'un paramètre (non vide) : masque.nom \n";
throw new Exception($message, RestServeur::HTTP_CODE_ECHEC_CONDITION);
}
return $ok;
return true;
}
 
private function lancerMessageErreurRessource() {
118,11 → 106,10
 
foreach ($chemins as $chemin) {
if (file_exists($chemin)) {
$this->conteneur->chargerConfiguration('config_'.$this->serviceNom.'.ini');
require_once $chemin;
$service = new $classe($this->conteneur);
if ($this->methode == 'consulter') {
$retour = $service->consulter($this->ressources, $this->parametres);
$retour = $service->consulter($this->parametres);
} else {
$message = "Le sous-service '{$this->sousServiceNom}' du service '{$this->serviceNom}' ".
"ne possède pas de méthode '{$this->methode}' !";
/trunk/services/modules/0.1/observations/ListeObservationsWidget.php
17,7 → 17,6
 
private $conteneur;
private $navigation;
private $masque;
private $bdd;
private $parametres = array();
private $ressources = array();
29,7 → 28,6
$this->conteneur->chargerConfiguration('config_observations.ini');
$this->conteneur->chargerConfiguration('config_departements_bruts.ini');
$this->navigation = $conteneur->getNavigation();
$this->masque = $conteneur->getMasque();
$this->bdd = $this->conteneur->getBdd();
}
 
149,7 → 147,7
* */
private function chargerClauseWhere() {
$where = array();
$tableauMasque = $this->masque->getMasque();
$tableauMasque = $this->navigation->getFiltre();
if (!empty($tableauMasque)) {
foreach($tableauMasque as $idMasque => $valeurMasque) {
 
157,7 → 155,7
switch ($idMasque) {
// nom du masque => nom BDD
case 'auteur' :
$whereAuteur = ' '.$this->creerFiltreAuteur($this->masque->getMasque('auteur'));
$whereAuteur = ' '.$this->creerFiltreAuteur($this->navigation->getFiltre('auteur'));
if($whereAuteur != '') {
$where[] = $whereAuteur;
}
/trunk/services/modules/0.1/syndication/SyndicationVotesParProtocole.php
15,13 → 15,6
/**
* Paramètres du service
* */
private $ressources = null;
private $parametres = null;
private $format = null;
private $service = null;
private $squelette = null;
private $squelette_dossier = null;
private $masque = array();
private $mappingFiltre = array();
private $conteneur = null;
private $bdd = null;
36,9 → 29,8
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->conteneur->chargerConfiguration('config_syndication_votesparprotocole.ini');
$this->mappingFiltre = $this->conteneur->getParametre('mapping_masque');
$this->masque = $conteneur->getMasque();
$this->bdd = $conteneur->getBdd();
$this->navigation = $conteneur->getNavigation();
$this->bdd = $this->conteneur->getBdd();
$this->navigation = $this->conteneur->getNavigation();
}
 
/**
285,7 → 277,7
* */
private function chargerClauseWhere() {
$where = array();
$tableauMasque = $this->masque->getMasque();
$tableauMasque = $this->navigation->getFiltre();
if (!empty($tableauMasque)) {
foreach($tableauMasque as $idMasque => $valeurMasque) {
$idMasque = str_replace('masque.', '', $idMasque);
/trunk/services/modules/0.1/syndication/SyndicationCommentaires.php
12,13 → 12,6
*/
class SyndicationCommentaires {
 
private $ressources = null;
private $parametres = null;
private $format = null;
private $service = null;
private $squelette = null;
private $squelette_dossier = null;
private $masque = array();
private $mappingFiltre = array();
private $conteneur = null;
private $bdd = null;
28,9 → 21,8
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->conteneur->chargerConfiguration('config_syndication_commentaires.ini');
$this->mappingFiltre = $this->conteneur->getParametre('mapping_masque');
$this->masque = $conteneur->getMasque();
$this->bdd = $conteneur->getBdd();
$this->navigation = $conteneur->getNavigation();
$this->bdd = $this->conteneur->getBdd();
$this->navigation = $this->conteneur->getNavigation();
}
 
public function consulter($params = array()) {
255,7 → 247,7
private function chargerClauseWhere() {
$where = array();
 
$tableauMasque = $this->masque->getMasque();
$tableauMasque = $this->navigation->getFiltre();
if (!empty($tableauMasque)) {
foreach ($tableauMasque as $idMasque => $valeurMasque) {
$idMasque = str_replace('masque.', '', $idMasque);
/trunk/services/modules/0.1/syndication/SyndicationTagsParProtocole.php
16,13 → 16,6
/**
* Paramètres du service
* */
private $ressources = null;
private $parametres = null;
private $format = null;
private $service = null;
private $squelette = null;
private $squelette_dossier = null;
private $masque = array();
private $mappingFiltre = array();
private $conteneur = null;
private $bdd = null;
37,9 → 30,8
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
$this->conteneur->chargerConfiguration('config_syndication_tagsparprotocole.ini');
$this->mappingFiltre = $this->conteneur->getParametre('mapping_masque');
$this->masque = $conteneur->getMasque();
$this->bdd = $conteneur->getBdd();
$this->navigation = $conteneur->getNavigation();
$this->bdd = $this->conteneur->getBdd();
$this->navigation = $this->conteneur->getNavigation();
}
 
/**
295,7 → 287,7
* */
private function chargerClauseWhere() {
$where = array();
$tableauMasque = $this->masque->getMasque();
$tableauMasque = $this->navigation->getFiltre();
if (!empty($tableauMasque)) {
foreach ($tableauMasque as $idMasque => $valeurMasque) {
$idMasque = str_replace('masque.', '', $idMasque);