Subversion Repositories eFlore/Applications.cel

Rev

Rev 3037 | Rev 3198 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3037 Rev 3042
Line 52... Line 52...
52
			$projets = explode(',', $this->parametres['projet']);
52
			$projets = explode(',', $this->parametres['projet']);
53
			$this->projet = strtolower($projets[0]);
53
			$this->projet = strtolower($projets[0]);
54
		}
54
		}
55
		$this->chargerConfigProjet();
55
		$this->chargerConfigProjet();
Line -... Line 56...
-
 
56
 
-
 
57
		// définition de la langue, en mode souple
-
 
58
		if (isset($this->parametres['lang'])) {
-
 
59
			$this->langue = $this->parametres['lang'];
-
 
60
		}
56
 
61
 
57
		// exécution du service (le widget entier ou une sous-partie, par ex "Taxons")
62
		// exécution du service (le widget entier ou une sous-partie, par ex "Taxons")
58
		$retour = null;
63
		$retour = null;
59
		$service = isset($this->parametres['service']) ? $this->parametres['service'] : 'widget';
64
		$service = isset($this->parametres['service']) ? $this->parametres['service'] : 'widget';
60
		$methode = $this->traiterNomMethodeExecuter($service);
65
		$methode = $this->traiterNomMethodeExecuter($service);
61
		if (method_exists($this, $methode)) {
66
		if (method_exists($this, $methode)) {
62
			$retour = $this->$methode();
67
			$retour = $this->$methode();
63
		} else {
68
		} else {
64
			$this->messages[] = "Le service '$methode' n'est pas disponible.";
69
			$this->messages[] = "Le service '$methode' n'est pas disponible.";
Line 65... Line -...
65
		}
-
 
66
 
-
 
67
		// définition de la langue, en mode souple
-
 
68
		if (isset($this->parametres['lang'])) {
-
 
69
			$this->langue = $this->parametres['lang'];
-
 
70
		}
70
		}
71
 
71
 
72
		// injection des données dans le squelette
72
		// injection des données dans le squelette
73
		$contenu = null;
73
		$contenu = null;
74
		$mime = null;
74
		$mime = null;
75
		if (is_array($retour) && array_key_exists('squelette', $retour)) {
75
		if (is_array($retour) && array_key_exists('squelette', $retour)) {
76
			$ext = (isset($retour['squelette_ext'])) ? $retour['squelette_ext'] : '.tpl.html';
76
			$ext = (isset($retour['squelette_ext'])) ? $retour['squelette_ext'] : '.tpl.html';
-
 
77
			// Suffixe de template pour la langue - fr par défaut @TODO configurer ça un jour
77
			// Suffixe de template pour la langue - fr par défaut @TODO configurer ça un jour
78
			$suffixeLangue = "";
78
			$suffixeLangue = "";
79
			// Si "nolang" n'est pas vide, on ne cherchera pas de squelette spécifique à la langue en cours
79
			if ($this->langue != null && $this->langue != "fr") {
80
			if ($this->langue != null && $this->langue != "fr" && empty($retour['nolang'])) {
80
				$suffixeLangue = "_" . $this->langue;
81
				$suffixeLangue = "_" . $this->langue;
81
			}
82
			}
82
			// Template par défaut ou spécifique
83
			// Template par défaut ou spécifique
Line 285... Line 286...
285
		$taxons_tries = array();
286
		$taxons_tries = array();
286
		foreach ($nomsAAfficher as $taxon) {
287
		foreach ($nomsAAfficher as $taxon) {
287
			$taxons_tries[$taxon['num_nom_sel']] = $taxon;
288
			$taxons_tries[$taxon['num_nom_sel']] = $taxon;
288
		}
289
		}
289
		$widget['donnees']['taxons'] = json_encode($taxons_tries);
290
		$widget['donnees']['taxons'] = json_encode($taxons_tries);
-
 
291
		//echo "<pre>"; var_dump($widget); echo "</pre>";
-
 
292
		// Le squelette n'est pas traduit, seules les données de taxons le sont
-
 
293
		$widget['nolang'] = true;
-
 
294
 
290
		return $widget;
295
		return $widget;
291
	}
296
	}
Line 292... Line 297...
292
 
297
 
293
	/**
298
	/**
Line 349... Line 354...
349
	/**
354
	/**
350
	 * Lit une liste de taxons depuis un fichier tsv fourni
355
	 * Lit une liste de taxons depuis un fichier tsv fourni
351
	 */
356
	 */
352
	protected function recupererListeTaxon() {
357
	protected function recupererListeTaxon() {
353
		$taxons = array();
358
		$taxons = array();
-
 
359
		$fichier_tsv = null;
354
		if ($this->projet == 'missions-flore') {
360
		if ($this->projet == 'missions-flore') {
355
			$fichier_tsv = dirname(__FILE__).self::DS.'configurations'.self::DS.$this->projet.'_'.$this->mission.'_taxons.tsv';
361
			$fichier_tsv = dirname(__FILE__).self::DS.'configurations'.self::DS.$this->projet.'_'.$this->mission.'_taxons.tsv';
356
		} else {
362
		} else {
-
 
363
			// recherche d'un fichier traduit (pour les noms vernaculaires)
-
 
364
			$suffixeLangue = "";
-
 
365
			if ($this->langue != null && $this->langue != "fr") {
-
 
366
				$suffixeLangue = "_" . $this->langue;
-
 
367
				$fichier_tsv = dirname(__FILE__).self::DS.'configurations'.self::DS.$this->projet.'_taxons'.$suffixeLangue.'.tsv';
-
 
368
			}
-
 
369
			// si le fichier de taxons traduit n'est pas disponible ou qu'on n'a
-
 
370
			// pas demandé de langue particulière, on se rabat sur celui par défaut
-
 
371
			if (! file_exists($fichier_tsv)) {
357
			$fichier_tsv = dirname(__FILE__).self::DS.'configurations'.self::DS.$this->projet.'_taxons.tsv';
372
				$fichier_tsv = dirname(__FILE__).self::DS.'configurations'.self::DS.$this->projet.'_taxons.tsv';
-
 
373
			}
358
		}
374
		}
359
		if (file_exists($fichier_tsv) && is_readable($fichier_tsv)) {
375
		if (file_exists($fichier_tsv) && is_readable($fichier_tsv)) {
360
			$taxons = $this->decomposerFichierTsv($fichier_tsv);
376
			$taxons = $this->decomposerFichierTsv($fichier_tsv);
361
		} else {
377
		} else {
362
			$this->debug[] = "Impossible d'ouvrir le fichier '$fichier_tsv'.";
378
			$this->debug[] = "Impossible d'ouvrir le fichier '$fichier_tsv'.";