Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 57 → Rev 58

/trunk/scripts/modules/versionnage/squelettes/meta.tpl.tsv
2,11 → 2,11
 
code <?=$acronyme?>
 
domaine_taxo <?=$dom_tax?>
domaine_taxo <?=implode(', ', $dom_tax)?>
 
domaine_geo <?=$dom_geo?>
domaine_geo <?=implode(', ', $dom_geo)?>
 
domaine_nom <?=$dom_code?>
domaine_nom <?=implode(', ', $dom_code)?>
 
classification <?=$classification?>
 
/trunk/scripts/modules/versionnage/Versionnage.php
193,10 → 193,12
}
}
ksort($infos);
$infos = $this->remplacerTabulation($infos);
$infos = $this->remplacerSautsDeLigne($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');
$bdnt_tsv =& $this->getVue('versionnage/squelettes/bdnt', $donnees, '.tpl.tsv');
$this->ecrireFichierBdnt($bdnt_tsv);
}
228,7 → 230,7
$this->messages[] = array('message' => $message, 'resultat' => true);
}
private function ecrireFichierBdnt($contenu) {
private function ecrireFichierBdnt(&$contenu) {
$fichier_nom = $this->getBaseNomFichier().$this->manuel['ext_fichier_bdnt'];
$fichier_chemin = $this->zip_chemin_dossier.$fichier_nom;
244,7 → 246,7
return strtolower($this->meta['acronyme'].'_v'.$this->meta['version']);
}
private function ecrireFichier($fichier_chemin, $contenu) {
private function ecrireFichier($fichier_chemin, &$contenu) {
$retour = true;
if (file_put_contents($fichier_chemin, $contenu) == false) {
$e = "Une erreur est survenu lors de l'écriture du fichier : $fichier_chemin";
269,9 → 271,9
} else {
$this->noms_precedents = $this->referentielDao->getTout($code_projet_precedent);
$donnees = array();
$donnees['diff'] = $this->realiserDiff();
$donnees['diff'] =& $this->realiserDiff();
$donnees['champs'] = $this->champs_nom;
$diff_tsv = $this->getVue('versionnage/squelettes/diff', $donnees, '.tpl.tsv');
$diff_tsv = $this->getVue('versionnage/squelettes/diff', &$donnees, '.tpl.tsv');
$this->ecrireFichierDiff($diff_tsv);
}
}
280,17 → 282,20
private function realiserDiff() {
$diff = array();
$this->noms_stat['modification'] = 0;
$i = 0;
foreach ($this->noms as $id => &$nom) {
$infos = array();
if (!isset($this->noms_precedents[$id])) {
$diff[$id] = $nom;
$diff[$id]['modification_type'] = 'A';
$diff[$id]['modification_type_1'] = '0';
$diff[$id]['modification_type_2'] = '0';
$diff[$id]['modification_type_3'] = '0';
$infos = $nom;
$infos['modification_type'] = 'A';
$infos['modification_type_1'] = '0';
$infos['modification_type_2'] = '0';
$infos['modification_type_3'] = '0';
$this->noms_stat['modification']++;
} else {
$nom_precedent =& $this->noms_precedents[$id];
$nom_diff = array_diff_assoc($nom, $nom_precedent);
Debug::printr($nom_diff);
if (count($nom_diff) > 0) {
$this->noms_stat['modification']++;
$modif['modification_type'] = 'M';
300,18 → 305,24
$this->chargerTableauChampsModifTypes();
foreach ($this->champs_nom as $champ) {
if (isset($nom_diff[$champ])) {
$diff[$id][$champ] = $nom_diff[$champ];
$infos[$champ] = $nom_diff[$champ];
$type = $this->getDiffType($champ);
$modif['modification_type_'.$type] = '1';
} else {
$diff[$id][$champ] = '';
$infos[$champ] = '';
}
}
foreach ($modif as $cle => $val) {
$diff[$id][$cle] = $val;
$infos[$cle] = $val;
}
}
}
$infos = $this->remplacerTabulation($infos);
$infos = $this->remplacerSautsDeLigne($infos);
Debug::printr($infos);
Debug::printr("-------------------------------------------------");
$diff[$id][] = $infos;
if ($i == 100) break;
}
return $diff;
}
319,7 → 330,7
private function chargerTableauChampsModifTypes() {
$champs = explode(',', $this->manuel['champs_diff_type']);
foreach ($champs as $champ) {
list($champ_nom, $type) = explode('=', $champ);
list($champ_nom, $type) = explode('=', trim($champ));
$this->diff_modif_types[$champ_nom] = $type;
}
}
343,10 → 354,37
$donnees = $this->meta;
$donnees['stats'] = $this->noms_stat;
$donnees['signature'] = $this->signature_md5;
$donnees = $this->remplacerTabulation($donnees);
$donnees = $this->remplacerSautsDeLigne($donnees);
$meta_tsv = $this->getVue('versionnage/squelettes/meta', $donnees, '.tpl.tsv');
$this->ecrireFichierMeta($meta_tsv);
}
private function remplacerTabulation($doc) {
if (is_string($doc)) {
$doc = str_replace("\t", ' ', $doc);
} else if (is_array($doc) && count($doc) > 0) {
foreach ($doc as $cle => $valeur) {
$doc[$cle] = $this->remplacerTabulation($valeur);
}
}
return $doc;
}
private function remplacerSautsDeLigne($doc) {
if (is_string($doc)) {
$a_remplacer = array("\r", "\n");
$doc = str_replace($a_remplacer, ' ', $doc);
} else if (is_array($doc) && count($doc) > 0) {
foreach ($doc as $cle => $valeur) {
$doc[$cle] = $this->remplacerSautsDeLigne($valeur);
}
}
return $doc;
}
private function ecrireFichierMeta($contenu) {
$fichier_nom = $this->getBaseNomFichier().$this->manuel['ext_fichier_meta'];
$fichier_chemin = $this->zip_chemin_dossier.$fichier_nom;