source: spip-zone/_plugins_/comments_phpbb/comments_phpbb_options.php @ 32294

Last change on this file since 32294 was 32294, checked in by jfefe@…, 11 years ago
  • bouton d’ajout de tous les articles existants de SPIP dans les forums phpBB (indispensable lors de l’utilisation de ce plugin sur un site SPIP existant).
  • Internationalisation : utilisation d’un fichier de langue pour tous les textes utilisés dans le plugin.
  • Filtre bbcode : ajout d’un filtre bbcode pour convertir la mise en forme phpBB en mise en forme SPIP. Ce filtre sera utilisé pour l’affichage des textes du forum avec la balise #POST_TEXT. Dans le squelette, on écrira : [(#POST_TEXT|bbcode)]
  • Filtre datetime_unix2mysql : ajout d’un filtre pour pouvoir afficher la date du post qui au format timestamp unix dans phpBB. Dans le squelette, on pourra écrire : [(#POST_TIME|datetime_unix2mysql|affdate_jourcourt)]
  • Ajout du paramètre "phpbb_http" pour mémoriser l’adresse du forum. Dans le squelette, on pourra faire des liens vers le forum de cette façon : <a href="#CONFIG{comments_phpbb/phpbb_http}/viewtopic.php?p=#POST_ID">
  • Corrections de bug pour une prise en compte de préfixes différents de spip_ et phpbb_ pour les noms des tables utilisées dans les requêtes du plugin.
  • Ajout d'une noisette pour afficher les commentaires d'un article
File size: 1.8 KB
Line 
1<?php
2
3$nb_commentaires = array();
4$topic_ids = array();
5define('ARTICLES_PHPBB_TABLE', $GLOBALS['table_prefix'].'_articles_phpbb');
6define('PHPBB_BASE', lire_config('comments_phpbb/phpbb_base'));
7define('PHPBB_PREFIX', lire_config('comments_phpbb/phpbb_prefix'));
8
9function calcule_nb_commentaires($id_article)
10{
11        global $nb_commentaires;
12
13        $id_article = intval($id_article);
14
15   if(!isset($nb_commentaires[$id_article]))
16   {
17      $query = sql_select(
18      array('COUNT(p.post_id) AS nb_commentaires'),
19            array(ARTICLES_PHPBB_TABLE.' AS a', PHPBB_PREFIX.'posts AS p'),
20            array('a.id_article='.$id_article,'a.topic_id=p.topic_id'),
21            'p.topic_id');
22            $row = spip_fetch_array($query);
23            spip_log('nb_commentaires:'.$row);
24            $nb_commentaires[$id_article] = intval($row['nb_commentaires']-1);
25   }
26   
27
28        return $nb_commentaires[$id_article];
29}
30
31function balise_NB_COMMENTAIRES($p) {
32        $_type = $p->type_requete;
33
34        if ($_type == 'articles')
35        {
36                $_id_article = interprete_argument_balise(1,$p);
37
38                if (!$_id_article)
39                        $_id_article = champ_sql('id_article', $p);
40
41                $p->code = "calcule_nb_commentaires($_id_article)";
42        }
43
44        $p->interdire_scripts = false;
45        return $p;
46}
47
48function calcule_topic_id($id_article)
49{
50        global $topic_ids;
51
52        $id_article = intval($id_article);
53
54        if(!isset($topic_ids[$id_article]))
55        {
56                $query = sql_select('topic_id',ARTICLES_PHPBB_TABLE,'id_article='.intval($id_article));
57                $row = sql_fetch($query);
58                $topic_ids[$id_article] = intval($row['topic_id']);
59        }
60
61        return $topic_ids[$id_article];
62}
63
64function balise_TOPIC_ID($p) {
65        $_type = $p->type_requete;
66
67        if ($_type == 'articles')
68        {
69                $_id_article = interprete_argument_balise(1,$p);
70
71                if (!$_id_article)
72                        $_id_article = champ_sql('id_article', $p);
73
74                $p->code = "calcule_topic_id($_id_article)";
75        }
76
77        $p->interdire_scripts = false;
78        return $p;
79}
80?>
Note: See TracBrowser for help on using the repository browser.