Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 53 → Rev 54

/trunk/scripts/modules/versionnage/squelettes/meta.tpl.tsv
1,22 → 1,43
titre <?=$titre?>
code <?=$acronyme?>
domaine_taxo <?=$dom_tax?>
domaine_geo <?=$dom_geo?>
domaine_nom <?=$dom_code?>
classification <?=$classification?>
version <?=$version?>
auteur <?=$auteur_principal?>
coordinateur <?=$coordinateur?>
contributeur <?=$contributeur?>
contributeur <?=$contributeur?>
date_production <?=$date_prod?>
source <?=$source?>
contact <?=$contact?>
editeur <?=$editeur?>
droit <?=$copyright?>
licence <?=$licence?>
referencement <?=$referencement?>
stat_combinaison <?=$stats['combinaison']?>
stat_taxon <?=$stats['taxon']?>
stat_modification <?=$stats['modification']?>
titre <?=$titre?>
 
code <?=$acronyme?>
 
domaine_taxo <?=$dom_tax?>
 
domaine_geo <?=$dom_geo?>
 
domaine_nom <?=$dom_code?>
 
classification <?=$classification?>
 
version <?=$version?>
 
auteur <?=$auteur_principal?>
 
coordinateur <?=$coordinateur?>
 
contributeur <?=$contributeur?>
 
contributeur <?=$contributeur?>
 
date_production <?=$date_prod?>
 
source <?=$source?>
 
contact <?=$contact?>
 
editeur <?=$editeur?>
 
droit <?=$copyright?>
 
licence <?=$licence?>
 
referencement <?=$referencement?>
 
stat_combinaison <?=$stats['combinaison']?>
 
stat_taxon <?=$stats['taxon']?>
 
stat_modification <?=$stats['modification']?>
 
signature <?=$signature?>
/trunk/scripts/modules/versionnage/squelettes/bdnt.tpl.tsv
1,6 → 1,6
<?=implode("\t", $champs)?>
 
<?php foreach ($noms as $nom_infos) : ?>
<?=implode("\t", $nom_infos)?>
 
<?=implode("\t", $champs)?>
 
<?php foreach ($noms as $nom_infos) : ?>
<?=implode("\t", $nom_infos)?>
 
<?php endforeach; ?>
/trunk/scripts/modules/versionnage/squelettes/diff.tpl.tsv
1,6 → 1,6
<?=implode("\t", $champs)?>
 
<?php foreach ($diff as $nom_infos) : ?>
<?=implode("\t", $nom_infos)?>
 
<?=implode("\t", $champs)?>
 
<?php foreach ($diff as $nom_infos) : ?>
<?=implode("\t", $nom_infos)?>
 
<?php endforeach; ?>
/trunk/scripts/modules/versionnage/Versionnage.php
134,8 → 134,10
}
private function creerFichierBdnt() {
Debug::printr("Element courrant du tableau des noms : ".print_r(current($this->noms),true));
//Debug::printr("Taille mémoire du tableau des noms : ".Debug::tailleMemoireVar($this->noms));
$noms =& $this->noms;
reset($this->noms);
Debug::printr("Element courrant du tableau des noms : ".count($this->noms).'-'.print_r(current($this->noms),true));
$this->determinerOrdreDesChamps();
$this->definirNomDesChamps();
146,15 → 148,16
foreach ($nom as $champ => &$valeur) {
if (isset($this->champs_ordre[$champ])) {
$ordre = $this->champs_ordre[$champ];
$infos[$ordre] = trim($valeur);
$infos[(int) $ordre] = trim($valeur);
} else {
$e = "Le champ '$champ' n'a pas été pris en compte dans l'attribution de l'ordre des champs.";
$this->ajouterMessage($e);
}
}
ksort($infos);
$donnees['noms'][] = $infos;
}
Debug::printr("Dernier element du tableau des noms [trié] : ".print_r($infos,true));
$bdnt_tsv = $this->getVue('versionnage/squelettes/bdnt', $donnees, '.tpl.tsv');
$this->ecrireFichierBdnt($bdnt_tsv);
}
166,6 → 169,7
$champs_ordre = $this->attribuerOrdreChampsSupplémentaires($champs_ordre, $nom_courant);
asort($champs_ordre);
$this->champs_ordre = $champs_ordre;
Debug::printr("Ordre des champs : ".print_r($this->champs_ordre,true));
}
private function definirNomDesChamps() {
183,11 → 187,11
private function ajouterMessage($message) {
$titre = self::SCRIPT_NOM.' #'.$this->traitement['id_traitement'];
$this->messages[] = array($titre, $message);
$this->messages[] = array('message' => $message, 'resultat' => true);
}
private function ecrireFichierBdnt($contenu) {
$fichier_nom = $this->getBaseNomFichier().'_ref.txt';
$fichier_nom = $this->getBaseNomFichier().$this->manuel['ext_fichier_ref'];
$fichier_chemin = Config::get('chemin_referentiel_zip').$fichier_nom;
if ($this->ecrireFichier($fichier_chemin, $contenu)) {
194,8 → 198,7
$this->ajouterMessage("Écriture du fichier bdnt réussie.");
$this->signature_md5 = md5_file($fichier_chemin);
$this->ajouterMessage("Signature MD5 du fichier bdnt :".$this->signature_md5);
$this->ajouterMessage("Nombre de noms traités : ".count($noms));
$this->ajouterMessage("Nombre de combinaisons traités : ".$this->noms_stat['combinaison']);
}
}
215,10 → 218,14
private function creerFichierDiff() {
$derniere_meta = $this->metaDao->getDerniere($this->projet);
if ($derniere_meta === false) {
if (is_null($derniere_meta === false)) {
$this->ajouterMessage("Un problème est survenu lors de la récupération des métadonnées précédentes.");
} else if (is_null($derniere_meta)) {
$this->ajouterMessage("Premier versionnage pour ce projet, aucun fichier différentiel ne sera créé.");
} else {
Debug::printr("Méta dernier enregistrement : ".print_r($derniere_meta,true));
$code_projet_precedent = strtolower($derniere_meta['code']).'_v'.str_replace('.', '_', $derniere_meta['version']);
Debug::printr("Code projet précédent : $code_projet_precedent");
$this->noms_precedents = $this->referentielDao->getTout($code_projet_precedent);
$donnees = array();
$donnees['diff'] = $this->realiserDiff();
241,7 → 248,7
$this->noms_stat['modification']++;
} else {
$nom_precedent =& $this->noms_precedents[$id];
$nom_diff = array_diff_assoc($noms, $nom_precedent);
$nom_diff = array_diff_assoc($nom, $nom_precedent);
if (count($nom_diff) > 0) {
$this->noms_stat['modification']++;
$modif['modification_type'] = 'M';
281,7 → 288,7
}
private function ecrireFichierDiff($contenu) {
$fichier_nom = $this->getBaseNomFichier().'diff.txt';
$fichier_nom = $this->getBaseNomFichier().$this->manuel['ext_fichier_diff'];
$fichier_chemin = Config::get('chemin_referentiel_zip').$fichier_nom;
if ($this->ecrireFichier($fichier_chemin, $contenu)) {
299,7 → 306,7
}
private function ecrireFichierMeta($contenu) {
$fichier_nom = $this->getBaseNomFichier().'_meta.txt';
$fichier_nom = $this->getBaseNomFichier().$this->manuel['ext_fichier_meta'];
$fichier_chemin = Config::get('chemin_referentiel_zip').$fichier_nom;
if ($this->ecrireFichier($fichier_chemin, $contenu)) {
333,7 → 340,9
private function traiterMessages() {
if (isset($this->messages)) {
$num_message = 1;
foreach ($this->messages as $message) {
$message['nom'] = 'Message #'.$num_message++;
$this->resultatDao->ajouter($this->traitement['id_traitement'], $message);
}
}
/trunk/configurations/referentiel_v2.1.ini
1,5 → 1,11
; Version du référentiel servant de base aux informations ci-dessous
version = 2.1
; Extension fichier ref
ext_fichier_bdnt = "_ref.txt"
; Extension fichier meta
ext_fichier_meta = "_meta.txt"
; Extension fichier diff
ext_fichier_diff = "_diff.txt"
; Noms des champs
champs = "num_nom,num_nom_retenu,num_tax_sup,rang,nom_complet,nom_supra_generique,genre,epithete_infra_generique,epithete_sp,type_epithete,epithete_infra_sp,cultivar_groupe,cultivar,nom_commercial,auteur,annee,biblio_origine,notes,nom_addendum,homonyme,basionyme,synonyme_proparte,synonyme_douteux,synonyme_mal_applique,synonyme_orthographique,biblio_statut,hybride_parent_01,hybride_parent_01_notes,hybride_parent_02,hybride_parent_02_notes,nom_francais,presence,statut_origine,statut_introduction,statut_culture"
; Noms et types des champs
/trunk/bibliotheque/dao/Dao.php
123,7 → 123,7
$flux = @fopen($url, 'r', false, $contexte);
if (!$flux) {
$this->traiterEntete($http_response_header, $url);
$e = "L'ouverture de l'url '$url' a échoué!";
$e = "L'ouverture de l'url '$url' par la méthode HTTP '$mode' a échoué!";
trigger_error($e, E_USER_WARNING);
} else {
// Informations sur les en-têtes et métadonnées du flux
/trunk/bibliotheque/dao/ResultatDao.php
68,7 → 68,7
* Ajoute un résultat de traitement pour une référentiel donné.
*
* @param integer l'id du traitement en cours.
* @param array un tableau contenant deux clés 'nom' contenant le nom du test et 'message' contenant le résultat du test.
* @param array un tableau contenant les clés 'nom', 'message', 'description' et 'resultat'.
*
* @return mixed l'id du résultat ou false en cas d'échec.
*/
/trunk/bibliotheque/dao/MetaDao.php
23,7 → 23,7
* @return mixed un tableau contenant les informations sur les dernières méta-données ou false en cas d'échec.
*/
public function getDerniere($code_projet) {
$url = $this->url."/Derniere/$code_projet";
$url = $this->url_jrest.self::SERVICE."/Derniere/$code_projet";
$json = $this->envoyerRequeteConsultation($url);
$traitements = json_decode($json, true);
37,8 → 37,9
* @return mixed l'id du traitement ou false en cas d'échec.
*/
public function ajouter($metadonnees) {
// Envoie des données et récupération du retour
$json = $this->envoyerRequeteAjout($this->url, $metadonnees);
$url = $this->url_jrest.self::SERVICE;
$json = $this->envoyerRequeteAjout($url, $metadonnees);
$id = json_decode($json, true);
return $id;
}
/trunk/services/modules/Meta.php
46,14 → 46,14
* /Meta/Dernier/code_projet
*/
public function getElementDerniere($params_url) {
$p = $this->traiterParametresUrl(array('projet'), $params_url);
$p = $this->traiterParametresUrl(array('projet'), $params_url, false);
extract($p);
$nom_table = strtolower($projet).'_meta';
$donnees = false;
if (isset($projet)) {
$nom_table = strtolower($projet).'_meta';
$requete = ($this->distinct ? 'SELECT DISTINCT' : 'SELECT').' * '.
"FROM $nom_table ".
"FROM `$nom_table` ".
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'id_meta DESC').' '.
'LIMIT 0,1 ';