Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2294 Rev 2313
Line 198... Line 198...
198
	}
198
	}
Line 199... Line 199...
199
 
199
 
200
	/**
200
	/**
201
	 * Modifie les liaisons aux mots clés pour chaque element lié, en supprimant et ajoutant seulement les
201
	 * Modifie les liaisons aux mots clés pour chaque element lié, en supprimant et ajoutant seulement les
202
	 * mots clés qui ont changé, sans toucher à ceux qui sont conservés. Ça évite de tout supprimer avant,
202
	 * mots clés qui ont changé, sans toucher à ceux qui sont conservés. Ça évite de tout supprimer avant,
-
 
203
	 * et ainsi de perdre la date de liaison des mots clés conservés.
-
 
204
	 * Si $supprimer est true, les mots clefs existant mais non spécifiés dans le POST seront supprimés,
203
	 * et ainsi de perdre la date de liaison des mots clés conservés. 
205
	 * sinon ils seront laissés en l'état.
204
	 */ 
206
	 */ 
205
	public function modifierLiaisonParTableaux($ids_mots_cles, $ids_elements_lies) {
207
	public function modifierLiaisonParTableaux($ids_mots_cles, $ids_elements_lies, $supprimer) {
Line 206... Line 208...
206
		$reussi = true;
208
		$reussi = true;
207
 
209
 
208
		foreach ($ids_elements_lies as $id_element_lie) {
210
		foreach ($ids_elements_lies as $id_element_lie) {
Line 219... Line 221...
219
				}
221
				}
220
			}
222
			}
Line 221... Line 223...
221
 
223
 
222
			// changements
224
			// changements
-
 
225
			$ids_mots_cles_ajoutes = array_diff($ids_mots_cles, $ids_mots_cles_actuels);
223
			$ids_mots_cles_ajoutes = array_diff($ids_mots_cles, $ids_mots_cles_actuels);
226
			if ($supprimer === true) {
-
 
227
				$ids_mots_cles_supprimes = array_diff($ids_mots_cles_actuels, $ids_mots_cles);
Line 224... Line 228...
224
			$ids_mots_cles_supprimes = array_diff($ids_mots_cles_actuels, $ids_mots_cles);
228
			}
225
 
229
 
226
			// insérer
230
			// insérer
227
			if (count($ids_mots_cles_ajoutes) > 0) {
231
			if (count($ids_mots_cles_ajoutes) > 0) {
Line 238... Line 242...
238
				$resultat = Cel::db()->executer($requete);
242
				$resultat = Cel::db()->executer($requete);
239
				$reussi = ($reussi && $resultat);
243
				$reussi = ($reussi && $resultat);
240
			}
244
			}
Line 241... Line 245...
241
 
245
 
242
			// supprimer
246
			// supprimer
243
			if (count($ids_mots_cles_supprimes) > 0) {
247
			if ($supprimer === true && count($ids_mots_cles_supprimes) > 0) {
244
				$clauses = array();
248
				$clauses = array();
245
				foreach ($ids_mots_cles_supprimes as $id_mot_cle) {
249
				foreach ($ids_mots_cles_supprimes as $id_mot_cle) {
246
					$idMotCleP = Cel::db()->proteger($id_mot_cle);
250
					$idMotCleP = Cel::db()->proteger($id_mot_cle);
247
					$clauses[] = "(id_element_lie = $idElementLieP AND id_mot_cle = $idMotCleP)";
251
					$clauses[] = "(id_element_lie = $idElementLieP AND id_mot_cle = $idMotCleP)";