Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1854 → Rev 1855

/trunk/scripts/modules/import/Import.php
New file
0,0 → 1,72
<?php
/**
* Exemple lancement:
* /opt/lampp/bin/php -d memory_limit=3500M cli.php import -n
*/
class Import extends Script {
private $bdd = null;
private $auteurs = array();
protected $parametres_autorises = array(
'-n' => array(true, false, 'Nom du fichier à importer.'));
public function __construct($script_nom, $parametres) {
parent::__construct($script_nom, $parametres);
$this->bdd = new Bdd();
}
public function executer() {
try {
$this->initialiserScript();
$cmd = $this->getParametre('a');
$fichier = $this->getParametre('n');
switch ($cmd) {
case "import" :
//testerauteur
$this->charger($fichier); break;
default :
$this->traiterErreur('Erreur : la commande "%s" n\'existe pas!', array($cmd));
}
} catch (Exception $erreur) {
$this->traiterErreur($erreur->getMessage());
}
}
private function initialiserScript() {
$fichierIni = $this->getScriptChemin().'import.ini';
if (file_exists($fichierIni)) {
Config::charger($fichierIni);
} else {
$erreur = "Veuillez configurer le projet en créant le fichier 'communes.ini' ".
"dans le dossier du module de script du projet à partir du fichier 'config.defaut.ini'.";
throw new Exception($erreur);
}
}
 
private function charger($fichier) {
// vérifier si fichier existe
// charger fichier
// vérifier séparateur
// vérifier nom colonne
// vérifier si colonne "titre" et "auteur" sont bien présent
// modifier champ editeur ajouter AUTRES##
// vérifier si auteurs sont déjà présents et récupérer le numéro (publi_a_pers)
// créer champ nom complet
// faire un insert
$chemin = Config::get('dossiertmp').$fichier;
$table = Config::get('tables.publication');
$requete = "LOAD DATA INFILE '$chemin' ".
" INTO TABLE $table ".
'CHARACTER SET utf8 '.
'FIELDS '.
" TERMINATED BY ';' ".
" ENCLOSED BY '\"' ".
" ESCAPED BY '\\\' ".
'IGNORE 0 LINES (`cpu_ce_truk_editeur`, `cpu_collection`, `cpu_indication_nvt`, `cpu_fascicule`, `cpu_date_parution`, `cpu_truk_pages`, `cpu_titre`, `cpu_fmt_auteur`, cpu_resume_motcle)';
$this->bdd->requeter($requete);
}
 
}
?>
/trunk/scripts/modules/import/import.ini
New file
0,0 → 1,17
dossiertmp = "/home/delphine/web/tmp/"
 
[tables]
bdd_nom_coel = "tb_coel"
publication = "coel_publication"
auteur = "coel_personne"
 
[champs]
editeur = `cpu_ce_truk_editeur`,
intitule_revue = `cpu_collection`
serie_tome = `cpu_indication_nvt`
fascicule = `cpu_fascicule`
annee = `cpu_date_parution`
pages = `cpu_truk_pages`
titre = `cpu_titre`
auteur = `cpu_fmt_auteur`
mots_cles = cpu_resume_motcle