1855 |
delphine |
1 |
<?php
|
|
|
2 |
/**
|
|
|
3 |
* Exemple lancement:
|
|
|
4 |
* /opt/lampp/bin/php -d memory_limit=3500M cli.php import -n
|
|
|
5 |
*/
|
|
|
6 |
class Import extends Script {
|
|
|
7 |
private $bdd = null;
|
|
|
8 |
private $auteurs = array();
|
|
|
9 |
protected $parametres_autorises = array(
|
|
|
10 |
'-n' => array(true, false, 'Nom du fichier à importer.'));
|
|
|
11 |
|
|
|
12 |
|
|
|
13 |
public function __construct($script_nom, $parametres) {
|
|
|
14 |
parent::__construct($script_nom, $parametres);
|
|
|
15 |
$this->bdd = new Bdd();
|
|
|
16 |
}
|
|
|
17 |
|
|
|
18 |
|
|
|
19 |
public function executer() {
|
|
|
20 |
try {
|
|
|
21 |
$this->initialiserScript();
|
|
|
22 |
$cmd = $this->getParametre('a');
|
|
|
23 |
$fichier = $this->getParametre('n');
|
|
|
24 |
switch ($cmd) {
|
|
|
25 |
case "import" :
|
|
|
26 |
//testerauteur
|
|
|
27 |
$this->charger($fichier); break;
|
|
|
28 |
default :
|
|
|
29 |
$this->traiterErreur('Erreur : la commande "%s" n\'existe pas!', array($cmd));
|
|
|
30 |
}
|
|
|
31 |
} catch (Exception $erreur) {
|
|
|
32 |
$this->traiterErreur($erreur->getMessage());
|
|
|
33 |
}
|
|
|
34 |
}
|
|
|
35 |
|
|
|
36 |
private function initialiserScript() {
|
|
|
37 |
$fichierIni = $this->getScriptChemin().'import.ini';
|
|
|
38 |
if (file_exists($fichierIni)) {
|
|
|
39 |
Config::charger($fichierIni);
|
|
|
40 |
} else {
|
|
|
41 |
$erreur = "Veuillez configurer le projet en créant le fichier 'communes.ini' ".
|
|
|
42 |
"dans le dossier du module de script du projet à partir du fichier 'config.defaut.ini'.";
|
|
|
43 |
throw new Exception($erreur);
|
|
|
44 |
}
|
|
|
45 |
}
|
|
|
46 |
|
|
|
47 |
private function charger($fichier) {
|
|
|
48 |
// vérifier si fichier existe
|
|
|
49 |
// charger fichier
|
|
|
50 |
// vérifier séparateur
|
|
|
51 |
// vérifier nom colonne
|
|
|
52 |
// vérifier si colonne "titre" et "auteur" sont bien présent
|
|
|
53 |
// modifier champ editeur ajouter AUTRES##
|
|
|
54 |
// vérifier si auteurs sont déjà présents et récupérer le numéro (publi_a_pers)
|
|
|
55 |
// créer champ nom complet
|
|
|
56 |
// faire un insert
|
|
|
57 |
|
|
|
58 |
$chemin = Config::get('dossiertmp').$fichier;
|
|
|
59 |
$table = Config::get('tables.publication');
|
|
|
60 |
$requete = "LOAD DATA INFILE '$chemin' ".
|
|
|
61 |
" INTO TABLE $table ".
|
|
|
62 |
'CHARACTER SET utf8 '.
|
|
|
63 |
'FIELDS '.
|
|
|
64 |
" TERMINATED BY ';' ".
|
|
|
65 |
" ENCLOSED BY '\"' ".
|
|
|
66 |
" ESCAPED BY '\\\' ".
|
|
|
67 |
'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)';
|
|
|
68 |
$this->bdd->requeter($requete);
|
|
|
69 |
}
|
|
|
70 |
|
|
|
71 |
}
|
|
|
72 |
?>
|