Subversion Repositories eFlore/Applications.coel

Rev

Rev 1733 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1733 Rev 1765
Line 43... Line 43...
43
		// Nour recherchons le type de requête demandé
43
		// Nour recherchons le type de requête demandé
44
		$type = $param[0];
44
		$type = $param[0];
Line 45... Line 45...
45
				 
45
				 
46
		if ($type == '*' || is_numeric($type)) {
46
		if ($type == '*' || is_numeric($type)) {
47
			// Pré traitement des paramêtres
47
			// Pré traitement des paramêtres
48
			$p = $this->traiterParametresUrl(array('id_projet', 'id_structure', 'recherche'), $param);
48
			$p = $this->traiterParametresUrl(array('id_structure', 'recherche'), $param);
49
			$info = $this->getElementParDefaut($p);
49
			$info = $this->getElementParDefaut($p);
50
		} else {
50
		} else {
51
			$methode = 'getElement'.$type;
51
			$methode = 'getElement'.$type;
52
			if (method_exists($this, $methode)) {
52
			if (method_exists($this, $methode)) {
Line 63... Line 63...
63
	
63
	
64
	/**
64
	/**
65
	 * Méthode par défaut pour garder la compatibilité avec Coel.
65
	 * Méthode par défaut pour garder la compatibilité avec Coel.
66
	 * Appelée avec les paramêtres d'url suivant :
66
	 * Appelée avec les paramêtres d'url suivant :
67
	 * /CoelStructure/_/_/_
67
	 * /CoelStructure/_/_/_
68
	 * ou les _ représentent dans l'ordre : id_projet, id_structure et nom
68
	 * ou les _ représentent dans l'ordre : id_structure et nom
69
	 * Si un des paramêtres est abscent, il prendre la valeur *
69
	 * Si un des paramêtres est abscent, il prendre la valeur *
70
	 */
70
	 */
71
	public function getElementParDefaut($p) {
71
	public function getElementParDefaut($p) {
72
		// Initialisation des variables
72
		// Initialisation des variables
Line 73... Line 73...
73
		$info = array();
73
		$info = array();
74
 
-
 
75
		$whereClause = array();
74
 
Line 76... Line 75...
76
		if(isset($p['id_projet'])) $whereClause[] = "cs_ce_projet = {$p['id_projet']}";
75
		$whereClause = array();
77
		if(isset($p['id_structure'])) $whereClause[] = "cs_id_structure = {$p['id_structure']}";
76
		if(isset($p['id_structure'])) $whereClause[] = "cs_id_structure = {$p['id_structure']}";
78
 
77
 
Line 137... Line 136...
137
	 * ou type peut valoir: FRD (= département français) 
136
	 * ou type peut valoir: FRD (= département français) 
138
	 * Si un des paramêtres est abscent, il prendre la valeur *
137
	 * Si un des paramêtres est abscent, il prendre la valeur *
139
	 */
138
	 */
140
	public function getElementParZoneGeo($param) {
139
	public function getElementParZoneGeo($param) {
141
		// Pré traitement des paramêtres
140
		// Pré traitement des paramêtres
142
		$p = $this->traiterParametresUrl(array('type', 'projets'), $param);
141
		$p = $this->traiterParametresUrl(array('type'), $param);
143
		if (!isset($p['type'])) {
142
		if (!isset($p['type'])) {
144
			$this->messages[] = "Il est obligatoire d'indiquer type de recherche pour utiliser ce service.";
143
			$this->messages[] = "Il est obligatoire d'indiquer type de recherche pour utiliser ce service.";
145
			return array();
144
			return array();
146
		}
145
		}
Line 151... Line 150...
151
			'		SUBSTRING( cs_code_postal FROM 1 FOR 3 ), '.
150
			'		SUBSTRING( cs_code_postal FROM 1 FOR 3 ), '.
152
			'		SUBSTRING( cs_code_postal FROM 1 FOR 2 ) ) AS id, '.
151
			'		SUBSTRING( cs_code_postal FROM 1 FOR 2 ) ) AS id, '.
153
			'	COUNT( cs_id_structure ) AS nbre '.
152
			'	COUNT( cs_id_structure ) AS nbre '.
154
			'FROM coel_structure '.
153
			'FROM coel_structure '.
155
			'WHERE cs_ce_truk_pays = 2654 '.
154
			'WHERE cs_ce_truk_pays = 2654 '.
156
			(isset($p['projets']) ? "	AND cs_ce_projet IN ({$p['projets']}) " : '').
-
 
157
			'GROUP BY IF ( SUBSTRING( cs_code_postal FROM 1 FOR 2 ) >= 96, '.
155
			'GROUP BY IF ( SUBSTRING( cs_code_postal FROM 1 FOR 2 ) >= 96, '.
158
			'	SUBSTRING( cs_code_postal FROM 1 FOR 3 ), '.
156
			'	SUBSTRING( cs_code_postal FROM 1 FOR 3 ), '.
159
			'	SUBSTRING( cs_code_postal FROM 1 FOR 2 ) ) '.
157
			'	SUBSTRING( cs_code_postal FROM 1 FOR 2 ) ) '.
160
			'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby  : 'id ASC').' ';
158
			'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby  : 'id ASC').' ';
Line 293... Line 291...
293
					continue; // ne pas mettre à jour sans contrainte de WHERE
291
					continue; // ne pas mettre à jour sans contrainte de WHERE
294
				}
292
				}
295
				$this->mettreAJourAvecCle($id_utilisateur, $id_session, $table_id, $table);
293
				$this->mettreAJourAvecCle($id_utilisateur, $id_session, $table_id, $table);
296
			}
294
			}
297
		} catch (PDOException $e) {
295
		} catch (PDOException $e) {
298
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
296
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
299
		}
297
		}
Line 300... Line 298...
300
 
298
 
Line 301... Line 299...
301
		// Envoie sur la sortie standard
299
		// Envoie sur la sortie standard
Line 398... Line 396...
398
			}
396
			}
399
		}
397
		}
400
		return FALSE;
398
		return FALSE;
401
	}
399
	}
Line 402... Line 400...
402
	
400
	
403
	private function ajouterGuid($abr_projet, $id_structure) {
401
	private function ajouterGuid($id_structure) {
404
		if ($id_structure !== false) {
402
		if ($id_structure !== false) {
405
			$table_guid = $this->tables[120];
403
			$table_guid = $this->tables[120];
406
			$table_guid['champs_valeurs_id']['cs_id_structure'] = $id_structure;
404
			$table_guid['champs_valeurs_id']['cs_id_structure'] = $id_structure;
407
			$table_guid['champs_valeurs_protege']['cs_guid'] = $this->bdd->quote(sprintf($this->config['coel']['guid'], $abr_projet, 'str'.$id_structure));
405
			$table_guid['champs_valeurs_protege']['cs_guid'] = $this->bdd->quote(sprintf($this->config['coel']['guid'], 'str'.$id_structure));
408
			$this->modifier($table_guid);
406
			$this->modifier($table_guid);
409
		}
407
		}
410
	}
408
	}