Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1525 → Rev 1526

/trunk/widget/modules/saisie/Saisie.php
75,7 → 75,7
private function chargerConfigProjet() {
$fichier_config = dirname(__FILE__).self::DS.'configurations'.self::DS.$this->projet.'.ini';
if (file_exists($fichier_config)) {
if (!$this->configProjet = parse_ini_file($fichier_config)) {
if (!$this->configProjet = parse_ini_file($fichier_config)) {
$this->messages[] = "Le fichier ini '$fichier_config' du projet n'a pu être chargé.";
}
} else {
82,11 → 82,13
$this->debug[] = "Le fichier ini '$fichier_config' du projet n'existe pas.";
}
}
 
private function chargerProjetsVersion() {
foreach ($this->configProjet as $config => $valeur) {
if(strstr($config,'.version')) {
$this->projetsVersions[str_replace('.version', '', $config)] = $valeur;
if (isset($this->configProjet)) {
foreach ($this->configProjet as $config => $valeur) {
if(strstr($config,'.version')) {
$this->projetsVersions[str_replace('.version', '', $config)] = $valeur;
}
}
}
}
93,23 → 95,23
 
public function executerWidget() {
$referentiel_impose = false;
if(isset($_GET['referentiel']) && $_GET['referentiel'] != '') {
if (isset($_GET['referentiel']) && $_GET['referentiel'] != '') {
$this->NS_PROJET = isset($_GET['referentiel']) && $_GET['referentiel'] != '' ? $_GET['referentiel'] : $this->NS_PROJET;
$this->NS_PROJET_VERSION = $this->projetsVersions[$this->NS_PROJET];
$referentiel_impose = true;
}
 
$widget['squelette'] = $this->projet;
$widget['donnees'] = array();
$widget['donnees']['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
$widget['donnees']['url_ws_saisie'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], self::WS_SAISIE);
 
$widget['donnees']['logo'] = isset($_GET['logo']) ? $_GET['logo'] : 'defaut';
$widget['donnees']['titre'] = isset($_GET['titre']) ? $_GET['titre'] : 'defaut';
$widget['donnees']['titre'] = ($widget['donnees']['titre'] == '0') ? '' : $widget['donnees']['titre'];
 
// cas du projet par défaut ou bien d'un projet n'ayant pas de squelette spécifique
if ($this->projet == 'defaut' || !$this->projetASquelette()) {
if ($this->projet == 'defaut' || $this->projet == 'florileges' || !$this->projetASquelette()) {
$urlWsNsTpl = $this->config['chemins']['baseURLServicesEfloreTpl'];
$urlWsNs = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, $this->NS_PROJET, self::WS_NOM);
$urlWsNsSansRef = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, '{referentiel}', self::WS_NOM);
120,17 → 122,17
$widget['donnees']['ns_version'] = $this->NS_PROJET_VERSION;
$widget['donnees']['referentiel_impose'] = $referentiel_impose;
$widget['donnees']['projets_versions'] = $this->projetsVersions;
if(self::especeEstImposee()) {
$nom = self::executerChargementInfosTaxon($_GET['num_nom']);
$widget['donnees']['espece_imposee'] = false;
$widget['donnees']['nn_espece_defaut'] = '';
$widget['donnees']['nom_sci_espece_defaut'] = '';
$widget['donnees']['infos_espece'] = array();
 
if ($this->especeEstImposee()) {
$nom = $this->executerChargementInfosTaxon($_GET['num_nom']);
$widget['donnees']['espece_imposee'] = true;
$widget['donnees']['nn_espece_defaut'] = $_GET['num_nom'];
$widget['donnees']['nom_sci_espece_defaut'] = $nom['nom_sci'];
$widget['donnees']['infos_espece'] = $this->array2js($nom, true);
} else {
$widget['donnees']['espece_imposee'] = false;
$widget['donnees']['nn_espece_defaut'] = '';
$widget['donnees']['nom_sci_espece_defaut'] = '';
$widget['donnees']['infos_espece'] = array();
}
} else {
$widget['donnees']['taxons'] = $this->recupererListeTaxon();
138,9 → 140,9
}
return $widget;
}
 
private function projetASquelette() {
// fonction très simple qui ne teste que si le dossier du projet courant
// fonction très simple qui ne teste que si le dossier du projet courant
// existe, mais elle suffit pour le moment.
return file_exists(dirname(__FILE__).self::DS.'squelettes'.self::DS.$this->projet);
}
200,11 → 202,11
ksort($infosMilieux);
return $infosMilieux;
}
 
private function especeEstImposee() {
return isset($_GET['num_nom']) && $_GET['num_nom'] != '';
}
 
private function executerChargementInfosTaxon($num_nom) {
$url_service_infos = sprintf($this->config['chemins']['infosTaxonUrl'], $this->NS_PROJET, $num_nom);
$infos = json_decode(file_get_contents($url_service_infos));
296,36 → 298,43
$retour['donnees']['debogage'] = $debogage;
return $retour;
}
// Il ne faut pas utiliser l'index type du tableau files pour tester
 
// Il ne faut pas utiliser l'index type du tableau files pour tester
// si une image est en jpeg car le type renvoyé par les navigateurs
// peut varier (ex. sous ie qui renvoie image/pjpeg
// peut varier (ex. sous ie qui renvoie image/pjpeg
private function verifierFormatJpeg($chemin) {
// get imagesize renvoie un résultat consistant par contre
$infos = getimagesize($chemin, $infos);
return (isset($infos["mime"]) && $infos["mime"] == "image/jpeg");
return (isset($infos['mime']) && $infos['mime'] == 'image/jpeg');
}
private function array2js($array,$show_keys)
{
$dimensions = array();
$valeurs = array();
$total = count ($array)-1;
$i=0;
foreach($array as $key=>$value){
if (is_array($value)) {
$dimensions[$i] = array2js($value,$show_keys);
if ($show_keys) $dimensions[$i] = '"'.$key.'":'.$dimensions[$i];
} else {
$dimensions[$i] = '"'.addslashes($value).'"';
if ($show_keys) $dimensions[$i] = '"'.$key.'":'.$dimensions[$i];
}
if ($i==0) $dimensions[$i] = '{'.$dimensions[$i];
if ($i==$total) $dimensions[$i].= '}';
$i++;
}
return implode(',',$dimensions);
}
 
private function array2js($array,$show_keys) {
$dimensions = array();
$valeurs = array();
 
$total = count($array) - 1;
$i = 0;
foreach ($array as $key => $value) {
if (is_array($value)) {
$dimensions[$i] = array2js($value,$show_keys);
if ($show_keys) {
$dimensions[$i] = '"'.$key.'":'.$dimensions[$i];
}
} else {
$dimensions[$i] = '"'.addslashes($value).'"';
if ($show_keys) {
$dimensions[$i] = '"'.$key.'":'.$dimensions[$i];
}
}
if ($i == 0) {
$dimensions[$i] = '{'.$dimensions[$i];
}
if ($i == $total) {
$dimensions[$i].= '}';
}
$i++;
}
return implode(',',$dimensions);
}
}
?>