Subversion Repositories Applications.referentiel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 355 → Rev 356

/branches/v2.0-betulales/bibliotheque/dao/ReferentielDao.php
122,7 → 122,7
private function construireUrlExport($parametres) {
$url = $this->url_jrest.self::SERVICE.'/Export';
$params_a_passer = array('ref', 'version', 'champs', 'filtres');
$params_a_passer = array('ref', 'version', 'champs', 'filtres', 'encodage');
foreach ($params_a_passer as $param_cle) {
if (isset($parametres[$param_cle]) && $parametres[$param_cle] != '') {
$valeur = urlencode(trim($parametres[$param_cle]));
/branches/v2.0-betulales/bibliotheque/dao/RechercheDao.php
32,8 → 32,10
* Recherche un référentiel en fonction de paramètres
* @return array un tableau contenant des objets d'informations sur les taxons
*/
public function chercher($type, $parametres) {
public function chercher($type, $parametres, $limit = '150') {
$this->ordre['nom_sci'] = 'ASC';
$this->limite_nbre = $limit;
$url = $this->construireUrlRecherche($type, $parametres);
$json = $this->envoyerRequeteConsultation($url);
$donnees = json_decode($json, true);
/branches/v2.0-betulales/interfaces/squelettes/detail_referentiel.tpl.html
8,16 → 8,14
<?php endforeach; ?>
<?php endif; ?>
 
<p>
Vous pouvez <a href="<?=$url_menu_test;?>">tester</a> la <?=strtolower($referentiel);?>
afin de contrôler les données saisies dans la version de travail.<br />
Lorsqu'une version de travail est prête à être publiée, vous pouvez accéder à
<a href="<?=$url_menu_versionnage;?>">l'outil de versionnage</a> pour réaliser
cette manipulation. Cette interface permet aussi de télécharger les versions précédentes.<br />
Enfin, il est possible de <a href="<?=$url_menu_consultation;?>">consulter</a> en permanence les données saisies
dans la version de travail.
<p>La page ci-dessous vous permet de télécharger tout ou une partie du référentiel taxonomique et nomenclatural
de la <?=$nom_referentiel;?>
<?php if ($referentiel == "bdtfx") { echo('La part du référentiel relative à la France métropolitaine (Corse comprise) est transmise au Muséum national
d’histoire naturelle dans le cadre du projet TaxRef (MNHN/INPN) pour servir de référence dans le cadre du
<a href="http://inpn.mnhn.fr/programme/referentiel-taxonomique-taxref">SINP (Système d’information sur la nature et les paysages)</a>');}?>
<br />La base téléchargeable ci-dessous comprend des champs supplémentaires ainsi que quelques taxons issus de pays
limitrophes (Espagne, Italie...) qui ne sont pas contenu dans le référentiel Taxref.
<br />La version en cours de travail est consultable dans l'onglet <a href="<?=$url_menu_consultation;?>">consultation</a>.
</p>
 
 
39,14 → 37,13
 
<?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 />
A titre d’information, 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 />
<? foreach ($versions as $id => $version) { ?>
<input type="radio" name="version" id="version" <?= ($id === 0) ? "checked" : "";?> value="<?=$version['version']?>"/><label for="version">version <?=$version['version'].' du '.$version['date_prod']?></label><br />
<? } ?>
<br />
Sélectionnez les données :<br />
53,7 → 50,12
<input type="checkbox" name="filtres[]" id="nnr" value="nnr"/><label for="filtres">que les noms retenus</label><br />
<!-- à modifier pour tenir compte du référentiel -->
<input type="checkbox" name="filtres[]" id="pre" value="pre"/><label for="filtres">que les taxons présents en France</label><br />
<label for="filtres"><span title="Saisir un nom scientifique">de la famille</span></label><input type="text" name="filtres[]" id="famille"/><br />
<label for="filtres">de la famille</label><select name="filtres[]" id="famille">
<option value="*">toutes</option>
<? foreach ($familles as $id=>$famille) { ?>
<option><?= $famille['nom_sci']?></option>
<? } ?>
</select><br />
<br />
 
Choississez les champs que vous souhaitez exporter
75,11 → 77,11
</div>
<br/>
<br/>
<input type="submit" value="telecharger">
<input type="submit" value="Télécharger">
</form>
<?php } ?>
 
<h2>Versions</h2>
<h2>Versions complétes</h2>
<?php if (isset($infos_telechargements) && !empty($infos_telechargements)) { ?>
<?php foreach ($infos_telechargements as $info) : ?>
<?php foreach ($info['urls_zip'] as $zip => $url) : ?>
/branches/v2.0-betulales/interfaces/controleurs/Informations.php
16,6 → 16,7
private $referentiel = null;
private $referentielDao = null;
private $rechercheDao = null;
private $traitementDao = null;
private $resultatDao = null;
private $metaDao = null;
33,6 → 34,7
$this->resultatDao = new ResultatDao();
$this->traitementDao = new TraitementDao();
$this->referentielDao = new ReferentielDao();
$this->rechercheDao = new RechercheDao();
$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"),
44,7 → 46,6
"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"),
70,6 → 71,7
"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"),
"syn" => array("Statut du nom", "", "retenu, synonyme, ambigü, calculé à partir des num_nom et num_nom_retenu"),
"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"),
111,6 → 113,7
$parametres['version'] = str_replace(".", "_", $parametres['version']);
if (isset($_POST["champs"])) $parametres['champs'] = implode(",",$_POST["champs"]);
if (isset($_POST["filtres"])) $parametres['filtres'] = implode(",",$_POST["filtres"]);
if (isset($_POST["encodage"])) $parametres['encodage'] = $_POST["encodage"];
$this->supprimerAncienExport($dossier);
$ref = $this->referentielDao->exporter($parametres);
$meta = $this->metaDao->exporter($parametres);
142,8 → 145,26
$urlLien = Config::get("base_url_telechargements") . $dossierDateEtNomDeFichier;
$donnees['url_telechargement_zip'] = $urlLien;
}
//$this->transformerEnXls($ref, $dossier);
$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false);
}
public function transformerEnXls($fichier, $dossier) {
include '../bibliotheque/utilitaires/PHPExcel/IOFactory.php';
$dossier .= date('Y_m_d').'/';
$objReader = PHPExcel_IOFactory::createReader('CSV');
// If the files uses a delimiter other than a comma (e.g. a tab), then tell the reader
$objReader->setDelimiter("\t");
// If the files uses an encoding other than UTF-8 or ASCII, then tell the reader
$objReader->setInputEncoding('UTF-8');
$objPHPExcel = $objReader->load($fichier);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save($dossier.'MyExcelFile.xls');
}
 
// exécute la partie commune entre l'action "detail" et l'action "telecharger"
protected function preparerPagePourDetailReferentielEtTelechargement() {
164,6 → 185,9
$donnees['versions'] = $this->afficherFormulaireTelechargementsReferentiels();
$donnees['infos_telechargements'] = $this->afficherTelechargementsReferentiels();
$donnees['colonnesOrdonnees'] = $this->colonnesOrdonnees;
$parametres['ref'] = $this->referentiel;
$parametres['rg'] = '180';
$donnees['familles'] = $this->rechercheDao->chercher('ParDefaut', $parametres, 250);
}
} else {
$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx).");
/branches/v2.0-betulales/services/modules/Referentiel.php
199,7 → 199,7
public function getElementExport($param) {
// Initialisation des variables
$info = array();
$p = $this->traiterParametresUrl(array("ref","version","champs","filtre"), $param, false);
$p = $this->traiterParametresUrl(array("ref","version","champs","filtre", "encodage"), $param, false);
$ref = $p['ref'].'_v'.$p['version'];
$racine_tmp = $this->config['chemins']['chemin_tmp'];
$dossier = $racine_tmp.date('Y_m_d').'/';
214,15 → 214,19
" INTO OUTFILE '".$fichier."' CHARACTER SET utf8 FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n' ".
" FROM $ref a left join $ref b on b.num_nom=a.num_nom_retenu";
if (isset($p['filtre']) && $p['filtre'] != "*") {
$param_filtres = explode(",",$p["filtre"]);
$dernier_filtre = array_pop($param_filtres);
$filtres = array("nnr"=>"a.num_nom = a.num_nom_retenu", "pre" => "a.presence = 'P'");
if (!isset($filtres[$dernier_filtre])) { // si il s'agit du filtre famille
$filtres["fam"] = "a.famille = '".$dernier_filtre."'";
$dernier_filtre = "fam";
if ($dernier_filtre != '' && $dernier_filtre != '*') {
if (!isset($filtres[$dernier_filtre])) {// si il s'agit du filtre famille
$filtres["fam"] = "a.famille = '".$dernier_filtre."'";
$dernier_filtre = "fam";
}
array_push($param_filtres, $dernier_filtre);
}
array_push($param_filtres, $dernier_filtre);
$requete .= " WHERE ".implode(" AND ",array_intersect_key($filtres, array_flip($param_filtres)));
}
$requete .= ")";
238,10 → 242,12
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage()).$requete;
}
}
return $fichier;
}
private function formaterColonnes($colonnes, $ref) {
$colonnesOrdonnees = array("nn" => array("a.num_nom", "num_nom", "Numéro nomenclatural"),
"nr" => array("a.num_nom_retenu", "num_nom_retenu", "Numéro nomenclatural du nom retenu"),
278,6 → 284,9
"nomadd" => array("a.nom_addendum", "nom_addendum", "Commentaires nomenclaturaux"),
"nsr" => array("b.nom_sci as nom_sci_retenu", "nom_sci", "Nom retenu sans auteur"),
"hom" => array("a.homonyme", "homonyme", "Homonymie"),
"syn" => array("CASE a.num_nom_retenu WHEN a.num_nom THEN 'retenu'
WHEN '' THEN 'ambigu'
ELSE 'synonyme' END AS synonymie", "num_nom_retenu", "Statut du nom" ),
"synprop" => array("a.synonyme_proparte", "synonyme_proparte", "Synonyme proprate"),
"syndout" => array("a.synonyme_douteux", "synonyme_douteux", "Synonyme douteux"),
"synmapp" => array("a.synonyme_mal_applique", "synonyme_mal_applique", "Synonyme mal appliqué"),
/branches/v2.0-betulales
Property changes:
Added: svn:mergeinfo
Merged /trunk:r350-355