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 ". "{$this->projet}', ". "'{$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); } } ?>