source: spip-zone/_plugins_/relecture/relecture_fonctions.php @ 61084

Last change on this file since 61084 was 61084, checked in by eric@…, 9 years ago

Ajout de la catégorie des commentaires poubellisés

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1<?php
2
3/**
4 * Formater le message informatif concernant les nombres de commentaires déposés et
5 * pris en compte pour une relecture donnee.
6 *
7 * @param int $id
8 * @return string
9 */
10function relecture_informer_commentaires($id) {
11        $texte = '';
12
13        if ($id_relecture=intval($id)) {
14                $from = 'spip_commentaires';
15                $where = array("id_relecture=$id_relecture");
16                $nb_commentaires = sql_countsel($from, $where);
17                $where = array("id_relecture=$id_relecture", "statut<>" . sql_quote('ouvert'));
18                $nb_commentaires_fermes = sql_countsel($from, $where);
19
20                if ($nb_commentaires == 0)
21                        $texte = _T('relecture:info_aucun_commentaire');
22                else {
23                        $texte = singulier_ou_pluriel(
24                                $nb_commentaires,
25                                'relecture:info_1_commentaire',
26                                'relecture:info_nb_commentaires');
27                        if ($nb_commentaires_fermes == 0)
28                                $texte .= ', ' . _T('relecture:info_aucun_commentaire_ferme');
29                        else
30                                $texte .= ', ' . singulier_ou_pluriel(
31                                        $nb_commentaires,
32                                        'relecture:info_1_commentaire_ferme',
33                                        'relecture:info_nb_commentaires_fermes');
34                }
35        }
36
37    return $texte;
38}
39
40
41/**
42 * Renvoyer les compteurs de commentaires par statut pour une relecture donnee.
43 * Filtre possible sur l'element d'article commente.
44 * Le tableau de sortie est indexe par les valeurs de statut ouvert, accepte, refuse
45 *
46 * @param int $id
47 * @param string $element
48 * @return array
49 */
50function relecture_compter_commentaires($id, $element='') {
51        $compteurs = array('ouvert' => 0, 'accepte' => 0, 'refuse' => 0, 'poubelle' => 0);
52
53        if ($id_relecture = intval($id)) {
54                $select = array('statut', 'count(*) AS compteur');
55                $from = 'spip_commentaires';
56                $where = array("id_relecture=$id_relecture");
57                if ($element)
58                        $where[] = "element=" . sql_quote($element);
59                $group_by = 'statut';
60                if ($lignes = sql_select($select, $from, $where, $group_by)) {
61                    // Classer et compter par statut
62                    while ($ligne = sql_fetch($lignes)) {
63                                $compteurs[$ligne['statut']] = $ligne['compteur'];
64                    }
65                }
66        }
67
68    return $compteurs;
69}
70
71
72/**
73 * Renvoyer la liste ordonnee des elements d'article non vides pouvant etre relus et commentes
74 *
75 * @param int $id
76 * @return array
77 */
78function relecture_lister_elements($id) {
79        $elements = array();
80
81        if ($id_relecture = intval($id)) {
82                $select = array('article_chapo AS chapo', 'article_descr AS descr', 'article_texte AS texte', 'article_ps AS ps');
83                $from = 'spip_relectures';
84                $where = array("id_relecture=$id_relecture");
85                $champs = sql_fetsel($select, $from, $where);
86
87                foreach ($champs as $_cle => $_valeur) {
88                        if (strlen(trim($_valeur)) > 0)
89                                $elements[] = $_cle;
90                }
91        }
92
93    return $elements;
94}
95
96?>
Note: See TracBrowser for help on using the repository browser.