7,6 → 7,8 |
* Cas d'utilisation : |
* /CelWidgetMap/Carte/Utilisateur : carte des observations publiques d'un utilisateur. |
* /CelWidgetMap/Carte/Utilisateur/Projet : carte des observations publiques d'un utilisateur pour un projet. |
* /CelWidgetMap/Carte/Utilisateur/Projet/dept : carte des observations publiques d'un utilisateur pour un projet sur un département. |
* /CelWidgetMap/Carte/Utilisateur/Projet/dept/num_taxon : carte des observations publiques d'un utilisateur pour un projet sur un département pour un taxon. |
* |
* Carte = Type de carte. Valeurs possible : defaut, |
* Utilisateur = identifiant (= courriel) de l'utilisateur ou * pour tous les utilisateurs. |
19,7 → 21,7 |
* @copyright © 2010, Jean-Pascal MILCENT |
*/ |
class CelWidgetMap extends Cel { |
|
|
/** |
* Méthode appelée avec une requête de type GET. |
*/ |
27,7 → 29,7 |
$retour = null; |
$parametres = $this->traiterParametres(array('carte'), $params, false); |
extract($parametres); |
|
|
if (isset($carte)) { |
$methode = $this->traiterNomMethodeGet($carte); |
if (method_exists($this, $methode)) { |
55,17 → 57,42 |
*/ |
public function getCarteDefautJson($params) { |
$json = null; |
$parametres = $this->traiterParametres(array('utilisateur', 'projet'), $params, false); |
$parametres = $this->traiterParametres(array('utilisateur','projet','dept','num_taxon'), $params, false); |
extract($parametres); |
|
$requete = 'SELECT sector, x_utm, y_utm, coord_x, coord_y, ref_geo '. |
'FROM cel_inventory AS i '. |
' LEFT JOIN locations AS l '. |
' ON (l.name = i.location AND l.code = i.id_location) '. |
"WHERE transmission = '1' ". |
(isset($utilisateur) ? " AND identifiant = '$utilisateur' " : ''); |
$resultats = $this->executerRequete($requete); |
|
|
// Traitement de $projet pour construction de filtre dans la requête |
if (isset($projet)) { |
$mot_cle_encode = $this->bdd->quote($this->encoderMotCle($projet)); |
// Construction de la requête |
$requete = 'SELECT * '. |
'FROM cel_mots_cles_obs '. |
"WHERE cmc_id_mot_cle_general = $mot_cle_encode "; |
$elements_projet = $this->executerRequete($requete); |
|
if ($elements_projet != false && count($elements_projet) > 0) { |
// Pré-construction du where de la requête |
$tpl_where = '(mots_cles LIKE "%%%s%%" AND identifiant = %s )'; |
$requete_projet = array(); |
foreach ($elements_projet as $occurence) { |
$requete_projet[] = sprintf($tpl_where, $occurence['cmc_id_mot_cle_utilisateur'], $this->bdd->quote($occurence['cmc_id_proprietaire'])); |
} |
} else { |
$this->messages[] = "Aucune observation ne correspond à ce mot clé."; |
} |
} |
|
|
$requete = 'SELECT sector, x_utm, y_utm, coord_x, coord_y, ref_geo '. |
'FROM cel_inventory AS i '. |
' LEFT JOIN locations AS l '. |
' ON (l.name = i.location AND l.code = i.id_location) '. |
"WHERE transmission = '1' ". |
(isset($utilisateur) ? " AND identifiant = '$utilisateur' " : '' ). |
(isset($dept) ? " AND l.insee_code LIKE '$dept%' " : ''). |
(isset($num_taxon) ? " AND num_taxon = '$num_taxon' " : '' ). |
(isset($projet) ? ' AND '.implode(" \nOR ", $requete_projet) : '' ); |
$resultats = $this->executerRequete($requete); |
|
// Traitement des résultats |
$mm = array('min_x' => 0,'max_x' => 0,'min_y' => 0,'max_y' => 0); |
$points = array(); |