- [x] Graphique de type #FIELD
- [x] Definition des donnees - [x] Definition graphique + implementation
This commit is contained in:
parent
b811408aad
commit
76d8c8f91b
|
@ -6,6 +6,13 @@
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
"charts": [
|
||||||
|
|
||||||
|
"field_data",
|
||||||
|
"field_render"
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
"userDefault" :[
|
"userDefault" :[
|
||||||
"create",
|
"create",
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,161 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace manager\module;
|
||||||
|
use \manager\Database;
|
||||||
|
use \manager\sessionManager;
|
||||||
|
use \manager\ManagerError;
|
||||||
|
use \manager\Repo;
|
||||||
|
|
||||||
|
class charts{
|
||||||
|
|
||||||
|
|
||||||
|
/* RETOURNE UN JEU DE DONNEES POUR GRAPHIQUE #FIELD
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function field_data(){
|
||||||
|
/* [1] On cree de fausses donnees
|
||||||
|
=========================================================*/
|
||||||
|
$data = array(
|
||||||
|
/* (1) ID_EGO */
|
||||||
|
'ego' => 17,
|
||||||
|
|
||||||
|
/* (2) Liste des alters */
|
||||||
|
'alter' => array(
|
||||||
|
// Pour chaque alter, on a ID_ALTER, NOM_ALTER, AFFINITE_ALTER
|
||||||
|
array(15, 'Jean', 90), // 90% proche
|
||||||
|
array(3, 'George', 20),
|
||||||
|
array(18, 'Jacques', 30),
|
||||||
|
array(11, 'Jacquie', 40),
|
||||||
|
array(1, 'Martin', 50),
|
||||||
|
array(12, 'Martine', 60)
|
||||||
|
),
|
||||||
|
|
||||||
|
/* (1) Liste des relations */
|
||||||
|
'inter' => array(
|
||||||
|
array(15, 3), // Jean connait George
|
||||||
|
array(15, 1), // Jean connait Martin
|
||||||
|
array(12, 18), // Martine connait Jacques
|
||||||
|
)
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/* [5] Gestion du retour
|
||||||
|
=========================================================*/
|
||||||
|
return array(
|
||||||
|
'ModuleError' => ManagerError::Success,
|
||||||
|
'data' => $data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* RETOURNE UN SVG CORRESPONDANT AU GRAPHIQUE #FIELD
|
||||||
|
*
|
||||||
|
* @data<Array> Jeu de donnees
|
||||||
|
*
|
||||||
|
* @return render<String> Contenu du svg representation graphique des donnees
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function field_render($data){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
debug();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$render = "";
|
||||||
|
/* [1] On genere le debut du svg
|
||||||
|
=========================================================*/
|
||||||
|
$render .= '<?xml version="1.0" encoding="UTF-8" standalone="no"?>';
|
||||||
|
$render .= '<svg height="500" viewBox="0 0 1000 1000" width="500" xmlns="http://www.w3.org/2000/svg">';
|
||||||
|
|
||||||
|
/* [2] On cree le contexte (cercles dont ego)
|
||||||
|
=========================================================*/
|
||||||
|
$ego = "<circle cx='500' cy='500' r='20' fill='#ff5629' />";
|
||||||
|
$close = "<circle cx='500' cy='500' r='400' fill='#ddd' />";
|
||||||
|
$veryclose = "<circle cx='500' cy='500' r='200' fill='#fff' />";
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On cree les elements dynamiques
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) On calcule l'angle de diff entre chaque ALTER */
|
||||||
|
$ang = 2*pi() / count($data['alter']);
|
||||||
|
|
||||||
|
/* (2) On ajoute tous les alters */
|
||||||
|
$alters = array();
|
||||||
|
$origins = array();
|
||||||
|
foreach($data['alter'] as $i=>$alter){
|
||||||
|
// On calcule l'origine (centre du cercle)
|
||||||
|
$origins[$alter[0]] = array(
|
||||||
|
'x' => 500 + (100-$alter[2])*(400/100) * cos($ang*$i),
|
||||||
|
'y' => 500 + (100-$alter[2])*(400/100) * sin($ang*$i)
|
||||||
|
);
|
||||||
|
|
||||||
|
// On ajoute le cercle associe a l'alter courant
|
||||||
|
$alters[$i] = "<circle cx='".$origins[$alter[0]]['x']."' cy='".$origins[$alter[0]]['y']."' r='20' fill='#53d192' title='".$alter[1]."' />";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* [4] On relie toutes les relations
|
||||||
|
=========================================================*/
|
||||||
|
$inter = array();
|
||||||
|
foreach($data['inter'] as $rel){
|
||||||
|
$lefthand = isset($origins[$rel[0]]) && is_array($origins[$rel[0]]);
|
||||||
|
$righthand = isset($origins[$rel[1]]) && is_array($origins[$rel[1]]);
|
||||||
|
|
||||||
|
// Si les deux existent, on les relie
|
||||||
|
if( $lefthand && $righthand )
|
||||||
|
array_push($inter,
|
||||||
|
"<line x1='".$origins[$rel[0]]['x']."' y1='".$origins[$rel[0]]['y']."' x2='".$origins[$rel[1]]['x']."' y2='".$origins[$rel[1]]['y']."' stroke-width='5' stroke='#888' />"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [5] On ajoute les elements et on ferme le svg
|
||||||
|
=========================================================*/
|
||||||
|
$render .= $close;
|
||||||
|
$render .= $veryclose;
|
||||||
|
foreach($inter as $rel) $render .= $rel; // les relations
|
||||||
|
foreach($alters as $alter) $render .= $alter; // les alters
|
||||||
|
$render .= $ego;
|
||||||
|
|
||||||
|
$render .= "</svg>";
|
||||||
|
|
||||||
|
|
||||||
|
/* [6] Gestion du retour
|
||||||
|
=========================================================*/
|
||||||
|
return array(
|
||||||
|
'ModuleError' => ManagerError::Success,
|
||||||
|
'render' => $render
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
|
@ -1,345 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace manager\module;
|
|
||||||
use \manager\Database;
|
|
||||||
use \manager\sessionManager;
|
|
||||||
use \manager\ManagerError;
|
|
||||||
use \manager\Repo;
|
|
||||||
use \manager\repo\cluster as clusterRepo;
|
|
||||||
|
|
||||||
class machineDefault{
|
|
||||||
|
|
||||||
|
|
||||||
/* CREATION D'UNE NOUVELLE MACHINE DANS LA BDD
|
|
||||||
*
|
|
||||||
* @code<String> Code RFID de la machine
|
|
||||||
* @name<String> Identifiant de la machine
|
|
||||||
*
|
|
||||||
* @return status<Boolean> Retourne si oui ou non, tout s'est bien passe
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function create($code=null, $name=null){
|
|
||||||
/* [1] Normalisation + verification des donnees
|
|
||||||
=========================================================*/
|
|
||||||
$correct_param = Database::check('machine.code', $code);
|
|
||||||
$correct_param = $correct_param && Database::check('machine.name', $name);
|
|
||||||
|
|
||||||
// Si les parametres ne sont pas corrects, on retourne une erreur
|
|
||||||
if( !$correct_param )
|
|
||||||
return array('ModuleError' => ManagerError::ParamError);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] Creation de la machine
|
|
||||||
=========================================================*/
|
|
||||||
$create_machine = new Repo('machine/create', array($code, $name) );
|
|
||||||
$id_machine = $create_machine->answer();
|
|
||||||
|
|
||||||
// Si une erreur est retournee, on retourne une erreur
|
|
||||||
if( $id_machine === false )
|
|
||||||
return array('ModuleError' => ManagerError::ModuleError);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] Creation du groupe de meme nom que la machine
|
|
||||||
=========================================================*/
|
|
||||||
$create_group = new Repo('cluster/create', array($name) );
|
|
||||||
$id_group = $create_group->answer();
|
|
||||||
|
|
||||||
// Si une erreur est retournee, on retourne une erreur
|
|
||||||
if( $id_group === false )
|
|
||||||
return array('ModuleError' => ManagerError::ModuleError);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [4] Association au groupe
|
|
||||||
=========================================================*/
|
|
||||||
$assoc_goup = new Repo('cluster/link', array($id_group, $id_machine, clusterRepo::MACHINE_CLASS));
|
|
||||||
$id_assoc = $assoc_goup->answer();
|
|
||||||
|
|
||||||
// Si une erreur est retournee, on retourne une erreur
|
|
||||||
if( $id_assoc === false )
|
|
||||||
return array('ModuleError' => ManagerError::ModuleError);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [5] Gestion du retour
|
|
||||||
=========================================================*/
|
|
||||||
return array(
|
|
||||||
'ModuleError' => ManagerError::Success,
|
|
||||||
'id_machine' => $id_machine,
|
|
||||||
'id_cluster' => $id_group
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* AJOUTE UNE MACHINE DONNEE A UN GROUPE DONNE
|
|
||||||
*
|
|
||||||
* @id_cluster<int> UID du groupe
|
|
||||||
* @id_machine<int> UID de la machine
|
|
||||||
*
|
|
||||||
* @return association<int> Renvoie l'UID de l'association cree
|
|
||||||
* Renvoie FALSE si une erreur occure
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function link($id_cluster, $id_machine){
|
|
||||||
/* [1] Normalisation + verification des donnees
|
|
||||||
=========================================================*/
|
|
||||||
$correct_param = Database::check('auto_increment_id', $id_cluster);
|
|
||||||
$correct_param = $correct_param && Database::check('auto_increment_id', $id_machine);
|
|
||||||
|
|
||||||
// Si les parametres ne sont pas corrects, on retourne une erreur
|
|
||||||
if( !$correct_param )
|
|
||||||
return array('ModuleError' => ManagerError::ParamError);
|
|
||||||
|
|
||||||
/* [2] Creation de l'association
|
|
||||||
=========================================================*/
|
|
||||||
$link_machine = new Repo('cluster/link', array($id_cluster, $id_machine, clusterRepo::MACHINE_CLASS));
|
|
||||||
|
|
||||||
return $link_machine;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RETIRE UNE MACHINE DONNEE A UN GROUPE DONNE
|
|
||||||
*
|
|
||||||
* @id_cluster<int> UID du groupe
|
|
||||||
* @id_machine<int> UID de la machine
|
|
||||||
*
|
|
||||||
* @return association<int> Renvoie l'UID de l'association cree
|
|
||||||
* Renvoie FALSE si une erreur occure
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function unlink($id_cluster, $id_machine){
|
|
||||||
/* [1] Normalisation + verification des donnees
|
|
||||||
=========================================================*/
|
|
||||||
$correct_param = Database::check('auto_increment_id', $id_cluster);
|
|
||||||
$correct_param = $correct_param && Database::check('auto_increment_id', $id_machine);
|
|
||||||
|
|
||||||
// Si les parametres ne sont pas corrects, on retourne une erreur
|
|
||||||
if( !$correct_param )
|
|
||||||
return array('ModuleError' => ManagerError::ParamError);
|
|
||||||
|
|
||||||
/* [2] Suppression de l'association
|
|
||||||
=========================================================*/
|
|
||||||
$link_machine = new Repo('cluster/unlink', array($id_cluster, $id_machine, clusterRepo::MACHINE_CLASS));
|
|
||||||
|
|
||||||
return $link_machine;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE UNE MACHINE EN FONCTION D'UN MOT CLE
|
|
||||||
*
|
|
||||||
* @keyword<String> Element de recherche
|
|
||||||
*
|
|
||||||
* @return machines<Array> Retourne la liste des machines trouvees
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function search($keyword){
|
|
||||||
// On recupere les donnees
|
|
||||||
$machine = new Repo('machine/search', array($keyword));
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'machines' => $machine->answer()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LA LISTE EXHAUSTIVE DES MACHINES
|
|
||||||
*
|
|
||||||
* @return machines<Array> Liste des machines
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getAll(){
|
|
||||||
// On recupere les donnees
|
|
||||||
$machines = new Repo('machine/getAll');
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'machines' => $machines->answer()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LA MACHINE D'UID DONNE
|
|
||||||
*
|
|
||||||
* @id_machine<int> UID de la machine en question
|
|
||||||
*
|
|
||||||
* @return machine<Array> Machine d'UID donne
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getById($id_machine){
|
|
||||||
// On recupere les donnees
|
|
||||||
$request = new Repo('machine/getById', array($id_machine));
|
|
||||||
$answer = $request->answer();
|
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
|
||||||
if( $answer === false )
|
|
||||||
return array( 'ModuleError' => ManagerError::ModuleError );
|
|
||||||
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'machine' => $answer
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LA MACHINE DE CODE DONNE
|
|
||||||
*
|
|
||||||
* @code<String> Code de la machine en question
|
|
||||||
*
|
|
||||||
* @return machine<Array> Machine de code donne
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getByCode($code){
|
|
||||||
// On recupere les donnees
|
|
||||||
$request = new Repo('machine/getByCode', array($code));
|
|
||||||
$answer = $request->answer();
|
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
|
||||||
if( $answer === false )
|
|
||||||
return array( 'ModuleError' => ManagerError::ModuleError );
|
|
||||||
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'machine' => $answer
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LES GROUPES D'UNE MACHINE DONNEE
|
|
||||||
*
|
|
||||||
* @id_machine<int> UID de la machine en question
|
|
||||||
*
|
|
||||||
* @return clusters<Array> Groupes de la machine donne
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getClusters($id_machine){
|
|
||||||
// On recupere les donnees
|
|
||||||
$request = new Repo('machine/getClusters', array($id_machine));
|
|
||||||
$answer = $request->answer();
|
|
||||||
|
|
||||||
// Si aucun resultat, on retourne une erreur
|
|
||||||
if( $answer === false )
|
|
||||||
return array( 'ModuleError' => ManagerError::ModuleError );
|
|
||||||
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'clusters' => $answer
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* MODIFIE UNE MACHINE DONNEE
|
|
||||||
*
|
|
||||||
* @id_machine<int> UID de la machine
|
|
||||||
* @code<String> Code RFID de la machine
|
|
||||||
* @name<String> Identifiant l'utilisateur
|
|
||||||
*
|
|
||||||
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function edit($id_machine=null, $code=null, $name=null){
|
|
||||||
// Si @id_machine n'est pas au bon format, on retourne une erreur
|
|
||||||
if( !Database::check('auto_increment_id', $id_machine) )
|
|
||||||
return array('ModuleError' => ManagerError::ModuleError);
|
|
||||||
|
|
||||||
|
|
||||||
/* [1] On verifie l'existence de la machine
|
|
||||||
=========================================================*/
|
|
||||||
$machine_exists = new Repo('machine/getById', array($id_machine));
|
|
||||||
$machine_data = $machine_exists->answer();
|
|
||||||
|
|
||||||
// Si on a recupere aucune machine, on retourne une erreur
|
|
||||||
if( !is_array($machine_data) )
|
|
||||||
return array('ModuleError' => ManagerError::ModuleError);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] Normalisation + verification des donnees
|
|
||||||
=========================================================*/
|
|
||||||
|
|
||||||
/* (1) Verification des parametres (si correct et different)*/
|
|
||||||
$correct_param = array(
|
|
||||||
'code' => Database::check('machine.code', $code ) && $machine_data['code'] != $code,
|
|
||||||
'name' => Database::check('machine.name', $name ) && $machine_data['name'] != $name
|
|
||||||
);
|
|
||||||
|
|
||||||
/* (2) Gestion des parametres optionnels */
|
|
||||||
$opt_data = array(
|
|
||||||
'code' => ($correct_param['code']) ? $code : $machine_data['code'],
|
|
||||||
'name' => ($correct_param['name']) ? $name : $machine_data['name']
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] Modification de la machine
|
|
||||||
=========================================================*/
|
|
||||||
$request = new Repo('machine/edit', array(
|
|
||||||
$id_machine,
|
|
||||||
$opt_data['code'],
|
|
||||||
$opt_data['name']
|
|
||||||
));
|
|
||||||
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'status' => $request->answer()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* SUPPRIME UNE MACHINE DONNEE
|
|
||||||
*
|
|
||||||
* @id_machine<int> UID de la machine en question
|
|
||||||
*
|
|
||||||
* @return status<Boolean> Retourne si oui ou non tout s'est bien deroule
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function delete($id_machine){
|
|
||||||
// On recupere les donnees
|
|
||||||
$request = new Repo('machine/delete', array($id_machine));
|
|
||||||
$answer = $request->answer();
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'status' => $answer
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
|
@ -3,16 +3,44 @@
|
||||||
use \manager\ModuleRequest;
|
use \manager\ModuleRequest;
|
||||||
use \manager\ManagerError;
|
use \manager\ManagerError;
|
||||||
use \manager\ResourceDispatcher;
|
use \manager\ResourceDispatcher;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [1] Gestion du cercle des relations
|
||||||
|
=======================================*/
|
||||||
|
/* (1) On recupere les donnees */
|
||||||
|
$getData = new ModuleRequest('charts/field_data');
|
||||||
|
$answer = $getData->dispatch();
|
||||||
|
|
||||||
|
// Si pas d'erreur
|
||||||
|
if( $answer->error != ManagerError::Success )
|
||||||
|
var_dump( ManagerError::explicit($answer->error) );
|
||||||
|
|
||||||
|
// On enregistre les donnees
|
||||||
|
$data = $answer->get('data');
|
||||||
|
|
||||||
|
|
||||||
|
/* (2) On recupere le rendu */
|
||||||
|
$getRender = new ModuleRequest('charts/field_render', array($data));
|
||||||
|
$answer = $getRender->dispatch();
|
||||||
|
|
||||||
|
// Si pas d'erreur
|
||||||
|
if( $answer->error != ManagerError::Success )
|
||||||
|
var_dump( ManagerError::explicit($answer->error) );
|
||||||
|
|
||||||
|
// On enregistre les donnees
|
||||||
|
$render = $answer->get('render');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|
||||||
<!-- [1] Gestion du sous-menu de gauche -->
|
<section>
|
||||||
|
<h6>CERCLE DES RELATIONS</h6>
|
||||||
<?php
|
<?= $render; ?>
|
||||||
|
</section>
|
||||||
|
|
||||||
echo "charts";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<section class='active'>
|
<section>
|
||||||
<h6>sexe</h6>
|
<h6>sexe</h6>
|
||||||
<input type='radio' name='sexe' value='0' id='sexeM'><label for='sexeM'>Homme</label><br>
|
<input type='radio' name='sexe' value='0' id='sexeM'><label for='sexeM'>Homme</label><br>
|
||||||
<input type='radio' name='sexe' value='1' id='sexeF'><label for='sexeF'>Femme</label><br>
|
<input type='radio' name='sexe' value='1' id='sexeF'><label for='sexeF'>Femme</label><br>
|
||||||
|
|
Loading…
Reference in New Issue