/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 '; |