Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 324 → Rev 325

/trunk/interfaces/squelettes/detail_referentiel.tpl.html
21,7 → 21,6
</p>
 
<h2>Versions</h2>
 
<?php if (isset($infos_telechargements) && !empty($infos_telechargements)) { ?>
<?php foreach ($infos_telechargements as $info) : ?>
<?php foreach ($info['urls_zip'] as $zip => $url) : ?>
36,4 → 35,37
<p> Aucun téléchargement n'est disponible pour ce référentiel </p>
<?php } ?>
 
<?php if (isset($versions) && !empty($versions)) { ?>
<form id="export" action="<?=$url_form_telech?>" method="post">
Pouvez-vous nous indiquer votre futur usage du référentiel ?<br />
<input type="radio" name="usage" id="usage" value="essai"/><label for="usage">essai</label>
<input type="radio" name="usage" id="usage" value="personnel"/><label for="usage">personnel</label>
<input type="radio" name="usage" id="usage" value="professionnel"/><label for="usage">professionnel</label><br /><br />
Choississez la version que vous souhaitez télécharger<br />
<!-- chercher comment inclure meta donnees et manuel technique -->
<? foreach ($versions as $version) { ?>
<input type="radio" name="version" id="version" checked value="<?=$version['version']?>"/><label for="version">version <?=$version['version'].' du '.$version['date_prod']?></label><br />
<? } ?>
<br />
Filtrez les données par<br />
<input type="checkbox" name="filtres[]" id="nnr" value="nnr"/><label for="filtres">nom retenu</label><br />
<!-- à modifier pour tenir compte du référentiel -->
<input type="checkbox" name="filtres[]" id="pre" value="pre"/><label for="filtres">présent en France</label><br />
<input type="text" name="filtres[]" id="famille"/><label for="filtres">famille</label><br />
<br />
 
Choississez les champs que vous souhaitez exporter<br />
<?php foreach ($colonnesOrdonnees as $id => $description) { ?>
<input type="checkbox" <?=$description[1]?> name="champs[]" id="<?=$id?>" value="<?=$id?>"/>
<label for="$id"><span title=<?='"'.$description[2].'"'?>><?=$description[0]?></span></label><br />
<?php } ?>
<input type="submit" value="telecharger">
</form>
<?php } ?>
 
 
 
 
 
 
<!-- REF - FIN DETAIL -->
/trunk/interfaces/controleurs/Informations.php
18,6 → 18,8
private $referentielDao = null;
private $traitementDao = null;
private $resultatDao = null;
private $metaDao = null;
private $colonnesOrdonnees = array();
public function __construct() {
parent::__construct();
31,6 → 33,54
$this->resultatDao = new ResultatDao();
$this->traitementDao = new TraitementDao();
$this->referentielDao = new ReferentielDao();
$this->metaDao = new MetaDao();
// tableau colonnesOrdonnees à modifier aussi dans service/Recherche.php
$this->colonnesOrdonnees = array("nn" => array("Numéro nomenclatural","checked","Identifiant numérique du nom scientifique"),
"nr" => array("Numéro nomenclatural du nom retenu","checked","Identifiant numérique du nom scientifique (num_nom) retenu pour désigner le taxon"),
"nt" => array("Numéro taxonomique","checked","Identifiant numérique du taxon auquel est rattaché le nom"),
"cd" => array("Numéro INPN","checked","Identifiant numérique unique du nom scientifique attribué par l’INPN"),
"rg" => array("Code rang","checked","Code numérique indiquant le rang du nom scientifique (voir tableau 7 du manuel technique)"),
"fam" => array("Famille (APG III)","checked","Nom de la famille dans APG III"),
"nsc" => array("Nom avec auteur","checked","Nom scientifique avec auteur(s)"),
"bibc" => array("Année et bibliographie","checked","Format à étudier celui de Tela : 1868, Brev. Pl. Nov., 2 : 70 ou celui de Kew : Brev. Pl. Nov., 2 : 70 (1868)"),
"nsrc" => array("Nom retenu avec auteur","checked","Nom retenu pour tous les taxons (identique si le nom est édjà le nom retenu)"),
"nf" => array("Nom français normalisé","checked","Nom français conseillé pour ce taxon (à venir)"),
"extax" => array("Présent dans Taxref","checked",""),
"lien" => array("Permalien","checked","Lien http vers la fiche nomenclaturale"),
"ntsup" => array("Numéro nomenclatural rang supérieur","","Identifiant numérique du nom (num_nom) de rang supérieur dans la classification par défaut de l'index"),
"pre" => array("Répartition géographique","","Code indiquant si le taxon est présent dans la zone géographique définie par le référentiel (tableau 9)"),
"ns" => array("Nom sans auteur","","Nom scientifique sans auteur"),
"aut" => array("Auteur","","Intitulé de(s) l'auteur(s) du nom (abréviations standards de Brummitt et Powell)"),
"ann" => array("Année publication","","Année de la publication effective du support papier"),
"bib" => array("Bibliographie","","Référence bibliographique de la publication d'origine du nom"),
"ntype" => array("Numéro du type","","Identifiant numérique (num_nom) du 1er basionyme appliqué à la planche d'herbier"),
"nbas" => array("Numéro du basionyme","","Identifiant numérique (num_nom) du basionyme du nom"),
"genre" => array("Genre","","Nom d'un genre dans le cas d'un monôme du rang genre ou d'une combinaison"),
"esp" => array("Epithète espèce","","Épithète de l'espèce"),
"eing" => array("Epithète infragénérique","","Épithète infra-générique d'une combinaison dont le rang est situé entre le genre et l'espèce"),
"te" => array("Type d'épithète infraspécifique","","Abréviation indiquant le type de l'épithète infra-spécifique"),
"einsp" => array("Epithète infraspécifique","","Épithète infra-spécifique d'une combinaison"),
"hybp01" => array("Hybride parent 1","","Identifiant du nom (num_nom) du parent numéro 1 (dans le cas d'un hybride)"),
"nomsupgen" => array("Nom supra générique","","Monôme dont le rang est supérieur au genre"),
"hybp02" => array("Hybride parent 2","","Identifiant du nom (num_nom) du parent numéro 2 (dans le cas d'un hybride)"),
"stori" => array("Statut d'origine","","Code indiquant le statut d'origine du taxon dans la zone géographique définie par le référentiel (tableau 10)"),
"stint" => array("Statut d'introduction","","Code indiquant le statut d'introduction du taxon dans la zone géographique définie par le référentiel (tableau 11)"),
"stcul" => array("Statut de culture","","Code indiquant le statut de culture du taxon dans la zone géographique définie par le référentiel (tableau 12)"),
"notes" => array("Remarques","","Notes complémentaires"),
"nomadd" => array("Commentaires nomenclaturaux","","Commentaires nomenclaturaux pouvant être associés à un nom (voir tableau 8 du manuel technique)"),
"nsr" => array("Nom retenu sans auteur","","Nom scientifique du nom retenu sans auteur"),
"hom" => array("Homonymie","","Contient la valeur 1 si le nom possède un homonyme ou si le nom est un homonyme. Dans le cas contraire"),
"synprop" => array("Synonyme proprate","","Contient plusieurs identifiants numériques (num_nom) dans le cas d'un nom obtenu suite à la division d'un taxon. Contient un seul identifiant numérique (num_nom) dans le cas d'un nom obtenu suite à la fusion de plusieurs taxons."),
"syndout" => array("Synonyme douteux","","Contient la valeur 1 si le nom est un synonyme douteux. Dans le cas contraire"),
"synmapp" => array("Synonyme mal appliqué","","Contient la valeur 1 si le nom est un synonyme mal appliqué (cas des sensu). Dans le cas contraire"),
"synorth" => array("Synonyme orthographique","","Contient l'identifiant numérique du nom (num_nom) correctement orthographié"),
"orthori" => array("Orthographe originelle","","Contient la graphie originelle d'un nom non-conforme faisant l'objet d'une correction orthographique obligatoire"),
"hybp01n" => array("Hybride parent 1 notes","","Notes éventuelles sur l'hybridité et le parent numéro 1"),
"hybp02n" => array("Hybride parent 2 notes","","Notes éventuelles sur l'hybridité et le parent numéro 2"),
"cultgp" => array("Groupe de cultivar","","Nom d'un groupe de cultivar (sansl'abréviation « Gp »)"),
"cult" => array("Nom cultivar","","Nom d'un cultivar (sans les guillemets simple ou abréviation « cv. »)"),
"nomcomm" => array("Nom commercial","","Nom commercial d'une plante (en majuscule"),
"autres" => array("Autres","","colonnes spécifiques au référentiel"));
}
//+----------------------------------------------------------------------------------------------------------------+
58,10 → 108,13
$donnees['url_menu_test'] = $this->obtenirUrlMenuTest($this->referentiel);
$donnees['url_menu_versionnage'] = $this->obtenirUrlMenuVersionnage($this->referentiel);
$donnees['url_menu_consultation'] = $this->obtenirUrlMenuConsultation($this->referentiel);
$donnees['url_form_telech'] = $this->obtenirUrlDetailReferentielTelechargement($this->referentiel);
// suppression du téléchargement pour bdbfx
if ($this->referentiel != 'bdbfx') {
$donnees['versions'] = $this->afficherFormulaireTelechargementsReferentiels();
$donnees['infos_telechargements'] = $this->afficherTelechargementsReferentiels();
$donnees['colonnesOrdonnees'] = $this->colonnesOrdonnees;
}
} else {
$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx).");
72,6 → 125,64
$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false);
}
public function telecharger() {
//$this->afficherDetail();
$dossier = '/home/delphine/tmp/';
$parametres['ref'] = $this->referentiel;
$parametres['version'] = $_POST["version"];
$parametres['version'] = str_replace(".", "_", $parametres['version']);
$parametres['champs'] = implode(",",$_POST["champs"]);
$parametres['filtres'] = implode(",",$_POST["filtres"]);
$this->supprimerAncienExport($dossier);
$ref = $this->referentielDao->exporter($parametres);
$meta = $this->metaDao->exporter($parametres);
$zip = new ZipArchive();
if($zip->open($dossier.date('Y_m_d').'/'.$this->referentiel.time().'.zip', ZipArchive::CREATE) === true){
// Ajout des fichiers métadonnées, référentiel et manuel technique
$meta = str_replace("\\/", "/", $meta);
if (file_exists($meta)) $metazip = $zip->addFile($meta, "informations.csv");
if (file_exists($ref)) $refzip = $zip->addFile($ref, "referentiel.csv");
if (file_exists($dossier.'mtpr_V4_4.pdf')) $zip->addFile($dossier.'mtpr_V4_4.pdf', 'manuel_technique.pdf');
// Et on referme l'archive
$zip->close();
} else {
print_r('Impossible d&#039;ouvrir &quot;Zip.zip<br/>');
}
if (file_exists($fichier)) {
print_r("<a href='".$zip."'>");
}
}
private function supprimerAncienExport($dossier) {
$pointeur = opendir($dossier);
// si pas d'erreur d'ouverture du dossier on lance le scan
if( $pointeur != false ) {
// Parcours du repertoire
while( $ss_dossier = readdir($pointeur)) {
if($ss_dossier != "." && $ss_dossier != "..") {
$chemin_complet = $dossier . $ss_dossier;
if (is_dir($chemin_complet) && $ss_dossier < date('Y_m_d')) {
$fichiers = scandir($chemin_complet);
foreach ($fichiers as $fichier) {
if($fichier != "." && $fichier != "..") {
unlink($chemin_complet."/".$fichier);
}
}
rmdir($chemin_complet);
}
}
}
closedir($pointeur);
}
}
private function afficherFormulaireTelechargementsReferentiels() {
$versions = $this->traitementDao->getTraitementsTermines($this->referentiel, 'versionnage');
foreach ($versions as $id => $version) {
$versions[$id] = (unserialize($versions[$id]["script_parametres"])); }
return $versions;
}
private function afficherTelechargementsReferentiels() {
$infos_telechargements = array();
// Recherche des traitements déjà effectué
/trunk/interfaces/controleurs/AppliControleur.php
263,6 → 263,16
return $url;
}
protected function obtenirUrlDetailReferentielTelechargement($referentiel) {
$this->url->setRequete(false);
$this->url->setVariableRequete('module', 'Informations');
$this->url->setVariableRequete('action', 'telecharger');
$this->url->setVariableRequete('ref', $referentiel);
$url = $this->url->getURL();
$this->url->unsetVariablesRequete(array('module', 'action', 'ref'));
return $url;
}
protected function obtenirUrlMenuInformations($referentiel) {
return $this->obtenirUrlMenu('Informations', $referentiel);
}
/trunk/interfaces/referentiel.php
42,10 → 42,7
Application::setChemin(__FILE__);// Obligatoire
Application::setInfo(Config::get('info'));
// Lancement du débogage si nécessaire
if (Config::get('chronometrage')) {
Chronometre::chrono(basename(__FILE__).' - début');
}
 
// Lancement de l'application
Referentiel::initialiser();
}