diff --git a/config/modules.json b/config/modules.json index bf9bd0c..995644d 100755 --- a/config/modules.json +++ b/config/modules.json @@ -168,6 +168,14 @@ "parameters": { "subject": { "description": "Identifiant du sujet à étudier,", "type": "id" } } + }, + + "network": { + "description": "Renvoie les données pour un graphique relationnel de type 'réseau'", + "permissions": ["admin"], + "parameters": { + "subject": { "description": "Identifiant du sujet à étudier,", "type": "id" } + } } }, diff --git a/manager/module/chart.php b/manager/module/chart.php index 5d67b08..ef738b8 100755 --- a/manager/module/chart.php +++ b/manager/module/chart.php @@ -651,7 +651,7 @@ // Si erreur if( $phone === false ) - return array( 'ModuleError' => ManagerError::ModuleError ); + $phone = array(); /* (2) On récupère les données facebook */ $db = new lightdb('facebook_db', __ROOT__.'/src/dynamic/'); @@ -660,12 +660,56 @@ // Si erreur if( $facebook === false ) + $facebook = array(); + + /* (3) Si aucune donnée, erreur */ + if( count($phone) + count($facebook) == 0 ) return array( 'ModuleError' => ManagerError::ModuleError ); /* [2] On récupère les top20 de chaque jeu (les contacts intéressants) =========================================================*/ - $nodes = array(); + $nodes = array(); + + /* (1) Contacts parmi les données téléphoniques */ + if( isset($phone['contacts']) ) + foreach($phone['contacts'] as $contact) + if( isset($contact['studies2']) ) + array_push( $nodes, array( + 'id' => $contact['id'], + 'label' => $contact['name'], + 'type' => 'phone' + ) ); + + + /* (2) Contacts parmi les données facebook */ + if( isset($facebook['contacts']) ) + foreach($facebook['contacts'] as $contact) + if( isset($contact['studies2']) ) + array_push( $nodes, array( + 'id' => $contact['id'], + 'label' => $contact['name'], + 'type' => 'facebook' + ) ); + + + + /* [3] On récupère toutes les relations + =========================================================*/ + $edges = array(); + + /* (1) Parmi les relations des données téléphoniques */ + if( isset($phone['relations']) ) + foreach($phone['relations'] as $relation) + array_push($edges, array($relation['idA'], $relation['idB']) ); + + + /* (2) Parmi les relations des données facebook */ + if( isset($facebook['relations']) ) + foreach($facebook['relations'] as $relation) + array_push($edges, array($relation['idA'], $relation['idB']) ); + + diff --git a/test-charts/network.php b/test-charts/network.php index 3717acb..cc1adeb 100644 --- a/test-charts/network.php +++ b/test-charts/network.php @@ -1,3 +1,14 @@ + +
@@ -6,13 +17,31 @@ - - "; - echo "