Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1636 Rev 1648
Line 161... Line 161...
161
	 * Méthode appelée pour ajouter un élément.
161
	 * Méthode appelée pour ajouter un élément.
162
	 */
162
	 */
163
	public function createElement($params) {
163
	public function createElement($params) {
164
		// Identification de l'utilisateur
164
		// Identification de l'utilisateur
165
		list($id_utilisateur, $id_session) = $this->getIdentification($params);
165
		list($id_utilisateur, $id_session) = $this->getIdentification($params);
166
		
166
 
167
		// Contrôle du non détournement de l'utilisateur
167
		// Contrôle du non détournement de l'utilisateur
168
		if ($this->etreAutorise($id_utilisateur)) {
168
		if (!$this->etreAutorise($id_utilisateur)) {
-
 
169
			$this->envoyer();
-
 
170
			return;
-
 
171
		}
169
			try {
172
		try {
170
	   			// Vérification des tables à vraiment mettre à jour en fonction des données passées.
173
			// Vérification des tables à vraiment mettre à jour en fonction des données passées.
171
	   			$tables_a_modifier = $this->recupererTablesAModifier($params);
174
			$tables_a_modifier = $this->recupererTablesAModifier($params);
172
	   			reset($tables_a_modifier);
175
			reset($tables_a_modifier);
Line 173... Line 176...
173
	   			
176
	   			
174
	   			$id_structure = null;
177
			$id_structure = null;
175
				while (list($table_id, $table) = each($tables_a_modifier)) {
178
			while (list($table_id, $table) = each($tables_a_modifier)) {
176
		   			if (!is_null($table['champs'])) {
179
				if (is_null($table['champs'])) continue;
-
 
180
				if ($this->avoirCleComplete($table)) {
-
 
181
					$this->mettreAJourAvecCle($id_utilisateur, $id_session, $table_id, $table);
-
 
182
					continue;
-
 
183
				}
177
				   		if (!$this->avoirCleComplete($table)) {
184
 
178
		   					// Ajout des données à la table des données
185
				// Ajout des données à la table des données
179
		   					$id_structure = $this->ajouter($table);
186
				$id_structure = $this->ajouter($table);
-
 
187
				if ($id_structure === false) continue;
180
		   					if ($id_structure !== false) {
188
 
181
								$table['champs_valeurs_id']['cs_id_structure'] = $id_structure;
189
				$table['champs_valeurs_id']['cs_id_structure'] = $id_structure;
182
								$table['champs_valeurs_brut']['cs_id_structure'] = $id_structure;
190
				$table['champs_valeurs_brut']['cs_id_structure'] = $id_structure;
183
								$tables_a_modifier[122]['champs_valeurs_id']['csc_id_structure'] = $id_structure;
191
				$tables_a_modifier[122]['champs_valeurs_id']['csc_id_structure'] = $id_structure;
184
								$tables_a_modifier[122]['champs_valeurs_brut']['csc_id_structure'] = $id_structure;
192
				$tables_a_modifier[122]['champs_valeurs_brut']['csc_id_structure'] = $id_structure;
185
								$tables_a_modifier[122]['champs_valeurs_protege']['csc_id_structure'] = $this->bdd->quote($id_structure);
193
				$tables_a_modifier[122]['champs_valeurs_protege']['csc_id_structure'] = $this->bdd->quote($id_structure);
186
								$tables_a_modifier[123]['champs_valeurs_id']['csv_id_structure'] = $id_structure;
194
				$tables_a_modifier[123]['champs_valeurs_id']['csv_id_structure'] = $id_structure;
187
								$tables_a_modifier[123]['champs_valeurs_brut']['csv_id_structure'] = $id_structure;
195
				$tables_a_modifier[123]['champs_valeurs_brut']['csv_id_structure'] = $id_structure;
Line 188... Line 196...
188
								$tables_a_modifier[123]['champs_valeurs_protege']['csv_id_structure'] = $this->bdd->quote($id_structure);
196
				$tables_a_modifier[123]['champs_valeurs_protege']['csv_id_structure'] = $this->bdd->quote($id_structure);
189
								
197
								
190
								// Historisation (Ajout des méta-données)
198
				// Historisation (Ajout des méta-données)
191
								$etat = 1; // Ajout
199
				$etat = 1; // Ajout
192
								$cle = $this->recupererCle($table);
200
				$cle = $this->recupererCle($table);
Line 193... Line 201...
193
								$info = $this->creerXmlHisto($table['champs_valeurs_brut']);
201
				$info = $this->creerXmlHisto($table['champs_valeurs_brut']);
194
								$id_meta = $this->historiser($table_id, $cle, $info, $id_utilisateur, $etat, $id_session);
202
				$id_meta = $this->historiser($table_id, $cle, $info, $id_utilisateur, $etat, $id_session);
195
								
203
								
196
						   		// Liaison de la table des données à ses méta-données
204
				// Liaison de la table des données à ses méta-données
197
						   		$champ_meta = "{$table['prefixe']}_ce_meta";
205
				$champ_meta = "{$table['prefixe']}_ce_meta";
198
						   		$table['champs_valeurs_protege'] = array($champ_meta => $id_meta);
-
 
-
 
206
				$table['champs_valeurs_protege'] = array($champ_meta => $id_meta);
199
						   		$this->modifier($table);
207
				$this->modifier($table);
200
		   					}
-
 
201
			   			} else {
-
 
202
			   				$this->mettreAJourAvecCle($id_utilisateur, $id_session, $table_id, $table);
-
 
203
			   			}
208
			}
204
		   			}
-
 
205
				}
-
 
206
				$this->ajouterGuid($params['cpr_abreviation'], $id_structure);
209
 
-
 
210
			if(isset($params['cpr_abreviation']) && !empty($params['cpr_abreviation'])) {
-
 
211
				$this->ajouterGuid($params['cpr_abreviation'], $id_structure);
207
			} catch (PDOException $e) {
212
			}
Line 208... Line 213...
208
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
213
		} catch (PDOException $e) {
209
			}
214
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
Line 210... Line 215...
210
	   	}
215
		}
Line 217... Line 222...
217
	 */
222
	 */
218
	public function updateElement($uid, $params) {
223
	public function updateElement($uid, $params) {
219
		// Vérification de la présence des id passés par l'url
224
		// Vérification de la présence des id passés par l'url
220
		if (!isset($uid[0])) {
225
		if (!isset($uid[0])) {
221
			$this->messages[] = "Identifiant de structure manquant. Vous ne devriez pas avoir accès à ce service.";
226
			$this->messages[] = "Identifiant de structure manquant. Vous ne devriez pas avoir accès à ce service.";
-
 
227
			$this->envoyer();
222
		} else {
228
			return;
-
 
229
		}
-
 
230
 
223
			// Identification de l'utilisateur
231
		// Identification de l'utilisateur
224
			list($id_utilisateur, $id_session) = $this->getIdentification($params);
232
		list($id_utilisateur, $id_session) = $this->getIdentification($params);
225
			
-
 
226
			// Contrôle du non détournement de l'utilisateur
233
		// Contrôle du non détournement de l'utilisateur
227
			if ($this->etreAutorise($id_utilisateur)) {
234
		if (!$this->etreAutorise($id_utilisateur)) {
-
 
235
			$this->envoyer();
-
 
236
			return;
-
 
237
		}
228
		   		try {
238
		try {
229
		   			// Vérification des tables à vraiment mettre à jour en fonction des données passées.
239
			// Vérification des tables à vraiment mettre à jour en fonction des données passées.
230
		   			$tables_a_modifier = $this->recupererTablesAModifier($params);
240
			$tables_a_modifier = $this->recupererTablesAModifier($params);
Line 231... Line 241...
231
		   			
241
		   			
232
		   			// Pour chaque table du module nous lançons si nécessaire l'historisation puis la mise à jour
242
			// Pour chaque table du module nous lançons si nécessaire l'historisation puis la mise à jour
233
			   		foreach ($tables_a_modifier as $table_id => $table) {
243
			foreach ($tables_a_modifier as $table_id => $table) {
234
						$this->mettreAJourAvecCle($id_utilisateur, $id_session, $table_id, $table);
244
				$this->mettreAJourAvecCle($id_utilisateur, $id_session, $table_id, $table);
235
					}
245
			}
236
				} catch (PDOException $e) {
246
		} catch (PDOException $e) {
237
					$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
-
 
238
				}
-
 
239
		   	}
247
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
Line 240... Line 248...
240
		}
248
		}
241
				
249
				
242
		// Envoie sur la sortie standard
250
		// Envoie sur la sortie standard