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)); |
} |
|
|