Subversion Repositories eFlore/Applications.cel

Rev

Rev 3204 | Rev 3231 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3204 Rev 3208
Line 90... Line 90...
90
			if (isset($retour['donnees'])) { 
90
      if (isset($retour['donnees'])) {
91
				$retour['donnees']['prod'] = ($this->config['parametres']['modeServeur'] == "prod");
91
        $retour['donnees']['prod'] = ($this->config['parametres']['modeServeur'] == "prod");
92
				$retour['donnees']['bar'] = $this->bar;
92
        $retour['donnees']['bar'] = $this->bar;
93
				$retour['donnees']['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
93
        $retour['donnees']['url_base'] = sprintf($this->config['chemins']['baseURLAbsoluDyn'], '');
94
				$retour['donnees']['url_ws_annuaire'] = sprintf($this->config['chemins']['baseURLServicesAnnuaireTpl'], 'utilisateur/identite-par-courriel/');
94
        $retour['donnees']['url_ws_annuaire'] = sprintf($this->config['chemins']['baseURLServicesAnnuaireTpl'], 'utilisateur/identite-par-courriel/');
-
 
95
        $retour['donnees']['url_ws_upload'] = $this->config['manager']['uploadUrl'];
95
				$retour['donnees']['authTpl'] = $this->config['manager']['authTpl'].'?projet='.$this->parametres['projet'].'&langue='.$this->parametres['langue'];
96
        $retour['donnees']['authTpl'] = $this->config['manager']['authTpl'].'?projet='.$this->parametres['projet'].'&langue='.$this->parametres['langue'];
96
				$retour['donnees']['mode'] = $mode;
97
        $retour['donnees']['mode'] = $mode;
97
				$squelette = dirname(__FILE__).self::DS.'squelettes'.self::DS.$retour['squelette'].'.tpl.html';
98
        $squelette = dirname(__FILE__).self::DS.'squelettes'.self::DS.$retour['squelette'].'.tpl.html';
98
				$contenu = $this->traiterSquelettePhp($squelette, $retour['donnees']);
99
        $contenu = $this->traiterSquelettePhp($squelette, $retour['donnees']);
99
			} else {
100
      } else {
Line 116... Line 117...
116
	}
117
  }
Line 117... Line 118...
117
	
118
 
118
	/* Recherche si le projet existe sinon va chercher les infos de base */
119
  /* Recherche si le projet existe sinon va chercher les infos de base */
119
	private function rechercherProjet() {
120
  private function rechercherProjet() {
120
		// projet avec un squelette défini (et non juste un mot-clé d'observation)
121
    // projet avec un squelette défini (et non juste un mot-clé d'observation)
-
 
122
    $estProjetDefini = true;
121
		$estProjetDefini = true; $tab = array();
123
    $tab = array();
122
		$url = $this->config['manager']['celUrlTpl'].'?projet='.$this->parametres['projet'].'&langue='.$this->parametres['langue'];
124
    $url = $this->config['manager']['celUrlTpl'].'?projet='.$this->parametres['projet'].'&langue='.$this->parametres['langue'];
123
		$json = $this->getDao()->consulter($url);
125
    $json = $this->getDao()->consulter($url);
124
		if ($json == false) {
126
    if ($json == false) {
125
			$url = $this->config['manager']['celUrlTpl'].'?projet=base&langue='.$this->parametres['langue'];
127
      $url = $this->config['manager']['celUrlTpl'].'?projet=base&langue='.$this->parametres['langue'];
Line 144... Line 146...
144
	private function rechercherChampsSupp() {
146
  private function rechercherChampsSupp() {
145
		$retour = array();
147
    $retour = array();
146
		$url = $this->config['manager']['celChpSupTpl'].'?projet='.$this->parametres['projet'].'&langue='.$this->parametres['langue'];
148
    $url = $this->config['manager']['celChpSupTpl'].'?projet='.$this->parametres['projet'].'&langue='.$this->parametres['langue'];
147
		$json = $this->getDao()->consulter($url); 
149
    $json = $this->getDao()->consulter($url);
148
		$retour = (array) json_decode($json, true);
150
    $retour = (array) json_decode($json, true);
-
 
151
    foreach ($retour['sauvagessupp']['champs-supp'] as $key => $chsup) {
-
 
152
      if (isset($chsup['fieldValues'])) {
-
 
153
        $retour['sauvagessupp']['champs-supp'][$key]['fieldValues'] = json_decode($chsup['fieldValues'], true);
-
 
154
        if (isset($retour['sauvagessupp']['champs-supp'][$key]['fieldValues']["listValue"])) {
-
 
155
          foreach($retour['sauvagessupp']['champs-supp'][$key]['fieldValues']["listValue"] as $list_value) {
-
 
156
            // Obtenir une liste de valeurs utilisables dans les attributs for id ou name par exemple
-
 
157
            $retour['sauvagessupp']['champs-supp'][$key]['fieldValues']['cleanListValue'][] = 'val-' . preg_replace('/[^A-Za-z0-9_\-]/', '',$this->remove_accents($list_value));
-
 
158
          }
-
 
159
        }
-
 
160
      }
-
 
161
      $retour['sauvagessupp']['champs-supp'][$key]['mandatory'] = intval($chsup['mandatory']);
-
 
162
    }
149
		return $retour;
163
    return $retour;
150
	}
164
  }
Line -... Line 165...
-
 
165
 
-
 
166
  private function remove_accents($string) {
-
 
167
    if ( !preg_match('/[\x80-\xff]/', $string) )
-
 
168
      return $string;
-
 
169
 
-
 
170
    $chars = array(
-
 
171
      // Decompositions for Latin-1 Supplement
-
 
172
      chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
-
 
173
      chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
-
 
174
      chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
-
 
175
      chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
-
 
176
      chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
-
 
177
      chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
-
 
178
      chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
-
 
179
      chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
-
 
180
      chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
-
 
181
      chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
-
 
182
      chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
-
 
183
      chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
-
 
184
      chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
-
 
185
      chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
-
 
186
      chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
-
 
187
      chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
-
 
188
      chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
-
 
189
      chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
-
 
190
      chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
-
 
191
      chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
-
 
192
      chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
-
 
193
      chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
-
 
194
      chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
-
 
195
      chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
-
 
196
      chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
-
 
197
      chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
-
 
198
      chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
-
 
199
      chr(195).chr(191) => 'y',
-
 
200
      // Decompositions for Latin Extended-A
-
 
201
      chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
-
 
202
      chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
-
 
203
      chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
-
 
204
      chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
-
 
205
      chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
-
 
206
      chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
-
 
207
      chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
-
 
208
      chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
-
 
209
      chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
-
 
210
      chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
-
 
211
      chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
-
 
212
      chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
-
 
213
      chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
-
 
214
      chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
-
 
215
      chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
-
 
216
      chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
-
 
217
      chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
-
 
218
      chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
-
 
219
      chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
-
 
220
      chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
-
 
221
      chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
-
 
222
      chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
-
 
223
      chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
-
 
224
      chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
-
 
225
      chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
-
 
226
      chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
-
 
227
      chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
-
 
228
      chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
-
 
229
      chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
-
 
230
      chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
-
 
231
      chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
-
 
232
      chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
-
 
233
      chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
-
 
234
      chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
-
 
235
      chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
-
 
236
      chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
-
 
237
      chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
-
 
238
      chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
-
 
239
      chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
-
 
240
      chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
-
 
241
      chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
-
 
242
      chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
-
 
243
      chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
-
 
244
      chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
-
 
245
      chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
-
 
246
      chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
-
 
247
      chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
-
 
248
      chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
-
 
249
      chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
-
 
250
      chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
-
 
251
      chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
-
 
252
      chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
-
 
253
      chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
-
 
254
      chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
-
 
255
      chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
-
 
256
      chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
-
 
257
      chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
-
 
258
      chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
-
 
259
      chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
-
 
260
      chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
-
 
261
      chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
-
 
262
      chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
-
 
263
      chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
-
 
264
      chr(197).chr(190) => 'z', chr(197).chr(191) => 's'
-
 
265
    );
-
 
266
 
-
 
267
    $string = strtr($string, $chars);
-
 
268
 
-
 
269
    return $string;
-
 
270
  }
151
	
271
 
152
	// remplace certains parametres définis en bd par les parametres définis dans l'url
272
  // remplace certains parametres définis en bd par les parametres définis dans l'url
153
	private function traiterParametres($estProjetDefini, $tableau) {
273
  private function traiterParametres($estProjetDefini, $tableau) {
154
		$criteres = array('tag', 'motcle', 'projet', 'titre', 'logo');
274
    $criteres = array('tag', 'motcle', 'projet', 'titre', 'logo');
155
		$criteresProjetNonDefini = array('commune', 'num_nom', 'referentiel');
275
    $criteresProjetNonDefini = array('commune', 'num_nom', 'referentiel');
Line 163... Line 283...
163
		return $tableau;
283
    return $tableau;
164
	}
284
  }
Line 165... Line 285...
165
	
285
 
-
 
286
 
166
	
287
  private function rechercherInfosEspeces( $infos_projets ) { //print_r($infos_projets);exit;
167
	private function rechercherInfosEspeces($infos_projets) { //print_r($infos_projets);exit;
288
    $retour = array();
168
		$retour = ""; $referentiel = $infos_projets['referentiel'];
289
    $referentiel = $infos_projets['referentiel'];
169
		$urlWsNsTpl = $this->config['chemins']['baseURLServicesEfloreTpl'];
290
    $urlWsNsTpl = $this->config['chemins']['baseURLServicesEfloreTpl'];
170
		$urlWsNs = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, $referentiel, self::WS_NOM);
291
    $urlWsNs = sprintf( $urlWsNsTpl, self::EFLORE_API_VERSION, $referentiel, self::WS_NOM );
171
		$urlWsNsSansRef = sprintf($urlWsNsTpl, self::EFLORE_API_VERSION, '{referentiel}', self::WS_NOM);
292
    $urlWsNsSansRef = sprintf( $urlWsNsTpl, self::EFLORE_API_VERSION, '{referentiel}', self::WS_NOM );
172
		$retour['url_ws_autocompletion_ns'] = $urlWsNs;
293
    $retour['url_ws_autocompletion_ns'] = $urlWsNs;
Line 173... Line 294...
173
		$retour['url_ws_autocompletion_ns_tpl'] = $urlWsNsSansRef;
294
    $retour['url_ws_autocompletion_ns_tpl'] = $urlWsNsSansRef;
-
 
295
    $retour['ns_referentiel'] = $referentiel;
174
		$retour['ns_referentiel'] = $referentiel;
296
 
175
	
-
 
176
		if (isset($infos_projets['type_especes'])) {
-
 
177
			switch ($infos_projets['type_especes']) {
297
    if ( isset( $infos_projets['type_especes'] ) && 'fixe' === $infos_projets['type_especes']) {
178
				case "referentiel" : $referentiel = $infos_projets['referentiel']; break;
298
 
179
				case "liste" : $referentiel = $infos_projets['referentiel']; break;
299
      switch ( $infos_projets['type_especes'] ) {
-
 
300
        case "fixe" :
-
 
301
          $retour['especes'] = $this->chargerInfosTaxon( $infos_projets['referentiel'], $infos_projets['especes'] );
-
 
302
          break;
-
 
303
        case "referentiel" :
180
				case "fixe" : 
304
        case "liste" :
181
					$retour['especes'] = $this->chargerInfosTaxon($infos_projets['referentiel'], $infos_projets['especes']); 
305
          $referentiel = $infos_projets['referentiel'];
182
					break;
306
          break;
183
			}
307
      }
184
		} else if (isset($infos_projets['referentiel'])) {
308
    } else if ( isset( $infos_projets['referentiel'] ) ) {