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