New file |
0,0 → 1,120 |
<?php |
/** Exemple lancement: |
* /opt/lampp/bin/php -d memory_limit=3500M ~/web/eflore-projets/scripts/cli.php moissonnage -a chargerTous -n baznat |
* Options : |
* -n : nom du projet |
*/ |
|
class Moissonnage extends EfloreScript { |
private $projet = ""; |
protected $parametres_autorises = array( |
'-n' => array(true, true, 'Préciser le nom du dataset que vous souhaitez ajouter ex. baznat, naturedugard-flore')); |
|
public function executer() { |
// Lancement de l'action demandée |
try { |
$this->initialiserProjet('moissonnage'); |
|
$cmd = $this->getParametre('a'); |
$this->projet = $this->getParametre('n'); |
switch ($cmd) { |
case 'chargerTous' : |
$this->chargerDonnees(); |
$this->chargerMetaDonnees(); |
break; |
case 'chargerDonnees' : |
$this->chargerDonnees(); |
break; |
case 'chargerMetadonnees' : |
$this->chargerMetaDonnees(); |
break; |
case 'supprimerTous' : |
$this->supprimerTous(); |
break; |
default : |
throw new Exception("Erreur : la commande '$cmd' n'existe pas!"); |
} |
} catch (Exception $e) { |
$this->traiterErreur($e->getMessage()); |
} |
} |
|
private function chargerDonnees() { |
$requete = "CREATE TABLE tb_eflore.".$this->projet."_tapir2 ". |
"AS SELECT concat('urn:lsid:',institutionCode,':',collectionCode,':', catalogNumber) AS guid, ". |
"`catalogNumber` AS observation_id, `scientificName` AS nom_scientifique_complet, `referencess` AS num_nom, ". |
"`county` AS lieu_station_nom, `locality` AS lieu_commune_code_insee, ". |
"`decimalLatitude` AS lieu_station_latitude, `decimalLongitude` AS lieu_station_longitude, `geodeticDatum` , ". |
"`eventDate` AS observation_date, `identifiedBy` AS observateur_nom_complet ". |
"FROM tb_moissonnage.Occurrence ". |
"WHERE dataset_id = (SELECT dataset_id FROM tb_moissonnage.Dataset WHERE name = '$this->projet')"; |
$this->getBdd()->requeter($requete); |
} |
|
private function chercherInfosMetaDonnees() { |
$infos = array(); |
$requeteOccurrence = "SELECT institutionCode, collectionCode FROM tb_moissonnage.Occurrence WHERE dataset_id = |
(SELECT id FROM tb_moissonnage.Dataset WHERE name='$this->projet');"; |
$infos['occurrence'] = $this->getBdd()->recuperer($requeteOccurrence); |
$requeteDataset = "SELECT * FROM tb_moissonnage.DataPublisher WHERE id = |
(SELECT dataPublisher_id FROM tb_moissonnage.Dataset WHERE name='$this->projet')"; |
$infos['dataPublisher'] = $this->getBdd()->recuperer($requeteDataset); |
return $infos; |
} |
|
|
private function chargerMetaDonnees() { |
$this->chargerStructureSqlMetaDonnees(); |
$infos = $this->chercherInfosMetaDonnees(); |
$date = date('Y_m_d'); |
$requete = "INSERT INTO tb_eflore.".$this->projet."_tapir_meta (guid, citation, url_projet, createurs) ". |
"VALUES ('urn:lsid:{$infos['occurrence']['institutionCode']}:{$infos['occurrence']['collectionCode']}:{$date}', '". |
$this->projet." : {$infos['dataPublisher']['description']} du ". |
"<a href=\"{$infos['occurrence']['institutionCode']}\" title=\"{$infos['occurrence']['collectionCode']}\" ". |
"onclick=\"window.open(this.href); return false;\">{$this->projet}</a>', ". |
"'{$infos['occurrence']['institutionCode']}', ". |
"'p.courriel={$infos['dataPublisher']['administrativeContact']}, p.courriel={$infos['dataPublisher']['technicalContact']}')"; |
$this->getBdd()->requeter($requete); |
} |
|
private function chargerStructureSqlMetaDonnees() { |
$date = date('Y_m_d'); |
$requete = "CREATE TABLE IF NOT EXISTS tb_eflore.".$this->projet."_tapir_meta ". |
"(`guid` varchar(255) NOT NULL , |
`langue_meta` varchar(2) NOT NULL DEFAULT 'fr', |
`code` varchar(20) NOT NULL DEFAULT '{$this->projet}', |
`version` varchar(20) NOT NULL DEFAULT '{$date}', |
`titre` varchar(255) NOT NULL DEFAULT '{$this->projet}', |
`description` text, |
`mots_cles` varchar(510) NOT NULL DEFAULT 'flore, observation, {$this->projet}', |
`citation` varchar(255) NOT NULL, |
|
`url_tech` varchar(510) DEFAULT NULL, |
`url_projet` varchar(510) NOT NULL, |
`source` text, |
`createurs` text NOT NULL, |
`editeur` text, |
`contributeurs` text, |
`droits` text, |
`url_droits` varchar(510) DEFAULT 'http://creativecommons.org/licenses/by-sa/2.0/fr/', |
`langue` varchar(255) DEFAULT 'fr', |
`date_creation` varchar(30) DEFAULT NULL, |
`date_validite` varchar(255) DEFAULT NULL, |
`couverture_spatiale` varchar(510) DEFAULT NULL, |
`couverture_temporelle` varchar(510) DEFAULT NULL, |
`web_services` varchar(255) DEFAULT 'meta-donnees:0.1;ontologies:0.1;cartes:0.1', |
PRIMARY KEY (`guid`,`langue_meta`) |
) ENGINE=MyISAM DEFAULT CHARSET=utf8;"; |
$this->getBdd()->requeter($requete); |
} |
|
|
private function supprimerTous() { |
$requete = "DROP TABLE IF EXISTS `ifn_arbres_forets`, `ifn_arbres_peupleraie`, `ifn_couverts_foret`, |
`ifn_documentation`, `ifn_documentation_flore`, `ifn_ecologie`, `ifn_flore`, `ifn_placettes_foret`, |
`ifn_placettes_peupleraie`; |
"; |
$this->getBdd()->requeter($requete); |
} |
} |
?> |