Compare commits
No commits in common. "master" and "output-update" have entirely different histories.
master
...
output-upd
|
@ -1,11 +1,5 @@
|
||||||
.ftpconfig
|
.ftpconfig
|
||||||
sftp-config.json
|
sftp-config.json
|
||||||
phpunit/coverage/
|
phpunit/coverage/
|
||||||
/public_html/tmp/*
|
#/public_html/tmp/*
|
||||||
<<<<<<< HEAD
|
#/build/lightdb/storage/*/data
|
||||||
/build/lightdb/storage/*
|
|
||||||
/config/server.json
|
|
||||||
=======
|
|
||||||
/build/lightdb/storage/*/data
|
|
||||||
**.swp
|
|
||||||
>>>>>>> 255af4d6b03408ab9f840db1fea74a35b7bc28c4
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
|
|
||||||
// Loads the build facade
|
// Loads the build facade
|
||||||
// require_once __BUILD__.'/Builder.php';
|
require_once __BUILD__.'/Builder.php';
|
||||||
|
|
||||||
|
|
||||||
/* AUTOLOADER
|
/* AUTOLOADER
|
||||||
|
@ -52,10 +52,11 @@
|
||||||
\manager\sessionManager::session_start();
|
\manager\sessionManager::session_start();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] Gestion des droits des utilisateurs
|
/* [3] Gestion des droits des utilisateurs
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) Retourne si l'utilisateur est connecte ou non */
|
/* (1) Retourne si l'utilisateur est connecte ou non */
|
||||||
function connected(){ return isset($_SESSION['permission']) && is_array($_SESSION['permission']) && count($_SESSION['permission']) > 0; }
|
function connected(){ return isset($_SESSION['permission']) && count($_SESSION['permission']); }
|
||||||
|
|
||||||
/* (2) Retourne si l'utilisateur a le status en question */
|
/* (2) Retourne si l'utilisateur a le status en question */
|
||||||
function permission($type){ return connected() && in_array($type, $_SESSION['permission']); }
|
function permission($type){ return connected() && in_array($type, $_SESSION['permission']); }
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
use \database\core\DatabaseDriver;
|
use \database\core\DatabaseDriver;
|
||||||
use \manager\ManagerError;
|
use \manager\ManagerError;
|
||||||
use \api\core\Checker;
|
use \api\core\Checker;
|
||||||
use \database\core\Repo;
|
|
||||||
|
|
||||||
|
|
||||||
class ModuleRequest{
|
class ModuleRequest{
|
||||||
|
|
|
@ -116,6 +116,17 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* DOWNLOAD D'UN FICHIER CONTENANT LES DONNEES SELECTIONNEES
|
/* DOWNLOAD D'UN FICHIER CONTENANT LES DONNEES SELECTIONNEES
|
||||||
*
|
*
|
||||||
* @subjects<Array> Liste des identifiants des sujets à prendre en compte
|
* @subjects<Array> Liste des identifiants des sujets à prendre en compte
|
||||||
|
@ -223,12 +234,6 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// On ajoute le sujet à la liste des contacts
|
|
||||||
$output['contacts.mini'] .= self::parseCSV([[
|
|
||||||
'id' => $subid,
|
|
||||||
'name' => $subject['subject']['name']
|
|
||||||
]], [], strlen($output['contacts.mini']) == 0);
|
|
||||||
|
|
||||||
/* (4) Si aucune relation -> suivant */
|
/* (4) Si aucune relation -> suivant */
|
||||||
if( !isset($subject['relations']) || !is_array($subject['relations']) )
|
if( !isset($subject['relations']) || !is_array($subject['relations']) )
|
||||||
continue;
|
continue;
|
||||||
|
@ -293,6 +298,9 @@
|
||||||
/* EXPORT POUR GEPHI OU AUTRE LOGICIEL SUR LE PRINCIPE NODES+EDGES
|
/* EXPORT POUR GEPHI OU AUTRE LOGICIEL SUR LE PRINCIPE NODES+EDGES
|
||||||
*
|
*
|
||||||
* @subjects<Array> Liste des identifiants des sujets à prendre en compte
|
* @subjects<Array> Liste des identifiants des sujets à prendre en compte
|
||||||
|
* @phone<Boolean> Si TRUE, prend en compte les données des questionnaires cellulaires
|
||||||
|
* @facebook<Boolean> Si TRUE, prend en compte les données des questionnaires facebook
|
||||||
|
* @survey<Boolean> Si TRUE, prend en compte les données des questionnaires ResTIC
|
||||||
* @all<Boolean> Si TRUE, prend en compte tous les sujets (annule @subjects)
|
* @all<Boolean> Si TRUE, prend en compte tous les sujets (annule @subjects)
|
||||||
*
|
*
|
||||||
* @return data<File> Retourne une archive .zip contenant toutes les données sélectionnées
|
* @return data<File> Retourne une archive .zip contenant toutes les données sélectionnées
|
||||||
|
@ -301,12 +309,15 @@
|
||||||
extract($params);
|
extract($params);
|
||||||
|
|
||||||
/* (0) Gestion du formattage des paramètres */
|
/* (0) Gestion du formattage des paramètres */
|
||||||
$subjects = !is_array($subjects) ? [] : $subjects;
|
$subjects = !is_array($subjects) ? [] : $subjects;
|
||||||
$all = !is_bool($all) ? false : $all;
|
$phone = !is_bool($phone) ? false : $phone;
|
||||||
|
$facebook = !is_bool($facebook) ? false : $facebook;
|
||||||
|
$survey = !is_bool($survey) ? false : $survey;
|
||||||
|
$all = !is_bool($all) ? false : $all;
|
||||||
|
|
||||||
/* [0] On récupère le dictionnaire
|
/* [0] On récupère le dictionnaire
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$dict = file_get_contents(__BUILD__.'/lightdb/storage/dictionary.json');
|
$dict = file_get_contents(__BUILD__.'/src/dynamic/dictionary.json');
|
||||||
|
|
||||||
/* (2) Si une erreur pour le fichier de conf */
|
/* (2) Si une erreur pour le fichier de conf */
|
||||||
if( $dict === false )
|
if( $dict === false )
|
||||||
|
@ -320,120 +331,184 @@
|
||||||
return [ 'ModuleError' => ManagerError::ParsingFailed ];
|
return [ 'ModuleError' => ManagerError::ParsingFailed ];
|
||||||
|
|
||||||
|
|
||||||
/* [1] Initialisation
|
/* [1] On construit l'arborescence des données
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) Fichiers de sortie */
|
|
||||||
$output = [
|
$output = [
|
||||||
'gephi.nodes' => '', // contiendra les contacts et leurs données
|
'common_' => [
|
||||||
'gephi.edges' => '', // contiendra les relations
|
'contacts' => '',
|
||||||
'dict' => '' // contiendra le dictionnaire de valeurs
|
'relations' => '',
|
||||||
|
'dict' => ''
|
||||||
|
],
|
||||||
|
'logs/' => [] // Contiendra les journaux d'appels
|
||||||
];
|
];
|
||||||
|
|
||||||
/* (2) Base de données */
|
|
||||||
$subjectdb = new lightdb('subject');
|
|
||||||
$contactdb = new lightdb('contact');
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] On construit la liste des sujets
|
/* [2] On construit les fichiers de chaque sujet DE TELEPHONE
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$subjectindexes = array_keys($subjectdb->index());
|
if( $phone ){ // Si @phone vaut TRUE
|
||||||
$subjectids = [];
|
|
||||||
|
|
||||||
/* (1) On récupère tous les sujets si c'est spécifié */
|
// On ouvre une instance de la base de données
|
||||||
if( $all )
|
$db = new lightdb('phone_db');
|
||||||
|
|
||||||
$subjectids = $subjectindexes;
|
// Si on doit prendre tous les sujets, on les récupère
|
||||||
|
if( $all )
|
||||||
|
$subjects = array_keys( $db->index() );
|
||||||
|
|
||||||
/* (2) Sinon on retire les ids incorrects */
|
// Pour chaque sujet
|
||||||
else
|
foreach($subjects as $s=>$subjectId){
|
||||||
|
|
||||||
foreach($subjects as $i=>$id)
|
/* (1) On récupère les données du sujet en cours */
|
||||||
if( in_array($id, $subjectindexes) )
|
$subjectData = $db->fetch($subjectId);
|
||||||
$subjectids[] = intval($id);
|
|
||||||
|
|
||||||
|
// Si on ne trouve rien, on passe au suivant
|
||||||
|
if( $subjectData === false )
|
||||||
/* (3) Si aucun sujet restant -> error */
|
|
||||||
if( count($subjectids) === 0 )
|
|
||||||
return ['ModuleError' => ManagerError::ParamError];
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] Export contacts/relations des sujets selectionnés
|
|
||||||
=========================================================*/
|
|
||||||
foreach($subjectids as $subid){
|
|
||||||
|
|
||||||
/* (1) On récupère les données du sujet */
|
|
||||||
$subject = $subjectdb->fetch($subid);
|
|
||||||
|
|
||||||
// si pas trouvé -> suivant
|
|
||||||
if( $subject === false )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* (2) Si aucun contact -> suivant */
|
|
||||||
if( !isset($subject['contacts']) || !is_array($subject['contacts']) )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* (3) Pour chaque contact */
|
|
||||||
foreach($subject['contacts'] as $c=>$contactid){
|
|
||||||
|
|
||||||
// {3.1} On récupère le contact //
|
|
||||||
$contact = $contactdb->fetch($contactid);
|
|
||||||
|
|
||||||
// si pas trouvé -> suivant
|
|
||||||
if( $contact === false )
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// {3.2} On ajoute le contact au fichier des FICHES //
|
/* (2) On construit le log s'il existe */
|
||||||
if( array_key_exists('studies2', $contact) ){
|
$output['logs/'][$subjectId] = self::parseCSV($subjectData['logs'], $dict['logs']);
|
||||||
// On affiche les colonnes pour le premier contact uniquement
|
|
||||||
$contact['type'] = 'fiche';
|
|
||||||
$output['gephi.nodes'] .= self::parseCSV([$contact], $dict['contacts'], strlen($output['gephi.nodes']) == 0 );
|
|
||||||
|
|
||||||
// {3.3} On ajoute le contact au fichier des MINI //
|
/* (3) On complète les relations */
|
||||||
}elseif( array_key_exists('studies1', $contact) ){
|
// {1} On retire les valeurs ou le type = 0 //
|
||||||
// On affiche les colonnes pour le premier contact uniquement
|
$formattedRelations = [];
|
||||||
$contact['type'] = 'mini';
|
foreach($subjectData['relations'] as $i=>$relation)
|
||||||
$output['gephi.nodes'] .= self::parseCSV([$contact], $dict['contacts'], strlen($output['gephi.nodes']) == 0 );
|
if( $relation['type'] != 0 )
|
||||||
}
|
array_push($formattedRelations, [
|
||||||
|
'source' => $relation['idA'],
|
||||||
|
'target' => $relation['idB'],
|
||||||
|
'weight' => ($relation['idA']==$subjectId) ? .1 : 1, // plus de poids aux relations alter/alter
|
||||||
|
'type' => 'Undirected'
|
||||||
|
]);
|
||||||
|
|
||||||
|
// {2} On ajoute au contenu //
|
||||||
|
$output['common_']['relations'] .= self::parseCSV($formattedRelations, [], 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
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// On ajoute le sujet à la liste des contacts
|
// On ferme l'instance de la base de données
|
||||||
$output['gephi.nodes'] .= self::parseCSV([[
|
$db->close();
|
||||||
'id' => $subid,
|
|
||||||
'name' => $subject['subject']['name']
|
|
||||||
]], [], strlen($output['gephi.nodes']) == 0);
|
|
||||||
|
|
||||||
/* (4) Si aucune relation -> suivant */
|
|
||||||
if( !isset($subject['relations']) || !is_array($subject['relations']) )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/* (5) On ajoute les relations */
|
|
||||||
foreach($subject['relations'] as $r=>$rel)
|
|
||||||
|
|
||||||
$output['gephi.edges'] .= self::parseCSV(
|
|
||||||
[[
|
|
||||||
'source' => $rel['idA'],
|
|
||||||
'target' => $rel['idB'],
|
|
||||||
'weight' => ($rel['idA']==$subid) ? .5 : 1,
|
|
||||||
'type' => 'Undirected'
|
|
||||||
]],
|
|
||||||
[],
|
|
||||||
strlen($output['gephi.edges']) == 0
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On construit les fichiers de chaque sujet DE FACEBOOK
|
||||||
|
=========================================================*/
|
||||||
|
if( $facebook ){ // Si @facebook vaut TRUE
|
||||||
|
|
||||||
|
// On ouvre une instance de la base de données
|
||||||
|
$db = new lightdb('facebook_db');
|
||||||
|
|
||||||
|
// Si on doit prendre tous les sujets, on les récupère
|
||||||
|
if( $all )
|
||||||
|
$subjects = array_keys( $db->index() );
|
||||||
|
|
||||||
|
// Pour chaque sujet
|
||||||
|
foreach($subjects as $s=>$subjectId){
|
||||||
|
|
||||||
|
/* (1) On récupère les données du sujet en cours */
|
||||||
|
$subjectData = $db->fetch($subjectId);
|
||||||
|
|
||||||
|
// Si on ne trouve rien, on passe au suivant
|
||||||
|
if( $subjectData === false )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* (2) On complète les relations */
|
||||||
|
// {1} On retire les valeurs ou le type = 0 //
|
||||||
|
$formattedRelations = [];
|
||||||
|
foreach($subjectData['relations'] as $i=>$relation)
|
||||||
|
if( $relation['type'] != 0 )
|
||||||
|
array_push($formattedRelations, [
|
||||||
|
'source' => $relation['idA'],
|
||||||
|
'target' => $relation['idB'],
|
||||||
|
'weight' => ($relation['idA']==$subjectId) ? .1 : 1, // plus de poids aux relations alter/alter
|
||||||
|
'type' => 'Undirected'
|
||||||
|
]);
|
||||||
|
|
||||||
|
// {2} On ajoute au contenu //
|
||||||
|
$output['common_']['relations'] .= self::parseCSV($formattedRelations, [], strlen($output['common_']['relations']) == 0 ); // On affiche les colonnes pour la première fois uniquement
|
||||||
|
|
||||||
|
/* (3) 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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// On ferme l'instance de la base de données
|
||||||
|
$db->close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [4] On construit les fichiers de chaque sujet DE FORMULAIRE
|
||||||
|
=========================================================*/
|
||||||
|
if( $survey ){ // Si @survey vaut TRUE
|
||||||
|
|
||||||
|
// On ouvre une instance de la base de données
|
||||||
|
$db = new lightdb('survey_db');
|
||||||
|
|
||||||
|
// Si on doit prendre tous les sujets, on les récupère
|
||||||
|
if( $all )
|
||||||
|
$subjects = array_keys( $db->index() );
|
||||||
|
|
||||||
|
// Pour chaque sujet
|
||||||
|
foreach($subjects as $s=>$subjectId){
|
||||||
|
|
||||||
|
/* (1) On récupère les données du sujet en cours */
|
||||||
|
$subjectData = $db->fetch($subjectId);
|
||||||
|
|
||||||
|
// Si on ne trouve rien, on passe au suivant
|
||||||
|
if( $subjectData === false )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* (2) On complète les relations */
|
||||||
|
// {1} On retire les valeurs ou le type = 0 //
|
||||||
|
$formattedRelations = [];
|
||||||
|
foreach($subjectData['relations'] as $i=>$relation)
|
||||||
|
if( $relation['type'] != 0 ) // On retire les relations ego/alter
|
||||||
|
array_push($formattedRelations, [
|
||||||
|
'source' => $relation['idA'],
|
||||||
|
'target' => $relation['idB'],
|
||||||
|
'weight' => ($relation['idA']==$subjectId) ? .1 : 1, // plus de poids aux relations alter/alter
|
||||||
|
'type' => 'Undirected'
|
||||||
|
]);
|
||||||
|
|
||||||
|
// {2} On ajoute au contenu //
|
||||||
|
$output['common_']['relations'] .= self::parseCSV($formattedRelations, [], strlen($output['common_']['relations']) == 0 ); // On affiche les colonnes pour la première fois uniquement
|
||||||
|
|
||||||
|
/* (3) 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
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// On ferme l'instance de la base de données
|
||||||
|
$db->close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [5] On ajoute le dictionnaire
|
/* [5] On ajoute le dictionnaire
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$output['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['dict'] .= "\"$ds\";\"$f\";\"$key\";\"$value\"\r\n";
|
$output['common_']['dict'] .= "\"$ds\";\"$f\";\"$key\";\"$value\"\r\n";
|
||||||
|
|
||||||
|
|
||||||
/* [6] Création de l'archive
|
/* [6] Création de l'archive
|
||||||
|
@ -442,10 +517,12 @@
|
||||||
$fname = __TMP__.'/'.time().'.zip';
|
$fname = __TMP__.'/'.time().'.zip';
|
||||||
$zip->open($fname, \ZipArchive::CREATE);
|
$zip->open($fname, \ZipArchive::CREATE);
|
||||||
|
|
||||||
|
foreach($output as $folder=>$files){
|
||||||
|
|
||||||
foreach($output as $file=>$content)
|
foreach($files as $file=>$content)
|
||||||
if( strlen($content) > 0 )
|
if( strlen($content) > 0 )
|
||||||
$zip->addFromString($file.'.csv', $content);
|
$zip->addFromString($folder.$file.'.csv', $content);
|
||||||
|
}
|
||||||
|
|
||||||
$zip->close();
|
$zip->close();
|
||||||
|
|
||||||
|
|
|
@ -62,369 +62,9 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* TRAITE LES DONNÉES D'UN FORMULAIRE DE TYPE LAB-SURVEYS
|
|
||||||
*
|
|
||||||
* @subject<Array> Données du sujet concerné
|
|
||||||
* @contacts<Array> Tableau contenant les données des contacts
|
|
||||||
* @mini<Array> Tableau contenant les données des mini fiches relation
|
|
||||||
* @fiches<Array> Tableau contenant les données des fiches relation
|
|
||||||
*
|
|
||||||
* @return subject_id<int> Retourne l'id sujet de l'enquête
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function survey($params){
|
|
||||||
extract($params);
|
|
||||||
|
|
||||||
$START_TIME = microtime(true);
|
|
||||||
|
|
||||||
/* [1] On récupère l'id unique actuel
|
|
||||||
=========================================================*/
|
|
||||||
$funiq = fopen( __BUILD__.'/lightdb/storage/uniqid', 'r+' );
|
|
||||||
flock($funiq, LOCK_EX); // On verrouille le fichier
|
|
||||||
$uniqid = trim( fgets( $funiq ) );
|
|
||||||
|
|
||||||
|
|
||||||
if( !is_numeric($uniqid) )
|
|
||||||
$uniqid = 0;
|
|
||||||
|
|
||||||
// Décalage à appliquer à tous les ids
|
|
||||||
$offset = intval($uniqid) + 1;
|
|
||||||
|
|
||||||
// on enregistre l'id du sujet
|
|
||||||
$subject_id = intval($subject['subject_id']);
|
|
||||||
|
|
||||||
// Contiendra la valeur de l'id maximum
|
|
||||||
$maxId = $offset;
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] On initialise nos variables (lightdb + autres)
|
|
||||||
=========================================================*/
|
|
||||||
|
|
||||||
/* (2) Bases de données */
|
|
||||||
$subjectdb = new lightdb('subject');
|
|
||||||
$contactdb = new lightdb('contact');
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] Données du sujet
|
|
||||||
=========================================================*/
|
|
||||||
$subject_set = $subjectdb->fetch($subject_id);
|
|
||||||
|
|
||||||
/* (1) Si le sujet n'existe pas -> ERROR */
|
|
||||||
if( $subject_set === false )
|
|
||||||
return ['ModuleError'=>ManagerError::UnreachableResource];
|
|
||||||
|
|
||||||
/* (2) Initialisation des contacts si vide */
|
|
||||||
if( !isset($subject_set['contacts']) )
|
|
||||||
$subject_set['contacts'] = [];
|
|
||||||
|
|
||||||
/* (3) Initialisation des relations si vide */
|
|
||||||
if( !isset($subject_set['relations']) )
|
|
||||||
$subject_set['relations'] = [];
|
|
||||||
|
|
||||||
/* (4) Ajout de l'enquête */
|
|
||||||
//if( !in_array('phone', $subject_set['subject']['surveys']) )
|
|
||||||
// $subject_set['subject']['surveys'][] = 'phone';
|
|
||||||
|
|
||||||
/* (5) On met à jour si le sujet veut renouveller l'enquête plus tard */
|
|
||||||
if( !empty($subject['coords']) )
|
|
||||||
$subject_set['subject']['coords'] = $subject['coords'];
|
|
||||||
|
|
||||||
/* (6) On récupère les noms des contacts */
|
|
||||||
$contactsById = []; // idContact -> nomContact, typeEnquete ('mini' ou 'fiche')
|
|
||||||
|
|
||||||
foreach($subject_set['contacts'] as $contactId){
|
|
||||||
$contactId = intval($contactId);
|
|
||||||
$contactData = $contactdb->fetch( $contactId );
|
|
||||||
|
|
||||||
$contactsById[$contactId] = [
|
|
||||||
'name' => $contactData['name'],
|
|
||||||
'type' => isset($contactData['studies2']) ? 'fiche' : 'mini'
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* [4] On saisit les fiches + les contacts des fiches
|
|
||||||
=========================================================*/
|
|
||||||
$contactsDone = [
|
|
||||||
"existing" => [], // Contacts exportés déja enregistrés
|
|
||||||
"username" => [] // Nouveaux contacts déja enregistrés
|
|
||||||
];
|
|
||||||
$finalid = []; // id_contact -> id_final_contact (existant ou nouveau)
|
|
||||||
|
|
||||||
foreach($fiches as $f=>$ficheData){
|
|
||||||
|
|
||||||
/* (1) On récupère les données du contact associé */
|
|
||||||
if( !isset($contacts[$ficheData['uid']]) )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
|
|
||||||
$contact = $contacts[ $ficheData['uid'] ];
|
|
||||||
|
|
||||||
/* (2) Si le contact a été importé d'une autre enquête */
|
|
||||||
if( isset($contact['existing']) && is_numeric($contact['existing']) ){
|
|
||||||
|
|
||||||
$newId = (int) $contact['existing'];
|
|
||||||
$existingData = null;
|
|
||||||
|
|
||||||
// si le contact existe bien déja -> on recup. ses données
|
|
||||||
if( isset($contactsById[ $newId ]) )
|
|
||||||
$existingData = $contactsById[$newId];
|
|
||||||
|
|
||||||
$uname = $existingData['name'];
|
|
||||||
|
|
||||||
// si aucune référence existante -> on oublie ce contact
|
|
||||||
if( $existingData === null ){
|
|
||||||
$finalid[ intval($contact['uid']) ] = null;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$finalid[ intval($contact['uid']) ] = $newId;
|
|
||||||
|
|
||||||
// S'il a déja une fiche ou qu'on a déja fait une fiche, on quitte
|
|
||||||
if( $existingData['type'] === 'fiche' || isset($contactsDone['existing'][$newId]) )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// On l'ajoute à la liste des contacts 'existing' fait
|
|
||||||
$contactsDone['existing'][$newId] = $newId;
|
|
||||||
|
|
||||||
/* (3) Si nouveau contact */
|
|
||||||
}else{
|
|
||||||
|
|
||||||
$newId = (int) ($offset+$contact['uid']);
|
|
||||||
$uname = $contact['username'];
|
|
||||||
|
|
||||||
$finalid[ intval($contact['uid']) ] = $newId;
|
|
||||||
|
|
||||||
// S'il a déja été saisi, on met l'ancienne référence puis on passe au suivant
|
|
||||||
if( isset($contactsDone['username'][$uname]) ){
|
|
||||||
$finalid[ intval($contact['uid']) ] = $contactsDone['username'][$uname];
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// On l'ajoute à la liste des contacts 'username' fait
|
|
||||||
$contactsDone['username'][$uname] = $newId;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* (4) Update du @maxId */
|
|
||||||
if( $newId > $maxId )
|
|
||||||
$maxId = (int) $newId;
|
|
||||||
|
|
||||||
/* (5) On enregistre les données du contact */
|
|
||||||
$contactdb->insert($newId, [
|
|
||||||
'id' => $newId,
|
|
||||||
'name' => $uname,
|
|
||||||
'sexe' => $ficheData['sexe'],
|
|
||||||
'age' => $ficheData['age'],
|
|
||||||
'studies2' => $ficheData['studies'],
|
|
||||||
'reltype' => ($ficheData['reltype']==10) ? $ficheData['reltypeSpecial'] : $ficheData['reltype'], // si 'autre' -> valeur, sinon le code
|
|
||||||
'dist' => $ficheData['loc'],
|
|
||||||
'job' => $ficheData['job'],
|
|
||||||
'famsit' => $ficheData['famsit'],
|
|
||||||
'city' => $ficheData['city'],
|
|
||||||
'cp' => $ficheData['cp'],
|
|
||||||
'quartier' => $ficheData['quartier'],
|
|
||||||
'duration' => $ficheData['duration'],
|
|
||||||
'context' => $ficheData['context'],
|
|
||||||
'contextExtra' => $ficheData['contextSpecial'],
|
|
||||||
'freq' => $ficheData['freq'],
|
|
||||||
'connect' => $ficheData['connect'],
|
|
||||||
'connectExtra' => $ficheData['connectSpecial'],
|
|
||||||
'medsoc' => $ficheData['medsoc'],
|
|
||||||
'interest' => $ficheData['interest'],
|
|
||||||
'irlfreq' => $ficheData['irlfreq'],
|
|
||||||
'relmark' => $ficheData['relmark'],
|
|
||||||
'medrel' => $ficheData['medrel']
|
|
||||||
] );
|
|
||||||
|
|
||||||
// On ajoute le contact dans la liste des contacts du sujet (si pas déja)
|
|
||||||
if( !in_array($newId, $subject_set['contacts']) )
|
|
||||||
$subject_set['contacts'][] = $newId;
|
|
||||||
|
|
||||||
// On enregistre la relation avec EGO
|
|
||||||
$reltype = ($f<20) ? 4 : 5; // 4->appels 5->sms
|
|
||||||
if( !self::relAlready($subject_set['relations'], $subject_id, $newId, $reltype) )
|
|
||||||
$subject_set['relations'][] = [
|
|
||||||
'idA' => $subject_id,
|
|
||||||
'idB' => $newId,
|
|
||||||
'type' => $reltype
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* [5] On enregistre les mini + les contacts des mini
|
|
||||||
=========================================================*/
|
|
||||||
foreach($mini as $miniData){
|
|
||||||
|
|
||||||
/* (1) On récupère les données du contact associé */
|
|
||||||
if( !isset($contacts[$miniData['uid']]) )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
$contact = $contacts[ $miniData['uid'] ];
|
|
||||||
|
|
||||||
/* (2) Si le contact a été importé d'une autre enquête */
|
|
||||||
if( isset($contact['existing']) && is_numeric($contact['existing']) ){
|
|
||||||
|
|
||||||
$newId = (int) $contact['existing'];
|
|
||||||
$existingData = null;
|
|
||||||
|
|
||||||
// si le contact existe bien déja -> on recup. ses données
|
|
||||||
if( isset($contactsById[ $newId ]) )
|
|
||||||
$existingData = $contactsById[$newId];
|
|
||||||
|
|
||||||
$uname = $existingData['name'];
|
|
||||||
|
|
||||||
// si aucune référence existante -> on oublie ce contact
|
|
||||||
if( $existingData === null ){
|
|
||||||
$finalid[ intval($contact['uid']) ] = null;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$finalid[ intval($contact['uid']) ] = $newId;
|
|
||||||
|
|
||||||
// S'il a déja une fiche ou qu'on a déja fait une fiche, on quitte
|
|
||||||
if( $existingData['type'] === 'fiche' || isset($contactsDone['existing'][$newId]) )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// On l'ajoute à la liste des contacts 'existing' fait
|
|
||||||
$contactsDone['existing'][$newId] = $newId;
|
|
||||||
|
|
||||||
/* (3) Si nouveau contact */
|
|
||||||
}else{
|
|
||||||
|
|
||||||
$newId = (int) ($offset+$contact['uid']);
|
|
||||||
$uname = $contact['username'];
|
|
||||||
|
|
||||||
$finalid[ intval($contact['uid']) ] = $newId;
|
|
||||||
|
|
||||||
// S'il a déja été saisi, on met l'ancienne référence puis on passe au suivant
|
|
||||||
if( isset($contactsDone['username'][$uname]) ){
|
|
||||||
$finalid[ intval($contact['uid']) ] = $contactsDone['username'][$uname];
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// On l'ajoute à la liste des contacts 'username' fait
|
|
||||||
$contactsDone['username'][$uname] = $newId;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* (4) Update du @maxId */
|
|
||||||
if( $newId > $maxId )
|
|
||||||
$maxId = (int) $newId;
|
|
||||||
|
|
||||||
|
|
||||||
// On remplit les données qui iront dans le fichier pour ce contact
|
|
||||||
$contactdb->insert($newId, [
|
|
||||||
'id' => $newId,
|
|
||||||
'name' => $uname,
|
|
||||||
'sexe' => $miniData['sexe'],
|
|
||||||
'age' => $miniData['age'],
|
|
||||||
'studies1' => $miniData['studies'],
|
|
||||||
'reltype' => ($miniData['reltype']==10) ? $miniData['reltypeSpecial'] : $miniData['reltype'], // si 'autre' -> valeur, sinon le code
|
|
||||||
'dist' => $miniData['loc']
|
|
||||||
] );
|
|
||||||
|
|
||||||
// On ajoute le contact dans la liste des contacts du sujet (si pas déja)
|
|
||||||
if( !in_array($newId, $subject_set['contacts']) )
|
|
||||||
$subject_set['contacts'][] = $newId;
|
|
||||||
|
|
||||||
// On enregistre la relation avec EGO
|
|
||||||
if( !self::relAlready($subject_set['relations'], $subject_id, $newId, 2) )
|
|
||||||
$subject_set['relations'][] = [
|
|
||||||
'idA' => $subject_id,
|
|
||||||
'idB' => $newId,
|
|
||||||
'type' => 2 // relation cellulaire mineure
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [6] On enregistre les relations de la MATRICE
|
|
||||||
=========================================================*/
|
|
||||||
$clen = count($finalid);
|
|
||||||
|
|
||||||
/* (1) On récupére les ids (initiaux) des contacts de manière unique */
|
|
||||||
$doneNewId = [];
|
|
||||||
$cIdList = [];
|
|
||||||
foreach($finalid as $lastid=>$newid){
|
|
||||||
|
|
||||||
// si id (ou reference) déja fait -> suivant
|
|
||||||
if( array_key_exists($newid, $doneNewId) )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
$cIdList[$lastid] = null;
|
|
||||||
$doneNewId[$newid] = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ksort($cIdList);
|
|
||||||
|
|
||||||
|
|
||||||
/* (2) On remplit les relations */
|
|
||||||
foreach($cIdList as $x=>$yNull){
|
|
||||||
foreach($cIdList as $y=>$xNull)
|
|
||||||
if( $x < $y ){ // On affiche que sous la diagonale
|
|
||||||
|
|
||||||
// Si relation alter-alter
|
|
||||||
$relation_type = isset($matrice[$y]) && in_array($x, $matrice[$y])
|
|
||||||
|| ( isset($matrice[$x]) && in_array($y, $matrice[$x]) );
|
|
||||||
|
|
||||||
$relation_type = $relation_type ? 1 : 0; // 0->aucune relation 1->relation alter alter
|
|
||||||
|
|
||||||
|
|
||||||
/* (3) Si la relation existe déja, on ne fait rien */
|
|
||||||
if( self::relAlready($subject_set['relations'], $finalid[$x], $finalid[$y], $relation_type) )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
$subject_set['relations'][] = [
|
|
||||||
'idA' => $finalid[$x],
|
|
||||||
'idB' => $finalid[$y],
|
|
||||||
'type' => $relation_type
|
|
||||||
];
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* [6] On les données du sujet
|
|
||||||
=========================================================*/
|
|
||||||
$subjectdb->delete($subject_id);
|
|
||||||
$subjectdb->insert($subject_id, $subject_set);
|
|
||||||
|
|
||||||
|
|
||||||
/* [7] Ferme les bases de données
|
|
||||||
=========================================================*/
|
|
||||||
$subjectdb->close();
|
|
||||||
$contactdb->close();
|
|
||||||
|
|
||||||
|
|
||||||
/* [7] On met à jour le nouvel ID unique
|
|
||||||
=========================================================*/
|
|
||||||
rewind($funiq); // On revient au début du fichier
|
|
||||||
fwrite($funiq, $maxId); // On écrit la nouvelle valeur (forcément plus grande)
|
|
||||||
flock($funiq, LOCK_UN); // On débloque le verrou
|
|
||||||
fclose($funiq);
|
|
||||||
|
|
||||||
|
|
||||||
/* [9] Gestion du retour
|
|
||||||
=========================================================*/
|
|
||||||
return [
|
|
||||||
'ModuleError' => ManagerError::Success,
|
|
||||||
'subject_id' => $subject_id,
|
|
||||||
'nb_contacts' => count($subject_set['contacts']),
|
|
||||||
'nb_relations' => count($subject_set['relations']),
|
|
||||||
'elapsed_time' => microtime(true) - $START_TIME
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* TRAITE LES DONNÉES D'UN FORMULAIRE DE TYPE TÉLÉPHONIQUE
|
/* TRAITE LES DONNÉES D'UN FORMULAIRE DE TYPE TÉLÉPHONIQUE
|
||||||
*
|
*
|
||||||
* @subject<Array> Données du sujet concerné
|
* @subject<Array> Tableau contenant les données du sujet
|
||||||
* @contacts<Array> Tableau contenant les données des contacts
|
* @contacts<Array> Tableau contenant les données des contacts
|
||||||
* @mini<Array> Tableau contenant les données des mini fiches relation
|
* @mini<Array> Tableau contenant les données des mini fiches relation
|
||||||
* @fiches<Array> Tableau contenant les données des fiches relation
|
* @fiches<Array> Tableau contenant les données des fiches relation
|
||||||
|
@ -459,6 +99,11 @@
|
||||||
|
|
||||||
/* [2] On initialise nos variables (lightdb + autres)
|
/* [2] On initialise nos variables (lightdb + autres)
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
/* (1) Fichiers de sortie */
|
||||||
|
$file = [
|
||||||
|
"subject" => "",
|
||||||
|
"relations" => []
|
||||||
|
];
|
||||||
|
|
||||||
/* (2) Bases de données */
|
/* (2) Bases de données */
|
||||||
$subjectdb = new lightdb('subject');
|
$subjectdb = new lightdb('subject');
|
||||||
|
@ -485,11 +130,7 @@
|
||||||
if( !in_array('phone', $subject_set['subject']['surveys']) )
|
if( !in_array('phone', $subject_set['subject']['surveys']) )
|
||||||
$subject_set['subject']['surveys'][] = 'phone';
|
$subject_set['subject']['surveys'][] = 'phone';
|
||||||
|
|
||||||
/* (5) On met à jour si le sujet veut renouveller l'enquête plus tard */
|
/* (5) On récupère les noms des contacts */
|
||||||
if( !empty($subject['coords']) )
|
|
||||||
$subject_set['subject']['coords'] = $subject['coords'];
|
|
||||||
|
|
||||||
/* (6) On récupère les noms des contacts */
|
|
||||||
$contactsById = []; // idContact -> nomContact, typeEnquete ('mini' ou 'fiche')
|
$contactsById = []; // idContact -> nomContact, typeEnquete ('mini' ou 'fiche')
|
||||||
|
|
||||||
foreach($subject_set['contacts'] as $contactId){
|
foreach($subject_set['contacts'] as $contactId){
|
||||||
|
@ -589,12 +230,7 @@
|
||||||
'contextExtra' => $ficheData['contextSpecial'],
|
'contextExtra' => $ficheData['contextSpecial'],
|
||||||
'freq' => $ficheData['freq'],
|
'freq' => $ficheData['freq'],
|
||||||
'connect' => $ficheData['connect'],
|
'connect' => $ficheData['connect'],
|
||||||
'connectExtra' => $ficheData['connectSpecial'],
|
'connectExtra' => $ficheData['connectSpecial']
|
||||||
'medsoc' => $ficheData['medsoc'],
|
|
||||||
'interest' => $ficheData['interest'],
|
|
||||||
'irlfreq' => $ficheData['irlfreq'],
|
|
||||||
'relmark' => $ficheData['relmark'],
|
|
||||||
'medrel' => $ficheData['medrel']
|
|
||||||
] );
|
] );
|
||||||
|
|
||||||
// On ajoute le contact dans la liste des contacts du sujet (si pas déja)
|
// On ajoute le contact dans la liste des contacts du sujet (si pas déja)
|
||||||
|
@ -784,11 +420,12 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* TRAITE LES DONNÉES D'UN FORMULAIRE DE TYPE FACEBOOK
|
/* TRAITE LES DONNÉES D'UN FORMULAIRE DE TYPE FACEBOOK
|
||||||
*
|
*
|
||||||
* @subject<Array> Données du sujet concerné
|
* @subject<Array> Tableau contenant les données du sujet
|
||||||
* @contacts<Array> Tableau contenant les données des contacts
|
* @contacts<Array> Tableau contenant les données des contacts
|
||||||
* @mini<Array> Tableau contenant les données des mini fiches relation
|
* @mini<Array> Tableau contenant les données des mini fiches relation
|
||||||
* @fiches<Array> Tableau contenant les données des fiches relation
|
* @fiches<Array> Tableau contenant les données des fiches relation
|
||||||
*
|
*
|
||||||
* @return subject_id<int> Retourne l'id sujet de l'enquête
|
* @return subject_id<int> Retourne l'id sujet de l'enquête
|
||||||
|
@ -821,6 +458,11 @@
|
||||||
|
|
||||||
/* [2] On initialise nos variables (lightdb + autres)
|
/* [2] On initialise nos variables (lightdb + autres)
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
/* (1) Fichiers de sortie */
|
||||||
|
$file = [
|
||||||
|
"subject" => "",
|
||||||
|
"relations" => []
|
||||||
|
];
|
||||||
|
|
||||||
/* (2) Bases de données */
|
/* (2) Bases de données */
|
||||||
$subjectdb = new lightdb('subject');
|
$subjectdb = new lightdb('subject');
|
||||||
|
@ -847,11 +489,7 @@
|
||||||
if( !in_array('facebook', $subject_set['subject']['surveys']) )
|
if( !in_array('facebook', $subject_set['subject']['surveys']) )
|
||||||
$subject_set['subject']['surveys'][] = 'facebook';
|
$subject_set['subject']['surveys'][] = 'facebook';
|
||||||
|
|
||||||
/* (5) On met à jour si le sujet veut renouveller l'enquête plus tard */
|
/* (5) On récupère les noms des contacts */
|
||||||
if( !empty($subject['coords']) )
|
|
||||||
$subject_set['subject']['coords'] = $subject['coords'];
|
|
||||||
|
|
||||||
/* (6) On récupère les noms des contacts */
|
|
||||||
$contactsById = []; // idContact -> nomContact, typeEnquete ('mini' ou 'fiche')
|
$contactsById = []; // idContact -> nomContact, typeEnquete ('mini' ou 'fiche')
|
||||||
|
|
||||||
foreach($subject_set['contacts'] as $contactId){
|
foreach($subject_set['contacts'] as $contactId){
|
||||||
|
|
|
@ -114,11 +114,6 @@
|
||||||
}
|
}
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|
||||||
/* [2] Gestion des relations
|
|
||||||
=========================================================*/
|
|
||||||
/* (1) On récupère toutes les relations */
|
|
||||||
//blabla
|
|
||||||
|
|
||||||
|
|
||||||
/* [4] Gestion du retour
|
/* [4] Gestion du retour
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
@ -145,7 +140,7 @@
|
||||||
|
|
||||||
/* [1] On récupère l'id unique actuel
|
/* [1] On récupère l'id unique actuel
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$funiq = fopen( __BUILD__.'/lightdb/storage/uniqid', 'r+' );
|
$funiq = fopen( __BUILD__.'/src/dynamic/uniqid', 'r+' );
|
||||||
flock($funiq, LOCK_EX); // On verrouille le fichier
|
flock($funiq, LOCK_EX); // On verrouille le fichier
|
||||||
$uniqid = trim( fgets( $funiq ) );
|
$uniqid = trim( fgets( $funiq ) );
|
||||||
|
|
||||||
|
@ -157,15 +152,12 @@
|
||||||
$newId = intval($uniqid) + 1;
|
$newId = intval($uniqid) + 1;
|
||||||
|
|
||||||
// On crée notre sujet
|
// On crée notre sujet
|
||||||
$data = [
|
$data = [ 'subject' => [
|
||||||
'subject' => [
|
'id' => $newId,
|
||||||
'id' => $newId,
|
'name' => $name,
|
||||||
'name' => $name,
|
'creation' => time(),
|
||||||
'creation' => time(),
|
'surveys' => []
|
||||||
'surveys' => [],
|
]];
|
||||||
'coords' => ''
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
/* [2] On crée le sujet dans SURVEYS
|
/* [2] On crée le sujet dans SURVEYS
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
|
|
@ -78,6 +78,13 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
/* [3] Construction du chemin
|
/* [3] Construction du chemin
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) On construit le chemin */
|
/* (1) On construit le chemin */
|
||||||
$path = __PUBLIC__.$uploadAuth['root'].'/'.$prefix.'/';
|
$path = __BUILD__.$uploadAuth['root'].'/'.$prefix.'/';
|
||||||
|
|
||||||
/* (2) On crée le dossier s'il n'existe pas */
|
/* (2) On crée le dossier s'il n'existe pas */
|
||||||
if ( !file_exists($path) ) mkdir($path, 0775, true);
|
if ( !file_exists($path) ) mkdir($path, 0775, true);
|
||||||
|
@ -82,8 +82,8 @@
|
||||||
*/
|
*/
|
||||||
private static function simpleFile($prefix, $extension, $file, $tester){
|
private static function simpleFile($prefix, $extension, $file, $tester){
|
||||||
// Si on est pas connecté, on retourne une erreur -> impossible via token
|
// Si on est pas connecté, on retourne une erreur -> impossible via token
|
||||||
if( !connected() ) return ManagerError::PermissionError;
|
if( !connected() ) return [ 'error' => ManagerError::PermissionError ];
|
||||||
if( !file_exists($file['tmp_name']) ) return ManagerError::UnreachableResource;
|
if( !file_exists($file['tmp_name']) ) return [ 'error' => ManagerError::UnreachableResource ];
|
||||||
|
|
||||||
|
|
||||||
/* [1] On récupère le chemin du fichier à créer et vérifie le dossier
|
/* [1] On récupère le chemin du fichier à créer et vérifie le dossier
|
||||||
|
@ -158,7 +158,6 @@
|
||||||
|
|
||||||
/* (3) Vérification du sujet */
|
/* (3) Vérification du sujet */
|
||||||
$checkSubject = isset($json['subject']['subject_id']) && is_numeric($json['subject']['subject_id']);
|
$checkSubject = isset($json['subject']['subject_id']) && is_numeric($json['subject']['subject_id']);
|
||||||
$checkSubject = $checkSubject && isset($json['subject']['coords']) && is_string($json['subject']['coords']);
|
|
||||||
|
|
||||||
// Erreur des attributs du sujet incorrects ou manquants
|
// Erreur des attributs du sujet incorrects ou manquants
|
||||||
if( !$checkSubject )
|
if( !$checkSubject )
|
||||||
|
@ -168,11 +167,10 @@
|
||||||
/* (4) Vérification des contacts */
|
/* (4) Vérification des contacts */
|
||||||
foreach($json['contacts'] as $contact){
|
foreach($json['contacts'] as $contact){
|
||||||
$checkContact = isset($contact['uid']) && is_numeric($contact['uid']);
|
$checkContact = isset($contact['uid']) && is_numeric($contact['uid']);
|
||||||
$checkContact = $checkContact && (
|
$checkContact = $checkContact && isset($contact['username']) && is_string($contact['username']);
|
||||||
( isset($contact['username']) && is_string($contact['username']) )
|
// Existing ou username.length > 0
|
||||||
||
|
$checkContact = $checkContact && isset($contact['existing']);
|
||||||
( isset($contact['existing']) && is_numeric($contact['existing']) )
|
$checkContact = $checkContact && ( strlen($contact['username']) > 0 || intval($contact['existing']) == $contact['existing'] );
|
||||||
);
|
|
||||||
// $checkContact = $checkContact && isset($contact['sms']) && is_numeric($contact['sms']);
|
// $checkContact = $checkContact && isset($contact['sms']) && is_numeric($contact['sms']);
|
||||||
// $checkContact = $checkContact && isset($contact['call']) && is_numeric($contact['call']);
|
// $checkContact = $checkContact && isset($contact['call']) && is_numeric($contact['call']);
|
||||||
// $checkContact = $checkContact && isset($contact['countsms']) && is_numeric($contact['countsms']);
|
// $checkContact = $checkContact && isset($contact['countsms']) && is_numeric($contact['countsms']);
|
||||||
|
@ -184,6 +182,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (5) Vérification des mini-fiches */
|
/* (5) Vérification des mini-fiches */
|
||||||
foreach($json['mini'] as $mini){
|
foreach($json['mini'] as $mini){
|
||||||
$checkMini = isset($mini['uid']) && is_numeric($mini['uid']);
|
$checkMini = isset($mini['uid']) && is_numeric($mini['uid']);
|
||||||
|
@ -200,21 +199,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (6) Vérification des fiches */
|
/* (6) Vérification des fiches */
|
||||||
foreach($json['fiches'] as $fiches){
|
foreach($json['fiches'] as $fiches){
|
||||||
$checkFiche = isset($fiches['uid']) && is_numeric($fiches['uid']);
|
$checkFiche = isset($fiches['uid']) && is_numeric($fiches['uid']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['contact']) && is_numeric($fiches['contact']);
|
$checkFiche = $checkFiche && isset($fiches['contact']) && is_numeric($fiches['contact']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['sexe']) && is_numeric($fiches['sexe']);
|
$checkFiche = $checkFiche && isset($fiches['sexe']) && is_numeric($fiches['sexe']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['age']) && is_string($fiches['age']);
|
$checkFiche = $checkFiche && isset($fiches['age']) && is_string($fiches['age']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['interest']) && is_numeric($fiches['interest']);
|
|
||||||
$checkFiche = $checkFiche && isset($fiches['relmark']) && is_numeric($fiches['relmark']);
|
|
||||||
$checkFiche = $checkFiche && isset($fiches['job']) && is_string($fiches['job']);
|
$checkFiche = $checkFiche && isset($fiches['job']) && is_string($fiches['job']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['loc']) && (is_numeric($fiches['loc']) || $fiches['loc']=='.');
|
$checkFiche = $checkFiche && isset($fiches['loc']) && (is_numeric($fiches['loc']) || $fiches['loc']=='.');
|
||||||
$checkFiche = $checkFiche && isset($fiches['studies']) && is_string($fiches['studies']);
|
$checkFiche = $checkFiche && isset($fiches['studies']) && is_string($fiches['studies']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['famsit']) && is_numeric($fiches['famsit']);
|
$checkFiche = $checkFiche && isset($fiches['famsit']) && is_numeric($fiches['famsit']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['reltype']) && is_numeric($fiches['reltype']);
|
$checkFiche = $checkFiche && isset($fiches['reltype']) && is_numeric($fiches['reltype']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['medsoc']) && is_numeric($fiches['medsoc']);
|
|
||||||
$checkFiche = $checkFiche && isset($fiches['medrel']) && is_numeric($fiches['medrel']);
|
|
||||||
$checkFiche = $checkFiche && isset($fiches['reltypeSpecial']) && is_string($fiches['reltypeSpecial']);
|
$checkFiche = $checkFiche && isset($fiches['reltypeSpecial']) && is_string($fiches['reltypeSpecial']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['city']) && is_string($fiches['city']);
|
$checkFiche = $checkFiche && isset($fiches['city']) && is_string($fiches['city']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['cp']) && is_string($fiches['cp']);
|
$checkFiche = $checkFiche && isset($fiches['cp']) && is_string($fiches['cp']);
|
||||||
|
@ -222,7 +218,6 @@
|
||||||
$checkFiche = $checkFiche && isset($fiches['context']) && is_numeric($fiches['context']);
|
$checkFiche = $checkFiche && isset($fiches['context']) && is_numeric($fiches['context']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['contextSpecial']) && is_array($fiches['contextSpecial']);
|
$checkFiche = $checkFiche && isset($fiches['contextSpecial']) && is_array($fiches['contextSpecial']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['freq']) && is_array($fiches['freq']);
|
$checkFiche = $checkFiche && isset($fiches['freq']) && is_array($fiches['freq']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['irlfreq']) && is_array($fiches['irlfreq']);
|
|
||||||
$checkFiche = $checkFiche && isset($fiches['connect']) && is_array($fiches['connect']);
|
$checkFiche = $checkFiche && isset($fiches['connect']) && is_array($fiches['connect']);
|
||||||
$checkFiche = $checkFiche && isset($fiches['connectSpecial']) && is_array($fiches['connectSpecial']);
|
$checkFiche = $checkFiche && isset($fiches['connectSpecial']) && is_array($fiches['connectSpecial']);
|
||||||
|
|
||||||
|
|
|
@ -1,198 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace http\core;
|
|
||||||
|
|
||||||
|
|
||||||
class HttpRequest{
|
|
||||||
|
|
||||||
/* [0] Constants
|
|
||||||
=========================================================*/
|
|
||||||
/* (1) Content-Type */
|
|
||||||
const CT_BINARY = 0; // unknown
|
|
||||||
const CT_TEXT = 1;
|
|
||||||
const CT_JSON = 2;
|
|
||||||
const CT_YAML = 3;
|
|
||||||
const CT_MULTIPART_FORM_DATA = 4;
|
|
||||||
const CT_X_WWW_FORM_URLENCODED = 5;
|
|
||||||
|
|
||||||
|
|
||||||
/* [1] Attributes
|
|
||||||
=========================================================*/
|
|
||||||
private $uri;
|
|
||||||
private $headers;
|
|
||||||
private $method;
|
|
||||||
private $postdata;
|
|
||||||
private $getdata;
|
|
||||||
|
|
||||||
private $type;
|
|
||||||
private $body;
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] Constructs an HTTP Request based on environment
|
|
||||||
*
|
|
||||||
* @return instance<HttpRequest> auto-filled HTTP Request
|
|
||||||
*
|
|
||||||
=========================================================*/
|
|
||||||
public function __construct(){
|
|
||||||
/* [1] Define URI & Status Code & method
|
|
||||||
=========================================================*/
|
|
||||||
$this->uri = $_SERVER['REQUEST_URI'];
|
|
||||||
$this->method = $_SERVER['REQUEST_METHOD'];
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] Define headers
|
|
||||||
=========================================================*/
|
|
||||||
$this->headers = \getallheaders();
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] Define default datasets (GET, POST)
|
|
||||||
=========================================================*/
|
|
||||||
$this->getdata = $_GET;
|
|
||||||
$this->postdata = $_POST;
|
|
||||||
|
|
||||||
|
|
||||||
/* [4] Define BODY & its type
|
|
||||||
=========================================================*/
|
|
||||||
/* (1) Default: set plain/text body */
|
|
||||||
$this->body = \file_get_contents('php://input');
|
|
||||||
|
|
||||||
/* (2) Fetch content type */
|
|
||||||
$this->type = self::getContentType($this->headers['Content-Type']);
|
|
||||||
|
|
||||||
|
|
||||||
/* [5] Parse BODY data -> POST
|
|
||||||
=========================================================*/
|
|
||||||
$this->parseBody();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* GET CONSTANT CT_* FROM `Content-Type` HEADER
|
|
||||||
*
|
|
||||||
* @pContentType<String> `Content-Type` header value
|
|
||||||
*
|
|
||||||
* @return type<int> Constant value
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static function getContentType($pContentType=null){
|
|
||||||
/* [1] Checks argv
|
|
||||||
=========================================================*/
|
|
||||||
if( is_null($pContentType) )
|
|
||||||
$pContentType = $_SERVER['CONTENT_TYPE'];
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] Checks types
|
|
||||||
=========================================================*/
|
|
||||||
/* (1) Form Data Types
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
/* (1) multipart/form-data */
|
|
||||||
if( preg_match('/^multipart\/form\-data; boundary=(.+)$/i', $pContentType) )
|
|
||||||
return self::CT_MULTIPART_FORM_DATA;
|
|
||||||
|
|
||||||
/* (2) application/x-www-form-urlencoded */
|
|
||||||
if( preg_match('/^application\/x\-www\-form\-urlencoded/i', $pContentType) )
|
|
||||||
return self::CT_X_WWW_FORM_URLENCODED;
|
|
||||||
|
|
||||||
|
|
||||||
/* (2) Data types
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
/* (1) Basic JSON content type */
|
|
||||||
if( preg_match('/^application\/json/i', $pContentType) )
|
|
||||||
return self::CT_JSON;
|
|
||||||
|
|
||||||
/* (2) Basic YAML content type */
|
|
||||||
if( preg_match('/^application\/yaml/i', $pContentType) )
|
|
||||||
return self::CT_YAML;
|
|
||||||
|
|
||||||
/* (3) Basic TEXT content type */
|
|
||||||
if( preg_match('/text\/[a-z]+/', $pContentType) )
|
|
||||||
return self::CT_TEXT;
|
|
||||||
|
|
||||||
|
|
||||||
/* (3) Default Type
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
return self::CT_BINARY;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* PARSES BODY DATA
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private function parseBody(){
|
|
||||||
/* [1] If empty body -> do nothing
|
|
||||||
=========================================================*/
|
|
||||||
if( strlen($this->body) === 0 )
|
|
||||||
return true;
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] Management for each ContentType
|
|
||||||
=========================================================*/
|
|
||||||
switch($this->type){
|
|
||||||
|
|
||||||
/* (1) multipart/form-data -> parse for not-POST methods
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
case self::CT_MULTIPART_FORM_DATA:
|
|
||||||
/* (1) Fetch the boundary */
|
|
||||||
if( !preg_match('/boundary=(.+)$/i', $this->headers['Content-Type'], $match) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
$boundary = $match[1];
|
|
||||||
|
|
||||||
/* (2) Break body into parts */
|
|
||||||
$splitter = "/(?:\n|\r\n|--)*$boundary(?:\n|\r\n|--)?/im";
|
|
||||||
$parts = preg_split($splitter, $this->body);
|
|
||||||
|
|
||||||
/* (3) Process parts */
|
|
||||||
foreach($parts as $part)
|
|
||||||
if( preg_match('/^Content\-Disposition: form\-data; name=\"([^"]+)\"(?:\n|\r\n){2}(.+)$/mi', $part, $match) )
|
|
||||||
$this->postdata[$match[1]] = $match[2];
|
|
||||||
|
|
||||||
/* (4) Erases body */
|
|
||||||
$this->body = '';
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
/* (2) application/x-www-form-urlencoded -> parse for not-POST methods
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
case self::CT_X_WWW_FORM_URLENCODED:
|
|
||||||
/* Auto parse builtin-php function */
|
|
||||||
parse_str($this->body, $this->postdata);
|
|
||||||
|
|
||||||
/* Erases body */
|
|
||||||
$this->body = '';
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
/* (3) application/json -> parse if no error
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
case self::CT_JSON:
|
|
||||||
/* (1) Decode body content */
|
|
||||||
$decoded = json_decode($this->body, true);
|
|
||||||
|
|
||||||
/* (2) If error -> do nothing */
|
|
||||||
if( is_null($decoded) )
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* (3) Parse body into body */
|
|
||||||
$this->body = $decoded;
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
/* (4) application/yaml -> parse if no error
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
case self::CT_YAML:
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function BODY(){ return $this->body; }
|
|
||||||
public function POST(){ return $this->postdata; }
|
|
||||||
public function GET(){ return $this->getdata; }
|
|
||||||
public function HEADERS(){ return $this->headers; }
|
|
||||||
public function METHOD(){ return $this->method; }
|
|
||||||
public function URI(){ return $this->uri; }
|
|
||||||
}
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace lightdb\core;
|
namespace lightdb\core;
|
||||||
|
|
||||||
|
|
||||||
class lightdb{
|
class lightdb{
|
||||||
|
|
||||||
// REPERTOIRE RACINE DE TOUTES LES BDD
|
// REPERTOIRE RACINE DE TOUTES LES BDD
|
||||||
|
@ -69,7 +70,7 @@
|
||||||
|
|
||||||
/* (3) On récupère le nombre de lignes */
|
/* (3) On récupère le nombre de lignes */
|
||||||
$this->line = -1;
|
$this->line = -1;
|
||||||
while( $this->driver->valid() ){
|
while( !$this->driver->eof() ){
|
||||||
$this->line++;
|
$this->line++;
|
||||||
$this->driver->fgetcsv();
|
$this->driver->fgetcsv();
|
||||||
}
|
}
|
||||||
|
@ -123,21 +124,25 @@
|
||||||
public function insert($key, $data){
|
public function insert($key, $data){
|
||||||
/* (1) On vérifie que la clé est unique */
|
/* (1) On vérifie que la clé est unique */
|
||||||
if( array_key_exists($key, $this->index) )
|
if( array_key_exists($key, $this->index) )
|
||||||
return false;
|
return true;
|
||||||
|
|
||||||
$key = (string) $key;
|
$key = (string) $key;
|
||||||
|
|
||||||
/* (2) On ajoute les données aux fichier */
|
/* (2) On ajoute les données aux fichier */
|
||||||
$json_data = json_encode($data);
|
$json_data = json_encode($data);
|
||||||
$this->driver->seek($this->line);
|
$this->driver->seek($this->line);
|
||||||
$written = $this->driver->fwrite( $json_data."\n" );
|
$this->line++;
|
||||||
|
$written = $this->driver->fwrite( $json_data.PHP_EOL );
|
||||||
|
|
||||||
// Si erreur d'écriture, on retourne FALSE
|
// Si erreur d'écriture, on retourne FALSE
|
||||||
if( is_null($written) )
|
if( is_null($written) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* (3) On enregistre l'index */
|
/* (3) On enregistre l'index */
|
||||||
$this->index[$key] = [ 'line' => $this->line++ ];
|
$this->index[$key] = [
|
||||||
|
'line' => $this->line - 1//,
|
||||||
|
//'hash' => sha1($json_data)
|
||||||
|
];
|
||||||
|
|
||||||
/* (4) On enregistre le fichier index */
|
/* (4) On enregistre le fichier index */
|
||||||
$fIndex = new \SplFileObject($this->dir.'index', 'w');
|
$fIndex = new \SplFileObject($this->dir.'index', 'w');
|
||||||
|
@ -168,7 +173,7 @@
|
||||||
foreach($dataset as $key=>$data){
|
foreach($dataset as $key=>$data){
|
||||||
$json_data = json_encode($data);
|
$json_data = json_encode($data);
|
||||||
$this->line++;
|
$this->line++;
|
||||||
$written = $this->driver->fwrite( $json_data."\n" );
|
$written = $this->driver->fwrite( $json_data.PHP_EOL );
|
||||||
|
|
||||||
|
|
||||||
/* (3) On enregistre les index */
|
/* (3) On enregistre les index */
|
||||||
|
@ -261,7 +266,7 @@
|
||||||
public function delete($key){
|
public function delete($key){
|
||||||
/* (1) On vérifie l'existence de la clé */
|
/* (1) On vérifie l'existence de la clé */
|
||||||
if( !array_key_exists($key, $this->index) )
|
if( !array_key_exists($key, $this->index) )
|
||||||
return false; // On considère que l'action souhaitée est effectuée
|
return true; // On considère que l'action souhaitée est effectuée
|
||||||
|
|
||||||
$line = $this->index[$key]['line'];
|
$line = $this->index[$key]['line'];
|
||||||
|
|
||||||
|
@ -271,13 +276,12 @@
|
||||||
$this->driver->seek(0);
|
$this->driver->seek(0);
|
||||||
|
|
||||||
// On recopie toutes les lignes sauf celle à supprimer dans un fichier temporaire
|
// On recopie toutes les lignes sauf celle à supprimer dans un fichier temporaire
|
||||||
foreach($this->driver as $k=>$content){
|
foreach($this->driver as $key=>$content){
|
||||||
// Only valuable lines (not the last linebreak)
|
// Only valuable lines (not the last linebreak)
|
||||||
if( $k >= $this->line )
|
if( $key >= $this->line ) break;
|
||||||
break;
|
|
||||||
|
|
||||||
// On n'écrit pas la ligne à supprimer
|
// On n'écrit pas la ligne à supprimer
|
||||||
if( $k != $line )
|
if( $key != $line )
|
||||||
$tmpfile->fwrite( $content );
|
$tmpfile->fwrite( $content );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -413,6 +417,3 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,86 +1,43 @@
|
||||||
{"id":16,"name":"contact-x","sexe":"1","age":"6","studies2":"1","reltype":"1","dist":"1","job":"12","famsit":"1","city":"35","cp":"10025","quartier":"25","duration":["25","125"],"context":"11","contextExtra":["internet","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"0","irlfreq":["1","6","11","16","21"],"relmark":"0","medrel":"1"}
|
{"id":2,"name":"contact-x","sexe":"1","age":"6","studies2":"01","reltype":"7","dist":"1","job":"82","famsit":"0","city":"35","cp":"10025","quartier":"25","duration":["25","125"],"context":"11","contextExtra":["internet","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":17,"name":"contact-1","sexe":"0","age":"6","studies2":"6","reltype":"6","dist":"2","job":"6","famsit":"2","city":"16","cp":"10006","quartier":"6","duration":["6","16"],"context":"6","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"1","irlfreq":["2","7","12","17","22"],"relmark":"1","medrel":"0"}
|
{"id":3,"name":"contact-1","sexe":"0","age":"6","studies2":"06","reltype":"6","dist":"2","job":"36","famsit":"0","city":"16","cp":"10006","quartier":"6","duration":["6","16"],"context":"6","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":18,"name":"contact-2","sexe":"1","age":"7","studies2":"7","reltype":"autre","dist":"3","job":"7","famsit":"3","city":"17","cp":"10007","quartier":"7","duration":["7","17"],"context":"7","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"2","irlfreq":["3","8","13","18","23"],"relmark":"2","medrel":"1"}
|
{"id":4,"name":"contact-2","sexe":"1","age":"7","studies2":"07","reltype":"7","dist":"3","job":"41","famsit":"0","city":"17","cp":"10007","quartier":"7","duration":["7","17"],"context":"7","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":19,"name":"contact-3","sexe":"2","age":"8","studies2":"0","reltype":"0","dist":"0","job":"8","famsit":"0","city":"18","cp":"10008","quartier":"8","duration":["8","18"],"context":"8","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"3","irlfreq":["0","5","10","15","20"],"relmark":"3","medrel":"2"}
|
{"id":5,"name":"contact-3","sexe":"2","age":"8","studies2":"08","reltype":"autre","dist":"0","job":"46","famsit":"0","city":"18","cp":"10008","quartier":"8","duration":["8","18"],"context":"8","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":20,"name":"contact-4","sexe":"0","age":"9","studies2":"1","reltype":"1","dist":"1","job":"9","famsit":"1","city":"19","cp":"10009","quartier":"9","duration":["9","19"],"context":"9","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"4","irlfreq":["1","6","11","16","21"],"relmark":"4","medrel":"0"}
|
{"id":6,"name":"contact-4","sexe":"0","age":"9","studies2":"09","reltype":"0","dist":"1","job":"47","famsit":"0","city":"19","cp":"10009","quartier":"9","duration":["9","19"],"context":"9","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":21,"name":"contact-5","sexe":"1","age":"10","studies2":"2","reltype":"2","dist":"2","job":"10","famsit":"2","city":"20","cp":"10010","quartier":"10","duration":["10","110"],"context":"10","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"0","irlfreq":["2","7","12","17","22"],"relmark":"0","medrel":"1"}
|
{"id":7,"name":"contact-5","sexe":"1","age":"10","studies2":"10","reltype":"1","dist":"2","job":"48","famsit":"0","city":"20","cp":"10010","quartier":"10","duration":["10","110"],"context":"10","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":22,"name":"contact-6","sexe":"2","age":"11","studies2":"3","reltype":"3","dist":"3","job":"11","famsit":"3","city":"21","cp":"10011","quartier":"11","duration":["11","111"],"context":"11","contextExtra":["internet","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"1","irlfreq":["3","8","13","18","23"],"relmark":"1","medrel":"2"}
|
{"id":8,"name":"contact-6","sexe":"2","age":"11","studies2":"11","reltype":"2","dist":"3","job":"51","famsit":"0","city":"21","cp":"10011","quartier":"11","duration":["11","111"],"context":"11","contextExtra":["internet","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":23,"name":"contact-7","sexe":"0","age":"12","studies2":"4","reltype":"4","dist":"0","job":"12","famsit":"0","city":"22","cp":"10012","quartier":"12","duration":["12","112"],"context":"12","contextExtra":["","association",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"2","irlfreq":["0","5","10","15","20"],"relmark":"2","medrel":"0"}
|
{"id":9,"name":"contact-7","sexe":"0","age":"12","studies2":"","reltype":"3","dist":"0","job":"54","famsit":"0","city":"22","cp":"10012","quartier":"12","duration":["12","112"],"context":"12","contextExtra":["","association",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":24,"name":"contact-8","sexe":"1","age":"13","studies2":"5","reltype":"5","dist":"1","job":"0","famsit":"1","city":"23","cp":"10013","quartier":"13","duration":["13","113"],"context":"13","contextExtra":["","","autre"],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"3","irlfreq":["1","6","11","16","21"],"relmark":"3","medrel":"1"}
|
{"id":10,"name":"contact-8","sexe":"1","age":"13","studies2":"01","reltype":"4","dist":"1","job":"55","famsit":"0","city":"23","cp":"10013","quartier":"13","duration":["13","113"],"context":"13","contextExtra":["","","autre"],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":25,"name":"contact-9","sexe":"2","age":"14","studies2":"6","reltype":"6","dist":"2","job":"1","famsit":"2","city":"24","cp":"10014","quartier":"14","duration":["14","114"],"context":"0","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"4","irlfreq":["2","7","12","17","22"],"relmark":"4","medrel":"2"}
|
{"id":11,"name":"contact-9","sexe":"2","age":"14","studies2":"02","reltype":"5","dist":"2","job":"56","famsit":"0","city":"24","cp":"10014","quartier":"14","duration":["14","114"],"context":"0","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":26,"name":"contact-10","sexe":"0","age":"15","studies2":"7","reltype":"autre","dist":"3","job":"2","famsit":"3","city":"25","cp":"10015","quartier":"15","duration":["15","115"],"context":"1","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"0","irlfreq":["3","8","13","18","23"],"relmark":"0","medrel":"0"}
|
{"id":12,"name":"contact-10","sexe":"0","age":"15","studies2":"03","reltype":"6","dist":"3","job":"61","famsit":"0","city":"25","cp":"10015","quartier":"15","duration":["15","115"],"context":"1","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":27,"name":"contact-11","sexe":"1","age":"16","studies2":"0","reltype":"0","dist":"0","job":"3","famsit":"0","city":"26","cp":"10016","quartier":"16","duration":["16","116"],"context":"2","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"1","irlfreq":["0","5","10","15","20"],"relmark":"1","medrel":"1"}
|
{"id":13,"name":"contact-11","sexe":"1","age":"16","studies2":"04","reltype":"7","dist":"0","job":"66","famsit":"0","city":"26","cp":"10016","quartier":"16","duration":["16","116"],"context":"2","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":28,"name":"contact-12","sexe":"2","age":"17","studies2":"1","reltype":"1","dist":"1","job":"4","famsit":"1","city":"27","cp":"10017","quartier":"17","duration":["17","117"],"context":"3","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"2","irlfreq":["1","6","11","16","21"],"relmark":"2","medrel":"2"}
|
{"id":14,"name":"contact-12","sexe":"2","age":"17","studies2":"05","reltype":"autre","dist":"1","job":"69","famsit":"0","city":"27","cp":"10017","quartier":"17","duration":["17","117"],"context":"3","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":29,"name":"contact-13","sexe":"0","age":"18","studies2":"2","reltype":"2","dist":"2","job":"5","famsit":"2","city":"28","cp":"10018","quartier":"18","duration":["18","118"],"context":"4","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"3","irlfreq":["2","7","12","17","22"],"relmark":"3","medrel":"0"}
|
{"id":15,"name":"contact-13","sexe":"0","age":"18","studies2":"06","reltype":"0","dist":"2","job":"71","famsit":"0","city":"28","cp":"10018","quartier":"18","duration":["18","118"],"context":"4","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":30,"name":"contact-14","sexe":"1","age":"0","studies2":"3","reltype":"3","dist":"3","job":"6","famsit":"3","city":"29","cp":"10019","quartier":"19","duration":["19","119"],"context":"5","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"4","irlfreq":["3","8","13","18","23"],"relmark":"4","medrel":"1"}
|
{"id":16,"name":"contact-14","sexe":"1","age":"0","studies2":"07","reltype":"1","dist":"3","job":"72","famsit":"0","city":"29","cp":"10019","quartier":"19","duration":["19","119"],"context":"5","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":31,"name":"contact-15","sexe":"2","age":"1","studies2":"4","reltype":"4","dist":"0","job":"7","famsit":"0","city":"30","cp":"10020","quartier":"20","duration":["20","120"],"context":"6","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"0","irlfreq":["0","5","10","15","20"],"relmark":"0","medrel":"2"}
|
{"id":17,"name":"contact-15","sexe":"2","age":"1","studies2":"08","reltype":"2","dist":"0","job":"73","famsit":"0","city":"30","cp":"10020","quartier":"20","duration":["20","120"],"context":"6","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":32,"name":"contact-16","sexe":"0","age":"2","studies2":"5","reltype":"5","dist":"1","job":"8","famsit":"1","city":"31","cp":"10021","quartier":"21","duration":["21","121"],"context":"7","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"1","irlfreq":["1","6","11","16","21"],"relmark":"1","medrel":"0"}
|
{"id":18,"name":"contact-16","sexe":"0","age":"2","studies2":"09","reltype":"3","dist":"1","job":"74","famsit":"0","city":"31","cp":"10021","quartier":"21","duration":["21","121"],"context":"7","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":33,"name":"contact-17","sexe":"1","age":"3","studies2":"6","reltype":"6","dist":"2","job":"9","famsit":"2","city":"32","cp":"10022","quartier":"22","duration":["22","122"],"context":"8","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"2","irlfreq":["2","7","12","17","22"],"relmark":"2","medrel":"1"}
|
{"id":19,"name":"contact-17","sexe":"1","age":"3","studies2":"10","reltype":"4","dist":"2","job":"75","famsit":"0","city":"32","cp":"10022","quartier":"22","duration":["22","122"],"context":"8","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":34,"name":"contact-18","sexe":"2","age":"4","studies2":"7","reltype":"autre","dist":"3","job":"10","famsit":"3","city":"33","cp":"10023","quartier":"23","duration":["23","123"],"context":"9","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"3","irlfreq":["3","8","13","18","23"],"relmark":"3","medrel":"2"}
|
{"id":20,"name":"contact-18","sexe":"2","age":"4","studies2":"11","reltype":"5","dist":"3","job":"76","famsit":"0","city":"33","cp":"10023","quartier":"23","duration":["23","123"],"context":"9","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":35,"name":"contact-19","sexe":"0","age":"5","studies2":"0","reltype":"0","dist":"0","job":"11","famsit":"0","city":"34","cp":"10024","quartier":"24","duration":["24","124"],"context":"10","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"4","irlfreq":["0","5","10","15","20"],"relmark":"4","medrel":"0"}
|
{"id":21,"name":"contact-19","sexe":"0","age":"5","studies2":"","reltype":"6","dist":"0","job":"81","famsit":"0","city":"34","cp":"10024","quartier":"24","duration":["24","124"],"context":"10","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":37,"name":"contact-21","sexe":"2","age":"7","studies2":"2","reltype":"2","dist":"2","job":"0","famsit":"2","city":"36","cp":"10026","quartier":"26","duration":["26","126"],"context":"12","contextExtra":["","association",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"1","irlfreq":["2","7","12","17","22"],"relmark":"1","medrel":"2"}
|
{"id":23,"name":"contact-21","sexe":"2","age":"7","studies2":"02","reltype":"autre","dist":"2","job":"10","famsit":"0","city":"36","cp":"10026","quartier":"26","duration":["26","126"],"context":"12","contextExtra":["","association",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":38,"name":"contact-22","sexe":"0","age":"8","studies2":"3","reltype":"3","dist":"3","job":"1","famsit":"3","city":"37","cp":"10027","quartier":"27","duration":["27","127"],"context":"13","contextExtra":["","","autre"],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"2","irlfreq":["3","8","13","18","23"],"relmark":"2","medrel":"0"}
|
{"id":24,"name":"contact-22","sexe":"0","age":"8","studies2":"03","reltype":"0","dist":"3","job":"21","famsit":"0","city":"37","cp":"10027","quartier":"27","duration":["27","127"],"context":"13","contextExtra":["","","autre"],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":39,"name":"contact-23","sexe":"1","age":"9","studies2":"4","reltype":"4","dist":"0","job":"2","famsit":"0","city":"38","cp":"10028","quartier":"28","duration":["28","128"],"context":"0","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"3","irlfreq":["0","5","10","15","20"],"relmark":"3","medrel":"1"}
|
{"id":25,"name":"contact-23","sexe":"1","age":"9","studies2":"04","reltype":"1","dist":"0","job":"22","famsit":"0","city":"38","cp":"10028","quartier":"28","duration":["28","128"],"context":"0","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":40,"name":"contact-24","sexe":"2","age":"10","studies2":"5","reltype":"5","dist":"1","job":"3","famsit":"1","city":"39","cp":"10029","quartier":"29","duration":["29","129"],"context":"1","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"4","irlfreq":["1","6","11","16","21"],"relmark":"4","medrel":"2"}
|
{"id":26,"name":"contact-24","sexe":"2","age":"10","studies2":"05","reltype":"2","dist":"1","job":"23","famsit":"0","city":"39","cp":"10029","quartier":"29","duration":["29","129"],"context":"1","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":41,"name":"contact-25","sexe":"0","age":"11","studies2":"6","reltype":"6","dist":"2","job":"4","famsit":"2","city":"40","cp":"10030","quartier":"30","duration":["30","130"],"context":"2","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"0","irlfreq":["2","7","12","17","22"],"relmark":"0","medrel":"0"}
|
{"id":27,"name":"contact-25","sexe":"0","age":"11","studies2":"06","reltype":"3","dist":"2","job":"31","famsit":"0","city":"40","cp":"10030","quartier":"30","duration":["30","130"],"context":"2","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":42,"name":"contact-26","sexe":"1","age":"12","studies2":"7","reltype":"autre","dist":"3","job":"5","famsit":"3","city":"41","cp":"10031","quartier":"31","duration":["31","131"],"context":"3","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"1","irlfreq":["3","8","13","18","23"],"relmark":"1","medrel":"1"}
|
{"id":28,"name":"contact-26","sexe":"1","age":"12","studies2":"07","reltype":"4","dist":"3","job":"32","famsit":"0","city":"41","cp":"10031","quartier":"31","duration":["31","131"],"context":"3","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":43,"name":"contact-27","sexe":"2","age":"13","studies2":"0","reltype":"0","dist":"0","job":"6","famsit":"0","city":"42","cp":"10032","quartier":"32","duration":["32","132"],"context":"4","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"2","irlfreq":["0","5","10","15","20"],"relmark":"2","medrel":"2"}
|
{"id":29,"name":"contact-27","sexe":"2","age":"13","studies2":"08","reltype":"5","dist":"0","job":"36","famsit":"0","city":"42","cp":"10032","quartier":"32","duration":["32","132"],"context":"4","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":44,"name":"contact-28","sexe":"0","age":"14","studies2":"1","reltype":"1","dist":"1","job":"7","famsit":"1","city":"43","cp":"10033","quartier":"33","duration":["33","133"],"context":"5","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"3","irlfreq":["1","6","11","16","21"],"relmark":"3","medrel":"0"}
|
{"id":30,"name":"contact-28","sexe":"0","age":"14","studies2":"09","reltype":"6","dist":"1","job":"41","famsit":"0","city":"43","cp":"10033","quartier":"33","duration":["33","133"],"context":"5","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":45,"name":"contact-29","sexe":"1","age":"15","studies2":"2","reltype":"2","dist":"2","job":"8","famsit":"2","city":"44","cp":"10034","quartier":"34","duration":["34","134"],"context":"6","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"4","irlfreq":["2","7","12","17","22"],"relmark":"4","medrel":"1"}
|
{"id":31,"name":"contact-29","sexe":"1","age":"15","studies2":"10","reltype":"7","dist":"2","job":"46","famsit":"0","city":"44","cp":"10034","quartier":"34","duration":["34","134"],"context":"6","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":46,"name":"contact-30","sexe":"2","age":"16","studies2":"3","reltype":"3","dist":"3","job":"9","famsit":"3","city":"45","cp":"10035","quartier":"35","duration":["35","135"],"context":"7","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"0","irlfreq":["3","8","13","18","23"],"relmark":"0","medrel":"2"}
|
{"id":32,"name":"contact-30","sexe":"2","age":"16","studies2":"11","reltype":"autre","dist":"3","job":"47","famsit":"0","city":"45","cp":"10035","quartier":"35","duration":["35","135"],"context":"7","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":47,"name":"contact-31","sexe":"0","age":"17","studies2":"4","reltype":"4","dist":"0","job":"10","famsit":"0","city":"46","cp":"10036","quartier":"36","duration":["36","136"],"context":"8","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"1","irlfreq":["0","5","10","15","20"],"relmark":"1","medrel":"0"}
|
{"id":33,"name":"contact-31","sexe":"0","age":"17","studies2":"","reltype":"0","dist":"0","job":"48","famsit":"0","city":"46","cp":"10036","quartier":"36","duration":["36","136"],"context":"8","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":48,"name":"contact-32","sexe":"1","age":"18","studies2":"5","reltype":"5","dist":"1","job":"11","famsit":"1","city":"47","cp":"10037","quartier":"37","duration":["37","137"],"context":"9","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"2","irlfreq":["1","6","11","16","21"],"relmark":"2","medrel":"1"}
|
{"id":34,"name":"contact-32","sexe":"1","age":"18","studies2":"01","reltype":"1","dist":"1","job":"51","famsit":"0","city":"47","cp":"10037","quartier":"37","duration":["37","137"],"context":"9","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":49,"name":"contact-33","sexe":"2","age":"0","studies2":"6","reltype":"6","dist":"2","job":"12","famsit":"2","city":"48","cp":"10038","quartier":"38","duration":["38","138"],"context":"10","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"3","irlfreq":["2","7","12","17","22"],"relmark":"3","medrel":"2"}
|
{"id":35,"name":"contact-33","sexe":"2","age":"0","studies2":"02","reltype":"2","dist":"2","job":"54","famsit":"0","city":"48","cp":"10038","quartier":"38","duration":["38","138"],"context":"10","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":50,"name":"contact-34","sexe":"0","age":"1","studies2":"7","reltype":"autre","dist":"3","job":"0","famsit":"3","city":"49","cp":"10039","quartier":"39","duration":["39","139"],"context":"11","contextExtra":["internet","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"4","irlfreq":["3","8","13","18","23"],"relmark":"4","medrel":"0"}
|
{"id":36,"name":"contact-34","sexe":"0","age":"1","studies2":"03","reltype":"3","dist":"3","job":"55","famsit":"0","city":"49","cp":"10039","quartier":"39","duration":["39","139"],"context":"11","contextExtra":["internet","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":51,"name":"contact-35","sexe":"1","age":"2","studies2":"0","reltype":"0","dist":"0","job":"1","famsit":"0","city":"50","cp":"10040","quartier":"40","duration":["40","140"],"context":"12","contextExtra":["","association",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"0","irlfreq":["0","5","10","15","20"],"relmark":"0","medrel":"1"}
|
{"id":37,"name":"contact-35","sexe":"1","age":"2","studies2":"04","reltype":"4","dist":"0","job":"56","famsit":"0","city":"50","cp":"10040","quartier":"40","duration":["40","140"],"context":"12","contextExtra":["","association",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":52,"name":"contact-36","sexe":"2","age":"3","studies2":"1","reltype":"1","dist":"1","job":"2","famsit":"1","city":"51","cp":"10041","quartier":"41","duration":["41","141"],"context":"13","contextExtra":["","","autre"],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"1","irlfreq":["1","6","11","16","21"],"relmark":"1","medrel":"2"}
|
{"id":38,"name":"contact-36","sexe":"2","age":"3","studies2":"05","reltype":"5","dist":"1","job":"61","famsit":"0","city":"51","cp":"10041","quartier":"41","duration":["41","141"],"context":"13","contextExtra":["","","autre"],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":53,"name":"contact-37","sexe":"0","age":"4","studies2":"2","reltype":"2","dist":"2","job":"3","famsit":"2","city":"52","cp":"10042","quartier":"42","duration":["42","142"],"context":"0","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"2","irlfreq":["2","7","12","17","22"],"relmark":"2","medrel":"0"}
|
{"id":39,"name":"contact-37","sexe":"0","age":"4","studies2":"06","reltype":"6","dist":"2","job":"66","famsit":"0","city":"52","cp":"10042","quartier":"42","duration":["42","142"],"context":"0","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":54,"name":"contact-38","sexe":"1","age":"5","studies2":"3","reltype":"3","dist":"3","job":"4","famsit":"3","city":"53","cp":"10043","quartier":"43","duration":["43","143"],"context":"1","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"3","irlfreq":["3","8","13","18","23"],"relmark":"3","medrel":"1"}
|
{"id":40,"name":"contact-38","sexe":"1","age":"5","studies2":"07","reltype":"7","dist":"3","job":"69","famsit":"0","city":"53","cp":"10043","quartier":"43","duration":["43","143"],"context":"1","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":55,"name":"contact-39","sexe":"2","age":"6","studies2":"4","reltype":"4","dist":"0","job":"5","famsit":"0","city":"54","cp":"10044","quartier":"44","duration":["44","144"],"context":"2","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"4","irlfreq":["0","5","10","15","20"],"relmark":"4","medrel":"2"}
|
{"id":41,"name":"contact-39","sexe":"2","age":"6","studies2":"08","reltype":"autre","dist":"0","job":"71","famsit":"0","city":"54","cp":"10044","quartier":"44","duration":["44","144"],"context":"2","contextExtra":["","",""],"freq":["4","9","14","19","24"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""]}
|
||||||
{"id":57,"name":"contact-41","sexe":"1","age":"","studies1":"2","reltype":"1","dist":"0"}
|
{"id":43,"name":"contact-41","sexe":"1","age":"","studies1":"2","reltype":"1","dist":"."}
|
||||||
{"id":58,"name":"contact-42","sexe":"0","age":"2","studies1":"3","reltype":"2","dist":"1"}
|
{"id":44,"name":"contact-42","sexe":"0","age":"2","studies1":"3","reltype":"2","dist":"."}
|
||||||
{"id":59,"name":"contact-43","sexe":"1","age":"3","studies1":"4","reltype":"3","dist":"2"}
|
{"id":45,"name":"contact-43","sexe":"1","age":"3","studies1":"4","reltype":"3","dist":"."}
|
||||||
{"id":60,"name":"contact-44","sexe":"0","age":"4","studies1":"5","reltype":"4","dist":"3"}
|
{"id":46,"name":"contact-44","sexe":"0","age":"4","studies1":"5","reltype":"4","dist":"."}
|
||||||
{"id":63,"name":"contact-x","sexe":"1","age":"6","studies2":"1","reltype":"1","dist":"1","job":"12","famsit":"1","city":"35","cp":"10025","quartier":"25","duration":["25","125"],"context":"11","contextExtra":["internet","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"0","irlfreq":["1","6","11","16","21"],"relmark":"0","medrel":"1"}
|
|
||||||
{"id":64,"name":"contact-1","sexe":"0","age":"6","studies2":"6","reltype":"6","dist":"2","job":"6","famsit":"2","city":"16","cp":"10006","quartier":"6","duration":["6","16"],"context":"6","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"1","irlfreq":["2","7","12","17","22"],"relmark":"1","medrel":"0"}
|
|
||||||
{"id":65,"name":"contact-2","sexe":"1","age":"7","studies2":"7","reltype":"autre","dist":"3","job":"7","famsit":"3","city":"17","cp":"10007","quartier":"7","duration":["7","17"],"context":"7","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"2","irlfreq":["3","8","13","18","23"],"relmark":"2","medrel":"1"}
|
|
||||||
{"id":66,"name":"contact-3","sexe":"2","age":"8","studies2":"0","reltype":"0","dist":"0","job":"8","famsit":"0","city":"18","cp":"10008","quartier":"8","duration":["8","18"],"context":"8","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"3","irlfreq":["0","5","10","15","20"],"relmark":"3","medrel":"2"}
|
|
||||||
{"id":67,"name":"contact-4","sexe":"0","age":"9","studies2":"1","reltype":"1","dist":"1","job":"9","famsit":"1","city":"19","cp":"10009","quartier":"9","duration":["9","19"],"context":"9","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"4","irlfreq":["1","6","11","16","21"],"relmark":"4","medrel":"0"}
|
|
||||||
{"id":68,"name":"contact-5","sexe":"1","age":"10","studies2":"2","reltype":"2","dist":"2","job":"10","famsit":"2","city":"20","cp":"10010","quartier":"10","duration":["10","110"],"context":"10","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"0","irlfreq":["2","7","12","17","22"],"relmark":"0","medrel":"1"}
|
|
||||||
{"id":69,"name":"contact-6","sexe":"2","age":"11","studies2":"3","reltype":"3","dist":"3","job":"11","famsit":"3","city":"21","cp":"10011","quartier":"11","duration":["11","111"],"context":"11","contextExtra":["internet","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"1","irlfreq":["3","8","13","18","23"],"relmark":"1","medrel":"2"}
|
|
||||||
{"id":70,"name":"contact-7","sexe":"0","age":"12","studies2":"4","reltype":"4","dist":"0","job":"12","famsit":"0","city":"22","cp":"10012","quartier":"12","duration":["12","112"],"context":"12","contextExtra":["","association",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"2","irlfreq":["0","5","10","15","20"],"relmark":"2","medrel":"0"}
|
|
||||||
{"id":71,"name":"contact-8","sexe":"1","age":"13","studies2":"5","reltype":"5","dist":"1","job":"0","famsit":"1","city":"23","cp":"10013","quartier":"13","duration":["13","113"],"context":"13","contextExtra":["","","autre"],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"3","irlfreq":["1","6","11","16","21"],"relmark":"3","medrel":"1"}
|
|
||||||
{"id":72,"name":"contact-9","sexe":"2","age":"14","studies2":"6","reltype":"6","dist":"2","job":"1","famsit":"2","city":"24","cp":"10014","quartier":"14","duration":["14","114"],"context":"0","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"4","irlfreq":["2","7","12","17","22"],"relmark":"4","medrel":"2"}
|
|
||||||
{"id":73,"name":"contact-10","sexe":"0","age":"15","studies2":"7","reltype":"autre","dist":"3","job":"2","famsit":"3","city":"25","cp":"10015","quartier":"15","duration":["15","115"],"context":"1","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"0","irlfreq":["3","8","13","18","23"],"relmark":"0","medrel":"0"}
|
|
||||||
{"id":74,"name":"contact-11","sexe":"1","age":"16","studies2":"0","reltype":"0","dist":"0","job":"3","famsit":"0","city":"26","cp":"10016","quartier":"16","duration":["16","116"],"context":"2","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"1","irlfreq":["0","5","10","15","20"],"relmark":"1","medrel":"1"}
|
|
||||||
{"id":75,"name":"contact-12","sexe":"2","age":"17","studies2":"1","reltype":"1","dist":"1","job":"4","famsit":"1","city":"27","cp":"10017","quartier":"17","duration":["17","117"],"context":"3","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"2","irlfreq":["1","6","11","16","21"],"relmark":"2","medrel":"2"}
|
|
||||||
{"id":76,"name":"contact-13","sexe":"0","age":"18","studies2":"2","reltype":"2","dist":"2","job":"5","famsit":"2","city":"28","cp":"10018","quartier":"18","duration":["18","118"],"context":"4","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"3","irlfreq":["2","7","12","17","22"],"relmark":"3","medrel":"0"}
|
|
||||||
{"id":77,"name":"contact-14","sexe":"1","age":"0","studies2":"3","reltype":"3","dist":"3","job":"6","famsit":"3","city":"29","cp":"10019","quartier":"19","duration":["19","119"],"context":"5","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"4","irlfreq":["3","8","13","18","23"],"relmark":"4","medrel":"1"}
|
|
||||||
{"id":78,"name":"contact-15","sexe":"2","age":"1","studies2":"4","reltype":"4","dist":"0","job":"7","famsit":"0","city":"30","cp":"10020","quartier":"20","duration":["20","120"],"context":"6","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"0","irlfreq":["0","5","10","15","20"],"relmark":"0","medrel":"2"}
|
|
||||||
{"id":79,"name":"contact-16","sexe":"0","age":"2","studies2":"5","reltype":"5","dist":"1","job":"8","famsit":"1","city":"31","cp":"10021","quartier":"21","duration":["21","121"],"context":"7","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"1","irlfreq":["1","6","11","16","21"],"relmark":"1","medrel":"0"}
|
|
||||||
{"id":80,"name":"contact-17","sexe":"1","age":"3","studies2":"6","reltype":"6","dist":"2","job":"9","famsit":"2","city":"32","cp":"10022","quartier":"22","duration":["22","122"],"context":"8","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"2","irlfreq":["2","7","12","17","22"],"relmark":"2","medrel":"1"}
|
|
||||||
{"id":81,"name":"contact-18","sexe":"2","age":"4","studies2":"7","reltype":"autre","dist":"3","job":"10","famsit":"3","city":"33","cp":"10023","quartier":"23","duration":["23","123"],"context":"9","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"3","irlfreq":["3","8","13","18","23"],"relmark":"3","medrel":"2"}
|
|
||||||
{"id":82,"name":"contact-19","sexe":"0","age":"5","studies2":"0","reltype":"0","dist":"0","job":"11","famsit":"0","city":"34","cp":"10024","quartier":"24","duration":["24","124"],"context":"10","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"4","irlfreq":["0","5","10","15","20"],"relmark":"4","medrel":"0"}
|
|
||||||
{"id":84,"name":"contact-21","sexe":"2","age":"7","studies2":"2","reltype":"2","dist":"2","job":"0","famsit":"2","city":"36","cp":"10026","quartier":"26","duration":["26","126"],"context":"12","contextExtra":["","association",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"1","irlfreq":["2","7","12","17","22"],"relmark":"1","medrel":"2"}
|
|
||||||
{"id":85,"name":"contact-22","sexe":"0","age":"8","studies2":"3","reltype":"3","dist":"3","job":"1","famsit":"3","city":"37","cp":"10027","quartier":"27","duration":["27","127"],"context":"13","contextExtra":["","","autre"],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"2","irlfreq":["3","8","13","18","23"],"relmark":"2","medrel":"0"}
|
|
||||||
{"id":86,"name":"contact-23","sexe":"1","age":"9","studies2":"4","reltype":"4","dist":"0","job":"2","famsit":"0","city":"38","cp":"10028","quartier":"28","duration":["28","128"],"context":"0","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"3","irlfreq":["0","5","10","15","20"],"relmark":"3","medrel":"1"}
|
|
||||||
{"id":87,"name":"contact-24","sexe":"2","age":"10","studies2":"5","reltype":"5","dist":"1","job":"3","famsit":"1","city":"39","cp":"10029","quartier":"29","duration":["29","129"],"context":"1","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"4","irlfreq":["1","6","11","16","21"],"relmark":"4","medrel":"2"}
|
|
||||||
{"id":88,"name":"contact-25","sexe":"0","age":"11","studies2":"6","reltype":"6","dist":"2","job":"4","famsit":"2","city":"40","cp":"10030","quartier":"30","duration":["30","130"],"context":"2","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"0","irlfreq":["2","7","12","17","22"],"relmark":"0","medrel":"0"}
|
|
||||||
{"id":89,"name":"contact-26","sexe":"1","age":"12","studies2":"7","reltype":"autre","dist":"3","job":"5","famsit":"3","city":"41","cp":"10031","quartier":"31","duration":["31","131"],"context":"3","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"1","irlfreq":["3","8","13","18","23"],"relmark":"1","medrel":"1"}
|
|
||||||
{"id":90,"name":"contact-27","sexe":"2","age":"13","studies2":"0","reltype":"0","dist":"0","job":"6","famsit":"0","city":"42","cp":"10032","quartier":"32","duration":["32","132"],"context":"4","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"2","irlfreq":["0","5","10","15","20"],"relmark":"2","medrel":"2"}
|
|
||||||
{"id":91,"name":"contact-28","sexe":"0","age":"14","studies2":"1","reltype":"1","dist":"1","job":"7","famsit":"1","city":"43","cp":"10033","quartier":"33","duration":["33","133"],"context":"5","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"3","irlfreq":["1","6","11","16","21"],"relmark":"3","medrel":"0"}
|
|
||||||
{"id":92,"name":"contact-29","sexe":"1","age":"15","studies2":"2","reltype":"2","dist":"2","job":"8","famsit":"2","city":"44","cp":"10034","quartier":"34","duration":["34","134"],"context":"6","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"4","irlfreq":["2","7","12","17","22"],"relmark":"4","medrel":"1"}
|
|
||||||
{"id":93,"name":"contact-30","sexe":"2","age":"16","studies2":"3","reltype":"3","dist":"3","job":"9","famsit":"3","city":"45","cp":"10035","quartier":"35","duration":["35","135"],"context":"7","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"0","irlfreq":["3","8","13","18","23"],"relmark":"0","medrel":"2"}
|
|
||||||
{"id":94,"name":"contact-31","sexe":"0","age":"17","studies2":"4","reltype":"4","dist":"0","job":"10","famsit":"0","city":"46","cp":"10036","quartier":"36","duration":["36","136"],"context":"8","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"1","irlfreq":["0","5","10","15","20"],"relmark":"1","medrel":"0"}
|
|
||||||
{"id":95,"name":"contact-32","sexe":"1","age":"18","studies2":"5","reltype":"5","dist":"1","job":"11","famsit":"1","city":"47","cp":"10037","quartier":"37","duration":["37","137"],"context":"9","contextExtra":["","",""],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"2","irlfreq":["1","6","11","16","21"],"relmark":"2","medrel":"1"}
|
|
||||||
{"id":96,"name":"contact-33","sexe":"2","age":"0","studies2":"6","reltype":"6","dist":"2","job":"12","famsit":"2","city":"48","cp":"10038","quartier":"38","duration":["38","138"],"context":"10","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"3","irlfreq":["2","7","12","17","22"],"relmark":"3","medrel":"2"}
|
|
||||||
{"id":97,"name":"contact-34","sexe":"0","age":"1","studies2":"7","reltype":"autre","dist":"3","job":"0","famsit":"3","city":"49","cp":"10039","quartier":"39","duration":["39","139"],"context":"11","contextExtra":["internet","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"4","irlfreq":["3","8","13","18","23"],"relmark":"4","medrel":"0"}
|
|
||||||
{"id":98,"name":"contact-35","sexe":"1","age":"2","studies2":"0","reltype":"0","dist":"0","job":"1","famsit":"0","city":"50","cp":"10040","quartier":"40","duration":["40","140"],"context":"12","contextExtra":["","association",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"0","irlfreq":["0","5","10","15","20"],"relmark":"0","medrel":"1"}
|
|
||||||
{"id":99,"name":"contact-36","sexe":"2","age":"3","studies2":"1","reltype":"1","dist":"1","job":"2","famsit":"1","city":"51","cp":"10041","quartier":"41","duration":["41","141"],"context":"13","contextExtra":["","","autre"],"freq":["1","6","11","16","21"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"1","interest":"1","irlfreq":["1","6","11","16","21"],"relmark":"1","medrel":"2"}
|
|
||||||
{"id":100,"name":"contact-37","sexe":"0","age":"4","studies2":"2","reltype":"2","dist":"2","job":"3","famsit":"2","city":"52","cp":"10042","quartier":"42","duration":["42","142"],"context":"0","contextExtra":["","",""],"freq":["2","7","12","17","22"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"2","interest":"2","irlfreq":["2","7","12","17","22"],"relmark":"2","medrel":"0"}
|
|
||||||
{"id":101,"name":"contact-38","sexe":"1","age":"5","studies2":"3","reltype":"3","dist":"3","job":"4","famsit":"3","city":"53","cp":"10043","quartier":"43","duration":["43","143"],"context":"1","contextExtra":["","",""],"freq":["3","8","13","18","23"],"connect":["1","3","5","7","9","11"],"connectExtra":["",""],"medsoc":"3","interest":"3","irlfreq":["3","8","13","18","23"],"relmark":"3","medrel":"1"}
|
|
||||||
{"id":102,"name":"contact-39","sexe":"2","age":"6","studies2":"4","reltype":"4","dist":"0","job":"5","famsit":"0","city":"54","cp":"10044","quartier":"44","duration":["44","144"],"context":"2","contextExtra":["","",""],"freq":["0","5","10","15","20"],"connect":["0","2","4","6","8","10"],"connectExtra":["",""],"medsoc":"0","interest":"4","irlfreq":["0","5","10","15","20"],"relmark":"4","medrel":"2"}
|
|
||||||
{"id":104,"name":"contact-41","sexe":"1","age":"","studies1":"2","reltype":"1","dist":"0"}
|
|
||||||
{"id":105,"name":"contact-42","sexe":"0","age":"2","studies1":"3","reltype":"2","dist":"1"}
|
|
||||||
{"id":106,"name":"contact-43","sexe":"1","age":"3","studies1":"4","reltype":"3","dist":"2"}
|
|
||||||
{"id":107,"name":"contact-44","sexe":"0","age":"4","studies1":"5","reltype":"4","dist":"3"}
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"16":{"line":0},"17":{"line":1},"18":{"line":2},"19":{"line":3},"20":{"line":4},"21":{"line":5},"22":{"line":6},"23":{"line":7},"24":{"line":8},"25":{"line":9},"26":{"line":10},"27":{"line":11},"28":{"line":12},"29":{"line":13},"30":{"line":14},"31":{"line":15},"32":{"line":16},"33":{"line":17},"34":{"line":18},"35":{"line":19},"37":{"line":20},"38":{"line":21},"39":{"line":22},"40":{"line":23},"41":{"line":24},"42":{"line":25},"43":{"line":26},"44":{"line":27},"45":{"line":28},"46":{"line":29},"47":{"line":30},"48":{"line":31},"49":{"line":32},"50":{"line":33},"51":{"line":34},"52":{"line":35},"53":{"line":36},"54":{"line":37},"55":{"line":38},"57":{"line":39},"58":{"line":40},"59":{"line":41},"60":{"line":42},"63":{"line":43},"64":{"line":44},"65":{"line":45},"66":{"line":46},"67":{"line":47},"68":{"line":48},"69":{"line":49},"70":{"line":50},"71":{"line":51},"72":{"line":52},"73":{"line":53},"74":{"line":54},"75":{"line":55},"76":{"line":56},"77":{"line":57},"78":{"line":58},"79":{"line":59},"80":{"line":60},"81":{"line":61},"82":{"line":62},"84":{"line":63},"85":{"line":64},"86":{"line":65},"87":{"line":66},"88":{"line":67},"89":{"line":68},"90":{"line":69},"91":{"line":70},"92":{"line":71},"93":{"line":72},"94":{"line":73},"95":{"line":74},"96":{"line":75},"97":{"line":76},"98":{"line":77},"99":{"line":78},"100":{"line":79},"101":{"line":80},"102":{"line":81},"104":{"line":82},"105":{"line":83},"106":{"line":84},"107":{"line":85}}
|
{"2":{"line":0},"3":{"line":1},"4":{"line":2},"5":{"line":3},"6":{"line":4},"7":{"line":5},"8":{"line":6},"9":{"line":7},"10":{"line":8},"11":{"line":9},"12":{"line":10},"13":{"line":11},"14":{"line":12},"15":{"line":13},"16":{"line":14},"17":{"line":15},"18":{"line":16},"19":{"line":17},"20":{"line":18},"21":{"line":19},"23":{"line":20},"24":{"line":21},"25":{"line":22},"26":{"line":23},"27":{"line":24},"28":{"line":25},"29":{"line":26},"30":{"line":27},"31":{"line":28},"32":{"line":29},"33":{"line":30},"34":{"line":31},"35":{"line":32},"36":{"line":33},"37":{"line":34},"38":{"line":35},"39":{"line":36},"40":{"line":37},"41":{"line":38},"43":{"line":39},"44":{"line":40},"45":{"line":41},"46":{"line":42}}
|
|
@ -7,48 +7,6 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"questions": {
|
|
||||||
"sexe": { "x": "Civilité" },
|
|
||||||
"age": { "x": "Age" },
|
|
||||||
"studies1": { "x": "Niveau d'études maximal (fiche rapide)" },
|
|
||||||
"studies2": { "x": "Niveau d'études maximal (fiche complète)" },
|
|
||||||
"job": { "x": "Dernière profession exercée" },
|
|
||||||
"city": { "x": "Où habite t-elle/il ? (ville)" },
|
|
||||||
"cp": { "x": "Où habite t-elle/il ? (code postal)" },
|
|
||||||
"quartier": { "x": "Où habite t-elle/il ? (quartier)" },
|
|
||||||
"context": { "x": "Contexte de rencontre" },
|
|
||||||
"contextExtra": { "0": "Internet (quel contexte ? préciser)",
|
|
||||||
"1": "Par une association (quel type ? préciser)",
|
|
||||||
"2": "Autre" },
|
|
||||||
"famsit": { "x": "Situation familiale" },
|
|
||||||
"reltype": { "x": "Type de relation" },
|
|
||||||
"dist": { "x": "À combien de temps est-ce de chez vous (en voiture) ? (si deux domiciles, le plus proche)" },
|
|
||||||
"duration": { "0": "Depuis quand connaissez-vous cette personne ? (mois)",
|
|
||||||
"1": "Depuis quand connaissez-vous cette personne ? (années)" },
|
|
||||||
"freq": { "0": "Avec quelle fréquence discutez-vous avec cette personne face à face ?",
|
|
||||||
"1": "Avec quelle fréquence discutez-vous avec cette personne via téléphone ou skype et équivalent ?",
|
|
||||||
"2": "Avec quelle fréquence discutez-vous avec cette personne via SMS et équivalents ?",
|
|
||||||
"3": "Avec quelle fréquence discutez-vous avec cette personne via courrier éléctronique ?",
|
|
||||||
"4": "Avec quelle fréquence discutez-vous avec cette personne via facebook ou autre réseau social ?" },
|
|
||||||
"irlfreq": { "0": "Selon vous, à quelle fréquence cette personne publie des commentaires personnels ou réagit aux publications des autres ?",
|
|
||||||
"1": "Selon vous, à quelle fréquence cette personne publie des photos personnelles (profil, voyages, etc.) ?",
|
|
||||||
"2": "Selon vous, à quelle fréquence cette personne partage de la musique ou des clips musicaux ?",
|
|
||||||
"3": "Selon vous, à quelle fréquence cette personne partage des informations culturelles (concert, exposition, etc.) ?",
|
|
||||||
"4": "Selon vous, à quelle fréquence cette personne partage des articles, des informations, des contenus avec une portée politique ?" },
|
|
||||||
"connect": { "0": "Ses coordonnées sont dans votre carnet d'adresse",
|
|
||||||
"1": "Son numéro de mobile est enregistré sur votre mobile (ou vous-mêmes êtes sur le sien)",
|
|
||||||
"2": "Elle figure parmi vos amis facebook (idem)",
|
|
||||||
"3": "Elle figure parmi vos amis facebook et vous interagissez avec elle sur ce dispositif régulièrement (idem)",
|
|
||||||
"4": "Vous le suivez sur Twitter (ou elle vous suit)",
|
|
||||||
"5": "Vous communiquez avec cette personne sur Twitter (idem)" },
|
|
||||||
"connectExtra": { "0": "Vous communiquez dans autre réseau",
|
|
||||||
"1": "Vous communiquez dans un autre dispositif (blogs, jeu vidéo ou autre)" },
|
|
||||||
"medsoc": { "x": "Comment cette personne utilise-t-elle les médias sociaux de votre point de vue ?" },
|
|
||||||
"medrel": { "x": "Considérez-vous que vos échange avec cette personne à travers les médias sociaux" },
|
|
||||||
"interest": { "x": "Sur une échelle de 1 à 5, préciser l'intérêt que vous accordez aux contenue qu'elle partage via les médias sociaux" },
|
|
||||||
"relmark": { "x": "Sur une échelle de 1 à 5, comment jugez-vous votre relation à cette personne ?" }
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,32 +32,49 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"studies2": {
|
"studies2": {
|
||||||
".": "NA",
|
".": "NA",
|
||||||
"0": "Aucun diplôme, CEP, BEPC",
|
"0": "Inconnue",
|
||||||
"1": "CAP, CAPA, BEP, BEPA, Brevet de compagnon, Diplômes sociaux (aide-soignante, auxiliaire de puériculture, travailleuse familiale)",
|
"01": "Pas de scolarité",
|
||||||
"2": "Bac technologique ou professionnel, brevet professionnel ou de technicien",
|
"02": "Aucun diplôme mais scolarité jusqu'en école primaire ou au collège",
|
||||||
"3": "Baccalauréat général, brevet supérieur",
|
"03": "Aucun diplôme mais scolarité au-delà du collège",
|
||||||
"4": "Diplôme universitaire de 1er cycle: Licence, BTS, DUT",
|
"04": "Certificat d'études primaires (CEP)",
|
||||||
"5": "Diplôme universitaire de 2ème cycle : MASTER, Maîtrise ou DEA, CAPES",
|
"05": "BEPC, brevet élémentaire, brevet des collèges",
|
||||||
"6": "Doctorat (y compris médecine, pharmacie, dentaire)",
|
"06": "Certificat d'aptitudes professionnelles (CAP), brevet de compagnon, y compris CAPA",
|
||||||
"7": "Diplôme d'ingénieur, diplôme d'une grande école de commerce"
|
"07": "Brevet d'études professionnelles (BEP), y compris BEPA et diplômes agricoles (BAA, BPA) Diplômes sociaux (aide-soignante, auxiliaire de puériculture, travailleuse familiale)",
|
||||||
|
"08": "Baccalauréat général, brevet supérieur BAC ( L, ES, S ou A, B , C, D, D’, E )",
|
||||||
|
"09": "Bac technologique ou professionnel, brevet professionnel ou de technicien BAC (STI, STL, SMS, STT ou F, G, H) BEC, BEI, BEH, capacité en droit Brevet de technicien agricole (BTA)",
|
||||||
|
"10": "Diplôme universitaire de 1er cycle BTS, DUT, DEUG Diplôme des professions sociales ou de santé, d'infirmier(ère) Diplôme universitaire propédeutique, DUEL, DUES, DEUG, PCEM",
|
||||||
|
"11": "Diplôme universitaire de 2ème ou 3ème cycle MASTER, DOCTORAT (y compris médecine, pharmacie, dentaire), Maîtrise, DEA, DESS, CAPES, CAPET, agrégation Diplôme d'ingénieur, d'une grande école, etc."
|
||||||
},
|
},
|
||||||
|
|
||||||
"job": {
|
"job": {
|
||||||
".": "NA",
|
".": "NA",
|
||||||
"0": "Agriculateur exploitants",
|
"10": "Agriculteurs exploitants (Agriculteurs, maraîchers, viticulteurs…)",
|
||||||
"1": "Artisans",
|
"21": "Artisans (Maçons, électriciens, couturiers, boulangers, garagistes, coiffeurs…)",
|
||||||
"2": "Commerçants et assimilés",
|
"22": "Commerçants et assimilés (Commerçants en détail ou en gros, buralistes, cafetiers, agents immobiliers…)",
|
||||||
"3": "Chefs d'entreprise de 10 salariés ou plus",
|
"23": "Chefs d'entreprise de 10 salariés ou plus",
|
||||||
"4": "Professions libérales et assimilés",
|
"31": "Professions libérales et assimilés (Médecins, avocats, notaires, architectes libéraux…)",
|
||||||
"5": "Cadres de la fonction publique, professions intellectuelles et artistiques",
|
"32": "Cadres de la fonction publique, professions intellectuelles et artistiques (Personnels administratifs de catégorie A, professeurs de l’enseignement secondaire ou supérieur, médecins hospitaliers, artistes…)",
|
||||||
"6": "Cadres d'entreprise",
|
"36": "Cadres d'entreprise (Cadres administratifs, cadres commerciaux, ingénieurs…)",
|
||||||
"7": "Professions intermétiaires de l'enseignement, de la santé, de la fonction publique et assimilés",
|
"41": "Professions intermédiaires de l'enseignement, de la santé, de la fonction publique et assimilés (Personnels administratifs de catégorie B, instituteurs, infirmiers, travailleurs sociaux…)",
|
||||||
"8": "Professions intermédiaires administratives et commerciales des entreprises",
|
"46": "Professions intermédiaires administratives et commerciales des entreprises (Comptables, chargés de clientèles…)",
|
||||||
"9": "Techniciens",
|
"47": "Techniciens (Techniciens d’études, techniciens de contrôle, dessinateurs en bâtiment, géomètres…)",
|
||||||
"10": "Contremaîtres, agents de maîtrise",
|
"48": "Contremaîtres, agents de maîtrise (Conducteurs de travaux, chefs d’équipe…)",
|
||||||
"11": "Employés",
|
"51": "Employés de la fonction publique (Personnels de catégorie C, agents administratifs, agents de service…)",
|
||||||
"12": "Ouvriers"
|
"54": "Employés administratifs d'entreprise (Secrétaires, agents d’accueil…)",
|
||||||
|
"55": "Employés de commerce (Vendeurs, caissiers…)",
|
||||||
|
"56": "Personnels des services directs aux particuliers (Serveurs, coiffeurs, assistantes maternelles…)",
|
||||||
|
"61": "Ouvriers qualifiés de type industriel ou artisanal (Mécaniciens, chauffeurs, cuisiniers…)",
|
||||||
|
"66": "Ouvriers non qualifiés de type industriel ou artisanal (Ouvrier de production, manœuvres…)",
|
||||||
|
"69": "Ouvriers agricoles (Bergers, ouvriers de la viticulture, bûcherons, ouvrier forestiers…)",
|
||||||
|
"71": "Anciens agriculteurs exploitants",
|
||||||
|
"72": "Anciens artisans, commerçants, chefs d'entreprise",
|
||||||
|
"73": "Anciens cadres",
|
||||||
|
"74": "Anciennes professions intermédiaires",
|
||||||
|
"75": "Anciens employés",
|
||||||
|
"76": "Anciens ouvriers",
|
||||||
|
"81": "Chômeurs n'ayant jamais travaillé",
|
||||||
|
"82": "Inactifs divers (autres que retraités)"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
@ -127,6 +102,8 @@
|
||||||
"3": "En couple avec enfants"
|
"3": "En couple avec enfants"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"reltype": {
|
"reltype": {
|
||||||
"0": "Père, mère ou équivalent",
|
"0": "Père, mère ou équivalent",
|
||||||
"1": "Frère ou soeur",
|
"1": "Frère ou soeur",
|
||||||
|
@ -156,46 +133,9 @@
|
||||||
"4": "Jamais"
|
"4": "Jamais"
|
||||||
},
|
},
|
||||||
|
|
||||||
"irlfreq": {
|
|
||||||
"0": "plusieurs fois par semaine",
|
|
||||||
"1": "1 fois par semaine",
|
|
||||||
"2": "1 fois par mois",
|
|
||||||
"3": "1 fois par an ou moins",
|
|
||||||
"4": "Jamais"
|
|
||||||
},
|
|
||||||
|
|
||||||
"connect": {
|
"connect": {
|
||||||
"0": "Oui",
|
"0": "Oui",
|
||||||
"1": "Non"
|
"1": "Non"
|
||||||
},
|
|
||||||
|
|
||||||
"medsoc": {
|
|
||||||
"0": "D'une personne qui n'utilise pas ou peu les médias sociaux",
|
|
||||||
"1": "D'une personne qui consulte des publications mais partage peu de contenus",
|
|
||||||
"2": "D'une personne qui consulte des publication et partage des contenus de temps en temps",
|
|
||||||
"3": "D'une personne qui partage beaucoup de contenus et s'exprime fréquemment"
|
|
||||||
},
|
|
||||||
|
|
||||||
"medrel": {
|
|
||||||
"0": "N'ont aucun effet sur votre relation",
|
|
||||||
"1": "Vous ont rapproché d'elle",
|
|
||||||
"2": "Vous ont éloigné d'elle"
|
|
||||||
},
|
|
||||||
|
|
||||||
"interest": {
|
|
||||||
"0": "1",
|
|
||||||
"1": "2",
|
|
||||||
"2": "3",
|
|
||||||
"3": "4",
|
|
||||||
"4": "5"
|
|
||||||
},
|
|
||||||
|
|
||||||
"relmark": {
|
|
||||||
"0": "1",
|
|
||||||
"1": "2",
|
|
||||||
"2": "3",
|
|
||||||
"3": "4",
|
|
||||||
"4": "5"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
{"2":{"line":0},"4":{"line":1},"5":{"line":2},"6":{"line":3},"7":{"line":4},"8":{"line":5},"9":{"line":6},"10":{"line":7},"11":{"line":8},"12":{"line":9},"13":{"line":10},"14":{"line":11},"15":{"line":12},"1":{"line":13},"3":{"line":14}}
|
{"1":{"line":0}}
|
|
@ -1 +1 @@
|
||||||
107
|
51
|
|
@ -88,33 +88,33 @@
|
||||||
*/
|
*/
|
||||||
public static function explicit($error){
|
public static function explicit($error){
|
||||||
switch($error){
|
switch($error){
|
||||||
case self::Success: return "All right."; break;
|
case self::Success: return "Tout s'est bien deroulé."; break;
|
||||||
|
|
||||||
case self::ParsingFailed: return "JSON/XML file format error."; break;
|
case self::ParsingFailed: return "La lecture du fichier JSON ou XML a echouée."; break;
|
||||||
|
|
||||||
case self::InvalidFlags: return "Flags are incorrect."; break;
|
case self::InvalidFlags: return "Les spécifications (drapeaux) sont incorrects."; break;
|
||||||
case self::UnreachableResource: return "Resource unreachable (404)."; break;
|
case self::UnreachableResource: return "La ressource n'existe pas (404)."; break;
|
||||||
case self::MissingPath: return "Path missing."; break;
|
case self::MissingPath: return "Le chemin de délégation n'a pas été renseigné."; break;
|
||||||
case self::WrongPathModule: return "Module path incorrect 'module/method'."; break;
|
case self::WrongPathModule: return "Le chemin de délégation est incorrect ('nomModule/nomMethode')."; break;
|
||||||
case self::WrongPathRepo: return "Repository path incorrect 'repo/method'."; break;
|
case self::WrongPathRepo: return "Le chemin de délégation est incorrect ('nomRepo/nomMethode')."; break;
|
||||||
case self::UnknownModule: return "Requested module not found."; break;
|
case self::UnknownModule: return "Le module n'existe pas."; break;
|
||||||
case self::UnknownRepo: return "Requested repository not found."; break;
|
case self::UnknownRepo: return "Le repo n'existe pas."; break;
|
||||||
case self::UnknownMethod: return "Requested method not found."; break;
|
case self::UnknownMethod: return "Le methode n'existe pas."; break;
|
||||||
case self::UncallableMethod: return "Cannot call requested method."; break;
|
case self::UncallableMethod: return "Le methode n'est pas amorçable."; break;
|
||||||
|
|
||||||
case self::ParamError: return "Wrong or missing parameter(s)."; break;
|
case self::ParamError: return "Un ou plusieurs paramètres sont manquants ou incorrects."; break;
|
||||||
case self::ModuleError: return "Module error."; break;
|
case self::ModuleError: return "Erreur lors du traitement du module."; break;
|
||||||
case self::RepoError: return "Repository error."; break;
|
case self::RepoError: return "Erreur lors du traitement du repo."; break;
|
||||||
|
|
||||||
case self::PDOConnection: return "Database connection failed."; break;
|
case self::PDOConnection: return "La connexion avec la base de données a echouée."; break;
|
||||||
|
|
||||||
case self::TokenError: return "Access token wrong, missing or expired."; break;
|
case self::TokenError: return "Le token de connection est absent, érroné ou expiré."; break;
|
||||||
case self::PermissionError: return "Not granted to do so."; break;
|
case self::PermissionError: return "Vous n'avez pas la permission d'effectuer cette action."; break;
|
||||||
case self::UploadError: return "Upload error."; break;
|
case self::UploadError: return "Une erreur d'upload est survenue."; break;
|
||||||
case self::FormatError: return "Format error."; break;
|
case self::FormatError: return "Le fichier n'est pas au bon format."; break;
|
||||||
case self::Already: return "Already done."; break;
|
case self::Already: return "Action déja effectuée."; break;
|
||||||
|
|
||||||
default: return "Unknown debug error"; break;
|
default: return "Description d'erreur inconnue..."; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Erreur inconnue
|
// Erreur inconnue
|
||||||
|
|
|
@ -58,7 +58,8 @@
|
||||||
/* AMORCEUR */
|
/* AMORCEUR */
|
||||||
/************/
|
/************/
|
||||||
public static function session_start(){
|
public static function session_start(){
|
||||||
return \session_start();
|
\session_start();
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
/* [1] Génération et Gestion des donnees a utiliser
|
/* [1] Génération et Gestion des donnees a utiliser
|
||||||
|
|
|
@ -7,25 +7,25 @@
|
||||||
"password" : "Qt358nUdyeTxLDM8"
|
"password" : "Qt358nUdyeTxLDM8"
|
||||||
},
|
},
|
||||||
"remote": {
|
"remote": {
|
||||||
"host" : "localhost",
|
"host" : "xdrm.io",
|
||||||
"dbname" : "nxtic",
|
"dbname" : "nxtic",
|
||||||
"user" : "nxtic-php",
|
"user" : "php",
|
||||||
"password" : "wxcvbn"
|
"password" : "QbzjZACndQM6NmuD"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"lab-surveys": {
|
"lab-surveys": {
|
||||||
"local": {
|
"local": {
|
||||||
"host" : "listic-lab-surveys.irit.fr",
|
"host" : "shadowx-dev.com",
|
||||||
"dbname" : "lab-surveys",
|
"dbname" : "cnrs",
|
||||||
"user" : "lab-surveys",
|
"user" : "cnrs",
|
||||||
"password" : "wxcvbn"
|
"password" : "yEHsPxCurd7RsynE"
|
||||||
},
|
},
|
||||||
"remote": {
|
"remote": {
|
||||||
"host" : "listic-lab-surveys.irit.fr",
|
"host" : "shadowx-dev.com",
|
||||||
"dbname" : "lab-surveys",
|
"dbname" : "cnrs",
|
||||||
"user" : "lab-surveys",
|
"user" : "cnrs",
|
||||||
"password" : "wxcvbn"
|
"password" : "yEHsPxCurd7RsynE"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
"parameters": {}
|
"parameters": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"markdown": {
|
"markdown": {
|
||||||
"description": "Retourne une description en markdown des différents modules de l'API",
|
"description": "Retourne une description en markdown des différents modules de l'API",
|
||||||
"permissions": [],
|
"permissions": [],
|
||||||
|
@ -41,6 +42,7 @@
|
||||||
"parameters": {}
|
"parameters": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"apiBlueprint": {
|
"apiBlueprint": {
|
||||||
"description": "Retourne une documentation de l'API au format API Blueprint.",
|
"description": "Retourne une documentation de l'API au format API Blueprint.",
|
||||||
"permissions": [],
|
"permissions": [],
|
||||||
|
@ -68,6 +70,7 @@
|
||||||
"parameters": {}
|
"parameters": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"getById": {
|
"getById": {
|
||||||
"description": "Retourne les informations d'un utilisateur.",
|
"description": "Retourne les informations d'un utilisateur.",
|
||||||
"permissions": ["admin"],
|
"permissions": ["admin"],
|
||||||
|
@ -79,6 +82,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"getAll": {
|
"getAll": {
|
||||||
"description": "Retourne les informations de tous les utilisateurs.",
|
"description": "Retourne les informations de tous les utilisateurs.",
|
||||||
"permissions": ["admin"],
|
"permissions": ["admin"],
|
||||||
|
@ -88,6 +92,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"create": {
|
"create": {
|
||||||
"description": "Creation d'un nouvel administrateur.",
|
"description": "Creation d'un nouvel administrateur.",
|
||||||
"permissions": ["admin"],
|
"permissions": ["admin"],
|
||||||
|
@ -101,6 +106,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"remove": {
|
"remove": {
|
||||||
"description": "Suppression d'un utilisateur.",
|
"description": "Suppression d'un utilisateur.",
|
||||||
"permissions": ["admin"],
|
"permissions": ["admin"],
|
||||||
|
@ -121,6 +127,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"generate": {
|
"generate": {
|
||||||
"description": "Création d'un token de nom et de durée donnée",
|
"description": "Création d'un token de nom et de durée donnée",
|
||||||
"permissions": ["admin"],
|
"permissions": ["admin"],
|
||||||
|
@ -167,6 +174,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
"create": {
|
"create": {
|
||||||
"description": "Creation d'un nouveau sujet.",
|
"description": "Creation d'un nouveau sujet.",
|
||||||
"permissions": ["admin"],
|
"permissions": ["admin"],
|
||||||
|
@ -182,26 +190,11 @@
|
||||||
|
|
||||||
"input": {
|
"input": {
|
||||||
|
|
||||||
"survey": {
|
|
||||||
"description": "Enregistre les données d'une enquête téléphonique.",
|
|
||||||
"permissions": ["admin"],
|
|
||||||
"parameters": {
|
|
||||||
"subject": { "description": "Données du sujet (id, etc)", "type": "array<mixed>" },
|
|
||||||
"contacts": { "description": "Données des contacts de l'enquête.", "type": "array<array>" },
|
|
||||||
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array<array>" },
|
|
||||||
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" },
|
|
||||||
"matrice": { "description": "Matrice contenant les relations entre les plus proches contacts", "type": "array<array>", "optional": true }
|
|
||||||
},
|
|
||||||
"output": {
|
|
||||||
"subject_id": { "description": "Identifiant du sujet complété", "type": "id" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"phone": {
|
"phone": {
|
||||||
"description": "Enregistre les données d'une enquête téléphonique.",
|
"description": "Enregistre les données d'une enquête téléphonique.",
|
||||||
"permissions": ["admin"],
|
"permissions": ["admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"subject": { "description": "Données du sujet (id, etc)", "type": "array<mixed>" },
|
"subject": { "description": "Données sur le sujet de l'enquête.", "type": "array" },
|
||||||
"contacts": { "description": "Données des contacts de l'enquête.", "type": "array<array>" },
|
"contacts": { "description": "Données des contacts de l'enquête.", "type": "array<array>" },
|
||||||
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array<array>" },
|
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array<array>" },
|
||||||
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" },
|
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" },
|
||||||
|
@ -216,7 +209,7 @@
|
||||||
"description": "Enregistre les données d'une enquête facebook.",
|
"description": "Enregistre les données d'une enquête facebook.",
|
||||||
"permissions": ["admin"],
|
"permissions": ["admin"],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"subject": { "description": "Données du sujet (id, etc)", "type": "array<mixed>" },
|
"subject": { "description": "Données sur le sujet de l'enquête.", "type": "array" },
|
||||||
"contacts": { "description": "Données des contacts de l'enquête.", "type": "array<array>" },
|
"contacts": { "description": "Données des contacts de l'enquête.", "type": "array<array>" },
|
||||||
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array<array>" },
|
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array<array>" },
|
||||||
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" },
|
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" },
|
||||||
|
@ -263,6 +256,9 @@
|
||||||
"options": { "download": true },
|
"options": { "download": true },
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"subjects": { "description": "Identifiants des sujets d'enquêtes à intégrer.", "type": "array<id>", "optional": true },
|
"subjects": { "description": "Identifiants des sujets d'enquêtes à intégrer.", "type": "array<id>", "optional": true },
|
||||||
|
"phone": { "description": "Si vaut TRUE, renvoie les sujets cellulaires.", "type": "boolean", "optional": true },
|
||||||
|
"facebook": { "description": "Si vaut TRUE, renvoie les sujet facebook.", "type": "boolean", "optional": true },
|
||||||
|
"survey": { "description": "Si vaut TRUE, renvoie les sujets ResTIC.", "type": "boolean", "optional": true },
|
||||||
"all": { "description": "Si vaut TRUE, renvoie tous les sujets enregistrés.", "type": "boolean", "optional": true }
|
"all": { "description": "Si vaut TRUE, renvoie tous les sujets enregistrés.", "type": "boolean", "optional": true }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Before Width: | Height: | Size: 324 KiB After Width: | Height: | Size: 324 KiB |
|
@ -53,5 +53,5 @@ $header-height: 4em;
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// Transforme une couleur hex en string sans le #
|
// Transforme une couleur hex en string sans le #
|
||||||
@function color-str($color){
|
@function color-str($color){
|
||||||
@return str-slice("#{$color}", 2, str-length("#{$color}"));
|
@return str-slice(#{$color}, 2, str-length(#{$color}));
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue