source: spip-zone/_core_/plugins/forum/prive/modeles/forum_fonctions.php @ 112028

Last change on this file since 112028 was 112028, checked in by marcimat@…, 18 months ago

Utiliser array_column plutôt que array_map + reset / array_shift

File size: 1.4 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2018                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) {
14        return;
15}
16
17function forum_compte_messages_from($email, $id_forum) {
18        static $mem = array();
19
20        if (isset($mem[$email])) {
21                return $mem[$email];
22        }
23
24        // sinon on fait une requete groupee pour essayer de ne le faire qu'une fois pour toute la liste
25        $emails = sql_allfetsel("DISTINCT email_auteur", "spip_forum",
26                "id_forum>" . intval($id_forum - 50) . " AND id_forum<" . intval($id_forum + 50));
27        $emails = array_column($emails, 'email_auteur');
28        $emails = array_filter($emails);
29        // et compter
30        $counts = sql_allfetsel("email_auteur,count(id_forum) AS N", "spip_forum", sql_in("email_auteur", $emails),
31                "email_auteur");
32
33        foreach ($counts as $c) {
34                $mem[$c['email_auteur']] = $c['N'];
35        }
36
37        return $mem[$email];
38}
Note: See TracBrowser for help on using the repository browser.