Line 73... |
Line 73... |
73 |
}
|
73 |
}
|
Line 74... |
Line 74... |
74 |
|
74 |
|
75 |
private function chargerConfigProjet() {
|
75 |
private function chargerConfigProjet() {
|
76 |
$fichier_config = dirname(__FILE__).self::DS.'configurations'.self::DS.$this->projet.'.ini';
|
76 |
$fichier_config = dirname(__FILE__).self::DS.'configurations'.self::DS.$this->projet.'.ini';
|
77 |
if (file_exists($fichier_config)) {
|
77 |
if (file_exists($fichier_config)) {
|
78 |
if (!$this->configProjet = parse_ini_file($fichier_config)) {
|
78 |
if (!$this->configProjet = parse_ini_file($fichier_config)) {
|
79 |
$this->messages[] = "Le fichier ini '$fichier_config' du projet n'a pu être chargé.";
|
79 |
$this->messages[] = "Le fichier ini '$fichier_config' du projet n'a pu être chargé.";
|
80 |
}
|
80 |
}
|
81 |
} else {
|
81 |
} else {
|
82 |
$this->debug[] = "Le fichier ini '$fichier_config' du projet n'existe pas.";
|
82 |
$this->debug[] = "Le fichier ini '$fichier_config' du projet n'existe pas.";
|
83 |
}
|
83 |
}
|
84 |
}
|
84 |
}
|
85 |
|
85 |
|
- |
|
86 |
private function chargerProjetsVersion() {
|
86 |
private function chargerProjetsVersion() {
|
87 |
if (isset($this->configProjet)) {
|
87 |
foreach ($this->configProjet as $config => $valeur) {
|
88 |
foreach ($this->configProjet as $config => $valeur) {
|
88 |
if(strstr($config,'.version')) {
|
89 |
if(strstr($config,'.version')) {
|
- |
|
90 |
$this->projetsVersions[str_replace('.version', '', $config)] = $valeur;
|
89 |
$this->projetsVersions[str_replace('.version', '', $config)] = $valeur;
|
91 |
}
|
90 |
}
|
92 |
}
|
91 |
}
|
93 |
}
|
Line 92... |
Line 94... |
92 |
}
|
94 |
}
|
93 |
|
95 |
|
94 |
public function executerWidget() {
|
96 |
public function executerWidget() {
|
95 |
$referentiel_impose = false;
|
97 |
$referentiel_impose = false;
|
96 |
if(isset($_GET['referentiel']) && $_GET['referentiel'] != '') {
|
98 |
if (isset($_GET['referentiel']) && $_GET['referentiel'] != '') {
|
97 |
$this->NS_PROJET = isset($_GET['referentiel']) && $_GET['referentiel'] != '' ? $_GET['referentiel'] : $this->NS_PROJET;
|
99 |
$this->NS_PROJET = isset($_GET['referentiel']) && $_GET['referentiel'] != '' ? $_GET['referentiel'] : $this->NS_PROJET;
|
98 |
$this->NS_PROJET_VERSION = $this->projetsVersions[$this->NS_PROJET];
|
100 |
$this->NS_PROJET_VERSION = $this->projetsVersions[$this->NS_PROJET];
|
99 |
$referentiel_impose = true;
|
101 |
$referentiel_impose = true;
|
100 |
}
|
102 |
}
|
101 |
|
103 |
|
102 |
$widget['squelette'] = $this->projet;
|
104 |
$widget['squelette'] = $this->projet;
|
103 |
$widget['donnees'] = array();
|
105 |
$widget['donnees'] = array();
|
104 |
$widget['donnees']['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
|
106 |
$widget['donnees']['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
|
105 |
$widget['donnees']['url_ws_saisie'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], self::WS_SAISIE);
|
107 |
$widget['donnees']['url_ws_saisie'] = sprintf($this->config['chemins']['baseURLServicesCelTpl'], self::WS_SAISIE);
|
106 |
|
108 |
|
107 |
$widget['donnees']['logo'] = isset($_GET['logo']) ? $_GET['logo'] : 'defaut';
|
109 |
$widget['donnees']['logo'] = isset($_GET['logo']) ? $_GET['logo'] : 'defaut';
|
108 |
$widget['donnees']['titre'] = isset($_GET['titre']) ? $_GET['titre'] : 'defaut';
|
110 |
$widget['donnees']['titre'] = isset($_GET['titre']) ? $_GET['titre'] : 'defaut';
|
109 |
$widget['donnees']['titre'] = ($widget['donnees']['titre'] == '0') ? '' : $widget['donnees']['titre'];
|
111 |
$widget['donnees']['titre'] = ($widget['donnees']['titre'] == '0') ? '' : $widget['donnees']['titre'];
|
110 |
|
112 |
|
111 |
// cas du projet par défaut ou bien d'un projet n'ayant pas de squelette spécifique
|
113 |
// cas du projet par défaut ou bien d'un projet n'ayant pas de squelette spécifique
|
112 |
if ($this->projet == 'defaut' || !$this->projetASquelette()) {
|
114 |
if ($this->projet == 'defaut' || $this->projet == 'florileges' || !$this->projetASquelette()) {
|
113 |
$urlWsNsTpl = $this->config['chemins']['baseURLServicesEfloreTpl'];
|
115 |
$urlWsNsTpl = $this->config['chemins']['baseURLServicesEfloreTpl'];
|
114 |
$urlWsNs = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, $this->NS_PROJET, self::WS_NOM);
|
116 |
$urlWsNs = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, $this->NS_PROJET, self::WS_NOM);
|
115 |
$urlWsNsSansRef = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, '{referentiel}', self::WS_NOM);
|
117 |
$urlWsNsSansRef = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, '{referentiel}', self::WS_NOM);
|
116 |
$widget['donnees']['url_ws_autocompletion_ns'] = $urlWsNs;
|
118 |
$widget['donnees']['url_ws_autocompletion_ns'] = $urlWsNs;
|
117 |
$widget['donnees']['url_ws_autocompletion_ns_tpl'] = $urlWsNsSansRef;
|
119 |
$widget['donnees']['url_ws_autocompletion_ns_tpl'] = $urlWsNsSansRef;
|
118 |
$widget['donnees']['ns_referentiel'] = $this->NS_PROJET.':'.$this->NS_PROJET_VERSION;
|
120 |
$widget['donnees']['ns_referentiel'] = $this->NS_PROJET.':'.$this->NS_PROJET_VERSION;
|
119 |
$widget['donnees']['ns_projet'] = $this->NS_PROJET;
|
121 |
$widget['donnees']['ns_projet'] = $this->NS_PROJET;
|
120 |
$widget['donnees']['ns_version'] = $this->NS_PROJET_VERSION;
|
122 |
$widget['donnees']['ns_version'] = $this->NS_PROJET_VERSION;
|
- |
|
123 |
$widget['donnees']['referentiel_impose'] = $referentiel_impose;
|
- |
|
124 |
$widget['donnees']['projets_versions'] = $this->projetsVersions;
|
- |
|
125 |
$widget['donnees']['espece_imposee'] = false;
|
- |
|
126 |
$widget['donnees']['nn_espece_defaut'] = '';
|
- |
|
127 |
$widget['donnees']['nom_sci_espece_defaut'] = '';
|
121 |
$widget['donnees']['referentiel_impose'] = $referentiel_impose;
|
128 |
$widget['donnees']['infos_espece'] = array();
|
122 |
$widget['donnees']['projets_versions'] = $this->projetsVersions;
|
129 |
|
123 |
if(self::especeEstImposee()) {
|
130 |
if ($this->especeEstImposee()) {
|
124 |
$nom = self::executerChargementInfosTaxon($_GET['num_nom']);
|
131 |
$nom = $this->executerChargementInfosTaxon($_GET['num_nom']);
|
125 |
$widget['donnees']['espece_imposee'] = true;
|
132 |
$widget['donnees']['espece_imposee'] = true;
|
126 |
$widget['donnees']['nn_espece_defaut'] = $_GET['num_nom'];
|
133 |
$widget['donnees']['nn_espece_defaut'] = $_GET['num_nom'];
|
127 |
$widget['donnees']['nom_sci_espece_defaut'] = $nom['nom_sci'];
|
- |
|
128 |
$widget['donnees']['infos_espece'] = $this->array2js($nom, true);
|
- |
|
129 |
} else {
|
- |
|
130 |
$widget['donnees']['espece_imposee'] = false;
|
- |
|
131 |
$widget['donnees']['nn_espece_defaut'] = '';
|
- |
|
132 |
$widget['donnees']['nom_sci_espece_defaut'] = '';
|
134 |
$widget['donnees']['nom_sci_espece_defaut'] = $nom['nom_sci'];
|
133 |
$widget['donnees']['infos_espece'] = array();
|
135 |
$widget['donnees']['infos_espece'] = $this->array2js($nom, true);
|
134 |
}
|
136 |
}
|
135 |
} else {
|
137 |
} else {
|
136 |
$widget['donnees']['taxons'] = $this->recupererListeTaxon();
|
138 |
$widget['donnees']['taxons'] = $this->recupererListeTaxon();
|
137 |
$widget['donnees']['milieux'] = $this->parserMilieux();
|
139 |
$widget['donnees']['milieux'] = $this->parserMilieux();
|
138 |
}
|
140 |
}
|
139 |
return $widget;
|
141 |
return $widget;
|
140 |
}
|
142 |
}
|
141 |
|
143 |
|
142 |
private function projetASquelette() {
|
144 |
private function projetASquelette() {
|
143 |
// fonction très simple qui ne teste que si le dossier du projet courant
|
145 |
// fonction très simple qui ne teste que si le dossier du projet courant
|
144 |
// existe, mais elle suffit pour le moment.
|
146 |
// existe, mais elle suffit pour le moment.
|
Line 145... |
Line 147... |
145 |
return file_exists(dirname(__FILE__).self::DS.'squelettes'.self::DS.$this->projet);
|
147 |
return file_exists(dirname(__FILE__).self::DS.'squelettes'.self::DS.$this->projet);
|
Line 198... |
Line 200... |
198 |
}
|
200 |
}
|
199 |
}
|
201 |
}
|
200 |
ksort($infosMilieux);
|
202 |
ksort($infosMilieux);
|
201 |
return $infosMilieux;
|
203 |
return $infosMilieux;
|
202 |
}
|
204 |
}
|
203 |
|
205 |
|
204 |
private function especeEstImposee() {
|
206 |
private function especeEstImposee() {
|
205 |
return isset($_GET['num_nom']) && $_GET['num_nom'] != '';
|
207 |
return isset($_GET['num_nom']) && $_GET['num_nom'] != '';
|
206 |
}
|
208 |
}
|
207 |
|
209 |
|
208 |
private function executerChargementInfosTaxon($num_nom) {
|
210 |
private function executerChargementInfosTaxon($num_nom) {
|
209 |
$url_service_infos = sprintf($this->config['chemins']['infosTaxonUrl'], $this->NS_PROJET, $num_nom);
|
211 |
$url_service_infos = sprintf($this->config['chemins']['infosTaxonUrl'], $this->NS_PROJET, $num_nom);
|
210 |
$infos = json_decode(file_get_contents($url_service_infos));
|
212 |
$infos = json_decode(file_get_contents($url_service_infos));
|
211 |
$resultat = array();
|
213 |
$resultat = array();
|
212 |
if(isset($infos) && !empty($infos)) {
|
214 |
if(isset($infos) && !empty($infos)) {
|
Line 294... |
Line 296... |
294 |
// Retour des infos
|
296 |
// Retour des infos
|
295 |
$retour['donnees']['message'] = $message;
|
297 |
$retour['donnees']['message'] = $message;
|
296 |
$retour['donnees']['debogage'] = $debogage;
|
298 |
$retour['donnees']['debogage'] = $debogage;
|
297 |
return $retour;
|
299 |
return $retour;
|
298 |
}
|
300 |
}
|
299 |
|
301 |
|
300 |
// Il ne faut pas utiliser l'index type du tableau files pour tester
|
302 |
// Il ne faut pas utiliser l'index type du tableau files pour tester
|
301 |
// si une image est en jpeg car le type renvoyé par les navigateurs
|
303 |
// si une image est en jpeg car le type renvoyé par les navigateurs
|
302 |
// peut varier (ex. sous ie qui renvoie image/pjpeg
|
304 |
// peut varier (ex. sous ie qui renvoie image/pjpeg
|
303 |
private function verifierFormatJpeg($chemin) {
|
305 |
private function verifierFormatJpeg($chemin) {
|
304 |
// get imagesize renvoie un résultat consistant par contre
|
306 |
// get imagesize renvoie un résultat consistant par contre
|
305 |
$infos = getimagesize($chemin, $infos);
|
307 |
$infos = getimagesize($chemin, $infos);
|
306 |
return (isset($infos["mime"]) && $infos["mime"] == "image/jpeg");
|
308 |
return (isset($infos['mime']) && $infos['mime'] == 'image/jpeg');
|
- |
|
309 |
}
|
- |
|
310 |
|
- |
|
311 |
private function array2js($array,$show_keys) {
|
- |
|
312 |
$dimensions = array();
|
- |
|
313 |
$valeurs = array();
|
- |
|
314 |
|
- |
|
315 |
$total = count($array) - 1;
|
- |
|
316 |
$i = 0;
|
- |
|
317 |
foreach ($array as $key => $value) {
|
- |
|
318 |
if (is_array($value)) {
|
- |
|
319 |
$dimensions[$i] = array2js($value,$show_keys);
|
- |
|
320 |
if ($show_keys) {
|
- |
|
321 |
$dimensions[$i] = '"'.$key.'":'.$dimensions[$i];
|
- |
|
322 |
}
|
- |
|
323 |
} else {
|
- |
|
324 |
$dimensions[$i] = '"'.addslashes($value).'"';
|
- |
|
325 |
if ($show_keys) {
|
- |
|
326 |
$dimensions[$i] = '"'.$key.'":'.$dimensions[$i];
|
- |
|
327 |
}
|
- |
|
328 |
}
|
- |
|
329 |
if ($i == 0) {
|
- |
|
330 |
$dimensions[$i] = '{'.$dimensions[$i];
|
- |
|
331 |
}
|
- |
|
332 |
if ($i == $total) {
|
- |
|
333 |
$dimensions[$i].= '}';
|
- |
|
334 |
}
|
- |
|
335 |
$i++;
|
- |
|
336 |
}
|
- |
|
337 |
return implode(',',$dimensions);
|
307 |
}
|
338 |
}
|
308 |
|
- |
|
309 |
private function array2js($array,$show_keys)
|
- |
|
310 |
{
|
- |
|
311 |
$dimensions = array();
|
- |
|
312 |
$valeurs = array();
|
- |
|
313 |
|
- |
|
314 |
$total = count ($array)-1;
|
- |
|
315 |
$i=0;
|
- |
|
316 |
foreach($array as $key=>$value){
|
- |
|
317 |
if (is_array($value)) {
|
- |
|
318 |
$dimensions[$i] = array2js($value,$show_keys);
|
- |
|
319 |
if ($show_keys) $dimensions[$i] = '"'.$key.'":'.$dimensions[$i];
|
- |
|
320 |
} else {
|
- |
|
321 |
$dimensions[$i] = '"'.addslashes($value).'"';
|
- |
|
322 |
if ($show_keys) $dimensions[$i] = '"'.$key.'":'.$dimensions[$i];
|
- |
|
323 |
}
|
- |
|
324 |
if ($i==0) $dimensions[$i] = '{'.$dimensions[$i];
|
- |
|
325 |
if ($i==$total) $dimensions[$i].= '}';
|
- |
|
326 |
$i++;
|
- |
|
327 |
}
|
- |
|
328 |
return implode(',',$dimensions);
|
- |
|
329 |
}
|
- |
|
330 |
}
|
339 |
}
|
331 |
?>
|
340 |
?>
|
332 |
|
341 |
|