45,6 → 45,7 |
// renvoi du résultat vers la sortie php |
// car le script est surtout destiné à être appelé par un web service |
echo $resultat; |
exit; |
} |
|
private function initialiserScript() { |
137,6 → 138,7 |
private function stockerAuteursPourLiaisons($infos_auteurs, $nom_complet_publication) { |
// Découpage des différents auteurs |
$auteurs_tab = explode(',', $infos_auteurs); |
$auteurs_tab = array_filter($auteurs_tab); |
foreach($auteurs_tab as $auteur) { |
// si les infos auteurs sont un tableau dans le cache alors son id existe bien en base de données |
if(is_array($this->cache_auteur[$auteur])) { |
227,13 → 229,25 |
} |
|
private function insererPublications(&$colonnes, &$publications) { |
|
// Une insertion par tranche de 1000 permet d'insérer sans avoir de mysql |
// timeout qui nécessite de réveiller la connexion de temps en temps. |
// TODO: transactions ? |
$tranches_publis = array_chunk($publications, 1000); |
$nb_publis_inserees = 0; |
|
foreach($tranches_publis as $tranche) { |
|
$requete = "INSERT INTO ".$this->table_publication." ". |
"(".implode(',', $colonnes).") ". |
"VALUES ".implode(","."\n", $publications)."\n"; |
"VALUES ".implode(","."\n", $tranche)."\n"; |
|
return $this->bdd->executer($requete); |
$nb_publis_inserees += $this->bdd->executer($requete); |
} |
|
return $nb_publis_inserees; |
} |
|
private function traiterChamp($valeur, $role) { |
switch($role) { |
case 'auteur': |
251,8 → 265,10 |
$auteurs_fmt = array(); |
$auteurs_tab = explode(',', $auteur_intitule); |
foreach($auteurs_tab as $auteur) { |
if(!empty(trim($auteur))) { |
$auteurs_fmt[] = $this->obtenirInfosAuteur($auteur); |
} |
} |
|
return implode(', ', $auteurs_fmt); |
} |