* @license GPL v3 * @license CECILL v2 * @version $Id$ * @copyright Copyright (c) 2011, Tela Botanica (accueil@tela-botanica.org) */ class Export extends WidgetCommun { const DS = DIRECTORY_SEPARATOR; const SERVICE_DEFAUT = 'export'; private $export_url = null; private $eflore_url_tpl = null; /** Si spécifié, on ajoute une barre de navigation inter-applications */ private $bar; /** pré-chargement du champ "projet" (pour les fainéants) - @TODO étendre à tous les champs ? */ protected $projet; /** * Méthode appelée par défaut pour charger ce widget. */ public function executer() { $retour = null; extract($this->parametres); // aaaargh mon pauvre cœur :'( if (!isset($mode)) { $mode = self::SERVICE_DEFAUT; } $this->bar = (isset($bar)) ? $bar : false; $this->projet = (isset($projet)) ? $projet : ''; $methode = $this->traiterNomMethodeExecuter($mode); if (method_exists($this, $methode)) { $retour = $this->$methode(); } else { $this->messages[] = "Ce type de service '$methode' n'est pas disponible."; } if (is_null($retour)) { $contenu = 'Un problème est survenu : '.print_r($this->messages, true); } else { $urlWsCommune = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'LocationSearch'); $retour['donnees']['url_ws_autocompletion_commune'] = $urlWsCommune; $urlWsNomSci = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'NameSearch'); $retour['donnees']['url_ws_autocompletion_nom_sci'] = $urlWsNomSci; $retour['donnees']['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], ''); $retour['donnees']['url_export'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], 'CelWidgetExport'); //$retour['donnees']['url_script_navigation'] = sprintf($this->config['chemins']['baseURLRessources'], 'tb/reseau/navigation.js'); $retour['donnees']['bar'] = $this->bar; $retour['donnees']['projet'] = $this->projet; $squelette = dirname(__FILE__).self::DS.'squelettes'.self::DS.$retour['squelette'].'.tpl.html'; $contenu = $this->traiterSquelettePhp($squelette, $retour['donnees']); } $this->envoyer($contenu); } private function executerAjax() { $widget = $this->executerObservation(); $widget['squelette'] = 'export_ajax'; return $widget; } private function executerExport() { $widget = array('squelette' => 'export', 'donnees' => array()); extract($this->parametres); $max_obs = (isset($max_obs) && preg_match('/^[0-9]+,[0-9]+$/', $max_obs)) ? $max_obs : '10'; return $widget; } private function traiterParametres() { $parametres_export = '?'; $criteres = array('utilisateur', 'commune', 'dept', 'taxon', 'commentaire', 'date', 'projet'); foreach($this->parametres as $nom_critere => $valeur_critere) { if (in_array($nom_critere, $criteres)) { $valeur_critere = str_replace(' ', '%20', $valeur_critere); $parametres_export .= $nom_critere.'='.$valeur_critere.'&'; } } if ($parametres_export == '?') { $parametres_export = ''; } else { $parametres_export = rtrim($parametres_export, '&'); } return $parametres_export; } } ?>