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