Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2142 → Rev 2143

/trunk/jrest/services/SelfRefList.php
4,77 → 4,70
// in utf8
// out utf8
 
// Fournit un référentiel relatif à l'utilisateur sur l'un des champs demandes
// Fournit un référentiel relatif à l'utilisateur sur l'un des champs demandes
class SelfRefList extends Cel {
 
private $referentiels = array('station', 'lieudit', 'milieu');
 
/**
* Suivant le type de référentiel donné en paramètre, renvoie les liste de ses éléments
*
*
* uid[0] : utilisateur obligatoire
* uid[1] : referentiel demandé (obligatoire)
* $_GET["start"] et $GET_["limit"] : selection intervalle
* $_GET["recherche"] : cherche les noms qui commmencent selon la valeur
*
*
*/
function getElement($uid){
// Controle detournement utilisateur
$this->controleUtilisateur($uid[0]);
if (!$this->paramObligatoiresSontPresents($uid)) {
return;
}
if($_GET['recherche'] == '*') {
$_GET['recherche'] = '%';
}
$referentiel_demande = $uid[1];
$value=array();
$requete_referentiel = "SELECT DISTINCT ".$referentiel_demande." " .
"FROM cel_obs WHERE ce_utilisateur = '".$uid[0]."' ";
if($this->filtreRechercheEstDemande()) {
$requete_referentiel .= " AND ".$referentiel_demande." LIKE '".$_GET["recherche"]."%'";
}
public function getElement($uid){
// Controle detournement utilisateur
$this->controleUtilisateur($uid[0]);
 
if ($this->limiteEstDemandee()) {
$requete_referentiel .= " ORDER BY '.$referentiel_demande.' LIMIT ".$_GET["start"].",".$_GET["limit"];
if (!$this->paramObligatoiresSontPresents($uid)) {
return;
}
 
if ($_GET['recherche'] == '*') {
$_GET['recherche'] = '%';
}
 
$referentiel_demande = $uid[1];
$idUtilisateur = Cel::db()->proteger($uid[0]);
 
$requete = "SELECT DISTINCT $referentiel_demande " .
'FROM cel_obs '.
"WHERE ce_utilisateur = '$idUtilisateur' ";
if ($this->filtreRechercheEstDemande()) {
$requete .= " AND $referentiel_demande LIKE '".$_GET["recherche"]."%'";
}
if ($this->limiteEstDemandee()) {
$requete .= " ORDER BY $referentiel_demande LIMIT ".$_GET['start'].','.$_GET['limit'];
}
$resultat = Cel::db()->requeter($requete);
 
$referentiel = array();
foreach ($resultat as $cle => $valeur) {
if ($this->estUneValeurValide($valeur[$referentiel_demande])) {
$referentiel[] = $valeur[$referentiel_demande];
}
$referentiel_resultat = Cel::db()->executerRequete($requete_referentiel);
$referentiel = array();
foreach($referentiel_resultat as $cle => $valeur) {
if($this->estUneValeurValide($valeur[$referentiel_demande])) {
$referentiel[] = $valeur[$referentiel_demande];
}
 
}
$this->envoyerJson($referentiel);
return true;
}
$this->envoyerJson($referentiel);
return true;
}
function paramObligatoiresSontPresents($uid) {
return (isset($uid[1]) && in_array($uid[1],$this->referentiels) && (isset($uid[0]) && $uid[0] != ""));
 
private function paramObligatoiresSontPresents($uid) {
return (isset($uid[1]) && in_array($uid[1], $this->referentiels) && (isset($uid[0]) && $uid[0] != ''));
}
function filtreRechercheEstDemande() {
return (isset($_GET["recherche"]) && trim($_GET["recherche"]) != "");
 
private 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"]);
 
private 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) != "");
 
private function estUneValeurValide($chaine) {
return ($chaine != null && $chaine != '000null' && trim($chaine) != '');
}
}
?>
}