Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 291 → Rev 292

/trunk/scripts/modules/coste/coste.ini
New file
0,0 → 1,27
; Ajouter les nouvelles version à la suite dans versions et versionsDonnees.
versions="1_00"
versionsDonnees="1.00"
dossierTsv = "{ref:dossierDonneesEflore}chorodep/{ref:versionDonnees}/"
dossierTsvTpl = "{ref:dossierDonneesEflore}coste/%s/"
dossierSql = "{ref:dossierDonneesEflore}coste/"
 
[tables]
costeMeta = "coste_meta"
coste = "coste_v{ref:version}"
costeTpl = "coste_v%s"
 
[fichiers]
structureSql = "coste.sql"
structureSqlVersion = "coste_v{ref:version}.sql"
structureSqlVersionTpl = "coste_v%s.sql"
coste = "coste_v{ref:version}.tsv"
costeTpl = "coste_v%s.tsv"
costeWikiniTpl = "coste_wikini_v%s.sql"
 
[chemins]
structureSql = "{ref:dossierSql}{ref:fichiers.structureSql}"
structureSqlVersion = "{ref:dossierTsv}{ref:fichiers.structureSqlVersion}"
structureSqlVersionTpl = "{ref:dossierTsvTpl}{ref:fichiers.structureSqlVersionTpl}"
coste = "{ref:dossierTsv}{ref:fichiers.coste}"
costeTpl = "{ref:dossierTsvTpl}{ref:fichiers.costeTpl}"
costeWikiniTpl = "{ref:dossierTsvTpl}{ref:fichiers.costeWikiniTpl}"
/trunk/scripts/modules/coste/CreationProjetCoste.php
33,7 → 33,6
}
 
public function executer() {
 
$this->initialiser();
$cmd = $this->getParametre('a');
switch ($cmd) {
/trunk/scripts/modules/coste/DescriptionSp.php
80,7 → 80,7
 
 
private function reinitialiserAutoIncrement($table) {
$requete_max_id = 'SELECT max(id) from '.$table;
$requete_max_id = 'SELECT max(id) FROM '.$table;
$id_max = $this->bdd->recuperer($requete_max_id);
$id_max = $id_max['max(id)'];
$id_max = $id_max+1;
652,7 → 652,7
$donnees_2[$key] = $donn;
}
}
$req = 'INSERT INTO coste_v0_2 values ('.$num_nom.', '.implode(', ', $donnees_2).')';
$req = 'INSERT INTO coste_v0_2 VALUES ('.$num_nom.', '.implode(', ', $donnees_2).')';
$res = $this->bdd->requeter($req);
 
if ($res) {
/trunk/scripts/modules/coste/Coste.php
New file
0,0 → 1,137
<?php
//declare(encoding='UTF-8');
/**
* Exemple de lancement du script : :
* /opt/lampp/bin/php cli.php coste -a chargerTous
*
* @category php 5.2
* @package eFlore/Scripts
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2012, 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 Coste extends EfloreScript {
 
public function executer() {
try {
$this->initialiserProjet('coste');
 
// Lancement de l'action demandée
$cmd = $this->getParametre('a');
switch ($cmd) {
case 'chargerTous' :
$this->chargerStructureSql();
$this->chargerVersions();
break;
case 'chargerStructureSql' :
$this->chargerStructureSql();
break;
case 'chargerVersions' :
$this->chargerVersions();
break;
case 'supprimerTous' :
$this->supprimerTous();
break;
case 'creerV1' :
$this->creerVersion1();
break;
case 'nettoyerV1' :
$this->nettoyerVersion1();
break;
default :
throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
}
} catch (Exception $e) {
$this->traiterErreur($e->getMessage());
}
}
 
private function chargerVersions() {
$versions = explode(',', Config::get('versions'));
$versionsDonnees = explode(',', Config::get('versionsDonnees'));
foreach ($versions as $id => $version) {
$versionDonnees = $versionsDonnees[$id];
$this->chargerStructureSqlVersion($versionDonnees, $version);
$this->chargerIndexVersion($versionDonnees, $version);
$this->chargerDumpWikiniVersion($versionDonnees, $version);
}
}
 
private function chargerStructureSqlVersion($versionDonnees, $version) {
$fichierSqlTpl = Config::get('chemins.structureSqlVersionTpl');
$fichierSql = sprintf($fichierSqlTpl, $versionDonnees, $version);
$contenuSql = $this->recupererContenu($fichierSql);
$this->executerScripSql($contenuSql);
}
 
private function chargerIndexVersion($versionDonnees, $version) {
$fichierTsvTpl = Config::get('chemins.costeTpl');
$fichierTsv = sprintf($fichierTsvTpl, $versionDonnees, $version);
$tableTpl = Config::get('tables.costeTpl');
$table = sprintf($tableTpl, $version);
$requete = "LOAD DATA INFILE '$fichierTsv' ".
"REPLACE INTO TABLE $table ".
'CHARACTER SET utf8 '.
'FIELDS '.
" TERMINATED BY '\t' ".
" ENCLOSED BY '' ".
" ESCAPED BY '\\\' ".
'IGNORE 1 LINES ';
$this->getBdd()->requeter($requete);
}
 
private function chargerDumpWikiniVersion($versionDonnees, $version) {
$fichierWikiTpl = Config::get('chemins.costeWikiniTpl');
$fichierDump = sprintf($fichierWikiTpl, $versionDonnees, $version);
$contenuSql = $this->recupererContenu($fichierDump);
$this->executerScripSql($contenuSql);
}
 
private function supprimerTous() {
$requete = "DROP TABLE coste_meta, ".
" coste_acls, coste_links, coste_pages, coste_referrers, coste_triples, coste_users, ".
" coste_v1_00 ";
$this->getBdd()->requeter($requete);
}
 
private function nettoyerVersion1() {
$requete = "DROP TABLE coste_correspondance_bdnff, coste_images_auteur_correspondance_bdnff, ".
" coste_images_correspondance_bdnff, coste_index, coste_index_general";
$this->getBdd()->requeter($requete);
}
 
private function creerVersion1() {
$this->chargerStructureSqlVersion('0.00', '0_00');
$this->chargerCosteImagesAuteurCorrespondanceBdnff();
$this->chargerCosteCorrespondanceBdnff();
}
 
private function chargerCosteImagesAuteurCorrespondanceBdnff() {
$fichierTsv = sprintf(Config::get('dossierTsvTpl'), '0.00').'coste_images_auteur_correspondance_bdnff.tsv';
$requete = "LOAD DATA INFILE '$fichierTsv' ".
"REPLACE INTO TABLE coste_images_auteur_correspondance_bdnff ".
'CHARACTER SET utf8 '.
'FIELDS '.
" TERMINATED BY '\t' ".
" ENCLOSED BY '\"' ".
" ESCAPED BY '\\\' ".
'IGNORE 1 LINES ';
$this->getBdd()->requeter($requete);
}
 
private function chargerCosteCorrespondanceBdnff() {
$fichierTsv = sprintf(Config::get('dossierTsvTpl'), '0.00').'coste_images_correspondance_bdnff.tsv';
$requete = "LOAD DATA INFILE '$fichierTsv' ".
"REPLACE INTO TABLE coste_images_correspondance_bdnff ".
'CHARACTER SET utf8 '.
'FIELDS '.
" TERMINATED BY '\t' ".
" ENCLOSED BY '' ".
" ESCAPED BY '\\\' ".
'IGNORE 1 LINES ';
$this->getBdd()->requeter($requete);
}
}
?>