Modification du module `call_log` pour qu'il trie le répertoire.
This commit is contained in:
parent
bf0598a483
commit
5f8968d580
|
@ -102,13 +102,43 @@
|
||||||
// Système de poids -> 5 sms = 1 appel
|
// Système de poids -> 5 sms = 1 appel
|
||||||
// 0 -> {number, name, calls, sms} (closest contact)
|
// 0 -> {number, name, calls, sms} (closest contact)
|
||||||
// 1 -> {number, name, calls, sms} (2nd closest contact)
|
// 1 -> {number, name, calls, sms} (2nd closest contact)
|
||||||
|
$tmp = $phone_directory; // Permet de ne pas efface $phone_directory
|
||||||
|
$maxNumber = -1; // Contiendra le numéro du plus gros
|
||||||
|
$maxVal = null; // Contiendra la valeur max (sms+5*cal ls)
|
||||||
|
$sorted_directory = array(); // Contiendra l'annuaire trié par nombre d'interraction
|
||||||
|
|
||||||
|
/* (1) Tant qu'on a pas tout trié */
|
||||||
|
while( count($tmp) > 0 ){
|
||||||
|
$maxNumber = -1;
|
||||||
|
$maxVal = null;
|
||||||
|
|
||||||
|
/* (2) On parcours toutes les entrées puor trouver le plus proche */
|
||||||
|
foreach($tmp as $number=>$data)
|
||||||
|
if( $data['sms']+5*$data['calls'] > $maxVal || is_null($maxVal) ){
|
||||||
|
// On met à jour la valeur max
|
||||||
|
$maxVal = $data['sms']+5*$data['calls'];
|
||||||
|
// On met à jour l'indice
|
||||||
|
$maxNumber = $number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (3) On supprime le plus proche qu'on a trouvé et on l'ajoute au tableau trié */
|
||||||
|
array_push($sorted_directory, array(
|
||||||
|
'number' => $maxNumber,
|
||||||
|
'name' => $tmp[$maxNumber]['name'],
|
||||||
|
'calls' => $tmp[$maxNumber]['calls'],
|
||||||
|
'sms' => $tmp[$maxNumber]['sms'],
|
||||||
|
'total' => $tmp[$maxNumber]['sms'] + 5*$tmp[$maxNumber]['calls']
|
||||||
|
));
|
||||||
|
|
||||||
|
unset($tmp[$maxNumber]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* [6] Gestion du retour
|
/* [6] Gestion du retour
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
return array(
|
return array(
|
||||||
'ModuleError' => ManagerError::Success,
|
'ModuleError' => ManagerError::Success,
|
||||||
'directory' => $phone_directory,
|
'directory' => $sorted_directory,
|
||||||
'logs' => $phone_logs
|
'logs' => $phone_logs
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue