/trunk/jrest/services/InventoryByDept.php |
---|
File deleted |
\ No newline at end of file |
/trunk/jrest/services/InventoryCheck.php |
---|
File deleted |
\ No newline at end of file |
/trunk/jrest/services/TestNameParser.php |
---|
File deleted |
/trunk/jrest/services/ExportXLS.php |
---|
1,16 → 1,7 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* @category PHP |
* @package jrest |
* @author Raphaël Droz <raphael@tela-botania.org> |
* @copyright 2013 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
*/ |
/** |
* Service d'export de données d'observation du CEL au format XLS |
* Service d'export de données d'observation du CEL au format XLS. |
* |
* Format du service : |
* POST /ExportXLS |
30,19 → 21,29 |
* |
* Si <Utilisateur> est fourni, le observations seront le résultat de l'intersection des 2 contraintes |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Raphaël Droz <raphael@tela-botania.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(dirname(realpath(__FILE__))) . '/lib'); |
// TERM |
ini_set('html_errors', 0); |
ini_set('xdebug.cli_color', 2); |
require_once('lib/PHPExcel/Classes/PHPExcel.php'); |
require_once('lib/FormateurGroupeColonne.php'); |
require_once 'lib/PHPExcel/Classes/PHPExcel.php'; |
require_once 'lib/FormateurGroupeColonne.php'; |
class ExportXLS extends Cel { |
private $id_utilisateur = NULL; |
private $parametres_defaut = array("range" => "*", |
"format" => "CSV"); |
private $parametres_defaut = array('range' => '*', 'format' => 'CSV'); |
private $filtres_autorises = array( |
'id_utilisateur' => 'id_utilisateur', |
56,22 → 57,22 |
'taxon' => 'taxon' |
); |
function ExportXLS($config) { |
public function __construct($config) { |
parent::__construct($config); |
} |
function getRessource() { |
public function getRessource() { |
return $this->getElement(array()); |
} |
function getElement($uid) { |
public function getElement($uid) { |
$parametres_format = $this->traiterParametresFormat($uid, $_GET); |
$filtres = $this->traiterFiltres($_GET); |
$this->export($parametres_format, $filtres); |
exit; |
exit(); |
} |
function traiterParametresFormat($uid, $params) { |
private function traiterParametresFormat($uid, $params) { |
$parametres = $this->parametres_defaut; |
if(isset($params['format'])) { |
if($params['format'] == 'csv') $parametres['format'] = 'CSV'; |
89,7 → 90,7 |
return $parametres; |
} |
function traiterIdUtilisateur($uid) { |
private function traiterIdUtilisateur($uid) { |
$id_utilisateur = null; |
// TODO: controleUtilisateur() |
if(isset($uid[0])) { |
98,13 → 99,12 |
return $id_utilisateur; |
} |
function traiterFiltres($params) { |
private function traiterFiltres($params) { |
$obs_ids = $this->traiterObsIds($params); |
$filtres = array(); |
if(!$obs_ids || count($obs_ids) == 1 && $obs_ids[0] == '*') { |
unset($filtres['sql_brut']); |
} |
else { |
} else { |
$filtres = Array('sql_brut' => |
sprintf('id_observation IN (%s)', implode(',', $obs_ids))); |
} |
116,8 → 116,7 |
return $filtres; |
} |
function traiterObsIds($params) { |
private function traiterObsIds($params) { |
$obs_ids = Array('*'); |
if (isset($params['range']) && trim($params['range']) != '*') { |
// trim() car: `POST http://url<<<"range=*"` |
131,7 → 130,7 |
* - widget: le nom du widget d'origine (utilisé pour les méta-données du tableur) |
* |
*/ |
function export(Array $parametres_format = Array(),Array $filtres = array()) { |
private function export(Array $parametres_format = Array(),Array $filtres = array()) { |
$chercheur_observations = new RechercheObservation($this->config); |
$observations = $chercheur_observations |
141,11 → 140,13 |
// XXX: malheureusement l'instance de JRest n'est pas accessible ici |
if(!$observations) { |
header('HTTP/1.0 204 No Content'); |
exit; |
exit(); |
} |
if($parametres_format['format'] == 'pdf') { |
if(count($observations) > 300) die('too much'); |
if (count($observations) > 300) { |
die('too much'); |
} |
require_once('GenerateurPDF.php'); |
$pdf = new GenerateurPDF(); |
153,7 → 154,7 |
//$pdf->export1($observations); |
//$pdf->export2($observations); |
$pdf->pdf->Output('etiquettes.pdf', 'I'); |
die; |
die(); |
} |
$colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($parametres_format['groupe_champs']); |
175,9 → 176,9 |
} |
private function envoyerFeuille($objPHPExcel, $parametres_format) { |
header("Content-Type: application/vnd.ms-excel"); |
header("Content-Disposition: attachment; filename=\"liste.xls\"; charset=utf-8"); |
header("Cache-Control: max-age=0"); |
header('Content-Type: application/vnd.ms-excel'); |
header('Content-Disposition: attachment; filename="liste.xls"; charset=utf-8'); |
header('Cache-Control: max-age=0'); |
// csv|xls|xlsx => CSV|Excel5|Excel2007 |
// Note: le format Excel2007 utilise un fichier temporaire |
186,14 → 187,18 |
exit; |
} |
public function traiterLigneObservation(&$obs, &$colonnes, &$feuille, $no_ligne) { |
private function traiterLigneObservation(&$obs, &$colonnes, &$feuille, $no_ligne) { |
$no_colonne = 0; |
foreach($colonnes as $abbrev => $colonne) { |
$valeur = null; |
if($colonne['extra'] == 2 || ! is_null($colonne['dyna'])) continue; |
if ($colonne['extra'] == 2 || ! is_null($colonne['dyna'])) { |
continue; |
} |
// valeur direct depuis cel_obs ? |
if(isset($obs[$abbrev])) $valeur = $obs[$abbrev]; |
if (isset($obs[$abbrev])) { |
$valeur = $obs[$abbrev]; |
} |
// pré-processeur de la champs |
if(function_exists($colonne['fonction'])) { |
204,12 → 209,9 |
$valeur = call_user_func(array(__CLASS__, $colonne['fonction']), $valeur); |
} elseif($colonne['fonction']) { |
die("méthode {$colonne['fonction']} introuvable"); |
} |
// fonction pour obtenir des champs (étendus) |
elseif(function_exists($colonne['fonction_data'])) { |
} else if (function_exists($colonne['fonction_data'])) { // fonction pour obtenir des champs (étendus) |
$valeur = $colonne['fonction_data']($obs); |
} |
elseif(method_exists(__CLASS__, $colonne['fonction_data'])) { |
} else if (method_exists(__CLASS__, $colonne['fonction_data'])) { |
$valeur = call_user_func(array(__CLASS__, $colonne['fonction_data']), $obs); |
} |
239,8 → 241,6 |
->setTitle("Export des observation du carnet en ligne") // TODO |
->setSubject("Export") // TODO |
->setDescription("Export"); |
//->setKeywords("office PHPExcel php") |
//->setCategory("Test result file") |
$objPHPExcel->getActiveSheet()->setTitle("Observations"); |
return $objPHPExcel; |
249,7 → 249,9 |
private function formaterColonnesFeuille(&$feuille, &$colonnes, $parametres_format) { |
$colid = 0; |
foreach($colonnes as $colonne) { |
if($colonne['extra'] == 2) continue; |
if ($colonne['extra'] == 2) { |
continue; |
} |
$feuille->setCellValueByColumnAndRow($colid, 1, $colonne['nom']); |
if($colonne['extra'] == 1) { |
270,7 → 272,6 |
) |
); |
} |
$colid++; |
} |
} |
287,7 → 288,9 |
foreach($inSets as $inSet) { |
list($start,$end) = explode('-', $inSet . '-' . $inSet); |
// ignore les ranges trop importants |
if($start > 10000000 || $end > 10000000 || abs($start-$end) > 10000) continue; |
if ($start > 10000000 || $end > 10000000 || abs($start-$end) > 10000) { |
continue; |
} |
$outSets = array_merge($outSets,range($start,$end)); |
} |
$outSets = array_unique($outSets); |
/trunk/jrest/services/InventoryImageCount.php |
---|
1,52 → 1,41 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* @author Aurélien Peronnet <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @version $Id$ |
* @copyright © 2010, Aurélien Peronnet |
*/ |
/** |
* InventoryImageCount.php |
* |
* in : utf8 |
* out : utf8 |
* Cas d'utilisation : |
* Service recherche du nombre a partir de divers critères |
* |
* 2: Le service recherche le nombre d'images correspondant aux critères demandés |
* 3: Le service renvoie le nombre calculé |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class InventoryImageCount extends Cel { |
/** |
* renvoie le nombre d'images correspondant aux criteres |
* Renvoie le nombre d'images correspondant aux criteres |
* uid[0] : utilisateur obligatoire |
* uid[1] : critères de filtrage de la forme critère1=valeur1;critère2=valeur2 |
*/ |
function getElement($uid) |
{ |
//TODO : remplacer le contenu du $uid[1] par le tableau $_GET; |
public function getElement($uid) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
$chercheur_images = new RechercheImage($this->config); |
$numero_page = 0; |
$taille_page = 50; |
$criteres = array(); |
$criteres = $_GET; |
$chercheurImages = new RechercheImage($this->config); |
$retour = $chercheurImages->compterImages($uid[0], $criteres); |
$retour = $chercheur_images->compterImages($uid[0], $criteres); |
$retour_encode = json_encode($retour) ; |
$retour_encode = $this->nettoyerCaracteresNuls($retour_encode); |
header("content-type: application/json"); |
header('content-type: application/json'); |
print $retour_encode ; |
exit() ; |
} |
54,5 → 43,4 |
private function nettoyerCaracteresNuls($chaine) { |
return str_replace('\u0000','',$chaine); |
} |
} |
?> |
} |
/trunk/jrest/services/ImageDateList.php |
---|
1,33 → 1,30 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Liste les date des images par utilisateur. |
* |
* @category PHP |
* @package papyrus_bp |
* @author aurelien <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/papyrus_bp/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class ImageDateList extends Cel { |
private $correspondance_fonction = array(1 => 'year', 2 => 'month', 3 => 'day'); |
/** |
* Liste les date des images par utilisateur |
* |
* in=utf8 |
* out=utf8 |
* |
* uid[0] : utilisateur obligatoire |
* uid[1] : si absent : valeur 'all' (annee) |
* uid[2] : si absent : valeur 'all' (mois) |
* uid[3] : si absent : valeur 'all' (jour) |
**/ |
class ImageDateList extends Cel { |
private $correspondance_fonction = array(1 => 'year', 2 => 'month', 3 => 'day'); |
*/ |
public function getElement($uid){ |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
38,11 → 35,11 |
$conditions = $this->traiterParametresEtConstruireRequete($uid); |
$requete_liste_dates = 'SELECT DISTINCT '. |
'date_prise_de_vue AS id '. |
$requete_liste_dates = 'SELECT DISTINCT date_prise_de_vue AS id '. |
'FROM cel_images '. |
"WHERE $conditions ". |
'ORDER BY date_prise_de_vue'; |
'ORDER BY date_prise_de_vue '. |
' -- '.__FILE__.':'.__LINE__; |
$liste_dates = Cel::db()->requeter($requete_liste_dates); |
$liste_dates = $this->formaterListeResultats($liste_dates); |
60,13 → 57,9 |
$date = '0000-00-00'; |
} else { |
$date_heures = explode(' ',$date['id']); |
if (count($date_heures) > 1) { |
$date = $date_heures[0]; |
} else { |
$date = $date['id']; |
$date = (count($date_heures) > 1) ? $date_heures[0] : $date['id']; |
} |
} |
} |
return $liste_dates; |
} |
/trunk/jrest/services/InventoryTransmit.php |
---|
1,34 → 1,44 |
<?php |
/* |
* @author Aurélien Peronnet <aurelien@tela-botanica.org> |
* @author David Delon <david.delon@clapas.net> |
* @copyright 2010, 2013 Tela-Botanica |
// declare(encoding='UTF-8'); |
/** |
* Service rendant publique une observation. |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class InventoryTransmit extends Cel { |
class InventoryTransmit extends Cel { |
function updateElement($uid, $pairs) { |
public function updateElement($uid, $pairs) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
if (!isset($uid[1])) return false; |
if (!isset($uid[1])) { |
return false; |
} |
$transmission = intval($pairs['transmission']); |
if($transmission != 0 && $transmission != 1) return false; |
if ($transmission != 0 && $transmission != 1) { |
return false; |
} |
$ids = array_filter(array_map(create_function('$v','return intval($v);'), |
explode(',', $uid[1])), 'strlen'); |
$ids = array_filter(array_map(create_function('$v','return intval($v);'), explode(',', $uid[1])), 'strlen'); |
$date = ($transmission == 1) ? 'now()' : 'NULL'; |
//TODO: modification pour passer ceci dans la classe gestion observation |
$requete_transmission = 'UPDATE cel_obs '. |
$requete = 'UPDATE cel_obs '. |
'SET transmission = '.$pairs['transmission'].', '. |
'date_modification = now(), date_transmission = '.$date.' '. |
'WHERE ce_utilisateur = '.Cel::db()->proteger($uid[0]).' AND ordre in ('.implode(',', $ids).')'; |
$resultat_transmission = Cel::db()->executer($requete_transmission); |
return ($resultat_transmission != 0); |
'WHERE ce_utilisateur = '.Cel::db()->proteger($uid[0]).' '. |
'AND ordre in ('.implode(',', $ids).') '. |
' -- '.__FILE__.':'.__LINE__; |
$resultat = Cel::db()->executer($requete); |
return ($resultat != 0); |
} |
} |
?> |
} |
/trunk/jrest/services/SelfRefList.php |
---|
1,10 → 1,20 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// in utf8 |
// out utf8 |
// Fournit un référentiel relatif à l'utilisateur sur l'un des champs demandes |
// declare(encoding='UTF-8'); |
/** |
* Fournit une liste d'auto-complétions (=référentiel) relative à l'utilisateur sur l'un des champs demandés. |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Auto-complétions |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class SelfRefList extends Cel { |
private $referentiels = array('station', 'lieudit', 'milieu'); |
31,17 → 41,28 |
} |
$referentiel_demande = $uid[1]; |
$idUtilisateur = Cel::db()->proteger($uid[0]); |
$idUtilisateurP = Cel::db()->proteger($uid[0]); |
$requete = "SELECT DISTINCT $referentiel_demande " . |
'FROM cel_obs '. |
"WHERE ce_utilisateur = '$idUtilisateur' "; |
$filtreSql = ''; |
if ($this->filtreRechercheEstDemande()) { |
$requete .= " AND $referentiel_demande LIKE '".$_GET["recherche"]."%'"; |
$rechercheP = Cel::db()->proteger($_GET['recherche'].'%'); |
$filtreRecherche = "AND $referentiel_demande LIKE $rechercheP "; |
} |
$limiteSql = ''; |
if ($this->limiteEstDemandee()) { |
$requete .= " ORDER BY $referentiel_demande LIMIT ".$_GET['start'].','.$_GET['limit']; |
$start = intval($_GET['start']); |
$limit = intval($_GET['limit']); |
$limite = "LIMIT $start,$limit "; |
} |
$requete = "SELECT DISTINCT $referentiel_demande " . |
'FROM cel_obs '. |
"WHERE ce_utilisateur = $idUtilisateurP ". |
$filtreSql. |
"ORDER BY $referentiel_demande ". |
$limiteSql. |
' -- '.__FILE__.':'.__LINE__; |
$resultat = Cel::db()->requeter($requete); |
$referentiel = array(); |
50,7 → 71,6 |
if ($this->estUneValeurValide($valeur[$referentiel_demande])) { |
$referentiel[] = $valeur[$referentiel_demande]; |
} |
} |
} |
$this->envoyerJson($referentiel); |
/trunk/jrest/services/InventoryObservationCount.php |
---|
1,51 → 1,37 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* |
* @category PHP |
* @package jrest |
* @author David Delon <david.delon@clapas.net> |
* @author Aurélien Peronnet <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
*/ |
/** |
* InventoryObservationCount.php |
* |
* in : utf8 |
* out : utf8 |
* |
* Cas d'utilisation : |
* Service recherche du nombre a partir de divers critères |
* |
* 2: Le service recherche le nombre d'images correspondant au critères demandé |
* 2: Le service recherche le nombre d'observations correspondant aux critères demandés |
* 3: Le service renvoie le nombre calcule |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class InventoryObservationCount extends Cel { |
/** |
* renvoie le nombre d' observations correspondant aux criteres |
* Renvoie le nombre d' observations correspondant aux critères |
* uid[0] : utilisateur obligatoire |
* uid[1] : criteres de filtrage de la forme critere1=valeur1&critere2=valeur2 |
* |
*/ |
function getElement($uid) |
{ |
public function getElement($uid) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
$chercheur_observations = new RechercheObservation($this->config); |
$criteres = $_GET; |
$retour = $chercheur_observations->compterObservations($uid[0], $criteres); |
$chercheurObs = new RechercheObservation($this->config); |
$retour = $chercheurObs->compterObservations($uid[0], $_GET); |
$this->envoyerJson($retour); |
return true; |
} |
} |
?> |
} |
/trunk/jrest/services/InventoryLocationList.php |
---|
1,55 → 1,36 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* @author David Delon <david@tela-botanica.org> |
* @author Aurélien Peronnet <aurelien@tela-botanica.org> |
* Service de listage des zones géographiques d'un utilisateur |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @version $Id$ |
* @copyright © 2010, David Delon, Aurélien Peronnet |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** |
* InventoryLocationList.php |
* |
* in : utf8 |
* out : utf8 |
* Cas d'utilisation : |
* Service listage des zones géographiques d'un utilisateur |
*/ |
class InventoryLocationList extends Cel { |
function getElement($uid){ |
public function getElement($uid) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
$idUtilisateurP = Cel::db()->proteger($uid[0]); |
$retour = array(); |
$requete = 'SELECT DISTINCT ce_zone_geo, zone_geo, lieudit, station '. |
'FROM cel_obs '. |
"WHERE ce_utilisateur = $idUtilisateurP ". |
'ORDER BY ce_zone_geo ASC, zone_geo ASC, lieudit ASC, station ASC '. |
' -- '.__FILE__.':'.__LINE__; |
$resultats = Cel::db()->requeter($requete); |
$requete_zones_geo = 'SELECT DISTINCT ce_zone_geo, zone_geo, lieudit, station FROM cel_obs '. |
'WHERE ce_utilisateur = '.Cel::db()->proteger($uid[0]).' '. |
'ORDER BY ce_zone_geo ASC, zone_geo ASC, lieudit ASC, station ASC'; |
$resultat_zones_geo = Cel::db()->requeter($requete_zones_geo); |
if (is_array($resultat_zones_geo)) { |
$retour = $resultat_zones_geo; |
} |
$retour = (is_array($resultats)) ? $resultats : array(); |
$this->envoyerJson($retour); |
return true; |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.6 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.5 2007-05-22 12:54:09 ddelon |
* Securisation acces utilisateur |
* |
* |
* |
*/ |
?> |
} |
/trunk/jrest/services/InventoryKeywordTree.php |
---|
1,16 → 1,25 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Service permettant de créer l'arbre des mots-clés. |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Mots-clés |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class InventoryKeywordTree extends Cel { |
//TODO : verifications des paramètres |
public static $gestion_mots_cles = null; |
private function getGestionMotsCles($mode) { |
if(self::$gestion_mots_cles == null) { |
self::$gestion_mots_cles = new GestionMotsClesChemin($this->config, $mode); |
} |
return self::$gestion_mots_cles; |
} |
public function getElement($uid) { |
// Controle detournement utilisateur |
$id_utilisateur = $uid[1] ; |
22,6 → 31,13 |
return TRUE; // compat: pourquoi renvoyer true si vide ? |
} |
private function getGestionMotsCles($mode) { |
if (self::$gestion_mots_cles == null) { |
self::$gestion_mots_cles = new GestionMotsClesChemin($this->config, $mode); |
} |
return self::$gestion_mots_cles; |
} |
public function updateElement($uid, $pairs) { |
$id_utilisateur = $uid[1]; |
$this->controleUtilisateur($uid[1]); |
39,9 → 55,8 |
$modification = ($modification !== false); |
if($modification) { |
$this->envoyer("OK"); |
$this->envoyer('OK'); |
} |
return $modification; |
} |
56,9 → 71,7 |
$id_utilisateur = $pairs['identifiant']; |
$mot_cle = $pairs['motcle']; |
$id_parent = $pairs['parent']; |
$id_nouveau_mot_cle = $this->getGestionMotsCles($mode)->insererParIdParent($mot_cle, $id_parent, $id_utilisateur); |
if($id_nouveau_mot_cle !== false) { |
68,16 → 81,15 |
// d'où ce clone de JRest::created(); |
header('HTTP/1.0 201 Created'); |
echo $id_nouveau_mot_cle; |
exit; |
exit(); |
} else { |
// cf ci-dessus: JRest::badRequest |
header('HTTP/1.0 400 Bad Request'); |
exit; |
exit(); |
} |
} |
public function deleteElement($uid) { |
$mode = $uid[0]; |
$id_utilisateur = $uid[1]; |
$id_mot_cle = $uid[2]; |
85,8 → 97,7 |
$suppression = $this->getGestionMotsCles($mode)->supprimerMotCleParId($id_mot_cle, $id_utilisateur); |
if($suppression) { |
$this->envoyer("OK"); |
$this->envoyer('OK'); |
} |
} |
} |
?> |
} |
/trunk/jrest/services/ImageContribution.php |
---|
1,11 → 1,12 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe renvoyant une liste très succinte des observations liées à une image de l'utilisateur |
* Service renvoyant une liste HTML très succinte des images (et infos sur l'obs liée) d'un utilisateur. |
* |
* @category DEL |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Communes |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
/trunk/jrest/services/NameImage.php |
---|
1,35 → 1,30 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service recherche d'image a partir d'un numero nomenclatural. |
* |
* @category PHP |
* @package jrest |
* @author David Delon <david.delon@clapas.net> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
*/ |
/** |
* NameImage.php |
* |
* in : utf8 |
* out : 8859 |
* |
* Cas d'utilisation : |
* Service recherche d'image a partir d'un numero nomenclatural |
* |
* 1: Le service recoit un numero nomenclatural |
* 2: Le service calcul le numero taxonomique associe |
* 3: Le service recherche une image disponible pour ce numero taxonomique |
* 4: Le service redimensionne l'image et la renvoie |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class NameImage extends Cel { |
function getElement($uid){ |
$image = array("",""); |
public function getElement($uid){ |
$image = array('', ''); |
if(isset($uid[0]) && isset($uid[1])) { |
$uid[0] = $uid[0] != '' ? $uid[0] : 'bdtfx'; |
$image = $this->obtenirIllustration($uid[0], $uid[1]); |
39,16 → 34,11 |
return true; |
} |
function obtenirIllustration($referentiel_taxo, $nn) { |
private function obtenirIllustration($referentiel_taxo, $nn) { |
// TODO: gérer ici les images d'autres référentiels si celles si sont disponibles |
$retour = array("",""); |
switch($referentiel_taxo) { |
case 'bdtfx': |
$retour = array('', ''); |
if ($referentiel_taxo == 'bdtfx') { |
$retour = $this->effectuerRequetePhotoFlora($nn); |
break; |
default: |
break; |
} |
return $retour; |
} |
69,17 → 59,4 |
} |
return $image; |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.4 2008-11-13 11:29:12 ddelon |
* Reecriture gwt-ext |
* |
* Revision 1.2 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.1 2007-06-06 13:31:16 ddelon |
* v0.09 |
* |
*/ |
?> |
} |
/trunk/jrest/services/InventoryPDF.php |
---|
1,17 → 1,21 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service générant un PDF d'export des observations pour réaliser des étiquettes d'herbier. |
* |
* @category PHP |
* @package jrest |
* @author David Delon <david.delon@clapas.net> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Export |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** Constante stockant l'URL de la page d'accueil de Photoflora.*/ |
define('EF_URL_PHOTOFLORA', 'http://photoflora.free.fr/'); |
/** Constante stockant l'URL de la page de Photoflora affichant toutes les images d'un taxon donn.es.*/ |
25,20 → 29,11 |
/** Constante stockant l'URL du service XML de Photoflora.*/ |
define('EF_URL_PHOTOFLORA_SERVICE', EF_URL_PHOTOFLORA.'ef_photoflora.php?nt=%s'); |
/** |
* InventoryPDF.php |
* |
* in : utf8 |
* out : iso8859 |
* |
* Formatage pdf d'un releve (a revoir) |
*/ |
class InventoryPDF extends Cel { |
var $extendPDFProductor; |
function InventoryPDF($config) { |
public function __construct($config) { |
parent::__construct($config); |
$this->config=$config; |
54,61 → 49,57 |
* uid[3] : si absent : valeur 'all' (recherche libre) |
* uid[4] : si absent : valeur 'all' (station) |
*/ |
function getElement($uid){ |
public function getElement($uid){ |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
if (!isset($uid[1]) || $uid[1]=="" || $uid[1]=="all" ) { |
$uid[1]="all"; |
$requete_location=""; |
if (!isset($uid[1]) || $uid[1] == '' || $uid[1] == 'all' ) { |
$uid[1] = 'all'; |
$requete_location = ''; |
} else { |
$requete_location = ' AND location= '.Cel::db()->proteger($uid[1]).' '; |
} |
else { |
$requete_location=" AND location= ".Cel::db()->proteger($uid[1])." "; |
} |
if (!isset($uid[2]) || $uid[2]=="" || $uid[2]=="all") { |
$uid[2]="all"; |
$requete_date=""; |
if (!isset($uid[2]) || $uid[2] == '' || $uid[2] == 'all') { |
$uid[2] = 'all'; |
$requete_date = ''; |
} else { |
$requete_date = ' AND date_observation= '.Cel::db()->proteger($uid[2]).' '; |
} |
else { |
$requete_date=" AND date_observation= ".Cel::db()->proteger($uid[2])." "; |
} |
if (!isset($uid[3]) || $uid[3]=="" || $uid[3]=="all") { |
$uid[3]="all"; |
$requete_libre=""; |
if (!isset($uid[3]) || $uid[3] == '' || $uid[3] == 'all') { |
$uid[3] = 'all'; |
$requete_libre = ''; |
} else { |
$requete_libre = ' AND (nom_sel LIKE '.Cel::db()->proteger('%'.$uid[3].'%'). |
' OR nom_ret LIKE '.Cel::db()->proteger('%'.$uid[3].'%'). |
' OR station LIKE '.Cel::db()->proteger('%'.$uid[3].'%'). |
' OR commentaire LIKE '.Cel::db()->proteger('%'.$uid[3].'%'); |
} |
else { |
$requete_libre=" AND (nom_sel LIKE ".Cel::db()->proteger('%'.$uid[3].'%'). |
" OR nom_ret LIKE ".Cel::db()->proteger('%'.$uid[3].'%'). |
" OR station LIKE ".Cel::db()->proteger('%'.$uid[3].'%'). |
" OR commentaire LIKE ".Cel::db()->proteger('%'.$uid[3].'%'); |
} |
if (!isset($uid[4]) || $uid[4]=="" || $uid[4]=="all") { |
$uid[4]="all"; |
$requete_station=""; |
if (!isset($uid[4]) || $uid[4] == '' || $uid[4] == 'all') { |
$uid[4] = 'all'; |
$requete_station =''; |
} else { |
$requete_station = ' AND station= '.Cel::db()->proteger($uid[4]).' '; |
} |
else { |
$requete_station=" AND station= ".Cel::db()->proteger($uid[4])." "; |
} |
$value=array(); |
$requete="SELECT ce_utilisateur, ordre, nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, zone_geo, date_observation, " . |
"station, commentaire, transmission FROM cel_obs WHERE ce_utilisateur = ".Cel::db()->proteger($uid[0])." " . |
$requete = 'SELECT ce_utilisateur, ordre, nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, zone_geo, date_observation, '. |
'station, commentaire, transmission '. |
'FROM cel_obs '. |
'WHERE ce_utilisateur = '.Cel::db()->proteger($uid[0]).' '. |
$requete_location. |
$requete_date. |
$requete_libre. |
$requete_station. |
" ORDER BY ordre "; |
$requete_station.' '. |
'ORDER BY ordre '. |
' -- '.__FILE__.':'.__LINE__; |
$resultat = Cel::db()->requeter($requete); |
$resultat_requete = Cel::db()->requeter($requete); |
$observations = array();; |
if(is_array($resultat_requete)) { |
$observations = $resultat_requete; |
if (is_array($resultat)) { |
$observations = $resultat; |
} |
// Set up the pdf object. |
125,28 → 116,25 |
$pdf->setFont('Times', '' , 12); |
$i=1; |
$tempfn = tempnam("",""); |
$tempfn = tempnam('', ''); |
foreach ($observations as $obs) { |
// Denullifiage |
foreach($obs as $k=>$v) { |
if (($v=="null") || ($v=="000null")) { |
$obs[$k]=""; |
} |
else { |
if (($v == 'null') || ($v == '000null')) { |
$obs[$k] = ''; |
} else { |
$obs[$k]=utf8_decode($v); |
} |
} |
if ($obs['date_observation']!="0000-00-00 00:00:00") { |
if ($obs['date_observation'] != '0000-00-00 00:00:00') { |
list($year,$month,$day)= explode('-',$obs['date_observation']); |
list($day)= explode(' ',$day); |
$obs['date_observation']=$day."/".$month."/".$year; |
$obs['date_observation'] = "$day/$month/$year"; |
} else { |
$obs['date_observation'] = '00/00/0000'; |
} |
else { |
$obs['date_observation']="00/00/0000"; |
} |
$text= $obs['nom_sel']." ".$obs['nom_sel_nn']." ".$obs['nom_ret']." ".$obs['nom_ret_nn']." ".$obs['nt']." ". |
$obs['famille']." ".$obs['zone_geo']." ".$obs['ce_zone_geo']." ".$obs['date_observation']." ".$obs['station']; |
155,12 → 143,8 |
$pdf->write(10, $text."\n"); |
$projet_photo = 'photoflora'; |
$tab_retour[$projet_photo]=chercherIllustrationsServiceXml(sprintf(EF_URL_PHOTOFLORA_SERVICE, $obs['nt'])); |
$tab_retour[$projet_photo] = $this->analyserRdf(sprintf(EF_URL_PHOTOFLORA_SERVICE, $obs['nt'])); |
$url_miniature =''; |
foreach ($tab_retour[$projet_photo] as $cle => $illustration) { |
if (preg_match(EF_URL_PHOTOFLORA_REGEXP, $illustration['about'], $match)) { |
$abreviation = $match[1]; |
175,28 → 159,19 |
} |
if ($url_miniature!='') { |
list($debut,$ext)=explode("\.",basename($url_miniature)); |
$temp = fopen($tempfn, "w"); |
list($debut,$ext)=explode('\.',basename($url_miniature)); |
$temp = fopen($tempfn, 'w'); |
$buf=file_get_contents($url_miniature); |
fwrite($temp,$buf); |
fclose($temp); |
$pdf->image($tempfn,10,($i*10),0,0,$ext); |
} |
$i++; |
} |
echo $pdf->output("Rapport"); |
echo $pdf->output('Rapport'); |
} |
} |
function chercherIllustrationsServiceXml($url) |
{ |
return analyserFichierRdf($url); |
} |
function analyserFichierRdf($chemin) |
{ |
private function analyserRdf($chemin) { |
$aso_info = array(); |
$dom = new DOMDocument(); |
$dom->validateOnParse = true; |
229,20 → 204,6 |
$aso_info['dcterms:licence'] = utf8_decode($rdf_description->getAttribute('licence')); |
$tab_infos[$rdf_description->getAttribute('identifier')] = $aso_info; |
} |
return $tab_infos; |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.2 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.1 2007-06-06 13:31:16 ddelon |
* v0.09 |
* |
* Revision 1.4 2007-05-22 12:54:09 ddelon |
* Securisation acces utilisateur |
* |
*/ |
?> |
} |
/trunk/jrest/services/InventoryDateList.php |
---|
1,24 → 1,20 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Liste les date de releves par utilisateur. |
* |
* @category PHP |
* @package jrest |
* @author Aurelien Peronnet <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** |
* Liste les date de releves par utilisateur |
* |
* in=utf8 |
* out=utf8 |
* |
**/ |
class InventoryDateList extends Cel { |
private $correspondance_fonction = array(1 => 'year', 2 => 'month', 3 => 'day'); |
29,28 → 25,24 |
* @param int uid[2] : si absent : valeur 'all' (mois) |
* @param int uid[3] : si absent : valeur 'all' (jour) |
*/ |
function getElement($uid){ |
public function getElement($uid){ |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
$condition_requete = $this->traiterParametresEtConstruireRequete($uid); |
$requete_liste_dates = 'SELECT DISTINCT '. |
'date_observation AS id '. |
$requete_liste_dates = 'SELECT DISTINCT date_observation AS id '. |
'FROM cel_obs WHERE '.$condition_requete.' '. |
'ORDER BY date_observation'; |
'ORDER BY date_observation '. |
' -- '.__FILE__.':'.__LINE__; |
$liste_dates = Cel::db()->requeter($requete_liste_dates); |
$liste_dates = $this->formaterListeResultats($liste_dates); |
$this->envoyerJson($liste_dates); |
return true; |
} |
private function formaterListeResultats($liste_dates) { |
if (!$liste_dates) { |
$liste_dates = array(); |
} |
60,15 → 52,12 |
if(count($date_heures) > 1) { |
$date = $date_heures[0]; |
} |
$date = $date; |
} |
return $liste_dates; |
} |
private function traiterParametresEtConstruireRequete($params) { |
$requete_condition = ' ce_utilisateur = '.Cel::db()->proteger($params[0]); |
$taille_tableau_parametres = count($params); |
78,12 → 67,10 |
$requete_condition .= ' AND '.$fonction_date.'(date_observation) = '.Cel::db()->proteger($params[$i]); |
} |
} |
return $requete_condition; |
} |
private function estUnParametreDate($valeur) { |
return is_numeric($valeur) && $valeur != "all"; |
return is_numeric($valeur) && $valeur != 'all'; |
} |
} |
?> |
} |
/trunk/jrest/services/InventoryContributionList.php |
---|
1,44 → 1,47 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service renvoyant un fragment de HTML constitué à partir d'une liste très succinte des contributions |
* de l'utilisateur. |
* |
* @category PHP |
* @package papyrus_bp |
* @author aurelien <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** |
* Classe renvoyant fragment html constitué à partir d'une liste très succinte des contributions de l'utilisateur |
* |
*/ |
class InventoryContributionList extends Cel { |
function getRessource() { |
public function getRessource() { |
echo ''; |
} |
function getElement($uid){ |
/** |
* Retourne la liste des contributions au format HTML. |
* |
* @param int $uid[0] identitifiant de l'utilisateur |
*/ |
public function getElement($uid){ |
if(!isset($uid[0])) { |
echo ''; |
} |
$requete_contributions = "SELECT * FROM cel_obs ". |
"WHERE ce_utilisateur = ".Cel::db()->proteger($uid[0])." ". |
"ORDER BY date_modification DESC LIMIT 0,5"; |
$idUtilisateurP = Cel::db()->proteger($uid[0]); |
$requete = 'SELECT * FROM cel_obs '. |
"WHERE ce_utilisateur = $idUtilisateurP ". |
'ORDER BY date_modification DESC '. |
'LIMIT 0,5 '. |
' -- '.__FILE__.':'.__LINE__; |
$resultat_contributions = Cel::db()->requeter($requete); |
$resultat_contributions = Cel::db()->requeter($requete_contributions); |
$resume = ''; |
if (is_array($resultat_contributions)) { |
foreach ($resultat_contributions as $ligne) { |
$ligne['nom_sel'] = htmlspecialchars($ligne['nom_sel']); |
$ligne['ce_utilisateur'] = htmlspecialchars($ligne['ce_utilisateur']); |
56,21 → 59,8 |
} |
} |
header("Content-Type: text/html; charset=ISO-8859-1"); |
header('Content-Type: text/html; charset=ISO-8859-1'); |
print $resume; |
exit; |
exit(); |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.5 2008-11-13 11:29:12 ddelon |
* Reecriture gwt-ext |
* |
* Revision 1.4 2007-06-06 13:31:16 ddelon |
* v0.09 |
* |
* Revision 1.3 2007-05-22 12:54:09 ddelon |
* Securisation acces utilisateur |
* |
*/ |
?> |
} |
/trunk/jrest/services/InventoryImageListPublic.php |
---|
1,38 → 1,32 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service recherche d'images publique a partir de divers critères. |
* |
* @category PHP |
* @package jrest |
* @author Aurélien Peronnet <aurelien@tela-botania.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** |
* in : utf8 |
* out : utf8 |
* |
* Service recherche d'images publique a partir de divers critères |
* |
*/ |
class InventoryImageListPublic extends Cel { |
const start_defaut = 0; |
const limit_defaut = 100; |
const tri_defaut = 'ci.date_creation'; |
const dir_defaut = 'DESC'; |
function getRessource() { |
public function getRessource() { |
} |
function getElement($uid) |
{ |
public function getElement($uid) { |
// restriction aux observations publiques |
$criteres = array('transmission' => '1'); |
57,12 → 51,10 |
$criteres['dir'] = isset($_GET['dir']) ? $_GET['dir'] : self::dir_defaut; |
$chercheur_images = new RechercheImage($this->config); |
$total = $chercheur_images->compterImages(null, $criteres); |
$images = $chercheur_images->rechercherImages(null, $criteres, $this->start, $this->limit); |
$resultat = array('total' => $total,'images' => $images); |
$images_json = json_encode($resultat) ; |
$images_json = str_replace('\u0000','',$images_json); |
70,5 → 62,4 |
print $images_json ; |
exit() ; |
} |
} |
?> |
} |
/trunk/jrest/services/InventoryImageList.php |
---|
1,26 → 1,20 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service recherche, et de suppression multiple d'images a partir de divers critères. |
* |
* @category PHP |
* @package jrest |
* @author Aurélien Peronnet <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** |
* InventoryImageList.php |
* |
* in : utf8 |
* out : utf8 |
* |
* Service recherche, et de suppression multiple d'images a partir de divers critères |
* |
*/ |
class InventoryImageList extends Cel { |
/** |
28,17 → 22,12 |
* uid[0] : utilisateur obligatoire |
* $_GET : critères de filtrage de la forme critère1=valeur1;critère2=valeur2 |
*/ |
function getElement($uid) |
{ |
public function getElement($uid) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
$chercheur_images = new RechercheImage($this->config); |
$numero_page = 0; |
$taille_page = 50; |
$criteres = array(); |
$criteres = $_GET; |
if (isset($criteres['numero_page']) && isset($criteres['limite'])) { |
$numero_page = $criteres['numero_page']; |
46,9 → 35,9 |
$taille_page = $criteres['limite']; |
unset($criteres['limite']); |
} |
$debut = $taille_page*$numero_page ; |
$chercheur_images = new RechercheImage($this->config); |
$retour = $chercheur_images->rechercherImagesEtObservationAssociees($uid[0], $criteres, $debut, $taille_page); |
$retour = $chercheur_images->formaterPourEnvoiCel($retour); |
55,7 → 44,7 |
$retour_encode = json_encode($retour) ; |
$retour_encode = $this->nettoyerCaracteresNuls($retour_encode); |
header("content-type: application/json") ; |
header('content-type: application/json'); |
print $retour_encode ; |
exit() ; |
} |
71,10 → 60,8 |
* |
* @param int uid[0] id utilisateur |
* @param string uid[1] : ordre(s) image(s) obligatoire(s) séparés par des virgules |
* |
*/ |
function deleteElement($uid){ |
public function deleteElement($uid){ |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
81,24 → 68,21 |
if (!isset($uid[1]) || !$this->EstUneSuiteIdentifiantsImage($uid[1])) { |
return; |
} |
$ids_images = rtrim($uid[1], ','); |
$ids_images = explode(',',$ids_images); |
$gestionnaire_image = new GestionImage($this->config); |
$suppression_image = $gestionnaire_image->supprimerImage($ids_images); |
$this->envoyer('OK'); |
exit; |
exit(); |
} |
/** |
* Un ensemble d'identifiants est une suite d'identifiants séparés par des virgules |
* avec ou sans virgule terminale |
*/ |
private function estUneSuiteIdentifiantsImage($chaine) { |
$chaine = rtrim($chaine,','); |
// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules |
// avec ou sans virgule terminale |
$reg_exp = "/^(([0-9])+,)*([0-9])+$/"; |
return preg_match($reg_exp, $chaine); |
} |
} |
?> |
} |
/trunk/jrest/services/LicenceUtilisateur.php |
---|
1,16 → 1,19 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant l'acceptation de la licence utilisateur |
* Encodage en entrée : utf8 |
* Encodage en sortie : utf8 |
* Service gérant l'acceptation de la licence utilisateur. |
* |
* @author Aurélien Peronnet <aurelien@tela-botanica.org> |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @version $Id$ |
* @copyright © 2010, Aurélien Peronnet |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class LicenceUtilisateur extends Cel { |
23,8 → 26,7 |
* @param array $uid |
* @param array $pairs |
*/ |
function updateElement($uid,$pairs) { |
public function updateElement($uid,$pairs) { |
if(!isset($uid[0]) && is_numeric($uid[0])) { |
return; |
} |
33,20 → 35,19 |
return; |
} |
$requete_acceptation_licence = 'UPDATE cel_utilisateurs_infos '. |
$requete = 'UPDATE cel_utilisateurs_infos '. |
'SET licence_acceptee = '.Cel::db()->proteger($pairs['licence']). |
'WHERE id_utilisateur = '.Cel::db()->proteger($uid[0]); |
'WHERE id_utilisateur = '.Cel::db()->proteger($uid[0]).' '. |
' -- '.__FILE__.':'.__LINE__; |
$resultat_acceptation_licence = Cel::db()->executer($requete_acceptation_licence); |
$resultat_acceptation_licence = Cel::db()->executer($requete); |
$resultat = false; |
if($resultat_acceptation_licence) { |
$resultat = "OK"; |
$resultat = 'OK'; |
} |
echo $resultat; |
exit; |
exit(); |
} |
} |
?> |
} |
/trunk/jrest/services/Inventory.php |
---|
1,39 → 1,29 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service CRUD sur une observation. |
* |
* @category PHP |
* @package jrest |
* @author David Delon <david@tela-botanica.org> |
* @author Aurelien Peronnet <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** |
* CRUD observation |
* |
* in=utf8 |
* out=utf8 |
* |
**/ |
class Inventory extends Cel { |
// TODO: faire un descriptif du service |
function getRessource(){ |
public function getRessource() { |
} |
function getElement($uid){ |
public function getElement($uid){ |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
$value=array(); |
if(!isset($uid[0])) { |
return; |
} |
47,16 → 37,13 |
if(is_array($retour_recherche) && count($retour_recherche) > 0) { |
$observation = $retour_recherche[0]; |
} |
$observation = $this->formaterObservationVersTableauSequentiel($observation); |
$output = json_encode($observation); |
$this->envoyerJson($output); |
$sortie = json_encode($observation); |
$this->envoyerJson($sortie); |
return true; |
} |
private function formaterObservationVersTableauSequentiel(&$observation) { |
if ($observation['date_observation']!="0000-00-00 00:00:00") { |
list($year,$month,$day)= explode('-',$observation['date_observation']); |
list($day)= explode(' ',$day); |
71,12 → 58,10 |
$observation['station'], $observation['milieu'], |
$observation['commentaire'], $observation['latitude'], |
$observation['longitude']); |
return $observation; |
} |
function updateElement($uid,$pairs) { |
public function updateElement($uid,$pairs) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
116,11 → 101,10 |
// ajouterParLots modifie les champs et ajoute ceux qui existent déjà |
$champs_supp = $gestion_champs_etendus->ajouterParLots($champs_etendus); |
} |
return true; |
} |
function createElement($pairs) { |
public function createElement($pairs) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($pairs['ce_utilisateur']); |
149,10 → 133,8 |
$objet_champ_etendu->valeur = $champ_etendu['valeur']; |
$champ_etendu = $objet_champ_etendu; |
} |
$champs_supp = $gestion_champs_etendus->ajouterParLots($champs_etendus); |
} |
return true; |
} |
162,8 → 144,7 |
* uid[0] : utilisateur obligatoire |
* uid[1] : ordres de l'observation à supprimer |
*/ |
function deleteElement($uid){ |
public function deleteElement($uid){ |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
184,27 → 165,12 |
if ($suppression_observation) { |
echo "OK"; |
} |
exit() ; |
} |
function doitGenererCleChampEtendu($champ_etendu) { |
private function doitGenererCleChampEtendu($champ_etendu) { |
return !isset($champ_etendu['cle']) || |
trim($champ_etendu['cle'] == "" || |
strpos($champ_etendu['cle'],'tempid_') !== false); |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.11 2008-11-13 11:29:12 ddelon |
* Reecriture gwt-ext |
* |
* Revision 1.10 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.9 2007-05-22 12:54:09 ddelon |
* Securisation acces utilisateur |
* |
*/ |
?> |
} |
/trunk/jrest/services/NomsChampsEtendus.php |
---|
1,10 → 1,20 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// in utf8 |
// out utf8 |
// Fournit un référentiel relatif à l'utilisateur sur les noms ou les valeurs des champs étendus |
// declare(encoding='UTF-8'); |
/** |
* Fournit un référentiel relatif à l'utilisateur sur les noms ou les valeurs des champs étendus. |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Auto-complétions |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class NomsChampsEtendus extends Cel { |
/** |
11,21 → 21,19 |
* Suivant le type de référentiel donné en paramètre, renvoie les liste de ses éléments |
* |
* uid[0] : "cle" ou "valeur" |
* $_GET["start"] et $GET_["limit"] : selection intervalle |
* $_GET["cle"] : restreint la recherche sur les valeurs d'une certaine clé |
* $_GET["recherche"] : cherche les noms qui commmencent selon la valeur |
*/ |
function getElement($uid){ |
public function getElement($uid){ |
if (!$this->paramObligatoiresSontPresents($uid)) { |
return; |
} |
$_GET['recherche'] = str_replace('*', '%', $_GET['recherche']); |
$referentiel = array(); |
if($uid[0] == "cle") { |
if ($uid[0] == 'cle') { |
$referentiel = $this->rechercherCles($_GET['recherche']); |
} else if($uid[0] == "valeur") { |
} else if($uid[0] == 'valeur') { |
$referentiel = $this->rechercherValeurs($_GET['cle'], $_GET['recherche']); |
} |
33,20 → 41,22 |
return true; |
} |
function rechercherCles($recherche_cle) { |
private function rechercherCles($recherche_cle) { |
// Recherche dans clé du catalogue et les clés déja saisies par les utilisateurs. |
// Si une clé est présente dans les deux tables, on privilégie celle du catalogue |
// qui contient un label bien formé |
$requete = "(SELECT cle, label, 'catalogue' FROM cel_catalogue_champs_etendus WHERE ". |
"label LIKE ".Cel::db()->proteger($recherche_cle)." ". |
"AND groupe = 0 ". |
") ". |
"UNION ". |
"(SELECT DISTINCT cle, cle as label, 'utilisateur' FROM cel_obs_etendues WHERE ". |
"cle LIKE ".Cel::db()->proteger($recherche_cle). |
"AND cle NOT IN (SELECT cle FROM cel_catalogue_champs_etendus) ". |
") "; |
$labelP = Cel::db()->proteger($recherche_cle); |
$requete = "(SELECT cle, label, 'catalogue' ". |
'FROM cel_catalogue_champs_etendus '. |
"WHERE label LIKE $labelP ". |
'AND groupe = 0 )'. |
'UNION '. |
"(SELECT DISTINCT cle, cle AS label, 'utilisateur' ". |
'FROM cel_obs_etendues '. |
"WHERE cle LIKE $labelP ". |
'AND cle NOT IN (SELECT cle FROM cel_catalogue_champs_etendus) '. |
') '. |
' -- '.__FILE__.':'.__LINE__; |
$resultat = Cel::db()->requeter($requete); |
$referentiel = array(); |
56,15 → 66,18 |
return $referentiel; |
} |
function rechercherValeurs($cle, $recherche_valeur) { |
$requete = "SELECT DISTINCT valeur FROM cel_obs_etendues WHERE ". |
"cle = ".Cel::db()->proteger($cle)." AND ". |
"valeur LIKE ".Cel::db()->proteger($recherche_valeur.'%')." "; |
private function rechercherValeurs($cle, $recherche_valeur) { |
$cleP = Cel::db()->proteger($cle); |
$valeurP = Cel::db()->proteger($recherche_valeur.'%'); |
$requete = 'SELECT DISTINCT valeur '. |
'FROM cel_obs_etendues '. |
"WHERE cle = $cleP ". |
"AND valeur LIKE $valeurP ". |
' -- '.__FILE__.':'.__LINE__; |
$resultats = Cel::db()->requeter($requete); |
$referentiel_resultat = Cel::db()->requeter($requete); |
$referentiel = array(); |
foreach ($referentiel_resultat as $valeur) { |
foreach ($resultats as $valeur) { |
if (trim($valeur['valeur']) != '') { |
$referentiel[] = $valeur['valeur']; |
} |
72,19 → 85,7 |
return $referentiel; |
} |
function paramObligatoiresSontPresents($uid) { |
private function paramObligatoiresSontPresents($uid) { |
return (isset($uid[0]) && ($uid[0] == 'cle' || $uid[0] == 'valeur')); |
} |
function filtreRechercheEstDemande() { |
return (isset($_GET["recherche"]) && trim($_GET["recherche"]) != ''); |
} |
function limiteEstDemandee() { |
return isset($_GET["start"]) && is_numeric($_GET["start"]) && isset($_GET["limit"]) && is_numeric($_GET["limit"]); |
} |
function estUneValeurValide($chaine) { |
return ($chaine != null && $chaine != "000null" && trim($chaine) != ''); |
} |
} |
/trunk/jrest/services/InventoryImage.php |
---|
1,24 → 1,20 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service recherche et ajout d'image a partir de divers critères. |
* |
* @category PHP |
* @package jrest |
* @author Aurelien Peronnet <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** |
* Service recherche et ajout d'image a partir de divers critères |
* in=utf8 |
* out=utf8 |
* |
*/ |
class InventoryImage extends Cel { |
/** |
27,8 → 23,7 |
* @param int uid[0] : utilisateur obligatoire |
* @param int uid[1] : identifiant image obligatoire |
*/ |
public function getElement($uid) |
{ |
public function getElement($uid) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
35,13 → 30,10 |
if(!isset($uid[0]) || !isset($uid[1])) { |
return; |
} |
$chercheur_image = new RechercheImage($this->config); |
$parametres = array('ordre' => $uid[1]); |
$retour = null; |
$image_recherchee = $chercheur_image->rechercherImages($uid[0], $parametres, 0, 1); |
$chercheurImage = new RechercheImage($this->config); |
$image_recherchee = $chercheurImage->rechercherImages($uid[0], $parametres, 0, 1); |
if(count($image_recherchee) > 0) { |
$retour = $image_recherchee[0]; |
} |
58,8 → 50,7 |
* @param int $uid[1] ordre de l'image relatif à l'utilisateur |
* @param pairs array tableau contenant les valeurs de metadonnées à modifier |
*/ |
public function updateElement($uid,$pairs) |
{ |
public function updateElement($uid,$pairs) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
67,8 → 58,8 |
return false; |
} |
$gestionnaire_image = new GestionImage($this->config); |
$resultat_mise_a_jour = $gestionnaire_image->modifierImage($uid[0],$uid[1],$pairs); |
$gestionnaireImage = new GestionImage($this->config); |
$resultat_mise_a_jour = $gestionnaireImage->modifierImage($uid[0],$uid[1],$pairs); |
$retour = false; |
$ok = false; |
88,9 → 79,7 |
* |
* @param $pairs array tableau contenant les valeurs de metadonnées à ajouter |
*/ |
function createElement($pairs) |
{ |
public function createElement($pairs) { |
if(self::ARRET_SERVICE) { |
header('Status: 503 Service Temporarily Unavailable'); |
echo "L'envoi d'images au cel est temporairement désactivé"; |
103,20 → 92,18 |
$infos_fichier = $file ; |
} |
$gestionnaire_image = new GestionImage($this->config); |
$gestionnaireImage = new GestionImage($this->config); |
$id_utilisateur = $pairs['ce_utilisateur']; |
if ($gestionnaire_image->ajouterImage($id_utilisateur, $infos_fichier)) { |
if ($gestionnaireImage->ajouterImage($id_utilisateur, $infos_fichier)) { |
// l'upload demande de court-circuiter le fonctionnement normal de JREST |
// en quittant directement après l'envoi |
$this->envoyerMessageCreationEffectuee(); |
exit; |
exit(); |
} |
} |
private function envoyerMessageCreationEffectuee() { |
header('HTTP/1.0 200 Created'); |
echo 'OK'; |
exit() ; |
131,8 → 118,7 |
* @param string uid[1] : ordre(s) image(s) obligatoire(s) séparés par des virgules |
* |
*/ |
function deleteElement($uid){ |
public function deleteElement($uid){ |
if(self::ARRET_SERVICE) { |
header('Status: 503 Service Temporarily Unavailable'); |
echo "L'envoi d'images au cel est temporairement désactivé"; |
140,26 → 126,20 |
} |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
if (!isset($uid[1]) || !$this->EstUneSuiteIdentifiantsImage($uid[1])) { |
if (!isset($uid[1]) || !$this->estUneSuiteIdentifiantsImage($uid[1])) { |
return; |
} |
$ids_images = explode(',',$uid[1]); |
$gestionnaire_image = new GestionImage($this->config); |
$suppression_image = $gestionnaire_image->supprimerImage($ids_images); |
$gestionnaireImage = new GestionImage($this->config); |
$gestionnaireImage->supprimerImage($ids_images); |
$this->envoyer('OK'); |
} |
/** Un ensemble d'identifiants est une suite d'identifiants séparés par des virgules |
* sans virgule terminale |
*/ |
private function estUneSuiteIdentifiantsImage($chaine) { |
// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules |
// sans virgule terminale |
$reg_exp = "/^(([0-9])+,)*([0-9])+$/"; |
return preg_match($reg_exp, $chaine); |
} |
} |
?> |
} |
/trunk/jrest/services/ImportXLS.php |
---|
12,9 → 12,10 |
* # 13 observations importées |
* + cf MySQL general_log = 1 |
* |
* @category DEL |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Communes |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Raphaël DROZ <raphael@tela-botanica.org> |
/trunk/jrest/services/NameSearch.php |
---|
1,75 → 1,41 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service de complétion du nom scientifique. |
* |
* @category PHP |
* @package jrest |
* @author David Delon <david.delon@clapas.net> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
*/ |
/** |
* |
* in : utf8 |
* out : utf8 |
* |
* NameSearch.php |
* |
* Cas d'utilisation : |
* Service completion nom scientifique |
* |
* 1 : L'application recoit un debut de nom scientifique ainsi qu'un code de référentiel |
* 2 : Si le genre recu est >1, l'application retourne les 50 premieres genre commencant par ce prefixe |
* 3 : Si l'espece est presente l'application retourne les 50 premieres genre+espece commencant par ce prefixe |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Auto-complétions |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class NameSearch extends Cel { |
public function getRessource(){ |
//TODO: description du service à renvoyer |
print "[]"; |
print '[]'; |
return; |
} |
public function getElement($uid){ |
$referentiel = isset($uid[0]) ? $uid[0] : null; |
$genre = isset($uid[1]) ? $uid[1] : null; |
$espece = isset($uid[2]) ? $uid[2] : null; |
$liste_genre_espece = array(); |
$referentiel = null; |
$genre = null; |
$espece = null; |
if(isset($uid[0])) { |
$referentiel = $uid[0]; |
} |
if(isset($uid[1])) { |
$genre = $uid[1]; |
} |
if(isset($uid[2])) { |
$espece = $uid[2]; |
} |
$chercheur_infos_taxon = new RechercheInfosTaxonBeta($this->config, $referentiel); |
$liste_genre_espece = $chercheur_infos_taxon->rechercherGenreEspeceSurPrefixe($genre,$espece); |
$this->envoyerJson($liste_genre_espece); |
return true; |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.6 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.5 2007-05-21 18:13:30 ddelon |
* Refactoring et documentation |
* |
* |
*/ |
?> |
} |
/trunk/jrest/services/ImageRDF.php |
---|
1,18 → 1,19 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Retourne des infos au format RDF sur les imags. |
* |
* Retourne un RDF des images pour eflore |
* |
* @category PHP |
* @package jrest |
* @author david <david@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class ImageRDF extends Cel { |
20,7 → 21,7 |
* Recherche des images associee au numero nomenclatural |
* @param numeric $uid [0] : numero nomenclatural obligatoire , $uid[1] (optionnel) : taille image : S , M, L (default) |
*/ |
function getElement($uid){ |
public function getElement($uid){ |
$nomSelNnP = Cel::db()->proteger($uid[0]); |
$taille = isset($uid[1]) ? $uid[1] : 'L'; |
/trunk/jrest/services/NameMap.php |
---|
1,49 → 1,42 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service recherche d'une carte de chorologie a partir d'un numero nomenclatural et d'un code de référentiel. |
* |
* @category PHP |
* @package jrest |
* @author David Delon <david.delon@clapas.net> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
*/ |
/** |
* NameMap.php |
* |
* in utf8 |
* out utf8 |
* |
* Cas d'utilisation : |
* Service recherche d'image a partir d'un numero nomenclatural |
* 1: Le service recoit un référentiel et un numero nomenclatural |
* 2: Le service recherche une carte disponible |
* |
* 1: Le service recoit un référentiell et un numero nomenclatural |
* 2: Le service recherche une carte disponible |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Cartes |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class NameMap extends Cel { |
function getElement($uid){ |
public function getElement($uid){ |
$retour = array(''); |
if(isset($uid[0]) && isset($uid[1])) { |
$uid[0] = $uid[0] != '' ? $uid[0] : 'bdtfx'; |
$retour = $this->obtenirCarteChorologie($uid[0], $uid[1]); |
} |
$this->envoyerJson($retour); |
return true; |
} |
function obtenirCarteChorologie($referentiel_taxo, $nn) { |
private function obtenirCarteChorologie($referentiel_taxo, $nn) { |
// TODO: gérer ici les cartes d'autres référentiels si celles si sont disponibles |
$retour = array(''); |
$chercheur_infos_taxon = new RechercheInfosTaxonBeta($this->config, $referentiel_taxo); |
$nt = $chercheur_infos_taxon->rechercherNumTaxSurNumNom($nn); |
$retour = array(''); |
switch($referentiel_taxo) { |
case 'bdtfx': |
$url_service_chorologie = $this->config['eflore']['url_service_chorologie_carte']; |
58,19 → 51,7 |
$file = $url_service_chorologie.'/nt%3A'.$nt.'?retour.format=587&retour=image%2Fpng'; |
$retour = array($file); |
break; |
default: |
break; |
} |
return $retour; |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.1 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.1 2007-06-06 13:31:16 ddelon |
* v0.09 |
*/ |
?> |
} |
/trunk/jrest/services/User.php |
---|
1,25 → 1,10 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service identification utilisateur. |
* |
* @category PHP |
* @package jrest |
* @author David Delon <devid.delon@clapas.net> |
* @author Aurélien Peronnet <devid.delon@clapas.net> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
*/ |
/** |
* User.php |
* |
* Cas d'utilisation : |
* Service identification utilisateur |
* |
* |
* 1: Aucun identifiant ni mot de passe transmis |
* 1: L'application retourne l'identifiant de session en cours |
* 2: Une identification est toujours active, cette identification est retournee |
37,13 → 22,23 |
* /User/login_utilisateur : logout retour infos utilisateur anonyme |
* /User/login_utilisateur/password : login retour infos utilisateur si succès sinon infos utilisateur anonyme |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Utilisateurs |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class User extends Cel { |
// TODO : controle systematique ....dans tous les services |
// Si connected : name cookie = name service |
function getRessource(){ |
public function getRessource(){ |
$temps_expiration = 60*60*24*100; // 100 jours |
session_set_cookie_params($temps_expiration); |
59,8 → 54,7 |
$this->envoyerInfosUtilisateur($utilisateur); |
} |
function getElement($uid){ |
public function getElement($uid){ |
$utilisateur = $this->getUtilisateurAnonyme(); |
if ($this->identificationEstDemandee($uid)) { |
70,13 → 64,11 |
$utilisateur['connecte'] = true; |
} |
// TODO: utilisateur inexistant ? |
} |
else { |
} else { |
$utilisateur = $this->chargerInfosUtilisateur($utilisateur); |
$utilisateur['connecte'] = true; |
} |
} |
else { |
} else { |
$this->deconnecterUtilisateur(); |
} |
120,86 → 112,78 |
return true; |
} |
function chargerInfosUtilisateur($login) { |
private function chargerInfosUtilisateur($login) { |
$requete = 'SELECT * '. |
'FROM cel_utilisateurs AS cu '. |
'WHERE courriel = '.Cel::db()->proteger($login).' '. |
' -- '.__FILE__.':'.__LINE__; |
$resultats = Cel::db()->requeter($requete); |
$requete_selection_utilisateur = 'SELECT * FROM cel_utilisateurs cu '. |
'WHERE courriel = '.Cel::db()->proteger($login); |
$resultat_selection_utilisateur = Cel::db()->requeter($requete_selection_utilisateur); |
$retour = false; |
if(is_array($resultat_selection_utilisateur) && count($resultat_selection_utilisateur) > 0) { |
$retour = $resultat_selection_utilisateur[0]; |
if (is_array($resultats) && count($resultats) > 0) { |
$retour = $resultats[0]; |
} |
if(is_array($retour) && ($retour['date_premiere_utilisation'] == NULL || $retour['date_premiere_utilisation'] == '0000-00-00 00:00:00')) { |
$this->initialiserInfosUtilisateur($retour['id_utilisateur']); |
$this->affecterDonneesWidgetSaisie($login, $retour); |
} |
return $retour; |
} |
private function utilisateurEstIdentifie() { |
$login_utilisateur = false; |
if (!$login_utilisateur = $this->utilisateurEstIdentifieSession()) {$login_utilisateur = $this->utilisateurEstIdentifieCookie();} |
if (!$login_utilisateur = $this->utilisateurEstIdentifieSession()) { |
$login_utilisateur = $this->utilisateurEstIdentifieCookie(); |
} |
return $login_utilisateur; |
} |
function utilisateurEstIdentifieSession() { |
return (isset($_SESSION["user"]) && isset($_SESSION["user"]["courriel"])) ? $_SESSION["user"]["courriel"] : false; |
private function utilisateurEstIdentifieSession() { |
return (isset($_SESSION['user']) && isset($_SESSION['user']['courriel'])) ? $_SESSION['user']['courriel'] : false; |
} |
function utilisateurEstIdentifieCookie() { |
return isset($_COOKIE["cel_name"]) && ($this->identifierUtilisateurSansEncryptionMotDePasse($_COOKIE["cel_name"], $_COOKIE["cel_password"])) ? $_COOKIE["cel_name"] : false; |
private function utilisateurEstIdentifieCookie() { |
return isset($_COOKIE['cel_name']) && ($this->identifierUtilisateurSansEncryptionMotDePasse($_COOKIE['cel_name'], $_COOKIE['cel_password'])) ? $_COOKIE['cel_name'] : false; |
} |
function setUtilisateur($user, $remember=1) { |
$_SESSION["user"] = $user; |
$this->setPersistentCookie("cel_id", $user["id_utilisateur"], $remember); |
$this->setPersistentCookie("cel_name", $user["courriel"], $remember); |
$this->setPersistentCookie("cel_password", $user["mot_de_passe"], $remember); |
$this->setPersistentCookie("cel_remember", $remember, $remember); |
private function deconnecterUtilisateur() { |
$_SESSION['user'] = ''; |
$this->supprimerCookie('cel_id'); |
$this->supprimerCookie('cel_name'); |
$this->supprimerCookie('cel_password'); |
$this->supprimerCookie('cel_remember'); |
} |
function deconnecterUtilisateur() { |
$_SESSION["user"] = ""; |
$this->supprimerCookie("cel_id"); |
$this->supprimerCookie("cel_name"); |
$this->supprimerCookie("cel_password"); |
$this->supprimerCookie("cel_remember"); |
private function supprimerCookie($name) { |
SetCookie($name, '', 1,'/'); $_COOKIE[$name] = ''; |
} |
function setPersistentCookie($name, $value, $remember = 1) { |
SetCookie($name, $value, time() + ($remember ? (60*60*24*100) : (60*60)),'/'); |
$_COOKIE[$name] = $value; |
} |
function supprimerCookie($name) { |
SetCookie($name, "", 1,'/'); $_COOKIE[$name] = ""; |
} |
function identifierUtilisateur($login, $mot_de_passe, $remember = 1) { |
private function identifierUtilisateur($login, $mot_de_passe, $remember = 1) { |
$identification = false; |
if ($utilisateur = $this->chargerInfosUtilisateur($login)) { |
if ($utilisateur['mot_de_passe'] == $this->encrypterMotDePasse($mot_de_passe) || $mot_de_passe == "debug") { |
if ($utilisateur['mot_de_passe'] == $this->encrypterMotDePasse($mot_de_passe) || $mot_de_passe == 'debug') { |
$this->setUtilisateur($utilisateur, $remember); |
$identification = true; |
} |
} |
return $identification; |
} |
function identifierUtilisateurSansEncryptionMotDePasse($login, $mot_de_passe, $remember = 1) { |
private function setUtilisateur($user, $remember=1) { |
$_SESSION['user'] = $user; |
$this->setPersistentCookie('cel_id', $user['id_utilisateur'], $remember); |
$this->setPersistentCookie('cel_name', $user['courriel'], $remember); |
$this->setPersistentCookie('cel_password', $user['mot_de_passe'], $remember); |
$this->setPersistentCookie('cel_remember', $remember, $remember); |
} |
private function setPersistentCookie($name, $value, $remember = 1) { |
SetCookie($name, $value, time() + ($remember ? (60*60*24*100) : (60*60)), '/'); |
$_COOKIE[$name] = $value; |
} |
private function identifierUtilisateurSansEncryptionMotDePasse($login, $mot_de_passe, $remember = 1) { |
$souvenir = false; |
if ($utilisateur = $this->chargerInfosUtilisateur($login)) { |
if ($utilisateur['mot_de_passe'] == $mot_de_passe) { |
$this->setUtilisateur($utilisateur, $remember); |
206,7 → 190,6 |
$souvenir = true; |
} |
} |
return $souvenir; |
} |
231,10 → 214,10 |
$requete = 'INSERT INTO cel_utilisateurs_infos '. |
'(id_utilisateur, admin, licence_acceptee, preferences, date_premiere_utilisation )'. |
'VALUES '. |
"(".Cel::db()->proteger($id_utilisateur).", '0', '0', NULL, NOW()) ". |
'ON DUPLICATE KEY UPDATE date_premiere_utilisation = NOW() '; |
$resultat_insertion_infos = Cel::db()->executer($requete); |
'('.Cel::db()->proteger($id_utilisateur).", '0', '0', NULL, NOW()) ". |
'ON DUPLICATE KEY UPDATE date_premiere_utilisation = NOW() '. |
' -- '.__FILE__.':'.__LINE__; |
Cel::db()->executer($requete); |
} |
/** |
253,5 → 236,4 |
$gestion_img->migrerImagesMailVersId($mail_utilisateur, $infos_utilisateur); |
GestionMotsClesChemin::migrerMotsClesMailVersId($mail_utilisateur, $infos_utilisateur); |
} |
} |
?> |
} |
/trunk/jrest/services/Name.php |
---|
1,56 → 1,37 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* |
* @category PHP |
* @package jrest |
* @author David Delon <david.delon@clapas.net> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
*/ |
/** |
* Name.php |
* |
* in : utf8 |
* out : utf8 |
* |
* Cas d'utilisation : |
* Service recherche nom retenu depuis un numero nomenclatural pour la BDNFF |
* |
* 1 : L'application recoit un numero nomenclatural |
* 2 : L'application retourne le nom retenu associé |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class Name extends Cel { |
function getElement($uid){ |
$retour = array("null"); |
public function getElement($uid){ |
$retour = array('null'); |
if (isset($uid[0])) { |
$chercheur_info_taxon = new RechercheInfosTaxonBeta($this->config); |
$retour = $chercheur_info_taxon->effectuerRequeteInfosComplementairesEtFormaterNom($uid[0]); |
$chercheurInfoTaxon = new RechercheInfosTaxonBeta($this->config); |
$retour = $chercheurInfoTaxon->effectuerRequeteInfosComplementairesEtFormaterNom($uid[0]); |
} |
$this->envoyerJson($retour); |
return true; |
} |
function getRessource(){ |
print "[\"null\"]"; |
public function getRessource(){ |
print '["null"]'; |
return; |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.3 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.2 2007-05-21 18:13:30 ddelon |
* Refactoring et documentation |
* |
*/ |
?> |
} |
/trunk/jrest/services/InventoryKeyWordImageLink.php |
---|
1,21 → 1,24 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* @category PHP |
* @package jrest |
* @author Aurélien Peronnet <aurelien@tela-botania.org> |
* @author Raphaël Droz <raphael@tela-botania.org> |
* @copyright 2010, 2013 Tela-Botanica |
* @license Licence CECILL <http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt> |
* Service de liaisons de mots clés à des images. |
* Le service lie une ou plusieurs mots clés à une ou plusieurs images. |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* |
* Service de liaisons de mots clés à des images. |
* Le service lie une ou plusieurs mots clés à une ou plusieurs images |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class InventoryKeyWordImageLink extends Cel { |
public function createElement($pairs) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($pairs['ce_utilisateur']); |
32,7 → 35,7 |
foreach($ids_images as $id_element_lie) { |
//TODO: que faire si la régénération d'index texte échoue ? |
$r_index = GestionMotsClesChemin::regenererIndexTexteMotCle($id_element_lie, 'images'); |
GestionMotsClesChemin::regenererIndexTexteMotCle($id_element_lie, 'images'); |
} |
return $liaison; |
} |
43,5 → 46,4 |
// car les mots clés images ne fonctionnent pas pareil que ceux des obs |
// dans l'interface |
} |
} |
?> |
} |
/trunk/jrest/services/InventoryKeyWordObsLink.php |
---|
1,14 → 1,21 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* @package jrest |
* @author Aurélien Peronnet <aurelien@tela-botania.org> |
* @copyright 2010, 2013 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* Service de liaisons de mots clés à des observations. |
* Le service lie une ou plusieurs mots clés à une ou plusieurs observations. |
* |
* Service de liaisons de mots clés à des observations. |
* Le service lie une ou plusieurs mots clés à une ou plusieurs observations |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class InventoryKeyWordObsLink extends Cel { |
public function getElement($uid) { } |
28,7 → 35,7 |
$liaison_mot_cle = $gestion_mots_cles->modifierLiaisonParTableaux($ids_mots_cles, $ids_obs, false); |
foreach($ids_obs as $id_element_lie) { |
$r_index = GestionMotsClesChemin::regenererIndexTexteMotCle($id_element_lie, 'obs'); |
GestionMotsClesChemin::regenererIndexTexteMotCle($id_element_lie, 'obs'); |
} |
return $liaison_mot_cle; |
} |
38,7 → 45,7 |
$this->controleUtilisateur($uid[0]); |
if (!isset($uid[0]) || !isset($uid[1]) || !isset($uid[2])) { |
return FALSE; |
return false; |
} |
$id_utilisateur = $uid[0]; |
46,10 → 53,9 |
$ids_mots_cles = explode(',', GestionMotsClesChemin::nettoyerMotsClesAvantSuppression($uid[2])); |
$gestion_mots_cles = new GestionMotsClesChemin($this->config, 'obs'); |
$suppression_liaisons = $gestion_mots_cles->supprimerLiaisonsMotsCles($ids_mots_cles, $ids_obs, $id_utilisateur); |
foreach($ids_obs as $id_element_lie) { |
$r_index = GestionMotsClesChemin::regenererIndexTexteMotCle($id_element_lie, 'obs'); |
GestionMotsClesChemin::regenererIndexTexteMotCle($id_element_lie, 'obs'); |
} |
} |
} |
/trunk/jrest/services/InventoryImport.php |
---|
1,34 → 1,25 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* |
* @category PHP |
* @package jrest |
* @author David Delon <david.delon@clapas.net> |
* @author Aurélien Peronnet <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
*/ |
/** |
* InventoryImport.php |
* |
* in : utf8 |
* out : utf8 |
* |
* Cas d'utilisation : |
* Service importation releve en cours |
* |
* Service importation releve en cours : |
* 1 : L'utilisateur à traiter est communique au service |
* 2 : Les releves associés à la session en cours sont transferés à l'utilisateur identifié |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class InventoryImport extends Cel { |
function getElement($uid){ |
public function getElement($uid){ |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
43,18 → 34,6 |
} |
echo $retour; |
exit; |
exit(); |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.3 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.2 2007-05-22 12:54:09 ddelon |
* Securisation acces utilisateur |
* |
* Revision 1.1 2007-05-21 18:12:20 ddelon |
* Gestion des importations locale de releves |
*/ |
?> |
} |
/trunk/jrest/services/InventoryUserList.php |
---|
1,31 → 1,35 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Liste des utilisateurs du cel, par défaut les 50 premiers |
* ou bien commencant par la chaine fournie en paramètre |
* in : utf8 |
* out : utf8 |
* Liste des utilisateurs du cel, par défaut les 50 premiers ou bien commencant par la chaine fournie en paramètre |
* |
* @category PHP |
* @package jrest |
* @author Aurélien Peronnet <aurelien@tela-botanica.org> |
* @copyright © 2010-2014 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class InventoryUserList extends Cel { |
function getElement($uid) { |
public function getElement($uid) { |
$this->controleUtilisateur($uid[0]); |
$requete_utilisateurs ='SELECT DISTINCT id_utilisateur, courriel FROM cel_utilisateurs '. |
$requete = 'SELECT DISTINCT id_utilisateur, courriel FROM cel_utilisateurs '. |
$this->construireRequeteConditionTableUtilisateurs($uid).' '. |
'UNION '. |
'SELECT DISTINCT ce_utilisateur as id_utilisateur, courriel_utilisateur as courriel '. |
'FROM cel_obs '. |
$this->construireRequeteConditionTableObs($uid).' '. |
'LIMIT 0,50'; |
'LIMIT 0,50 '. |
' -- '.__FILE__.':'.__LINE__; |
$utilisateurs = Cel::db()->requeter($requete); |
$utilisateurs = Cel::db()->requeter($requete_utilisateurs); |
$liste_utilisateurs = array(); |
if ($utilisateurs) { |
foreach ($utilisateurs as $utilisateur) { |
32,12 → 36,28 |
$liste_utilisateurs[] = $utilisateur; |
} |
} |
usort($liste_utilisateurs, 'trierUtilisateurs'); |
usort($liste_utilisateurs, array($this, 'trierUtilisateurs')); |
$this->envoyerJson($liste_utilisateurs); |
return true; |
} |
public function trierUtilisateurs($val1, $val2) { |
if (strstr($val1['courriel'], '@')) { |
if (strstr($val2['courriel'], '@')) { |
return strcmp($val1['courriel'], $val2['courriel']); |
} else { |
return -1; |
} |
} else { |
if (strstr($val2['courriel'], '@')) { |
return 1; |
} else { |
return strcmp($val1['courriel'], $val2['courriel']); |
} |
} |
} |
private function construireRequeteConditionTableUtilisateurs($params) { |
$condition = ''; |
if (isset($params[1]) && $params[1] != null && $params[1] != '*') { |
53,21 → 73,4 |
} |
return $condition; |
} |
} |
function trierUtilisateurs($val1, $val2) { |
if (strstr($val1['courriel'], '@')) { |
if (strstr($val2['courriel'], '@')) { |
return strcmp($val1['courriel'], $val2['courriel']); |
} else { |
return -1; |
} |
} else { |
if (strstr($val2['courriel'], '@')) { |
return 1; |
} else { |
return strcmp($val1['courriel'], $val2['courriel']); |
} |
} |
} |
?> |
} |
/trunk/jrest/services/InventoryImportMail.php |
---|
1,17 → 1,21 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* Service d'import d'image à partir de mails |
* Encodage en entrée : utf8 |
* Encodage en sortie : utf8 |
* Service d'import d'image à partir d'e-mails. |
* |
* @author Aurélien PERONNET <aurelien@tela-botanica.org> |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @version $Id$ |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
Class InventoryImportMail extends Cel { |
class InventoryImportMail extends Cel { |
/** |
* Appelée en mode client, lit le mail envoyé sur l'entrée stdin |
20,15 → 24,12 |
* |
* @param array $params les paramètres du script client, l'utilisateur est indiqué avec le paramètre -s |
*/ |
public function stockerMailCli($params) |
{ |
public function stockerMailCli($params) { |
$contenu_mail = file_get_contents('php://stdin'); |
$parametres_ajout = array(); |
$parametres_ajout['mail_utilisateur'] = $params['-s']; |
$stockage = $this->stockerMailTemporaire($parametres_ajout, $contenu_mail); |
if($stockage) { |
$message_attente = 'Votre messsage a été reçu, et est en attente de traitement, '. |
'vous recevrez un message lorsque celui-ci aura été effectué'; |
37,19 → 38,16 |
$message_echec = 'Votre messsage a été reçu, mais il n\'a pas pu être stocké'; |
mail($parametres_ajout['mail_utilisateur'],'Problème lors de reception du message',$message_echec); |
} |
exit; |
exit(); |
} |
private function stockerMailTemporaire($parametres_ajout, $contenu_mail) { |
$expediteur = $parametres_ajout['mail_utilisateur']; |
$nom_fichier_temp = $this->fabriquerNomTemporaireStockageMail($expediteur); |
$dossier_stockage_temp = $this->config['chemin_stockage_temp']; |
$chemin_stockage_image_temp = $dossier_stockage_temp.'/mails/'; |
return file_put_contents($chemin_stockage_image_temp.$nom_fichier_temp); |
return file_put_contents($chemin_stockage_image_temp.$nom_fichier_temp, $contenu_mail); |
} |
/** |
59,26 → 57,23 |
* |
* @param array $params les paramètres du script client, l'utilisateur est indiqué avec le paramètre -s |
*/ |
public function traiterMailCli($params) |
{ |
public function traiterMailCli($params) { |
$contenu_mail = file_get_contents('php://stdin'); |
$parametres_ajout = array(); |
$parametres_ajout['mail_utilisateur'] = $params['-s']; |
$ids_stockage = $this->traiterMail($parametres_ajout, $contenu_mail); |
foreach($ids_stockage as $nom_image => $id_stockage) { |
if($id_stockage) { |
mail($parametres_ajout['mail_utilisateur'],'Votre image a été ajoutée au Carnet en ligne','Votre image '.$nom_image.' a été ajoutée avec succès'); |
$sujet = "Votre image a été ajoutée au Carnet en ligne"; |
$msg = "Votre image $nom_image a été ajoutée avec succès"; |
mail($parametres_ajout['mail_utilisateur'], $sujet, $msg); |
} else { |
mail($parametres_ajout['mail_utilisateur'],'Problème lors de l\'ajout au Carnet en ligne','Votre image '.$nom_image.' n\'a pas pu être ajoutée'); |
$sujet = "Problème lors de l'ajout au Carnet en ligne"; |
$msg = "Votre image $nom_image n'a pas pu être ajoutée"; |
mail($parametres_ajout['mail_utilisateur'], $sujet, $msg); |
} |
} |
exit(); |
} |
88,27 → 83,18 |
* |
* @param array $params les paramètres du script client, l'utilisateur est indiqué dans la case 'identifiant' |
*/ |
public function traiterMail($params, $contenu_mail) |
{ |
public function traiterMail($params, $contenu_mail) { |
$pieces_jointes = $this->extrairePiecesJointes($contenu_mail); |
$stockeur_image = new InventoryImage($this->config); |
$ids = array(); |
$infos_utilisateur = $this->getInfosComplementairesUtilisateurPourMail($params['mail_utilisateur']); |
$params['ce_utilisateur'] = $infos_utilisateur['id_utilisateur']; |
foreach($pieces_jointes as $piece_jointe) { |
$nouvel_id_image = $stockeur_image->ajouterImageSurDdEtBdd($params, $piece_jointe); |
if($nouvel_id_image) |
{ |
if($nouvel_id_image) { |
$ids[$piece_jointe['name']] = $nouvel_id_image; |
} |
else |
{ |
} else { |
$ids[$piece_jointe['name']] = false; |
} |
} |
123,56 → 109,37 |
* extrait les images en pièces jointes, et les ajoute au cel de l'utilisateur |
* |
*/ |
public function parserDossierMail() |
{ |
public function parserDossierMail() { |
$dossier_stockage_temp = $this->config['chemin_stockage_temp']; |
$chemin_stockage_image_temp = $dossier_stockage_temp.'/mails/'; |
foreach (new DirectoryIterator($chemin_stockage_image_temp) as $fichier_a_stocker) { |
if($fichier_ou_dossier->isDot()) { |
continue; |
} |
$chemin_fichier = $fichier_a_stocker->getPathname(); |
$nom_fichier = $fichier_ou_dossier->getFilename(); |
$expediteur_mail = $this->obtenirExpediteurPourNomTemporaireMail($nom_fichier); |
$parametres = array('courriel_utilisateur' => $expediteur_mail); |
$chemin_fichier = $fichier_a_stocker->getPathname(); |
$contenu_mail = file_get_contents($chemin_fichier); |
$parametres = array('courriel_utilisateur' => $expediteur_mail); |
$this->traiterMail($parametres, $contenu_mail); |
unlink($chemin_fichier); |
} |
} |
private function extrairePiecesJointes($mail) { |
$pieces_jointes = array(); |
$args['include_bodies'] = true; |
$args['decode_bodies'] = true; |
$args['decode_headers'] = true; |
$args['input'] = $mail; |
$dossier_stockage_temp = $this->config['chemin_stockage_temp']; |
$pieces_jointes = array(); |
$tableau_mail_decode = Mail_mimeDecode::decode($args); |
foreach ($tableau_mail_decode->parts as $partie) { |
if ($partie->ctype_primary == 'image' && $partie->ctype_secondary == 'jpeg') { |
$informations = array(); |
$nom_original = $partie->ctype_parameters['name']; |
$fichier = $partie->body; |
$hash = md5(time()); |
$chemin_temp = $dossier_stockage_temp.'/images/'.$hash.'.jpg'; |
$temp = fopen($chemin_temp,'w+'); |
180,12 → 147,13 |
fclose($temp); |
chmod($chemin_temp, 0777); |
$informations = array('tmp_name' => $chemin_temp,'name' => $nom_original,'type' => 'image/jpeg','size' => filesize($chemin_temp)); |
$pieces_jointes[] = $informations; |
$pieces_jointes[] = array( |
'tmp_name' => $chemin_temp, |
'name' => $nom_original, |
'type' => 'image/jpeg', |
'size' => filesize($chemin_temp)); |
} |
} |
return $pieces_jointes; |
} |
194,16 → 162,11 |
} |
private function obtenirExpediteurPourNomTemporaireMail($nom_temp) { |
$chaine_separee = explode('_', $nom_temp,1); |
$nom_expediteur = false; |
if($chaine_separee && count($chaine_separee) > 1) { |
$nom_expediteur = $chaine_separee[1]; |
} |
return $nom_expediteur; |
} |
} |
?> |
} |
/trunk/jrest/services/CoordSearch.php |
---|
1,13 → 1,19 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Service recherche de commune par coordonnées et vice versa |
* Encodage en entrée : utf8 |
* Encodage en sortie : utf8 |
* Service recherche de commune par coordonnées et vice versa. |
* |
* @author Aurélien PERONNET <aurelien@tela-botanica.org> |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @version $Id$ |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class CoordSearch extends Cel { |
17,8 → 23,7 |
private $nom_service_geocoding = null; |
private $nom_service_reverse_geocoding = null; |
function CoordSearch($config) { |
public function __construct($config) { |
parent::__construct($config); |
$this->adresse_service_geonames = $this->config['cel']['url_service_geo_geonames']; |
37,8 → 42,7 |
* $uid[3] = code_postal (ou * si recherche d'une commune correspondant à des coordonnées) |
* $uid[4] = code_pays (ou * si recherche d'une commune correspondant à des coordonnées, par défaut vaut FR) |
*/ |
function getElement($uid){ |
public function getElement($uid){ |
$header = ''; |
$retour = array(); |
45,7 → 49,6 |
$params = $this->traiterParametres($uid); |
if ($this->estUneRequeteReverseGeocoding($params)) { |
$informations_communes = $this->effectuerRequeteReverseGeocodingCartoOsm($params['lat'], $params['lon']); |
if (!$informations_communes) { |
54,9 → 57,7 |
$header = 'Content-Type: application/json; charset=UTF-8'; |
$retour = json_encode($informations_communes) ; |
} elseif ($this->estUneRequeteGeocoding($params)) { |
$informations_coord = $this->chercherCentroideCommuneBdd($params['commune'],$params['code_postal']); |
if(!$informations_coord) { |
$informations_coord = $this->effectuerRequeteGeocodingGeonames($params['commune'],$params['code_postal'],$params['code_pays']); |
64,29 → 65,26 |
$header = 'Content-Type: application/json; charset=UTF-8'; |
$retour = json_encode($informations_coord); |
} else { |
$header = 'HTTP/1.0 400 Bad Request'; |
$retour = 'Commune ou Coordonnées non spécifiées' ; |
} |
header($header); |
echo $retour; |
} |
protected function traiterParametres($params) { |
$lat = $this->affecterValeurParametreOuDefaut($params, 0, '*'); |
$lng = $this->affecterValeurParametreOuDefaut($params, 1, '*'); |
$commune = $this->affecterValeurParametreOuDefaut($params, 2, '*'); |
$code_postal = $this->affecterValeurParametreOuDefaut($params, 3, '*'); |
$code_pays = $this->affecterValeurParametreOuDefaut($params, 4, 'FR'); |
return array('lat' => $lat, 'lon' => $lng, 'commune' => $commune, |
'code_postal' => $code_postal, 'code_pays' => $code_pays); |
return array( |
'lat' => $lat, |
'lon' => $lng, |
'commune' => $commune, |
'code_postal' => $code_postal, |
'code_pays' => $code_pays); |
} |
private function affecterValeurParametreOuDefaut($params, $indice, $valeur_si_non_present) { |
94,7 → 92,6 |
} |
private function estUneRequeteReverseGeocoding($params) { |
return ($params['lat'] != '*' && $params['lon'] != '*'); |
} |
103,16 → 100,12 |
} |
private function effectuerRequeteReverseGeocodingCartoOsm($lat, $lon) { |
$infos_commune_json = @file_get_contents($this->adresse_service_local."?lat=".$lat."&lon=".$lon); |
$infos_commune_json = @file_get_contents($this->adresse_service_local."?lat=$lat&lon=$lon"); |
$infos_commune = json_decode($infos_commune_json); |
$retour = false; |
if ($this->estUnRetourOsmValide($infos_commune)) { |
$retour = array('nom' => $infos_commune->nom, 'code_insee' => $infos_commune->codeINSEE); |
} |
return $retour; |
} |
121,25 → 114,24 |
} |
private function effectuerRequeteReverseGeocodingGeonames($lat, $lon) { |
$infos_commune_json = @file_get_contents($this->adresse_service_geonames. |
$url = $this->adresse_service_geonames. |
$this->nom_service_reverse_geocoding. |
"?lat=".urlencode($lat)."&lng=".urlencode($lon). |
"&style=full"); |
'?lat='.urlencode($lat).'&lng='.urlencode($lon). |
'&style=full'; |
$infos_commune_json = @file_get_contents($url); |
$objet_retour = json_decode($infos_commune_json); |
$retour = false; |
if($this->estUnRetourReverseGeocodingGeonamesValide($objet_retour)) { |
$retour = array('nom' => $objet_retour->geonames[0]->adminName4, 'code_insee' => $objet_retour->geonames[0]->adminCode4); |
$retour = array( |
'nom' => $objet_retour->geonames[0]->adminName4, |
'code_insee' => $objet_retour->geonames[0]->adminCode4); |
} |
return $retour; |
} |
private function estUnRetourReverseGeocodingGeonamesValide($retour) { |
$valide = false; |
if (is_a($retour,'stdClass') && property_exists($retour,'geonames') |
&& is_array($retour->geonames) && count($retour->geonames) > 0) { |
$objet_resultats = $retour->geonames[0]; |
147,83 → 139,68 |
$valide = true; |
} |
} |
return $valide; |
} |
private function chercherCentroideCommuneBdd($commune, $departement) { |
$commune_formatee = str_replace(' ','_',$commune); |
$commune_formatee = str_replace('-','_',$commune_formatee); |
$commune_formatee = str_replace(array(' ', '-'), '_', $commune); |
if(strlen($departement) > 2) { |
$departement = substr($departement,0,2); |
} |
$requete_selection_commune = 'SELECT utm_x, utm_y, utm_secteur, code FROM cel_zones_geo '. |
'WHERE nom LIKE '.Cel::db()->proteger($commune_formatee).' AND code LIKE '.Cel::db()->proteger($departement.'%'); |
$requete = 'SELECT utm_x, utm_y, utm_secteur, code FROM cel_zones_geo '. |
'WHERE nom LIKE '.Cel::db()->proteger($commune_formatee).' '. |
'AND code LIKE '.Cel::db()->proteger($departement.'%').' '. |
' -- '.__FILE__.':'.__LINE__; |
$commune_coordonnees = Cel::db()->requeter($requete); |
$commune_coordonnees = Cel::db()->requeter($requete_selection_commune); |
$retour = false; |
if($commune_coordonnees && is_array($commune_coordonnees) && count($commune_coordonnees) > 0) { |
$lat_lon = $this->convertirUtmVersLatLong($commune_coordonnees[0]['utm_x'],$commune_coordonnees[0]['utm_y'],$commune_coordonnees[0]['utm_secteur']); |
$retour = array('lat' => (float)$lat_lon['lat'], |
$retour = array( |
'lat' => (float) $lat_lon['lat'], |
'lng' => (float)$lat_lon['lng'], |
'nom' => $commune, |
'code_insee' => $commune_coordonnees[0]['code'] |
); |
} |
return $retour; |
} |
private function convertirUtmVersLatLong($x, $y, $sector) { |
$lat_long = array(); |
$convertisseur = new gPoint(); |
$convertisseur->setUTM($x, $y, $sector); |
$convertisseur->convertTMtoLL(); |
$lat_long = array(); |
$lat_long['lat'] = str_replace(',','.',$convertisseur->Lat()); |
$lat_long['lng'] = str_replace(',','.',$convertisseur->Long()); |
return $lat_long; |
} |
private function effectuerRequeteGeocodingGeonames($commune, $code_postal, $code_pays) { |
$requete = $this->adresse_service_geonames. |
$url = $this->adresse_service_geonames. |
$this->nom_service_geocoding. |
"?placename_startsWith=".urlencode($commune); |
if($code_postal != '*') { |
$requete .= "&postalcode_startsWith=".urlencode($code_postal); |
} |
$requete .= "&country=".urlencode($code_pays)."&maxRows=10" ; |
$coord_json = @file_get_contents($requete); |
'?placename_startsWith='.urlencode($commune). |
(($code_postal != '*') ? '&postalcode_startsWith='.urlencode($code_postal) : ''). |
'&country='.urlencode($code_pays).'&maxRows=10'; |
$coord_json = @file_get_contents($url); |
$objet_retour = json_decode($coord_json); |
$retour = false; |
if($this->estUnRetourGeocodingGeonamesValide($objet_retour)) { |
$retour = array('lat' => $objet_retour->postalCodes[0]->lat, |
$retour = array( |
'lat' => $objet_retour->postalCodes[0]->lat, |
'lng' => $objet_retour->postalCodes[0]->lng, |
'nom' => $objet_retour->postalCodes[0]->placeName, |
'code_insee' => $objet_retour->postalCodes[0]->postalCode |
); |
} |
return $retour; |
} |
private function estUnRetourGeocodingGeonamesValide($retour) { |
$valide = false; |
if (is_a($retour,'stdClass') && property_exists($retour,'postalCodes') |
&& is_array($retour->postalCodes) && count($retour->postalCodes) > 0) { |
$objet_resultats = $retour->postalCodes[0]; |
231,8 → 208,6 |
$valide = true; |
} |
} |
return $valide; |
} |
} |
?> |
} |
/trunk/jrest/services/ImageProvider.php |
---|
1,35 → 1,29 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service fournissant des images au format demandé ou bien aux dimensions demandées. |
* |
* @category PHP |
* @package papyrus_bp |
* @author aurelien <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/papyrus_bp/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Images |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** |
* Classe fournissant des images au format demandé ou bien aux dimensions demandées |
* |
* in=utf8 |
* out=utf8 |
* |
*/ |
class ImageProvider extends Cel { |
function getElement($uid){ |
public function getElement($uid){ |
if(!isset($uid[0])) { |
return; |
} |
$id_image = $uid[0]; |
$format = 'temp'; |
if(isset($_GET['format'])) { |
$format = $_GET['format']; |
} |
36,34 → 30,21 |
if(isset($_GET['dimensions'])) { |
$dimensions = $_GET['dimensions']; |
} else { |
if(isset($this->config['cel']['format_'.$format])) { |
} else if (isset($this->config['cel']['format_'.$format])) { |
$dimensions = $this->config['cel']['format_'.$format]; |
} |
} |
$this->config['cel']['format_'.$format] = $dimensions; |
$generateur_image = new ImageRecreation($this->config); |
$infos_image = $generateur_image->obtenirImageEtInfosPourId($id_image); |
if(!$infos_image) { |
header('HTTP/1.0 404 Not Found'); |
exit; |
} |
exit(); |
} else { |
$image_generee = $generateur_image->creerMiniatureImageSelonFormat($infos_image, $format); |
header('Content-type: image/jpeg'); |
imagejpeg($image_generee); |
exit; |
exit(); |
} |
private function estUneImageALaDemande() { |
} |
} |
?> |
} |
/trunk/jrest/services/LocationSearch.php |
---|
1,31 → 1,30 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* Classe gérant la completion des noms de lieux |
* Encodage en entrée : utf8 |
* Encodage en sortie : utf8 |
* Service gérant la completion des noms de lieux. |
* |
* @author David Delon <david.delon@clapas.net> |
* @author Aurélien Peronnet <aurelien@tela-botanica.org> |
* Cas d'utilisation : |
* Service completion nom de commune (plus tard de lieu en général) |
* |
* 1 : L'application recoit un debut de nom de lieu |
* 2 : Si la longueur du prefixe est > 2, l'application retourne les 50 premieres lieux commencant par ce prefixe |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Auto-complétions |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @version $Id$ |
* @copyright © 2010, David Delon |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** |
* Cas d'utilisation : |
* Service completion nom de commune (plus tard de lieu en général) |
* |
* 1 : L'application recoit un debut de nom de lieu |
* 2 : Si la longueur du prefixe est > 2, l'application retourne les 50 premieres lieux |
* commencant par ce prefixe |
**/ |
class LocationSearch extends Cel { |
function getElement($uid){ |
public function getElement($uid){ |
$retour = array(); |
if (isset($uid[0])) { |
36,25 → 35,24 |
return true; |
} |
function getRessource(){ |
print "[]"; |
public function getRessource() { |
print '[]'; |
return; |
} |
private function executerRequeteLieu($lieu) { |
$lieu_formate = $this->formaterChaineLieuPourRequete($lieu); |
$retour = array(); |
if ($this->estUneChaineRequeteValide($lieu_formate)) { |
$requete_information_lieu = 'SELECT DISTINCT nom, code '. |
$requete = 'SELECT DISTINCT nom, code '. |
'FROM cel_zones_geo '. |
'WHERE '. |
'nom LIKE '.Cel::db()->proteger($lieu_formate.'%').' '. |
'ORDER BY nom LIMIT 50'; |
'WHERE nom LIKE '.Cel::db()->proteger($lieu_formate.'%').' '. |
'ORDER BY nom '. |
'LIMIT 50 '. |
' -- '.__FILE__.':'.__LINE__; |
$liste_lieux = Cel::db()->requeter($requete_information_lieu); |
$liste_lieux = Cel::db()->requeter($requete); |
if($liste_lieux) { |
foreach($liste_lieux as $lieu_trouve) { |
$retour[] = $this->formaterLigneResultat($lieu_trouve); |
61,7 → 59,6 |
} |
} |
} |
return $retour; |
} |
84,17 → 81,6 |
} |
private function formaterLigneResultat($ligne) { |
return array($ligne['nom']." (".substr(sprintf("%02s",$ligne['code']),0,2).")",$ligne['code']); |
return array($ligne['nom'].' ('.substr(sprintf('%02s', $ligne['code']),0,2).')', $ligne['code']); |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.4 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.3 2007-05-21 18:13:03 ddelon |
* Correction bug recherche commune du type "la canourgue" |
* |
* |
*/ |
?> |
} |
/trunk/jrest/services/InventoryExport.php |
---|
1,39 → 1,32 |
<?php |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel // |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5 |
* Service d'export vers feuille de calcul d'une sélection de relevés. |
* |
* @category PHP |
* @package jrest |
* @author David Delon <david@tela-botania.org> |
* @author Aurélien Peronnet <aurelien@tela-botania.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/jrest/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
/** |
* in:utf8 |
* out:iso8859 |
* |
* Export vers feuille de calcul d'une selection de releves |
* |
*/ |
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(dirname(realpath(__FILE__))) . '/lib'); |
// la sortie est binaire (xls), mais OLE n'est pas compatible E_ALL en PHP-5.4 |
error_reporting(error_reporting() ^ E_STRICT); |
require_once("lib/OLE.php"); |
require_once("lib/Spreadsheet/Excel/Writer.php"); |
require_once 'lib/OLE.php'; |
require_once 'lib/Spreadsheet/Excel/Writer.php'; |
class InventoryExport extends Cel { |
private $extendSpreadsheetProductor; |
function InventoryExport($config) { |
public function __construct($config) { |
parent::__construct($config); |
$this->extendSpreadsheetProductor = new SpreadsheetProductor(); |
40,8 → 33,7 |
$this->extendSpreadsheetProductor->initSpreadsheet(); |
} |
function getElement($uid){ |
public function getElement($uid){ |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
51,13 → 43,11 |
// Creating a workbook |
$workbook = new Spreadsheet_Excel_Writer(); |
$workbook->setVersion(8); |
$workbook->send('liste.xls'); |
// Creating a worksheet |
$worksheet = $workbook->addWorksheet('Liste'); |
$worksheet->setInputEncoding('utf-8'); |
$worksheet->write(0,0,'Espece'); |
$worksheet->write(0,1,'Numero nomenclatural'); |
$worksheet->write(0,2,'Nom retenu'); |
92,17 → 82,15 |
$i=1; |
foreach ($observations as &$obs) { |
$obs = $this->denullifierTableauValeurCel($obs); |
$ids_obs[] = $obs['id_observation']; |
$indices_lignes_obs[$obs['id_observation']] = $i; |
if ($obs['date_observation'] != "0000-00-00 00:00:00") { |
if ($obs['date_observation'] != '0000-00-00 00:00:00') { |
$obs['date_observation'] = $this->formaterDate($obs['date_observation']); |
} else { |
$obs['date_observation'] = '00/00/0000'; |
} |
else { |
$obs['date_observation']="00/00/0000"; |
} |
$worksheet->write($i,0,$obs['nom_sel']); |
$worksheet->write($i,1,$obs['nom_sel_nn']); |
149,19 → 137,4 |
$workbook->close(); |
exit(); |
} |
} |
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log$ |
* Revision 1.7 2008-11-13 11:29:12 ddelon |
* Reecriture gwt-ext |
* |
* Revision 1.6 2008-01-30 08:57:28 ddelon |
* fin mise en place mygwt |
* |
* Revision 1.5 2007-06-06 13:31:16 ddelon |
* v0.09 |
* |
* Revision 1.4 2007-05-22 12:54:09 ddelon |
* Securisation acces utilisateur |
*/ |
?> |
} |
/trunk/jrest/services/Resume.php |
---|
1,15 → 1,20 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe renvoyant un petit bout de json contenant les dernières obs publiques d'un utilisateur |
* Utilisée par l'annuaire appelant les web services résumé de chaque application |
* Service renvoyant au format JSON les dernières observations publiques d'un utilisateur. |
* Utilisée par l'annuaire appelant les web services résumé de chaque application. |
* |
* @category PHP |
* @package papyrus_bp |
* @author aurelien <aurelien@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @version SVN: <svn_id> |
* @link /doc/papyrus_bp/ |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Observations |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class Resume extends Cel { |
/trunk/jrest/services/InventoryObservationList.php |
---|
1,40 → 1,41 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* PHP Version 5.2 |
* |
* @category PHP |
* @package jrest |
* @author Raphaël Droz <raphael@tela-botanica.org> |
* @author Aurelien Peronnet <aurelien@tela-botanica.org> |
* @copyright 2010, 2013 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @link /doc/jrest/ |
* |
* InventoryObservationList.php |
* Cas d'utilisation : |
* 1: Service recherche d'observations a partir de divers critères |
* GET : Service recherche d'observations a partir de divers critères |
* a: Le service recherche les observations correspondant aux critères demandés |
* b: Le service renvoie la liste des observations correspondantes |
* |
* 2: Service modification en masse d'observations |
* POST : Service modification en masse d'observations |
* a: Le service recherche les observations correspondant aux identifiants donnés |
* b: Le service modifie les observations correspondantes avec les infos données en paramètres |
* |
* 3: Service de suppression d'observations en masse |
* DELETE : Service de suppression d'observations en masse |
* a: Le service recherche les observations correspondant aux critères demandés |
* b: Le service supprime la liste des observations correspondantes |
* |
* @internal Mininum PHP version : 5.2 |
* @category CEL |
* @package Services |
* @subpackage Mots-clés |
* @version 0.1 |
* @author Mathias CHOUET <mathias@tela-botanica.org> |
* @author Raphaël Droz <raphael@tela-botanica.org> |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @author Aurelien PERONNET <aurelien@tela-botanica.org> |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt> |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt> |
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org> |
*/ |
class InventoryObservationList extends Cel { |
/** |
* renvoie les observations correspondant au critères de filtrage |
* Renvoie les observations correspondant au critères de filtrage |
* |
* uid[0] : utilisateur obligatoire |
* uid[1] : criteres de filtrage de la forme critere1=valeur1&critere2=valeur2 |
*/ |
function getElement($uid) |
{ |
public function getElement($uid) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
68,8 → 69,7 |
* uid[1] : ordres des observations à modifier séparés par des virgules |
* pairs : données à mettre à jour sous la forme de clés => valeurs |
*/ |
function updateElement($uid,$pairs) { |
public function updateElement($uid,$pairs) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
90,20 → 90,16 |
// cas de mise à jour de multiples observations: |
$ret = GestionObservation::modifierMultiplesObservation($uid[0], $obs, $pairs); |
if($ret === FALSE) return FALSE; // JRest::badRequest(); |
if ($ret === false) { |
return false; // JRest::badRequest(); |
} |
if($ret === 0) { |
header('HTTP/1.0 304 Not Modified'); |
die; |
} |
} else { |
header('HTTP/1.0 200 OK'); // et non pas une 201 ! |
// die(); // non, car incompatible avec PHPUnit |
// throw(new Exception()); // non, lance une 400 (cf JRest::updateElement()) |
// return TRUE; // non, lance une 201 |
// return FALSE; // non, lance une 400 |
die; // tant pis |
} |
die(); |
} |
/** |
* Supprime une liste d'observations |
111,8 → 107,7 |
* uid[0] : utilisateur obligatoire |
* uid[1] : ordres des observations à supprimer séparés par des virgules |
*/ |
function deleteElement($uid) |
{ |
public function deleteElement($uid) { |
// Controle detournement utilisateur |
$this->controleUtilisateur($uid[0]); |
120,25 → 115,22 |
//TODO: envoyer un message d'erreur |
return; |
} |
$uid[1] = rtrim($uid[1],','); |
$gestionnaire_observation = new GestionObservation($this->config); |
$gestionnaireObs = new GestionObservation($this->config); |
$tableau_ordres = explode(',', $uid[1]); |
foreach($tableau_ordres as $ordre) { |
$ids_obs[] = $gestionnaire_observation->renvoyerIdPourOrdre($uid[0], $ordre); |
$ids_obs[] = $gestionnaireObs->renvoyerIdPourOrdre($uid[0], $ordre); |
} |
$suppression_observations = $gestionnaire_observation->supprimerObservation($uid[0],$uid[1]); |
$suppression_observations = $gestionnaireObs->supprimerObservation($uid[0], $uid[1]); |
$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs'); |
$champs_supp = $gestion_champs_etendus->viderParLots($ids_obs); |
$gestionnaireChampsEtendus = new GestionChampsEtendus($this->config, 'obs'); |
$gestionnaireChampsEtendus->viderParLots($ids_obs); |
if ($suppression_observations) { |
echo "OK"; |
echo 'OK'; |
} |
exit() ; |
} |
} |
?> |
} |