Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1677 → Rev 1678

/trunk/jrest/services/ImportXLS.php
72,7 → 72,7
function __anonyme_6() { return NULL; }
 
class ImportXLS extends Cel {
static function __anonyme_4($item, $key, $obj) { $item = $obj->quoteNonNull(trim($item)); }
static function __anonyme_4(&$item, $key, $obj) { $item = $obj->quoteNonNull(trim($item)); }
 
static $ordre_BDD = Array(
"ce_utilisateur",
273,7 → 273,7
$donnees = array();
foreach($enregistrements as $e) $donnees = array_merge($donnees, array_values($e));
 
/* debug ici: */ echo $sql_pattern . "\n"; var_dump($enregistrements, $donnees); die;
/* debug ici: echo $sql_pattern . "\n"; var_dump($enregistrements, $donnees); die;*/
 
$stmt->execute($donnees);
 
293,9 → 293,10
restore_error_handler();
 
if($this->bilan) echo implode("\n", $this->bilan) . "\n";
$summary = sprintf("%d observation(s) ajoutée(s)\n%d image(s) attachée(s)",
$summary = sprintf("%d observation(s) ajoutée(s)\n%d image(s) attachée(s)\n%d mot(s)-clé ajouté(s) [TODO]\n",
$obs_ajouts,
$nb_images_ajoutees);
$nb_images_ajoutees,
$nb_mots_cle_ajoutes);
 
die("$summary");
}
302,7 → 303,7
 
static function detectionEntete($entete) {
$colonnes_reconnues = Array();
$cols = FormateurGroupeColonne::nomEnsembleVersListeColonnes('standard'); // ,avance
$cols = FormateurGroupeColonne::nomEnsembleVersListeColonnes('standard,avance');
foreach($entete as $k => $v) {
$entete_simple = iconv('UTF-8', 'ASCII//TRANSLIT', strtolower(trim($v)));
foreach($cols as $col) {
347,6 → 348,7
$enregistrement = NULL;
$enregistrements = Array();
$toutes_images = Array();
$tous_mots_cle = Array();
 
foreach($lignes as $ligne) {
//$ligne = array_filter($ligne, function($cell) { return !is_null($cell); });
379,7 → 381,6
// mais cel_mots_cles_obs fait foi.
// XXX: postponer l'ajout de ces informations dans cel_obs *après* l'insertion effective
// des records dans cel_mots_cles_obs ?
$last[C_MOTS_CLES_TEXTE] = $last['_mots_cle']['inline_cel_obs'];
unset($last['_mots_cle']);
}
 
402,7 → 403,10
 
 
static function stockerMotsCle($cel, $enregistrements, $tous_mots_cle, $lastid) {
return count($tous_mots_cle);
$c = 0;
// debug: var_dump($tous_mots_cle);die;
foreach($tous_mots_cle as $v) $c += count($v['mots_cle']['to_insert']);
return $c;
}
 
static function stockerImages($cel, $enregistrements, $toutes_images, $lastid) {
524,14 → 528,15
}
 
static function traiterMotsCle($str, $cel, &$enregistrement) {
$liste_mots_cle = array_filter(explode(",", $str));
array_walk($liste_mots_cle, array(__CLASS__, '__anonyme_4'), $cel);
$liste_mots_cle = $liste_mots_cle_recherche = array_map("trim", array_unique(array_filter(explode(",", $str))));
array_walk($liste_mots_cle_recherche, array(__CLASS__, '__anonyme_4'), $cel);
 
// TODO!!!! remplace > (pour les tests uniquement) par un = et supprimer le group by mot_cle
$requete = sprintf("SELECT id_mot_cle_obs, mot_cle FROM cel_mots_cles_obs WHERE id_utilisateur > %d ".
"AND mot_cle IN (\"%s\") ".
"AND mot_cle IN (%s) ".
"GROUP BY mot_cle",
$cel->id_utilisateur,
implode('","', $liste_mots_cle));
implode(',', $liste_mots_cle_recherche));
 
$resultat_sql = $cel->requeter($requete);
if(!$resultat_sql) return;
539,9 → 544,9
$resultat = array();
foreach($resultat_sql as $v) $resultat[$v['id_mot_cle_obs']] = $v['mot_cle'];
 
$enregistrement['_mots_cle'] = array("inline_cel_obs" => implode(',', $liste_mots_cle),
"existing" => $resultat,
"to_insert" => $liste_mots_cle);
$enregistrement['mots_cles_texte'] = implode(',', $liste_mots_cle);
$enregistrement['_mots_cle'] = array("existing" => $resultat,
"to_insert" => array_diff($liste_mots_cle, $resultat));
}