Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Hello,
Alors voila, je me demandait si il était possible de faire un plugin qui donnerait les % des mails utilisés par les membres selon les domaines...
Je m'explique, voici un exemple de résultat :
@gmail.com : 36 % des membres
@yahoo.fr : 27 % des membres
@laposte.net : 12 % des membres
etc....
L'utilité, bah c'est pas tellement utile me direz vous, mais ca me démange de ne pas savoir...
Est-ce possible ? Et si oui comment faire (en gros) ?
Hors ligne
Perso c'est comme d'hab, je connais le système, je comprends le php, mais je suis une véritable bouze en matière de php et de sécurité du script.
Je proposerais d'effectuer une requête mysql dans php recherchant les mails dans la table utilisateurs, ensuite de trier les différents qui existent, de les compter.
Puis par un simple calcul mathématique, je sais que php fait ça très bien et facilement, d'en créer le pourcentage par rapport au nombre total d'inscrits !

Hors ligne
Je te conseille de regarder ce plug-in http://www.punbb.fr/mods/mod.php?id=2
Il fait, ce que tu veux faire pour les mails, avec les styles utilisateur et le langage.
Donc le requête sera la même avec l'email il faudra juste que tu fasses une regexp pour extraire le provider mail de l'adresse.
°o°
Hors ligne
Merci a vous !
En effet ce plugin fait ca pour les styles et les langages !
J'ai regardé vite fait le code, je crois que je vais galérer... 
Bon je vais essayer, on verra bien ce que ca donnera ! 
Hors ligne
c'est bourin et c'est possible que ça marche pas chez tous les hébergeurs mais ici ça fait ce qu'on lui demande :
<?php
// Make sure no one attempts to run this script "directly"
if (!defined('PUN'))
exit;
// Tell admin_loader.php that this is indeed a plugin and that it is loaded
define('PUN_PLUGIN_LOADED', 1);
define('PLUGIN_VERSION',0.1);
// Display the admin navigation menu
generate_admin_menu($plugin);
?>
<div class="block">
<h2><span>Pourcentage d'utilisation des domaines de courriel - v<?php echo PLUGIN_VERSION ?></span></h2>
<div class="box">
<div class="inbox">
<?php
$arry_mails = array();
$result = $db->query('SELECT COUNT(id)-1 FROM '.$db->prefix.'users') or error('Impossible de retrouver le nombre total d\utilisateurs', __FILE__, __LINE__, $db->error());
$num_users = $db->result($result);
$result = $db->query('SELECT email FROM '.$db->prefix.'users WHERE id > 1 ') or error('Impossible de compter les emails', __FILE__, __LINE__, $db->error());
while ($cur_mail = $db->fetch_assoc($result))
{
list($user,$domain) = explode('@',$cur_mail['email']);
if (isset($arry_mails[$domain]))
$arry_mails[$domain]++;
else
$arry_mails[$domain] = 1;
}
$total_dom = count($arry_mails);
arsort($arry_mails);
?>
<p><?php echo $total_dom ?> domaines</p>
<table cellspacing="0" >
<thead>
<tr>
<th scope="col">Domaine</th>
<th scope="col">Pourcentage</th>
<th scope="col">Nombre</th>
</tr>
</thead>
<tbody>
<?php
foreach ($arry_mails as $dom=>$num)
{
echo "\t\t\t\t\t".'<tr>'."\n";
echo "\t\t\t\t\t\t".'<td>'.$dom.'</td>'."\n";
echo "\t\t\t\t\t\t".'<td>'.number_format(($num/$num_users*100), 2, ',', ' ').'%</td>'."\n";
echo "\t\t\t\t\t\t".'<td>'.$num.'</td>'."\n";
echo "\t\t\t\t\t".'<tr>'."\n";
}
?>
</tbody>
</table>
</div>
</div>
</div>Hors ligne
les principaux domaines d'emails sur punbb.fr :
gmail.com 23,45% 393
free.fr 14,68% 246
yahoo.fr 7,82% 131
wanadoo.fr 7,58% 127
laposte.net 3,52% 59
msn.com 2,33% 39
Hors ligne
Terrible, ca marche chez moi. 
Bien joué vin100. 
laOuine.
Hors ligne
Alors là chapeau !
Merci a toi ! 
Hors ligne
J'ai un peu amélioré le code ci-dessus et ça en fait un plugin.
Hors ligne