Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 701 → Rev 702

/trunk/jrest/services/CelStatistiqueTxt.php
29,6 → 29,7
$stat_demande = array_shift($ressources);
$methode = 'get'.$stat_demande;
if (method_exists($this, $methode)) {
$this->ressources = $ressources;
$stats = $this->$methode($ressources);
} else {
$this->messages[] = "Ce type de statistiques '$stat_demande' n'est pas disponible.";
43,11 → 44,118
}
private function analyserParametresUrl() {
$this->parametres['utilisateur'] = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : null;
$this->parametres['num_taxon'] = isset($_GET['num_taxon']) ? $this->bdd->quote($_GET['num_taxon']) : null;
$this->parametres['utilisateur'] = isset($_GET['utilisateur']) ? $this->bdd->quote($this->verifierSecuriteParametreUrl($_GET['utilisateur'])) : null;
$this->parametres['num_taxon'] = isset($_GET['num_taxon']) ? $this->bdd->quote($this->verifierSecuriteParametreUrl($_GET['num_taxon'])) : null;
$this->parametres['taxon'] = isset($_GET['taxon']) ? $this->bdd->quote($this->verifierSecuriteParametreUrl($_GET['taxon'].'%')) : null;
$this->parametres['start'] = isset($_GET['start']) ? $this->verifierSecuriteParametreUrl($_GET['start']) : null;
$this->parametres['limit'] = isset($_GET['limit']) ? $this->verifierSecuriteParametreUrl($_GET['limit']) : null;
}
private function getNombres($param) {
private function getListeUtilisateursNbrePhotos() {
$requete = $this->construireRequeteListeUtilisateurNbrePhoto();
$resultats = $this->executerRequete($requete);
$liste = array();
if ($resultats != false) {
foreach ($resultats as $resultat) {
$liste[$resultat['identifiant']] = $resultat['nbre'];
}
}
return $liste;
}
private function construireRequeteListeUtilisateurNbrePhoto() {
$select = 'SELECT identifiant, COUNT(DISTINCT ci_id_image) AS nbre ';
$from = 'FROM cel_inventory '.
' LEFT JOIN cel_obs_images ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '.
' LEFT JOIN cel_images ON (coi_ce_image = ci_id_image) ';
$where = 'WHERE transmission = 1 ';
$groupBy = 'GROUP BY identifiant ';
$orderBy = 'ORDER BY nbre DESC ';
$limitSql = 'LIMIT 0,150 ';
if (count($this->parametres) != 0) {
extract($this->parametres);
$filtres = array();
if (isset($utilisateur)) {
$filtres[] = "identifiant = $utilisateur ";
}
if (isset($num_taxon)) {
$filtres[] = "num_taxon = $num_taxon ";
}
if (isset($taxon)) {
$filtres[] = "nom_ret LIKE $taxon ";
}
$where .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
if (isset($start)) {
$limitSql = str_replace('0,', "$start,", $limitSql);
}
if (isset($limit)) {
$limitSql = str_replace('150', $limit, $limitSql);
}
}
$requete = $select.$from.$where.$groupBy.$orderBy.$limitSql;
return $requete;
}
private function getListeTaxonsNbrePhotos() {
$requete = $this->construireRequeteListeTaxonNbrePhoto();
$resultats = $this->executerRequete($requete);
$liste = array();
if ($resultats != false) {
foreach ($resultats as $resultat) {
$liste[$resultat['nom_ret']] = $resultat['nbre'];
}
}
return $liste;
}
private function construireRequeteListeTaxonNbrePhoto() {
$select = 'SELECT nom_ret, COUNT(DISTINCT ci_id_image) AS nbre ';
$from = 'FROM cel_inventory '.
' LEFT JOIN cel_obs_images ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) '.
' LEFT JOIN cel_images ON (coi_ce_image = ci_id_image) ';
$where = 'WHERE transmission = 1 '.
" AND nom_ret != '' ";
$groupBy = 'GROUP BY nom_ret ';
$orderBy = 'ORDER BY nbre DESC ';
$limitSql = 'LIMIT 0,150 ';
if (count($this->parametres) != 0) {
extract($this->parametres);
$filtres = array();
if (isset($utilisateur)) {
$filtres[] = "identifiant = $utilisateur ";
}
if (isset($num_taxon)) {
$filtres[] = "num_taxon = $num_taxon ";
}
if (isset($taxon)) {
$filtres[] = "nom_ret LIKE $taxon ";
}
$where .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
if (isset($start)) {
$limitSql = str_replace('0,', "$start,", $limitSql);
}
if (isset($limit)) {
$limitSql = str_replace('150', $limit, $limitSql);
}
}
$requete = $select.$from.$where.$groupBy.$orderBy.$limitSql;
return $requete;
}
private function getNombres() {
 
$requete = $this->construireRequeteNbreObs();
$info['observations'] = (int) $this->executerRequete($requete, 'Column');
80,7 → 188,7
}
$info['observationsParCommunesTotal'] += $resultat['nbre'];
}
$info['observationsParCommunesMoyenne'] = round($info['observationsParCommunesTotal'] / $info['communes'], 2);
$info['observationsParCommunesMoyenne'] = ($info['communes'] > 0 ) ? round($info['observationsParCommunesTotal'] / $info['communes'], 2) : 0;
return $info;
}
99,6 → 207,9
if (isset($num_taxon)) {
$filtres[] = "num_taxon = $num_taxon ";
}
if (isset($taxon)) {
$filtres[] = "nom_ret LIKE $taxon ";
}
$requete .= ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
}
121,6 → 232,9
if (isset($num_taxon)) {
$filtres[] = "num_taxon = $num_taxon ";
}
if (isset($taxon)) {
$filtres[] = "nom_ret LIKE $taxon ";
}
$requete .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
}
145,6 → 259,9
if (isset($num_taxon)) {
$filtres[] = "num_taxon = $num_taxon ";
}
if (isset($taxon)) {
$filtres[] = "nom_ret LIKE $taxon ";
}
$requete .= ((count($filtres) > 0) ? 'AND '.implode(' AND ', $filtres) : '');
}
166,10 → 283,16
$filtres[] = "ci_ce_utilisateur = $utilisateur ";
}
if (isset($num_taxon)) {
$from .= 'LEFT JOIN cel_obs_images ON (coi_ce_image = ci_id_image) '.
'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) ';
$filtres[] = "num_taxon = $num_taxon ";
}
if (isset($taxon)) {
$filtres[] = "nom_ret LIKE $taxon ";
}
if (isset($num_taxon) || isset($taxon)) {
$from .= 'LEFT JOIN cel_obs_images ON (coi_ce_image = ci_id_image) '.
'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) ';
}
$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
}
192,10 → 315,16
$filtres[] = "coi_ce_utilisateur = $utilisateur ";
}
if (isset($num_taxon)) {
$from .= 'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) ';
$filtres[] = "num_taxon = $num_taxon ";
}
if (isset($taxon)) {
$filtres[] = "nom_ret LIKE $taxon ";
}
if (isset($num_taxon) || isset($taxon)) {
$from .= 'LEFT JOIN cel_inventory ON (coi_ce_observation = ordre AND coi_ce_utilisateur = identifiant) ';
}
$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
}
219,6 → 348,9
if (isset($num_taxon)) {
$filtres[] = "num_taxon = $num_taxon ";
}
if (isset($taxon)) {
$filtres[] = "nom_ret LIKE $taxon ";
}
$where = ((count($filtres) > 0) ? 'WHERE '.implode(' AND ', $filtres) : '');
}