Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 194 → Rev 195

/trunk/scripts/modules/versionnage/Versionnage.php
15,11 → 15,11
* @version $Id$
*/
// +-------------------------------------------------------------------------------------------------------------------+
// TODO : utilisation de array_key_exists à la place de isset dans creerFichierBdnt() ????
// TODO : lors de la génération de la version 2 de la BDTFX tester les diff! Il se peut que la mémoire soit dépassée.
class Versionnage extends ScriptCommande {
const SCRIPT_NOM = 'versionnage';
const MANUEL_VERSION = "4.1";
const MANUEL_VERSION = '4.2';
private $projet = null;
private $traitement = null;
196,6 → 196,12
$donnees = array();
$donnees['champs'] = $this->champs_nom;
$fichier_nom = $this->getBaseNomFichier().$this->manuel['ext_fichier_bdnt'];
$fichier_chemin = $this->zip_chemin_dossier.$fichier_nom;
$bdnt_tsv_entete = $this->getVue('versionnage/squelettes/bdnt_entete', array('champs' => $donnees['champs']), '.tpl.tsv');
$this->ecrireFichier($fichier_chemin, $bdnt_tsv_entete);
foreach ($this->noms as $id => &$nom) {
$infos = array();
foreach ($this->champs_ordre as $champ => $ordre) {
208,11 → 214,12
}
$infos = $this->remplacerTabulation($infos);
$infos = $this->remplacerSautsDeLigne($infos);
$donnees['noms'][$id] = $infos;
$this->noms[$id] = $infos;
$bdnt_tsv_ligne = $this->getVue('versionnage/squelettes/bdnt_ligne', array('nom_infos' => $infos), '.tpl.tsv');
$this->ajouterAuFichier($fichier_chemin, $bdnt_tsv_ligne);
}
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);
$this->ecrireComplementFichierBdnt($fichier_chemin);
return $donnees;
}
272,11 → 279,8
return $doc;
}
private function ecrireFichierBdnt(&$contenu) {
$fichier_nom = $this->getBaseNomFichier().$this->manuel['ext_fichier_bdnt'];
$fichier_chemin = $this->zip_chemin_dossier.$fichier_nom;
if ($this->ecrireFichier($fichier_chemin, $contenu)) {
private function ecrireComplementFichierBdnt($fichier_chemin) {
if (file_exists($fichier_chemin)) {
$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);
293,8 → 297,7
Debug::printr(current($donnees['noms']));
$donnees['champs_partiel'] = $this->champs_nom_partiel;
$donnees['dernier_champ'] = end($this->champs_nom_partiel);
$bdnt_partielle_tsv =& $this->getVue('versionnage/squelettes/bdnt_partiel', &$donnees, '.tpl.tsv');
$this->ecrireFichierBdntPartielle($bdnt_partielle_tsv);
$this->ecrireFichierBdntPartielle($donnees);
}
private function definirChampsPartiel() {
302,11 → 305,21
Debug::printr("Champs partiels : ".print_r($this->champs_nom_partiel,true));
}
private function ecrireFichierBdntPartielle(&$contenu) {
private function ecrireFichierBdntPartielle(&$donnees) {
$fichier_nom = $this->getBaseNomFichier().$this->manuel['ext_fichier_bdnt'];
$fichier_chemin = $this->zip_chemin_dossier_partiel.$fichier_nom;
$bdnt_tsv_entete = $this->getVue('versionnage/squelettes/bdnt_partiel_entete', array('champs_partiel' => $donnees['champs_partiel']), '.tpl.tsv');
$this->ecrireFichier($fichier_chemin, $bdnt_tsv_entete);
foreach ($this->noms as $id => &$nom) {
$donnees['nom_infos'] = $nom;
$bdnt_tsv_ligne = $this->getVue('versionnage/squelettes/bdnt_partiel_ligne', $donnees, '.tpl.tsv');
if ($bdnt_tsv_ligne != '') {
$this->ajouterAuFichier($fichier_chemin, $bdnt_tsv_ligne);
}
}
if ($this->ecrireFichier($fichier_chemin, $contenu)) {
if (file_exists($fichier_chemin)) {
$this->ajouterMessage("Écriture du fichier de la bdnt partielle réussie.");
$this->signature_md5_partiel = md5_file($fichier_chemin);
$this->ajouterMessage("Signature MD5 du fichier bdnt partiel :".$this->signature_md5_partiel);
325,6 → 338,17
return $retour;
}
private function ajouterAuFichier($fichier_chemin, &$contenu) {
$retour = true;
if (file_put_contents($fichier_chemin, $contenu, FILE_APPEND) == false) {
$e = "Une erreur est survenu lors de l'ajout de données dans le fichier : $fichier_chemin";
$this->ajouterMessage($e);
$retour = false;
}
$contenu = null;
return $retour;
}
private function creerFichierDiff() {
$donnees = array();
$derniere_meta = $this->metaDao->getDerniere($this->projet);
/trunk/scripts/modules/versionnage/squelettes/bdnt_ligne.tpl.tsv
New file
0,0 → 1,2
<?=implode("\t", $nom_infos)?>
 
/trunk/scripts/modules/versionnage/squelettes/bdnt_partiel_ligne.tpl.tsv
New file
0,0 → 1,6
<?php if (!isset($nom_infos['exclure_taxref']) || $nom_infos['exclure_taxref'] != '1') :
foreach ($champs_partiel as $champ) :
echo $nom_infos[$champ];
echo ($dernier_champ == $champ) ? "\n" : "\t";
endforeach;
endif; ?>
/trunk/scripts/modules/versionnage/squelettes/bdnt_entete.tpl.tsv
New file
0,0 → 1,2
<?=implode("\t", $champs)?>
 
/trunk/scripts/modules/versionnage/squelettes/bdnt_partiel_entete.tpl.tsv
New file
0,0 → 1,2
<?=implode("\t", $champs_partiel)?>