Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1585 → Rev 1586

/trunk/widget/modules/cartopoint/CartoPoint.php
10,19 → 10,19
*
* Paramètres :
* ===> utilisateur = identifiant
* Affiche seulement les observations d'un utilisateur donné. L'identifiant correspond au courriel de
* Affiche seulement les observations d'un utilisateur donné. L'identifiant correspond au courriel de
* l'utilisateur avec lequel il s'est inscrit sur Tela Botanica.
* ===> dept = code_du_département
* Affiche seulement les observations pour le département français métropolitain indiqué. Les codes de département utilisables
* sont : 01 à 19, 2A, 2B et 21 à 95.
* Affiche seulement les observations pour le département français métropolitain indiqué. Les codes de département utilisables
* sont : 01 à 19, 2A, 2B et 21 à 95.
* ===> projet = mot-clé
* Affiche seulement les observations pour le projet d'observations indiqué. Dans l'interface du CEL, vous pouvez taguer vos
* observations avec un mot-clé de projet. Si vous voulez regrouper des observations de plusieurs utilisateurs, communiquez un
* Affiche seulement les observations pour le projet d'observations indiqué. Dans l'interface du CEL, vous pouvez taguer vos
* observations avec un mot-clé de projet. Si vous voulez regrouper des observations de plusieurs utilisateurs, communiquez un
* mot-clé de projet à vos amis et visualisez les informations ainsi regroupées.
* ===> num_taxon = num_taxon
* Affiche seulement les observations pour la plante indiquée. Le num_taxon correspond au numéro taxonomique de la plante.
* Affiche seulement les observations pour la plante indiquée. Le num_taxon correspond au numéro taxonomique de la plante.
* Ce numéro est disponible dans les fiches d'eFlore. Par exemple, pour "Poa bulbosa L." le numéro taxonomique vaut 7080.
*
*
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
33,7 → 33,7
const DS = DIRECTORY_SEPARATOR;
const SERVICE_CARTO_NOM = 'CelWidgetMapPoint';
const SERVICE_CARTO_ACTION_DEFAUT = 'carte-defaut';
 
private $carte = null;
private $utilisateur = null;
private $projet = null;
48,7 → 48,7
private $image = null; // url d'une image à ajouter dans l'interface
private $nbjours = null; // nombre de jour à partir de la date courate pour lesquels on affiche les points
private $referentiel = null; // nombre de jour à partir de la date courate pour lesquels on affiche les points
 
/**
* Méthode appelée par défaut pour charger ce widget.
*/
70,7 → 70,7
$this->envoyer($html);
}
}
 
public function extraireParametres() {
extract($this->parametres);
$this->carte = (isset($carte) ? $carte : self::SERVICE_CARTO_ACTION_DEFAUT);
129,21 → 129,22
$widget['donnees']['communeImageUrl'] = $this->config['carto']['communeImageUrl'];
$widget['donnees']['pointImageUrl'] = $this->config['carto']['pointImageUrl'];
$widget['donnees']['groupeImageUrlTpl'] = $this->config['carto']['groupeImageUrlTpl'];
$widget['donnees']['url_widget_saisie'] = $this->config['urls']['widgetSaisie'];
 
$widget['squelette'] = 'carte_defaut';
 
return $widget;
}
 
private function contruireUrlServiceCarto($action = null) {
// Création url données json
$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], self::SERVICE_CARTO_NOM);
if ($action) {
$url .= "/$action";
 
$parametres_retenus = array();
$parametres_a_tester = array('station', 'utilisateur', 'projet', 'tag', 'dept', 'commune',
'num_taxon', 'taxon', 'date', 'commentaire', 'nbjours', 'referentiel',
$parametres_a_tester = array('station', 'utilisateur', 'projet', 'tag', 'dept', 'commune',
'num_taxon', 'taxon', 'date', 'commentaire', 'nbjours', 'referentiel',
'start', 'limit');
foreach ($parametres_a_tester as $param) {
if (isset($this->$param) && $this->$param != '*') {
158,9 → 159,9
$url .= '?'.implode('&', $parametres_url);
}
}
return $url;
return $url;
}
 
private function obtenirUrlsLimitesCommunales() {
$urls = null;
if (isset($this->dept)) {
176,35 → 177,38
$urls = json_encode($urls);
return $urls;
}
 
private function chercherFichierKml(){
$fichiers = array();
$chemins = explode(',', $this->config['carto']['communesKmzChemin']);
$departements = explode(',', $this->dept);// plrs code de départements peuvent être demandés séparés par des virgules
$departements_trouves = array();
foreach ($chemins as $dossier_chemin) {
if ($dossier_ressource = opendir($dossier_chemin)) {
while ($element = readdir($dossier_ressource)) {
if ($element != '.' && $element != '..') {
foreach ($departements as $departement) {
$nom_dossier = basename($dossier_chemin);
if (!isset($departements_trouves[$departement]) || $departements_trouves[$departement] == $nom_dossier) {
$dept_protege = preg_quote($departement);
if (!is_dir($dossier_chemin.'/'.$element) && preg_match("/^$dept_protege(?:_[0-9]+|)\.km[lz]$/", $element)) {
$fichiers[$element] = $nom_dossier;
$departements_trouves[$departement] = $nom_dossier;
if (isset($this->config['carto']['communesKmzChemin'])) {
$chemins = explode(',', $this->config['carto']['communesKmzChemin']);
$departements = explode(',', $this->dept);// plrs code de départements peuvent être demandés séparés par des virgules
$departements_trouves = array();
foreach ($chemins as $dossier_chemin) {
if ($dossier_ressource = opendir($dossier_chemin)) {
while ($element = readdir($dossier_ressource)) {
if ($element != '.' && $element != '..') {
foreach ($departements as $departement) {
$nom_dossier = basename($dossier_chemin);
if (!isset($departements_trouves[$departement]) || $departements_trouves[$departement] == $nom_dossier) {
$dept_protege = preg_quote($departement);
if (!is_dir($dossier_chemin.'/'.$element) && preg_match("/^$dept_protege(?:_[0-9]+|)\.km[lz]$/", $element)) {
$fichiers[$element] = $nom_dossier;
$departements_trouves[$departement] = $nom_dossier;
}
}
}
}
}
closedir($dossier_ressource);
}
closedir($dossier_ressource);
}
} else {
$this->messages[] = 'Veuillez configurer le paramètres carto.communesKmzChemin.';
}
return $fichiers;
}
 
/**
* Afficher message d'avertissement.
*/
215,10 → 219,10
$widget['donnees']['contenu_aide'] = $this->chargerAideWiki();
$widget['donnees']['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
$widget['squelette'] = 'avertissement';
 
return $widget;
}
 
/**
* Charge le contenu du wikini demandé
*/
225,14 → 229,14
function chargerAideWiki() {
$url = str_replace('{page}','AideCarto',$this->config['chemins']['aideWikiniUrl']);
$infos_aide = file_get_contents($url);
 
$aide = '';
 
if($infos_aide != null && $infos_aide != '') {
$infos_aide = json_decode($infos_aide);
$infos_aide = (is_a($infos_aide, 'StdClass') && $infos_aide->texte != null) ? $infos_aide->texte : '';
}
 
return $infos_aide;
}
}