Subversion Repositories eFlore/Applications.coel

Rev

Rev 1856 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
?>