Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 535 → Rev 536

/trunk/services/modules/0.1/commun/MetaDonnees.php
33,7 → 33,7
public function consulter($ressources, $parametres) {
$this->ressources = $ressources;
$this->parametres = $parametres;
$this->serviceNom = 'meta-donnees';
$this->service = 'meta-donnees';
 
$resultats = '';
// on traite en premier la version dans le cas ou un langage est demandé pr une version
/trunk/services/modules/0.1/commun/Commun.php
44,6 → 44,10
private static $tri_multi_dimension = array();
private static $tri_type = '';
 
public function __construct() {
$this->config = is_null($config) ? Config::get($this->serviceNom) : $config;
}
public function consulter($ressources, $parametres) {
$this->ressources = $ressources;
$this->parametres = $parametres;
74,7 → 78,7
$this->serviceNom = get_class($this);
}
 
public function traiterResultat($resultat, $version) {
public function traiterResultat($resultat, $version) {
$versionResultat = null;
if ($resultat == '') {
//cas ou la requete comporte des erreurs
286,6 → 290,15
}
}
 
public function getDureeCache() {
$dureecache = 0;
$dureecache = Config::get('dureecache');
if ($dureecache == null || !is_numeric($dureecache) || $dureecache < 0) {
$dureecache = 0;
}
return (int) $dureecache;
}
public function ajouterHref($service, $val) {
// http://tela-botanica.org/service:eflore:0.1/[projet]/[version_projet]/[service]/[ressource]:[valeur]
if ($this->version_projet == '+') {
/trunk/services/modules/0.1/cel/Images.php
14,10 → 14,10
* @copyright 1999-2011 Tela Botanica (accueil@tela-botanica.org)
*/
// TODO : Config et Outils sont des classes statiques qui doivent poser des pb pour les tests...
class Images {
class Images extends Commun {
 
private $parametres = array();
private $ressources = array();
protected $parametres = array();
protected $ressources = array();
private $Bdd;
 
const CODE_REFTAX_DEFAUT = 'bdtfx';
/trunk/services/modules/0.1/wikipedia/Textes.php
12,10 → 12,11
* @version 1.0
* @copyright 1999-2012 Tela Botanica (accueil@tela-botanica.org)
*/
class Textes {
class Textes extends Commun{
 
private $parametres = array();
private $ressources = array();
protected $parametres = array();
protected $ressources = array();
protected $service = 'textes';
 
public function consulter($ressources, $parametres) {
$this->parametres = $parametres;
/trunk/services/modules/0.1/bibliobota/Publications.php
14,17 → 14,17
* @copyright 1999-2011 Tela Botanica (accueil@tela-botanica.org)
*/
// TODO : Config et Outils sont des classes statiques qui doivent poser des pb pour les tests...
class Publications {
class Publications extends Commun{
 
private $parametres;
private $ressources;
protected $parametres;
protected $ressources;
private $Bdd;
private $config;
private $nbrePublications;
private $masque_taxon;
protected $service = 'publications';
public function __construct(Bdd $bdd = null, Array $config = null, Utilisateurs $utilisateurs = null, Url $url = null) {
$this->config = is_null($config) ? Config::get('Publications') : $config;
$this->Bdd = is_null($bdd) ? new Bdd() : $bdd;
$this->UrlNavigation = is_null($url) ? new Url($this->config['url_service']) : $url;
}
/trunk/services/modules/0.1/bdtfx/Noms.php
25,14 → 25,15
class Noms extends CommunNomsTaxons {
protected $format_reponse = 'noms'; // Permet de stocker la requete formulée
protected $service = 'noms';
protected $service = 'noms';
protected $serviceNom = 'noms';
protected $requete_champ = 'num_nom, nom_sci, num_nom_retenu';
protected $requete_condition = null;
protected $requete_group_by = '';
/** Permet de stocker les limite de la requete SQL (par défaut seul les 100 premiers résultats seront retournés).*/
protected $limite_requete = array('depart' => 0, 'limite' => 100);
protected $distinct = null; // Valeur du paramètre de requete distinct (=0|1)
protected $distinct = null; // Valeur du paramètre de requete distinct (=0|1)
 
public function consulter($ressources, $parametres) {
return parent::consulter($ressources, $parametres);
}
381,7 → 382,9
$url = Config::get('url_service').'/'.$this->service.'/'
.$this->ressources[0].'/relations/'
.$relation.$parametres_url; Debug::printr($url);
$relation = $this->consulterHref($url);
$res = $relation->resultat;
return $res;
}
/trunk/services/modules/0.1/Projets.php
27,6 → 27,9
private $serviceNom = array();
/** Chemin vers le dossier courrant. */
private $cheminCourrant = null;
private $cache;
/** Indique si oui (true) ou non (false), on veut utiliser les paramètres brutes. */
protected $utilisationParametresBruts = true;
 
173,7 → 176,8
if (file_exists($chemin)) {
$service = new $classe($this->getBdd());
$ressourcesPourService = $this->filtrerRessourcesPourService();
$retour = $service->consulter($ressourcesPourService, $this->parametres);
$this->cache = new CacheEflore($service, $this->projetNom, $this->serviceNom, Config::get('cache'));
$retour = $this->cache->consulter($ressourcesPourService, $this->parametres);
}
}
if (is_null($service)) {
/trunk/services/modules/0.1/coste/Textes.php
32,9 → 32,14
protected $recherche = 'stricte';
protected $service = 'textes';
protected $masque = null;
protected $config;
public function __construct() {
$this->config = is_null($config) ? Config::get('Textes') : $config;
}
public function consulter($ressources, $parametres) {
$resultat_formate = '';
$this->table = array(Config::get("bdd_triples")." t1", Config::get("bdd_triples")." t2", Config::get("bdd_pages")." p");
$this->traiterParametres($parametres);
/trunk/services/modules/0.1/nvjfl/NomsVernaculaires.php
72,6 → 72,12
protected $table_retour = array();
/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
protected $total_resultat;
private $config;
public function __construct() {
$this->config = is_null($config) ? Config::get('NomsVernaculaires') : $config;
}
 
//+------------------------------------------------------------------------------------------------------+
// créer une condition en fonction du paramétre
/trunk/services/configurations/config_eflore.ini
32,4 → 32,7
; Chemin de base des cartes
cache.miseEnCache = true
cache.stockageChemin = /home/delphine/web/serveur/cache/eflore/eflore/
cache.dureeDeVie = "php:3600*24"
cache.dureeDeVie = "php:3600*24"
 
[meta-donnees]
dureecache = 3600
/trunk/services/configurations/config_coste.ini
69,4 → 69,7
 
 
;tableau contenant tous les noms des projet et la correspondance avec le nom des champs des flores de la bdnff
noms_projets="flore_bdnff=bdtfx"
noms_projets="flore_bdnff=bdtfx"
[Textes]
; description chargée une fois par jour
dureecache = 86400
/trunk/services/configurations/config_nvjfl.ini
47,4 → 47,6
num_statut=conseil_emploi.code,
notes=notes"
 
champs_possibles = "nom_vernaculaire=1,langue=1,genre=1,taxon=1,zone_geo=1,conseil_emploi=1,notes=1,biblio=1,attributions=1"
champs_possibles = "nom_vernaculaire=1,langue=1,genre=1,taxon=1,zone_geo=1,conseil_emploi=1,notes=1,biblio=1,attributions=1"
[NomsVernavulcaires]
dureecache = 84600
/trunk/services/configurations/config_bibliobota.ini
17,4 → 17,6
 
[Publications]
; URL de base des services de ce projet
url_service = "{ref:url_base}service:eflore:0.1/publications/publications"
url_service = "{ref:url_base}service:eflore:0.1/publications/publications"
; durée en seconde du cache pour le service publications
dureecache = 3600;
/trunk/services/configurations/config_bdtfx.ini
171,4 → 171,7
an=annee,
au=auteur,
bib=biblio_origine,
ad=nom_addendum"
ad=nom_addendum"
[Noms]
dureecache = 3600;
/trunk/services/bibliotheque/CacheEflore.php
New file
0,0 → 1,71
<?php
class CacheEflore {
private $service;
private $config;
private $dureecache = 0;
private $projetNom;
private $serviceNom;
private $cache;
private $cacheActif;
public function __construct($service, $projetNom, $serviceNom, $cacheActif) {
$this->cacheActif = $cacheActif;
$this->service = $service;
$this->config = $config;
$this->chargerDureeCache();
$this->projetNom = $projetNom;
$this->serviceNom = $serviceNom;
$this->cache = new CacheSimple(array("stockage_chemin" => Config::get("chemincache"), "duree_de_vie" => $this->dureecache));
}
 
public function chargerDureeCache() {
if ($this->cacheActif == "1") {
$this->dureecache = $this->service->getDureeCache();
}
}
public function consulter($ressources, $parametres) {
$id = $this->genererID($ressources, $parametres);
$retour = unserialize($this->cache->charger($id));
if ($retour == false) {
$retour = $this->mettreEnCache($ressources, $parametres);
}
return $retour;
}
public function mettreEnCache($ressources, $parametres) {
$retour = $this->service->consulter($ressources, $parametres);
$id = $this->genererID($ressources, $parametres);
if ($this->dureecache > 0) {
$this->cache->sauver(serialize($retour), $id);
}
return $retour;
}
public function genererID($ressources, $parametres) {
$chaineRessources = "";
$chaineParametres = "";
if (count($ressources) > 0) {
foreach ($ressources as $key => $val) {
$chaineRessources .= "$key:$val;";
}
}
if (count($parametres) > 0) {
foreach ($parametres as $key => $val) {
$chaineParametres .= "$key:$val;";
}
}
$chaineMD5 = md5($this->projetNom.$this->serviceNom.$chaineRessources.$chaineParametres);
return $chaineMD5;
}
}
 
 
?>