Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1677 Rev 1678
Line 70... Line 70...
70
function __anonyme_3($cell) { return !is_null($cell); };
70
function __anonyme_3($cell) { return !is_null($cell); };
71
function __anonyme_5($item) { return is_null($item) ? '?' : $item; }
71
function __anonyme_5($item) { return is_null($item) ? '?' : $item; }
72
function __anonyme_6() { return NULL; }
72
function __anonyme_6() { return NULL; }
Line 73... Line 73...
73
 
73
 
74
class ImportXLS extends Cel  {
74
class ImportXLS extends Cel  {
Line 75... Line 75...
75
	static function __anonyme_4($item, $key, $obj) { $item = $obj->quoteNonNull(trim($item)); }
75
	static function __anonyme_4(&$item, $key, $obj) { $item = $obj->quoteNonNull(trim($item)); }
76
 
76
 
77
	static $ordre_BDD = Array(
77
	static $ordre_BDD = Array(
78
		"ce_utilisateur",
78
		"ce_utilisateur",
Line 271... Line 271...
271
			$this->bdd->beginTransaction();
271
			$this->bdd->beginTransaction();
272
			$stmt = $this->bdd->prepare($sql_pattern);
272
			$stmt = $this->bdd->prepare($sql_pattern);
273
			$donnees = array();
273
			$donnees = array();
274
			foreach($enregistrements as $e) $donnees = array_merge($donnees, array_values($e));
274
			foreach($enregistrements as $e) $donnees = array_merge($donnees, array_values($e));
Line 275... Line 275...
275
 
275
 
Line 276... Line 276...
276
			/* debug ici: */ echo $sql_pattern . "\n"; var_dump($enregistrements, $donnees); die;
276
			/* debug ici: echo $sql_pattern . "\n"; var_dump($enregistrements, $donnees); die;*/
Line 277... Line 277...
277
 
277
 
278
			$stmt->execute($donnees);
278
			$stmt->execute($donnees);
Line 291... Line 291...
291
		}
291
		}
Line 292... Line 292...
292
 
292
 
Line 293... Line 293...
293
		restore_error_handler();
293
		restore_error_handler();
294
 
294
 
295
		if($this->bilan) echo implode("\n", $this->bilan) . "\n";
295
		if($this->bilan) echo implode("\n", $this->bilan) . "\n";
296
 		$summary = sprintf("%d observation(s) ajoutée(s)\n%d image(s) attachée(s)",
296
 		$summary = sprintf("%d observation(s) ajoutée(s)\n%d image(s) attachée(s)\n%d mot(s)-clé ajouté(s) [TODO]\n",
-
 
297
						   $obs_ajouts,
Line 297... Line 298...
297
						   $obs_ajouts,
298
						   $nb_images_ajoutees,
298
						   $nb_images_ajoutees);
299
						   $nb_mots_cle_ajoutes);
Line 299... Line 300...
299
 
300
 
300
		die("$summary");
301
		die("$summary");
301
	}
302
	}
302
 
303
 
303
	static function detectionEntete($entete) {
304
	static function detectionEntete($entete) {
304
		$colonnes_reconnues = Array();
305
		$colonnes_reconnues = Array();
305
		$cols = FormateurGroupeColonne::nomEnsembleVersListeColonnes('standard'); // ,avance
306
		$cols = FormateurGroupeColonne::nomEnsembleVersListeColonnes('standard,avance');
306
		foreach($entete as $k => $v) {
307
		foreach($entete as $k => $v) {
Line 345... Line 346...
345
	 */
346
	 */
346
	static function chargerLignes($cel, $lignes, $colonnes_statiques, &$dernier_ordre) {
347
	static function chargerLignes($cel, $lignes, $colonnes_statiques, &$dernier_ordre) {
347
		$enregistrement = NULL;
348
		$enregistrement = NULL;
348
		$enregistrements = Array();
349
		$enregistrements = Array();
349
		$toutes_images = Array();
350
		$toutes_images = Array();
-
 
351
		$tous_mots_cle = Array();
Line 350... Line 352...
350
 
352
 
351
		foreach($lignes as $ligne) {
353
		foreach($lignes as $ligne) {
352
			//$ligne = array_filter($ligne, function($cell) { return !is_null($cell); });
354
			//$ligne = array_filter($ligne, function($cell) { return !is_null($cell); });
353
			//if(!$ligne) continue;
355
			//if(!$ligne) continue;
Line 377... Line 379...
377
											 "obs_pos" => $pos);
379
											 "obs_pos" => $pos);
378
					// la version inlinée des mots est enregistrées dans cel_obs
380
					// la version inlinée des mots est enregistrées dans cel_obs
379
					// mais cel_mots_cles_obs fait foi.
381
					// mais cel_mots_cles_obs fait foi.
380
					// XXX: postponer l'ajout de ces informations dans cel_obs *après* l'insertion effective
382
					// XXX: postponer l'ajout de ces informations dans cel_obs *après* l'insertion effective
381
					// des records dans cel_mots_cles_obs ?
383
					// des records dans cel_mots_cles_obs ?
382
					$last[C_MOTS_CLES_TEXTE] = $last['_mots_cle']['inline_cel_obs'];
-
 
383
					unset($last['_mots_cle']);
384
					unset($last['_mots_cle']);
384
				}
385
				}
Line 385... Line 386...
385
 
386
 
386
				$dernier_ordre++;
387
				$dernier_ordre++;
Line 400... Line 401...
400
		}
401
		}
401
	}
402
	}
Line 402... Line 403...
402
 
403
 
-
 
404
 
403
 
405
	static function stockerMotsCle($cel, $enregistrements, $tous_mots_cle, $lastid) {
-
 
406
		$c = 0;
-
 
407
		// debug: var_dump($tous_mots_cle);die;
404
	static function stockerMotsCle($cel, $enregistrements, $tous_mots_cle, $lastid) {
408
		foreach($tous_mots_cle as $v) $c += count($v['mots_cle']['to_insert']);
Line 405... Line 409...
405
		return count($tous_mots_cle);
409
		return $c;
406
	}
410
	}
407
 
411
 
Line 522... Line 526...
522
 
526
 
523
		if($resultat) $enregistrement['_images'] = $resultat;
527
		if($resultat) $enregistrement['_images'] = $resultat;
Line 524... Line 528...
524
	}
528
	}
525
 
529
 
526
	static function traiterMotsCle($str, $cel, &$enregistrement) {
530
	static function traiterMotsCle($str, $cel, &$enregistrement) {
-
 
531
		$liste_mots_cle = $liste_mots_cle_recherche = array_map("trim", array_unique(array_filter(explode(",", $str))));
527
		$liste_mots_cle = array_filter(explode(",", $str));
532
		array_walk($liste_mots_cle_recherche, array(__CLASS__, '__anonyme_4'), $cel);
528
		array_walk($liste_mots_cle, array(__CLASS__, '__anonyme_4'), $cel);
533
 
529
		// TODO!!!! remplace > (pour les tests uniquement) par un = et supprimer le group by mot_cle
534
		// TODO!!!! remplace > (pour les tests uniquement) par un = et supprimer le group by mot_cle
530
		$requete = sprintf("SELECT id_mot_cle_obs, mot_cle FROM cel_mots_cles_obs WHERE id_utilisateur > %d ".
535
		$requete = sprintf("SELECT id_mot_cle_obs, mot_cle FROM cel_mots_cles_obs WHERE id_utilisateur > %d ".
531
						   "AND mot_cle IN (\"%s\") ".
536
						   "AND mot_cle IN (%s) ".
532
						   "GROUP BY mot_cle",
537
						   "GROUP BY mot_cle",
Line 533... Line 538...
533
						   $cel->id_utilisateur,
538
						   $cel->id_utilisateur,
534
						   implode('","', $liste_mots_cle));
539
						   implode(',', $liste_mots_cle_recherche));
Line 535... Line 540...
535
 
540
 
536
		$resultat_sql = $cel->requeter($requete);
541
		$resultat_sql = $cel->requeter($requete);
Line 537... Line 542...
537
		if(!$resultat_sql) return;
542
		if(!$resultat_sql) return;
538
 
543
 
539
		$resultat = array();
544
		$resultat = array();
540
		foreach($resultat_sql as $v) $resultat[$v['id_mot_cle_obs']] = $v['mot_cle'];
545
		foreach($resultat_sql as $v) $resultat[$v['id_mot_cle_obs']] = $v['mot_cle'];
Line 541... Line 546...
541
 
546