Changeset 32294 in spip-zone for _plugins_/comments_phpbb


Ignore:
Timestamp:
Oct 22, 2009, 11:06:45 PM (10 years ago)
Author:
jfefe@…
Message:
  • 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
Location:
_plugins_/comments_phpbb
Files:
7 added
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/comments_phpbb/base/comments_phpbb.php

    r27552 r32294  
    2020
    2121    // Associer les clés à la table
    22     $tables_principales['spip_articles_phpbb'] = array(
     22    $tables_principales[ARTICLES_PHPBB_TABLE] = array(
    2323      'field' => &$spip_articles_phpbb,
    2424      'key' => &$spip_articles_phpbb_key
     
    3838            'PRIMARY KEY' => 'user_id');
    3939
    40     $tables_principales['phpbb_users'] = array(
     40       $tables_principales[PHPBB_PREFIX.'users'] = array(
    4141            'field' => &$phpbb_users,
    4242            'key' => &$phpbb_users_key);
     
    5151            'PRIMARY KEY' => 'forum_id');
    5252
    53     $tables_principales['phpbb_forums'] = array(
     53       $tables_principales[PHPBB_PREFIX.'forums'] = array(
    5454            'field' => &$phpbb_forums,
    5555            'key' => &$phpbb_forums_key);
     
    7373
    7474
    75     $tables_principales['phpbb_posts'] = array(
     75    $tables_principales[PHPBB_PREFIX.'posts'] = array(
    7676            'field' => &$phpbb_posts,
    7777            'key' => &$phpbb_posts_key);
     
    8686            'PRIMARY KEY' => 'topic_id');
    8787
    88     $tables_principales['phpbb_topics'] = array(
     88       $tables_principales[PHPBB_PREFIX.'posts'] = array(
    8989            'field' => &$phpbb_topics,
    9090            'key' => &$phpbb_topics_key);
     
    9595function comments_phpbb_declarer_tables_interfaces($interface){
    9696        // definir les jointures possibles
    97         $interface['tables_jointures']['phpbb_topic'][] = 'spip_articles_phpbb';
    98         $interface['tables_jointures']['spip_articles_phpbb'][] = 'phpbb_topic';
     97        $interface['tables_jointures'][PHPBB_PREFIX.'topic'][] = ARTICLES_PHPBB_TABLE;
     98        $interface['tables_jointures']['spip_articles_phpbb'][] = PHPBB_PREFIX.'topic';
    9999        return $interface;
    100100
  • _plugins_/comments_phpbb/comments_phpbb_options.php

    r27481 r32294  
    1313        $id_article = intval($id_article);
    1414
    15         if(!isset($nb_commentaires[$id_article]))
    16         {
    17                 $query = sql_select(array('COUNT(p.post_id) AS nb_commentaires'),ARTICLES_PHPBB_TABLE.' a, '.PHPBB_PREFIX.'posts p
    18                                         WHERE a.id_article='.intval($id_article).'
    19                                         AND a.topic_id=p.topic_id');
    20                 $row = spip_fetch_array($query);
    21                 $nb_commentaires[$id_article] = intval($row['nb_commentaires']-1);
    22         }
     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   
    2327
    2428        return $nb_commentaires[$id_article];
  • _plugins_/comments_phpbb/comments_phpbb_pipeline.php

    r27548 r32294  
    2525                                if(!function_exists('textebrut'))
    2626                                        include_spip('inc/filtres');
     27            if(!function_exists('_T'))
     28            include_spip('inc/utils');
     29            if(!function_exists('balise_INTRODUCTION_dist'))
     30            include_spip('public/balises'); 
    2731
    2832                                $texte_post = textebrut($article['chapo']);
     
    3135                                $titre_post =  textebrut($article['titre']);
    3236                               
    33                                 $date = time();
     37            if(!function_exists('datetime_mysql2unix'))
     38            include_spip('comments_phpbb_fonctions');
     39           
     40            $date = datetime_mysql2unix($article['date']);
    3441                                $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
     42            $result = sql_select(
     43                  array('a.topic_id', 'b.topic_first_post_id'),
     44                  array(ARTICLES_PHPBB_TABLE." AS a",PHPBB_PREFIX."topics as b"),
     45                  array("id_article='".$flux['args']['id_objet']."'", "b.topic_id=a.topic_id"));
     46                 
     47            // L'article est modifié, on fait l'update de la table topics et on déplace dans le bon forum
    3748                                if($article_phpbb = sql_fetch($result))
    3849                                {
     
    4051                                         sql_updateq(PHPBB_PREFIX.'topics',array(
    4152                                            "topic_title" => $titre_post,
    42                                             "forum_id" => $forum_id
     53                                            "forum_id" => $forum_id,
     54                   'topic_time' => $date
    4355                                         ),
    4456                                         "topic_id='".$article_phpbb['topic_id']."'");
     
    4658                                         sql_updateq(PHPBB_PREFIX.'posts',array(
    4759                                             "post_text" => $texte_post,
    48                                              "post_edit_user" => $GLOBALS['auteur_session']['nom']),
     60                                             "post_edit_user" => $GLOBALS['auteur_session']['nom'],
     61                    'post_time' => $date),
    4962                                             "post_id=".intval($article_phpbb['topic_first_post_id'])
    5063                                             
     
    87100                                        // update de la table topics du forum
    88101                                        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
     102                           
     103               // nouvelle entrée dans articles_phpbb ou mise à jour si enregistrement existant
     104               $result = sql_select('topic_id',ARTICLES_PHPBB_TABLE, "id_article=".$flux['args']['id_objet']);
     105               
     106               if($article_phpbb = sql_fetch($result)) {
     107                  sql_updateq(ARTICLES_PHPBB_TABLE,array('topic_id'=>$topic_id), "id_article=".$flux['args']['id_objet']);
     108               }
     109               else {
     110                  sql_insertq(ARTICLES_PHPBB_TABLE,array('id_article'=>$flux['args']['id_objet'],'topic_id'=>$topic_id),"");
     111               }       
     112               
     113               // Update des infos de l'utilisateur robot
    92114                                        sql_updateq(PHPBB_PREFIX.'users', array("user_posts"=>"user_posts+1","user_lastpost_time"=>$date),"user_id=".intval($poster_id));
    93115                                       
  • _plugins_/comments_phpbb/fonds/cfg_comments_phpbb.html

    r27551 r32294  
    55[(#ENV{_cfg_}|form_hidden)]
    66<fieldset>
    7 <legend>Configuration g&eacute;n&eacute;rale</legend>
     7<legend><:comments_phpbb:conf_titre:></legend>
    88
    99<ul>
    1010  <li>
    11       <label>Base PhpBB :</label>
     11      <label><:comments_phpbb:conf_base:> :</label>
    1212      <input type="text" name="phpbb_base" value="#CONFIG{comments_phpbb/phpbb_base}" />
    1313  </li>
    1414  <li>
    15       <label>Pr&eacute;fixe des tables PhpBB :</label>
     15      <label><:comments_phpbb:conf_prefix:> :</label>
    1616      <input type="text" name="phpbb_prefix" value="#CONFIG{comments_phpbb/phpbb_prefix, 'phpbb_'}" />
    1717  </li>
    18  
     18  <li>
     19      <label><:comments_phpbb:conf_http:> :</label>
     20      <input type="text" name="phpbb_http" value="#CONFIG{comments_phpbb/phpbb_http}" />
     21  </li>
    1922</ul>
    2023</fieldset>
     
    4346<li>
    4447
    45         <label>Forum des commentaires :</label>
     48<label><:comments_phpbb:conf_comment:> :</label>
    4649        <select name="phpbb_forum">
    4750                <BOUCLE_phpbb_categories1(PHPBB_FORUMS){parent_id=0 }>
     
    5558</li>
    5659<li>
    57        
    58 
    59         <label>Forum temporaire (o&ugrave; les topics sont d&eacute;plac&eacute;s si le statut de l'article n'est plus "publi&eacute;") </label>
    60         <select name="phpbb_tmpforum">
     60   <label><:comments_phpbb:conf_temp:> :</label>
     61   <select name="phpbb_tmpforum">
    6162                        <BOUCLE_phpbb_categories2(PHPBB_FORUMS){parent_id=0 }>
    6263                        <option value="0" disabled="disabled">[(#FORUM_NAME)]</option>
     
    7273
    7374</BOUCLE_general_test>
    74 <p style="text-align:center; font-weight:bold;"><a href="#SELF" style="color:red;">Cliquez ici pour continuer la configuration du plugin...</a></p>
     75<p style="text-align:center; font-weight:bold;"><a href="#SELF" style="color:red;"><:comments_phpbb:conf_continue:>...</a></p>
    7576<//B_general_test>
    7677<?php
     
    7980{
    8081?>
    81 <p style="text-align:center; font-weight:bold; color:red;">Indiquez les paramètres de la base de données avant de continuer...</p>
     82<p style="text-align:center; font-weight:bold; color:red;"><:comments_phpbb:conf_param:>...</p>
    8283<?php
    8384}
     
    8990</div>
    9091</form>
     92
     93<?php
     94if(sql_showtable($phpbb_prefix."posts",$phpbb_base))
     95{ ?>
     96<div style="text-align:center;valign:middle">
     97<a href="?exec=comments_phpbb_maj"><img src="#CHEMIN{img_pack/comments_phpbb_maj.png}"><br/><:comments_phpbb:maj_lien:></div>
     98<?php
     99}
     100?>
  • _plugins_/comments_phpbb/plugin.xml

    r29873 r32294  
    22        <nom>Commentaires PhpBB </nom>
    33        <icon>img_pack/comments_phpbb.png</icon>
    4         <version>0.5</version>
     4        <version>0.6</version>
    55        <version_base>0.5</version_base>
    66        <prefix>comments_phpbb</prefix>
    77        <etat>test</etat>
    8         <auteur>jfefe</auteur>
     8        <auteur>jfefe, Dorch</auteur>
    99        <description>Ce plugin cr&eacute;e un nouveau sujet sur votre forum PhpBB &agrave; chaque publication d'un nouvel article dans SPIP, afin d'y accueillir les commentaires des forumeurs.
    1010
Note: See TracChangeset for help on using the changeset viewer.