source: spip-zone/_plugins_/_test_/comments_phpbb/comments_phpbb_pipeline.php @ 27548

Last change on this file since 27548 was 27548, checked in by jfefe@…, 12 years ago

filtre texte_brut pour éviter les antislashes

File size: 4.5 KB
Line 
1<?php
2if (!defined("_ECRIRE_INC_VERSION")) return;
3
4function comments_phpbb_new($flux)
5{
6
7        if(isset($flux['args']['table']) && $flux['args']['table'] == $GLOBALS['table_prefix'].'_'.table_objet('article'))
8        {
9                $col_id = id_table_objet('article');
10               
11              $result = sql_select(array('titre','chapo','statut','id_secteur'),$flux['args']['table'],$col_id."='".$flux['args']['id_objet']."'");
12
13                // l'article existe
14                if ($article = sql_fetch($result))
15                {
16                        if(!function_exists('update_forum'))
17                                include_spip('action/comments_phpbb_update');
18
19                        if($article['statut'] == 'publie')
20                        {
21                               
22
23                                if(!function_exists('traiter_raccourcis'))
24                                        include_spip('inc/texte');
25                                if(!function_exists('textebrut'))
26                                        include_spip('inc/filtres');
27
28                                $texte_post = textebrut($article['chapo']);
29                                /* TODO : problème avec les quotes qui sont convertis dans le post phpbb */
30                                $texte_post .= "<br /><a href=/spip.php?article".$flux['args']['id_objet'].">Lire la news</a>";
31                                $titre_post =  textebrut($article['titre']);
32                               
33                                $date = time();
34                                $forum_id = intval(lire_config('comments_phpbb/phpbb_forum'));
35                                $result = sql_select('a.topic_id, b.topic_first_post_id',ARTICLES_PHPBB_TABLE." AS a, ".PHPBB_PREFIX."topics as b","id_article='".$flux['args']['id_objet']."' AND b.topic_id=a.topic_id");
36                                // L'article est modifié, on fait l'update de la table topics et on déplace dans le bon forum
37                                if($article_phpbb = sql_fetch($result))
38                                {
39                                        $article_phpbb['topic_id'] = intval($article_phpbb['topic_id']);
40                                         sql_updateq(PHPBB_PREFIX.'topics',array(
41                                            "topic_title" => $titre_post,
42                                            "forum_id" => $forum_id
43                                         ),
44                                         "topic_id='".$article_phpbb['topic_id']."'");
45                                       
46                                         sql_updateq(PHPBB_PREFIX.'posts',array(
47                                             "post_text" => $texte_post,
48                                             "post_edit_user" => $GLOBALS['auteur_session']['nom']),
49                                             "post_id=".intval($article_phpbb['topic_first_post_id'])
50                                             
51                                          );
52                                       
53
54                                        update_forum($forum_id);
55                                        update_forum(intval(lire_config('comments_phpbb/phpbb_tmpforum')));
56                                }
57                                // Il s'agit d'un nouvel article, on enregistre un nouveau topic et une entrée dans articles_phpbb
58                                else
59                                {
60                                        $poster_id = intval(lire_config('comments_phpbb/phpbb_poster'));
61                                       
62                                        $query = sql_select("user_id,username",PHPBB_PREFIX.'users',"user_id='".$poster_id."'");
63                                        $res = sql_fetch($query);
64                                        $insert = array(
65                                              'topic_poster' => $res['user_id'],
66                                              'topic_title' => $titre_post,
67                                              'topic_first_poster_name' => $res['username'],
68                                              'topic_time' => $date,
69                                              'topic_poster' => $poster_id,
70                                              'topic_last_post_time' => $date,
71                                              'topic_last_poster_id' => $poster_id,
72                                              'topic_last_post_subject' => $titre_post,
73                                              'topic_last_poster_name' => $res['username'],
74                                              'forum_id' => $forum_id,
75                                              );
76                                        $topic_id = sql_insertq(PHPBB_PREFIX.'topics',$insert);
77
78                                        $post_id = sql_insertq(PHPBB_PREFIX.'posts',array(
79                                                'poster_id' => $res['user_id'],
80                                                'forum_id' => $forum_id,
81                                                'post_username' => $res['username'],
82                                                'post_text' => $texte_post,
83                                                'post_time' => $date,
84                                                'topic_id' => $topic_id));
85                               
86                                       
87                                        // update de la table topics du forum
88                                        sql_updateq(PHPBB_PREFIX.'topics',array("topic_last_post_time"=>$date,"topic_first_post_id"=>$post_id,"topic_last_post_time"=>$date, "topic_last_post_id" => $topic_id),"topic_id='".$topic_id."'");
89                                        // nouvelle entrée dans articles_phpbb
90                                        sql_insertq(ARTICLES_PHPBB_TABLE,array('id_article'=>$flux['args']['id_objet'],'topic_id'=>$topic_id),"");
91                                        // Update des infos de l'utilisateur robot
92                                        sql_updateq(PHPBB_PREFIX.'users', array("user_posts"=>"user_posts+1","user_lastpost_time"=>$date),"user_id=".intval($poster_id));
93                                       
94                                        update_forum($forum_id);
95                                        update_forum(intval(lire_config('comments_phpbb/phpbb_tmpforum')));
96                                       
97                                       
98                                       
99                                }
100                               
101                        }
102                        // Statut différent de "publié", on déplace le topic dans le forum temporaire
103                        else
104                        {
105                                $result = sql_select('topic_id',ARTICLES_PHPBB_TABLE, "id_article=".$flux['args']['id_objet']);
106
107                                if($article_phpbb = sql_fetch($result))
108                                {
109                                        $forum_id = intval(lire_config('comments_phpbb/phpbb_tmpforum'));
110                                        sql_updateq(PHPBB_PREFIX.'topics',array("forum_id"=>$forum_id),"topic_id=".intval($article_phpbb['topic_id']));
111                                       
112                                       
113                                        update_forum($forum_id);
114                                        update_forum(intval(lire_config('comments_phpbb/phpbb_forum')));
115                                }
116                        }
117                } 
118        }
119
120        return $flux;
121}
122?>
Note: See TracBrowser for help on using the repository browser.