New file |
0,0 → 1,83 |
<?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 |
class NomsChampsEtendus extends Cel { |
|
/** |
* 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){ |
|
if (!$this->paramObligatoiresSontPresents($uid)) { |
return; |
} |
|
$_GET['recherche'] = str_replace('*', '%', $_GET['recherche']); |
$referentiel = array(); |
|
if($uid[0] == "cle") { |
$referentiel = $this->rechercherCles($_GET['recherche']); |
} else if($uid[0] == "valeur") { |
$referentiel = $this->rechercherValeurs($_GET['cle'], $_GET['recherche']); |
} |
|
$this->envoyerJson($referentiel); |
return true; |
} |
|
function rechercherCles($recherche_cle) { |
$requete = "SELECT DISTINCT cle, label FROM cel_obs_etendues WHERE ". |
"cle LIKE ".Cel::db()->proteger($recherche_cle)." OR ". |
"label LIKE ".Cel::db()->proteger($recherche_cle)." "; |
$referentiel_resultat = Cel::db()->executerRequete($requete); |
$referentiel = array(); |
|
foreach($referentiel_resultat as $valeur) { |
$referentiel[$valeur['cle']] = $valeur['label']; |
} |
|
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.'%')." "; |
|
$referentiel_resultat = Cel::db()->executerRequete($requete); |
$referentiel = array(); |
|
foreach($referentiel_resultat as $valeur) { |
$referentiel[] = $valeur['valeur']; |
} |
return $referentiel; |
} |
|
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) != ""); |
} |
} |
?> |