* @copyright Copyright (c) 2011, Tela Botanica (accueil@tela-botanica.org) * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL * @version $Id$ */ class BiblioBota extends EfloreScript { public function executer() { try { $this->initialiserProjet('biblio_bota'); // Lancement de l'action demandée $cmd = $this->getParametre('a'); switch ($cmd) { case 'chargerTous' : $this->chargerStructureSql(); $this->chargerBiblioBota(); break; case 'supprimerTous' : $this->supprimerTous(); break; default : throw new Exception("Erreur : la commande '$cmd' n'existe pas!"); } } catch (Exception $e) { $this->traiterErreur($e->getMessage()); } } public function chargerBiblioBota() { $tablesCodes = array_keys(Config::get('tables')); foreach ($tablesCodes as $code) { echo "Chargement de la table : $code\n"; $this->chargerFichierTsvDansTable($code); } } private function chargerFichierTsvDansTable($code) { $chemin = Config::get('chemins.'.$code); $table = Config::get('tables.'.$code); $requete = "LOAD DATA INFILE '$chemin' ". "REPLACE INTO TABLE $table ". 'CHARACTER SET utf8 '. 'FIELDS '. " TERMINATED BY '\t' ". " ENCLOSED BY '\"' ". " ESCAPED BY '\\\' "; $this->getBdd()->requeter($requete); } private function supprimerTous() { $requete = "DROP TABLE IF EXISTS biblio_article, biblio_article_sauv, biblio_aut_saisie, ". "biblio_collection, biblio_domaine, biblio_domaine_lier, biblio_domaine_lier_sauv, biblio_fasc, ". "biblio_fasc_sauv, biblio_item, biblio_item_sauv, biblio_item_typlog, biblio_item_typphy, ". "biblio_link, biblio_link_categ, biblio_link_categoriser, biblio_link_sauv, biblio_media, ". "biblio_modif, biblio_serie, biblio_spy, biblio_str, biblio_str_sauve, biblio_str_type, ". "biblio_meta"; $this->getBdd()->requeter($requete); } } ?>