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