Issue #13; Restructuration de l'archive lors de l'import de 'download/phone' et 'download/facebook' : Les fichiers en communs sont à la racines préfixés de 'common_' et les logs dans le dossier 'logs'

This commit is contained in:
xdrm-brackets 2016-05-20 19:29:18 +02:00
parent f5a75bb588
commit 7187cab4f6
5 changed files with 44 additions and 71 deletions

View File

@ -138,14 +138,23 @@
return array( 'ModuleError' => ManagerError::ParsingFailed );
// Contiendra les données de tous les sujets
$output = array();
/* [1] On construit l'arborescence des données
=========================================================*/
$output = array(
'common_' => array(
'contacts' => '',
'relations' => '',
'dict' => ''
),
'logs/' => array() // Contiendra les journaux d'appels
);
// On ouvre une instance de la base de données
$db = new lightdb('phone_db', __ROOT__.'/src/dynamic/');
$contacts = '';
/* [1] On construit les fichiers de chaque sujet
/* [2] On construit les fichiers de chaque sujet
=========================================================*/
foreach($subjects as $s=>$subjectId){
@ -156,14 +165,14 @@
if( $subjectData === false )
continue;
/* (2) On construit le CSV */
$output[$s] = array(
'logs' => self::parseCSV($subjectData['logs'], $dict['logs']),
'relations' => self::parseCSV($subjectData['relations'], array())
);
/* (2) On construit le log s'il existe */
$output['logs/'][$subjectId] = self::parseCSV($subjectData['logs'], $dict['logs']);
/* (3) On ajoute les contacts à la liste */
$contacts .= self::parseCSV($subjectData['contacts'], $dict['contacts'], strlen($contacts) == 0 ); // On affiche les colonnes pour la première fois uniquement
/* (3) On complète les relations */
$output['common_']['relations'] .= self::parseCSV($subjectData['relations'], array(), strlen($output['common_']['relations']) == 0 ); // On affiche les colonnes pour la première fois uniquement
/* (4) On ajoute les contacts à la liste */
$output['common_']['contacts'] .= self::parseCSV($subjectData['contacts'], $dict['contacts'], strlen($output['common_']['contacts']) == 0 ); // On affiche les colonnes pour la première fois uniquement
}
@ -171,26 +180,13 @@
$db->close();
$output['all'] = array(
'contacts' => '',
'dict' => ''
);
// Pour le nom du répertoire
$subjects['all'] = 'all';
/* [2] On assemble tous les contacts
=========================================================*/
$output['all']['contacts'] = $contacts;
/* [3] On ajoute le dictionnaire
=========================================================*/
$output['all']['dict'] .= "\"sheet\";\"field\";\"key\";\"value\"\r\n";
$output['common_']['dict'] .= "\"sheet\";\"field\";\"key\";\"value\"\r\n";
foreach($dict as $ds=>$dataset)
foreach($dataset as $f=>$field)
foreach($field as $key=>$value)
$output['all']['dict'] .= "\"$ds\";\"$f\";\"$key\";\"$value\"\r\n";
$output['common_']['dict'] .= "\"$ds\";\"$f\";\"$key\";\"$value\"\r\n";
/* [4] Création de l'archive
@ -199,11 +195,11 @@
$fname = '/tmp/'.time().'.zip';
$zip->open($fname, \ZipArchive::CREATE);
foreach($output as $subjectId=>$files){
foreach($output as $folder=>$files){
foreach($files as $file=>$content)
if( strlen($content) > 0 )
$zip->addFromString($subjects[$subjectId].'/'.$file.'.csv', $content);
$zip->addFromString($folder.$file.'.csv', $content);
}
$zip->close();
@ -250,15 +246,24 @@
return array( 'ModuleError' => ManagerError::ParsingFailed );
// Contiendra les données de tous les sujets
$output = array();
/* [1] On construit l'arborescence des données
=========================================================*/
$output = array(
'common_' => array(
'contacts' => '',
'relations' => '',
'dict' => ''
)
);
// On ouvre une instance de la base de données
$db = new lightdb('facebook_db', __ROOT__.'/src/dynamic/');
$contacts = '';
/* [1] On construit les fichiers de chaque sujet
/* [2] On construit les fichiers de chaque sujet
=========================================================*/
foreach($subjects as $s=>$subjectId){
@ -269,13 +274,11 @@
if( $subjectData === false )
continue;
/* (2) On construit le CSV */
$output[$s] = array(
'relations' => self::parseCSV($subjectData['relations'], array())
);
/* (2) On complète les relations */
$output['common_']['relations'] .= self::parseCSV($subjectData['relations'], array(), strlen($output['common_']['relations']) == 0 ); // On affiche les colonnes pour la première fois uniquement
/* (3) On ajoute les contacts à la liste */
$contacts .= self::parseCSV($subjectData['contacts'], $dict['contacts'], strlen($contacts) == 0 ); // On affiche les colonnes pour la première fois uniquement
$output['common_']['contacts'] .= self::parseCSV($subjectData['contacts'], $dict['contacts'], strlen($output['common_']['contacts']) == 0 ); // On affiche les colonnes pour la première fois uniquement
}
@ -283,25 +286,13 @@
$db->close();
$output['all'] = array(
'contacts' => '',
'dict' => ''
);
// Pour le nom du répertoire
$subjects['all'] = 'all';
/* [2] On assemble tous les contacts
=========================================================*/
$output['all']['contacts'] = $contacts;
/* [3] On ajoute le dictionnaire
=========================================================*/
$output['all']['dict'] .= "\"sheet\";\"field\";\"key\";\"value\"\r\n";
$output['common_']['dict'] .= "\"sheet\";\"field\";\"key\";\"value\"\r\n";
foreach($dict as $ds=>$dataset)
foreach($dataset as $f=>$field)
foreach($field as $key=>$value)
$output['all']['dict'] .= "\"$ds\";\"$f\";\"$key\";\"$value\"\r\n";
$output['common_']['dict'] .= "\"$ds\";\"$f\";\"$key\";\"$value\"\r\n";
/* [4] Création de l'archive
@ -310,11 +301,11 @@
$fname = '/tmp/'.time().'.zip';
$zip->open($fname, \ZipArchive::CREATE);
foreach($output as $subjectId=>$files){
foreach($output as $folder=>$files){
foreach($files as $file=>$content)
if( strlen($content) > 0 )
$zip->addFromString($subjects[$subjectId].'/'.$file.'.csv', $content);
$zip->addFromString($folder.$file.'.csv', $content);
}
$zip->close();

Binary file not shown.

Binary file not shown.

View File

@ -1,9 +0,0 @@
<?php
header("Content-Type: application/zip; charset=utf-8");
header("Content-Disposition: attachment; filename=facebook_data.zip");
header("Pragma: no-cache");
header("Expires: 0");
readfile('/var/www/socioview/tmp/content_573f459f9cbbf.php');
unlink('/var/www/socioview/tmp/content_573f459f9cbbf.php');
unlink(__FILE__);
?>

View File

@ -1,9 +0,0 @@
<?php
header("Content-Type: application/zip; charset=utf-8");
header("Content-Disposition: attachment; filename=facebook_data.zip");
header("Pragma: no-cache");
header("Expires: 0");
readfile('/var/www/socioview/tmp/content_573f45b0713e5.php');
unlink('/var/www/socioview/tmp/content_573f45b0713e5.php');
unlink(__FILE__);
?>