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:
parent
f5a75bb588
commit
7187cab4f6
|
@ -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.
|
@ -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__);
|
||||
?>
|
|
@ -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__);
|
||||
?>
|
Loading…
Reference in New Issue