fetch($subject); $db->close(); // Si erreur if( $data === false ) return array( 'ModuleError' => ManagerError::ModuleError ); /* [2] S'il a un journal d'appel, on renvoie les données =========================================================*/ if( isset($data['logs']) && is_array($data['logs']) ){ /* (1) On initialise les compteurs */ $MISSED = 0; $OUTGOING = 0; $INCOMING = 0; /* (2) On incrémente les compteurs */ foreach($data['logs'] as $log){ /* (3) Si ce n'est pas un appel, on passe au suivant */ if( $log['type'] != 0 ) continue; /* (4) On incrémente les types */ $MISSED += ($log['direction']==2) ? 1 : 0; $OUTGOING += ($log['direction']==1) ? 1 : 0; $INCOMING += ($log['direction']==0) ? 1 : 0; } /* [3] Si aucun journal d'appel =========================================================*/ }else{ /* (1) On initialise les compteurs */ $MISSED = 0; $OUTGOING = 0; $INCOMING = 0; } return array( 'ModuleError' => ManagerError::Success, 'labels' => array('ENTRANT', 'SORTANT', 'MANQUÉ'), 'data' => array($INCOMING, $OUTGOING, $MISSED) ); } /* RETOURNE UN JEU DE DONNEES POUR LE TYPE DE COMMUNICATION (APPEL/SMS) * */ public static function communication_type($params){ extract($params); $subject = intval($subject); /* [1] On récupère les données de ce sujet =========================================================*/ $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); $data = $db->fetch($subject); $db->close(); // Si erreur if( $data === false ) return array( 'ModuleError' => ManagerError::ModuleError ); /* [2] S'il a un journal d'appel, on renvoie les données =========================================================*/ if( isset($data['logs']) && is_array($data['logs']) ){ /* (1) On initialise les compteurs */ $PHONE = 0; $SMS = 0; /* (2) On incrémente les compteurs */ foreach($data['logs'] as $log){ /* (3) On incrémente les compteurs */ $PHONE += ($log['type']==0) ? 1 : 0; $SMS += ($log['type']==1) ? 1 : 0; } /* [3] Si aucun journal d'appel =========================================================*/ }else{ /* (1) On initialise les compteurs */ $H = 0; $F = 0; } return array( 'ModuleError' => ManagerError::Success, 'labels' => array('APPELS', 'SMS'), 'data' => array($PHONE, $SMS) ); } /* RETOURNE UN JEU DE DONNEES POUR LE SEXE DES CONTACTS * */ public static function sexe($params){ extract($params); $subject = intval($subject); /* [1] On récupère les données de ce sujet =========================================================*/ $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); $data = $db->fetch($subject); $db->close(); // Si erreur if( $data === false ) return array( 'ModuleError' => ManagerError::ModuleError ); /* [2] S'il a un journal d'appel, on renvoie les données =========================================================*/ if( isset($data['logs']) && is_array($data['logs']) ){ /* (1) On initialise les compteurs */ $H = 0; $F = 0; /* (2) On incrémente les compteurs */ foreach($data['logs'] as $log){ /* (3) On récupère le contact associé */ $associatedContact = null; foreach($data['contacts'] as $contact) if( $log['id'] == $contact['id'] ) $associatedContact = $contact; // Si on ne trouve pas, on passe au suivant if( is_null($associatedContact) ) continue; /* (4) On incrémente les compteurs */ $H += ($associatedContact['sexe']==0) ? 1 : 0; $F += ($associatedContact['sexe']==1) ? 1 : 0; } /* [3] Si aucun journal d'appel =========================================================*/ }else{ /* (1) On initialise les compteurs */ $H = 0; $F = 0; }/* (1) On initialise les compteurs */ return array( 'ModuleError' => ManagerError::Success, 'labels' => array('HOMME', 'FEMME'), 'data' => array($H, $F) ); } } ?>