Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 473 → Rev 474

/trunk/jrest/services/Cel.php
267,6 → 267,29
return md5(mb_strtolower($mot_cle));
}
protected function tronquerCourriel($courriel) {
$courriel = preg_replace('/[^@]+$/i', '...', $courriel);
return $courriel;
}
protected function nettoyerTableau($tableau) {
foreach ($tableau as $cle => $valeur) {
if (is_array($valeur)) {
$valeur = $this->nettoyerTableau($valeur);
} else {
$valeur = $this->nettoyerTexte($valeur);
}
$tableau[$cle] = $valeur;
}
return $tableau;
}
protected function nettoyerTexte($txt) {
$txt = preg_replace('/&(?!(a-z+|#0-9+|#x0-9a-f+);)/i', '&', $txt);
$txt = preg_replace('/000null/i', '', $txt);
return $txt;
}
//+----------------------------------------------------------------------------------------------------------------+
// GESTION DES SQUELETTES PHP
 
/trunk/jrest/services/CelWidgetMap.php
25,13 → 25,14
*/
public function getElement($params) {
$retour = null;
$parametres = $this->traiterParametres(array('carte', 'utilisateur', 'projet'), $params, false);
$parametres = $this->traiterParametres(array('carte'), $params, false);
extract($parametres);
 
if (isset($carte)) {
$methode = $this->traiterNomMethodeGet($carte);
if (method_exists($this, $methode)) {
$retour = $this->$methode($parametres);
array_shift($params);
$retour = $this->$methode($params);
} else {
$this->messages[] = "Ce type de carte '$methode' n'est pas disponible.";
}
42,12 → 43,10
if (is_null($retour)) {
$info = 'Un problème est survenu : '.print_r($this->messages, true);
$this->envoyer($info);
} else if ($retour['type'] == 'widget') {
$squelette = dirname(__FILE__).DIRECTORY_SEPARATOR.'squelettes'.DIRECTORY_SEPARATOR.$retour['squelette'].'.tpl.html';
$html = $this->traiterSquelettePhp($squelette, $retour['donnees']);
$this->envoyer($html);
} else if ($retour['type'] == 'json') {
$this->envoyerJson($retour['variable_js'], $retour['donnees']);
} else {
$this->envoyer($retour, null, null, true);
}
}
 
54,8 → 53,9
/**
* Données de la carte par défaut
*/
public function getCarteDefautJson($parametres) {
public function getCarteDefautJson($params) {
$json = null;
$parametres = $this->traiterParametres(array('utilisateur', 'projet'), $params, false);
extract($parametres);
 
$requete = 'SELECT sector, x_utm, y_utm, coord_x, coord_y, ref_geo '.
70,7 → 70,10
$mm = array('min_x' => 0,'max_x' => 0,'min_y' => 0,'max_y' => 0);
$points = array();
foreach ($resultats as $enrg) {
$enrg['id'] = 'LngLat:'.$enrg['coord_y'].'-'.$enrg['coord_x'];
if ($enrg['coord_x'] == '' && $enrg['coord_y'] == '' && $enrg['x_utm'] != '' && $enrg['y_utm'] != '') {
$enrg['id'] = 'UTM:'.$enrg['x_utm'].'-'.$enrg['y_utm'].'-'.$enrg['sector'];
$convertisseur = new gPoint();
$convertisseur->setUTM($enrg['x_utm'], $enrg['y_utm'], $enrg['sector']);
$convertisseur->convertTMtoLL();
111,4 → 114,39
//echo '<pre>'.print_r($json, true).'</pre>';
return $json;
}
/**
* Données pour l'affichage des obs d'une station
*/
public function getObservations($params) {
$json = null;
$parametres = $this->traiterParametres(array('station'), $params, false);
extract($parametres);
//$this->debug[] = $station;
list($type, $coord) = explode(':', $station);
if ($type == 'UTM') {
list($x_utm, $y_utm, $secteur) = explode('-', $coord);
} else if ($type == 'LngLat') {
list($coord_y, $coord_x) = explode('-', $coord);
}
 
$requete = 'SELECT identifiant, nom_sel, nom_ret, num_nom_sel, num_nom_ret, num_taxon, famille, '.
' lieudit, location, date_observation, milieu, commentaire, '.
' 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' ".
(($type == 'UTM') ? " AND (sector = '$secteur' AND x_utm = '$x_utm' AND y_utm = '$y_utm' ) " : '').
(($type == 'LngLat') ? " AND (coord_x = '$coord_x' AND coord_y = '$coord_y' ) " : '').
(isset($utilisateur) ? " AND identifiant = '$utilisateur' " : '');
//$this->debug[] = $requete;
$resultats = $this->executerRequete($requete);
// Post-traitement
$resultats = $this->nettoyerTableau($resultats);
return $resultats;
}
}
/trunk/jrest/services/CelSyndicationObservation.php
349,21 → 349,10
}
private function creerAuteur($courriel) {
$auteur = ($this->etreFluxAdmin()) ? $courriel : $this->traiterCourriel($courriel);
$auteur = ($this->etreFluxAdmin()) ? $courriel : $this->tronquerCourriel($courriel);
return $auteur;
}
private function traiterCourriel($courriel) {
$courriel = preg_replace('/[^@]+$/i', '...', $courriel);
return $courriel;
}
private function nettoyerTexte($txt) {
$txt = preg_replace('/&(?!(a-z+|#0-9+|#x0-9a-f+);)/i', '&amp;', $txt);
$txt = preg_replace('/000null/i', '', $txt);
return $txt;
}
private function creerGuidItem($element) {
$guid = sprintf($this->config['settings']['guidObsTpl'], 'obs'.$element['id']);
return $guid;