Commentaires PHPBB

version 0.5

Ce plugin crée un topic dans un forum PHPBB lorsqu’un article est publié dans SPIP.

Spip possède déjà un système de forum, mais pour beaucoup d’entre nous, celui ci n’est pas le plus adapté et ni le plus éfficiant, et est pénible à modérer (pas de système d’interdiction de mots grossiers, etc...)
Et surtout sur de gros sites a fort passage, sa gestion devient rapidement très difficile.

C’est pourquoi, l’idée de ce plugin a germé dans nos petites têtes, bien qu’encore imparfait (nous comptons sur vous pour nous aider à le faire évoluer) il remplit déjà correctement la tache pour laquelle il a été crée. c’est à dire, déporter les messages de spip vers un forum phpBB (compatible version 3.0.x),

Téléchargez le plugin et l’installer comme tous les autres plugins.

Quelles sont les informations envoyés à phpBB ?

-  le titre de l’article
-  le chapeau de l’article
-  le lien vers l’article émetteur

Quelles sont les informations récupérés de phpBB par Spip ?

Deux nouvelles balises pour les squelettes (boucles ARTICLES) :
-  #NB_COMMENTAIRES : affiche le nombre de commentaires dans le topic phpBB
-  #TOPIC_ID : identifiant du topic crée dans phpBB

Une boucle PHPBB_POSTS permet d’afficher certaines infos du forum (voir exemple ci dessous)

Configuration

pré-requis : Spip et phpBB doivent se partager la même base de données


-  1- Regarder dans la table phpbb_groups de votre forum et trouver les identifiants des administrateurs du forum.
-  2- Dans le fichier fonds/cfg_comments_phpbb (ligne 37) il faut indiquer les identifiants dans la boucle phpbb_users : modifier le critère group_id IN xxx,xxx,xxx. Le plugin est configuré pour une installation « toute fraiche » de PHPBB (testé sur la 3.0.4).
-  3- Configurer le plugin avec cfg
-  4 - créer un utilisateur « admin » dans phpBB qui sera utilisé pour poster les messages
-  5 - Enjoy : lorsque vous publierez un article, un topic sera crée dans le forum.

Comme vous pouvez le constater deux forums sont nécessaire :
-  le forum dans lequel apparaitront les messages
-  un forum « temporaire » qui servira de tampon (en cas de réédition de l’article ou de dé-publication). Ce forum ne devra pas etre visible, ou seulement accessible aux membres du site si vous souhaitez rendre visible les articles en cours de rédaction.

Dans les squelettes

** Exemples de code pour afficher dans les squelettes les commentaires du topic**

#NB_COMMENTAIRES commentaires sur le forum

Topic : #TOPIC_ID
<BOUCLE_commentaires(PHPBB_POSTS){topic_id=#TOPIC_ID}{1,5}>
<!--on ne récupère pas le premier post, celui-ci est en effet le message envoyé par spip à phpbb-->
     <div>
	  [<h4>(#POST_SUBJECT)</h4>]
	  <div class="text">#POST_TEXT</div>
	  [<p> par (#POST_USERNAME)</p>]
         <!-- Affichage de l'avatar -->
         [<img src="forum/download/file.php?avatar=(#USER_AVATAR)" style="width:64px ;" alt="Avatar de #USERNAME" /> ]
     </div>
</BOUCLE_commentaires>

Exemple pour faire un lien vers le topic :

#CONFIG{comments_phpbb/phpbb_http}/viewtopic.php?t=#TOPIC_ID)

Problèmes connus

Le plugin est incompatible avec le plugin mutualisation.

Que manque t’il encore ?

-  la récupération des avatars du forum sur le site pour les topics réimportés (merci Nook !!)
-  un possible découpage d’envoi des topics de forum par rubriques spip
-  internationalisation
-  ...

Ce plugin a été créé originellement pour le site de musique 187prod.com. Merci à eux pour les tests « en live » et à albert pour le debug ;)

Vous pouvez télécharger phpBB à cette adresse : http://www.phpbb-fr.org/

Discussion

37 discussions

  • 5
    Tropicaloo

    Bonjour,

    J’ai un petit souci sur la page de configuration du plugin (CFG), les 2 forums à paramétrer (le principal et le temporaire) figurent bien dans le menu déroulant mais ces derniers sont grisés et ne peuvent donc pas être sélectionnés. Y-a-t-il un paramétrage qui pourrait être la cause de ce blocage ?

    Merci pour votre aide

    • tout est expliqué dans la partie « pré-requis : Spip et phpBB doivent se partager la même base de données »
      de l’article

    • Tropicaloo

      Bonsoir,

      Merci pour ton aide mais malheureusement j’ai bien installé SPIP et PHPBB sur la même base :
      -  Dans l’admin de mysql, j’ai bien des tables empilées avec phpbb_ et spip_ .
      -  Dans la page de config de CFG j’ai pourtant bien déclaré la même base.

    • Quelle est la version de phpbb utilisée ?

      Ce n’est pas un problème de configuration du plugin au niveau de la base de données car quand on regarde le code du formulaire cfg, le champ est désactivé pour les forums qui sont « à la racine »....

      Normalement si tu crées des « sous forums » cela doit fonctionner.
      Si aucun « sous forum » n’existe, il faut modifier la ligne 48 pour la remplacer par :

      <option value="#FORUM_ID" >[(#FORUM_NAME)]</option>

      ET supprimer la boucle qui suit (phpbb_forums1).

      A tester bien sûr ;)

    • Tropicaloo

      Merci beaucoup jfefe. Je teste ça ce soir dès mon retour du boulot.
      @+

    • Bonsoir, un petit feedback
      Super jfefe ! c’était bien ça. La liste des 2 forums n’est plus grisée dans la page cfg.
      J’ai changé la ligne 48 mais également la ligne 62
      Quant à la suppression des boucles (phpbb_forums1) et (phpbb_forums2), cela n’a semble-t-il pas d’impact au niveau de la page cfg.
      Par contre, après avoir sélectionné mon forum tempo dans le champ du formulaire du forum temporaire, en validant sur OK, celui-ci « saute » et est remplacé par le forum des commentaires. En gros la config m’oblige à avoir le même forum pour les commentaires et pour le temporaire. ( mais cela n’est pas très grave car je ne compte pas supprimer d’article pour le moment. Peut-être un problème de droits sur le temporaire côté phpbb).
      Merci encore jfefe pour tes précieux conseils.
      @+
      Tropicaloo

    Répondre à ce message

  • Avec un truc genre : « < img class = "img-com" src="forum/download/file.php ?avatar=(#USER_AVATAR)" style="width:64px ;" alt="#USERNAME" > », on peut afficher les avatars sans trop de peine. ;)

    M’enfin moi ce qui m’intéresse c’est surtout filtrer les rubriques comme c’est le cas avec SPIP. Donc encore une fois, si vous avez la solution, je serai ravi de connaitre le moyen. En vous remerciant. :)

    Répondre à ce message

  • 1

    Bonjour,

    Je tiens à remercier les auteurs pour ce merveilleux plugin qui fonctionne très bien chez moi (affichage des avatars, smileys, texte, date, tout quoi \o/ ).

    Cependant j’ai un léger souci. j’aimerais restreindre l’utilisation du plugin à certaines rubriques seulement. Etant une buse en php, j’ai pas trouvé l’appel à la bdd pour modifier la requête et ajouter un « id_secteur IN xxx » comme je le fais bien sur mes boucles. Si quelqu’un a une solution, merci de la partager ici, je pense que ça pourrait servir à pas mal de monde.

    • ah bon t’as l’affichage des avatars toi ????
      la ca me flingue ....

    Répondre à ce message

  • Donc si j’ai bien compris, je récupère la valeur dans group_id pour les admin. Je prend cette valeur (295 dans mon cas) et je la remplace, j’obtiens donc : .

    Quand je fais ça, après avoir transféré, je lance l’install dans plugins et j’arrive sur une page blanche et le site public affiche lui aussi que des pages blanches.

    « 3- Configurer le plugin avec cfg » c’est simplement le fait d’aller sur la page et d’installer le plugin ?

    Répondre à ce message

  • 1

    Pour le passage avec CFG, il faut que tu ailles dans Configuration -> CFG et là, tu auras accès à la configuration du plugin.

    Par contre, j’ai pas fais attention au fait qu’il faille modifier un fichier au point n°2.

    • dans le répertoire du plugin, il y a un répertoire fond/
      c’est le fichier qu’il fut modifier si vous avez un phpbb déjà installé et configuré et dont les ID des adminnnistrateurs ne sont pas ceux par défaut.

    Répondre à ce message

  • Bonjour à tous. Je suis peut-être très con, mais j’arrive pas à voir concrètement ce qu’il faut remplacer pour ce passage :

    « 2- Dans le fichier fonds/cfg_comments_phpbb (ligne 37) il faut indiquer les identifiants dans la boucle phpbb_users : modifier le critère group_id IN xxx,xxx,xxx. Le plugin est configuré pour une installation "toute fraiche" de PHPBB (testé sur la 3.0.4). »

    Je ne comprends pas non plus « 3- Configurer le plugin avec cfg »

     ?...

    Répondre à ce message

  • Salut tout le monde,

    Bon, je vais passer pour un pleurnichard, mais j’ai trouvé un autre problème avec le plugin.

    J’ai mon code permettant d’afficher les commentaires dans mon squelette qui est situé sous le texte de l’article et situé dans une boucle ARTICLES. Bon, jusque là, tout va bien, mes commentaires s’affichent sous l’article. Cependant, avec le cache de SPIP, si un nouveau commentaire est posté dans phpBB, celui-ci ne se met pas à jour dans mon squelette à cause du cache.

    La solution la plus simple, ce serait de désactiver le cache sur cette page, mais on va perdre pas mal au niveau performances.

    Donc, j’avais pensé mettre le code dans un autre fichier ne contenant que le code nécessaire, et l’inclure avec la balise INCLURE. En gros, faire une noisette. Le problème, c’est que le compilateur de SPIP refuse de me compiler la noisette, alors que le code de la noisette inclus directement dans le squelette fonctionne sans problèmes.

    Si j’utilise le mode debug de SPIP, je n’ai aucun résultat au niveau du squelette. Par contre, dans le fichier php_error.log, j’ai cette ligne qui apparait lorsque j’essaie de compiler le fichier :

    [03-Apr-2009 11:44:20] PHP Parse error:  syntax error, unexpected T_IS_EQUAL in /Applications/MAMP/htdocs/gamaddict/ecrire/public/composer.php(73) : eval()'d code on line 89

    Bref, si quelqu’un peut aider, je lui en serai très reconnaissant.

    Répondre à ce message

  • Pour les avatars, vu que c’est dans la même table, ça devrait pas être compliqué à implémenter (enfin, je pense). Le problème, c’est qu’en développement de plugins SPIP, je suis une vraie buse :( (en gros, dès qu’il faut toucher au PHP de SPIP).

    Répondre à ce message

  • 1

    Salut,

    Je viens d’essayer le plugin pour mon site, et que dire... C’est tout simplement un très bon début et ce plugin est excellent.

    Par contre, j’ai un petit problème avec celui-ci.

    Quand j’essaie de récupérer le nom du membre ayant posté un commentaire, celui-ci ne s’affiche pas. Par contre, j’arrive à récupérer le texte sans problèmes.

    J’ai regardé un peu le code pour essayer de voir où ce situe le problème, et je crois l’avoir repéré. Pour récupérer l’information sur le nom du posteur, le plugin va lire le champ post_username de la table phpbb_posts. Le problème, c’est que phpBB ne remplit pas ce champ lorsque l’on poste depuis phpBB, du coup, celui-ci reste vide. Par contre, si j’utilise la balise #POST_ID, j’arrive à récupérer l’identifiant du posteur. Le problème, c’est que je sais pas comment modifier le plugin pour faire le lien entre la table phpbb_post et la table phpbb_user :( (et en même temps, récupérer aussi l’avatar depuis la table phpbb_user par la même occasion).

    Si ça peut aider, concernant phpBB, j’utilise phpBB 3.0.4 en français avec automod et MSSTI_RSS. A priori, ça ne change pas le comportement de phpBB sur la table phpbb_user.

    PS : J’ai visité aussi 187prod, et il y a exactement le même problème concernant les noms des posteurs.

    • oui, on s’en est rendu compte, la table appelé n’est pas la bonne (en fait il faut appelerla table *_users, on corrige le truc, pour les avatars, ben on compte aussi un peu sur vous ;)

    Répondre à ce message

  • 1

    pour information, j’avais la même erreur de skro

    • Bonsoir,

      J’ai testé le plugin sur une nouvelle install de SPIP 2.0.6 : aucun message d’erreur, tout fonctionne :)

      Par contre, il manquait bien parent_id et group_id dans le fichier de déclaration des tables du plugin. C’est corrigé, merci de tester.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom