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 | */ |
---|
10 | function 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 | */ |
---|
50 | function 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 | */ |
---|
78 | function 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 | ?> |
---|