Syndication d’un site basé sur phpBB

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Cet article n’a qu’un rapport indirect avc SPIP. En effet, ce qui suit est destiné aux webmestres qui souhaitent associer un site SPIP avec un site proposant un système de forum basé sur phpBB par le biais de la syndication.

Installer

-  Récupérer et décompresser l’archive ci-jointe.
-  Placer le fichier backend.php à la racine de votre site phpbb.

Tester

-  appeler ce script de la manière suivante http://monsite.org/backend.php?mode=screen. Il doit afficher les 10 derniers sujets publics du site.

Référencer

-  Syndiquer votre site phpbb comme n’importe quel autre site. ne pas reproduire la variable mode dans l’url !
-  Avant de valider la syndication une fois que vous aurez saisi http://monsite.org/backend.php, il vous est possible de préciser des variables :

by=post vous permet de trier les sujets (topics) en fonction de la date de la dernières réponses au lieu de la date du sujet lui-même

desc=hierarchie vous permet de renseigner la description de l’item syndiqué avec le nom de la catégorie et le nom du forum où il se trouve

Les variables c et f :

On peut restreindre la syndication à des catégories précises et/ou des forums précis en suivant la syntaxe suivante :

-  Insérer une virgule entre les catégories (ou forum) que vous souhaitez lister.
-  Faites précéder le numéro de la catégorie ou du forum que vous voulez exclure par un point d’exclamation.

exemple :

&c=1,3&f=!4 permet de syndiquer les sujets des forums des catégories 1 et 3 à l’exclusion du forum 4

Attention toutefois, pour éviter un traitement impossible, il est impossible de restreindre et d’exclure en même temps pour les catégories et les forums. L’exclusion est prioritaire.

exemple :

&c=!1,3 se contentera d’exclure les forums de la catégorie 1

Voilà, voilà !

Attention ! pour l’exclusion, il faut taper = ! et non pas != ( ! ! !) c’est logique puisque il s’agit de fixer la variable $f (ou $c) dans l’url ce qui se fait par la syntaxe f=qqchose

Développements possibles

Ce script permet la syndication des forums ’public’ d’un site phpBB.

Il serait possible d’ajouter les forums privés en implémentant des variables telles que :
$type pour le choix des permissions simples de forums
$view et $read pour le choix des permissions avencées

Sélection/Exclusions des sujets spéciaux tels que sondages, annonces, post-it...

De plus, ajouter des types de description (nb lectures, nb réponses etc...), paramétrer le nombre de posts à récupérer pourrait peut-être s’avérer intéressant, non ?

Faire le contraire... syndiquer des articles et/ou des brèves spip dans un forum phpbb... ;)

Si l’url calculée par ce script ne convient pas, éditer ce fichier pour définir la variable $url_base. Cette variable est importante puisqu’elle définie l’url de tous les liens, ce serait dommage qu’elle soit fausse ;)

à titre d’exemple sur un site en cours de dev...Le site

Discussion

16 discussions

  • samovian

    J’obtiens tout plein d’erreurs genre
    « Warning : main() : Unable to access ./config. in /var/www/free.fr/4/e/mon login/phpBB2/backend.php on line 20
     »
    Ca serait pour savoir si ce script continue d’être valide pour phpBB 2.0.11 et si ce script est compatible avec le safe mode de free..

    Répondre à ce message

  • Il existe un autre MOD à ajouter au forum phpbb qui génère un feed en Javascript ou en RSS, au choix, avec ou sans nom du forum dans le lien, etc., et qui permet — en outre — de syndiquer votre forum ’sous-forum’ par ’sous-forum’ sans difficulté (vous choisissez le nom du [sous]forum dans un menu déroulant) : Topics Anywhere. En anglais uniquement, je crois : il faut configurer la langue de votre forum en anglais le temps de sélectionner le type de syndication qui vous intéresse. Vous pouvez syndiquer votre forum 14 fois si vous voulez avoir 14 feeds différents. Ce MOD ne touche pratiquement pas au code phpbb de base, c’est plutôt un add-on.

    Répondre à ce message

  • Peut-on a l’aide de ce système syndiquer un forum IPB par Spip ?

    Répondre à ce message

  • Problème en faite sur l’exécution .
    après avoir mis backend.php à la racine du forum je me retrouve avec des destinations incorrecte.

    http://www.monsite.comviewtopic.php/?t=358

    j’ai essayer cette manip comme j’ai vu sur un sujet plus bas, à savoir rentrer $url_base dans le fichier backend ....mais rien de plus.

    Autre possibilité mais sans résultats et avec le même message que j’ai vu plus bas dans cette discution, c’est de faire appel au fichier backend.php sans rentrer l’URL ....on obtient ceci

    Attention : la syndication de ce site a rencontré un problème ; le système est donc temporairement interrompu pour l’instant. Vérifiez l’adresse du fichier de syndication de ce site (backend.php), et tentez une nouvelle récupération des informations.

    Voila voila ...si quelqu’un à une solution je suis preneur .

    Merci

    Répondre à ce message

  • survivreausida.net

    Il existe déjà un MOD pour phpBB qui génère un fichier RSS très complet et facilement modifiable, voir RSS Content Syndicator for phpBB 2.0.x.

    Téléchargement RSS_Content_Syndicator-2.0.2.zip

    Répondre à ce message

  • 1

    Ce fameux fichier backend.php marche trés bien sur mon site pour récupérer les 10 dernières contributions aux forums.
    La syndication en automatique c’est très bien passé.

    Mais je voudrais récupérer les 10 derniers forums quelque soit leurs nombres et leurs dates de publication.
    Je ne vois pas comment faire avec les balises de récupération de SPIP.
    Quelqu’un a-t-il la solution ???
    A l’aide je déborde de Php...

    • J’ai fait la boucle suivante qui me récupère les 5 derniers posts du forum
      J’ai exclu par id_syndic=70 tout autre site syndiqué (mon forum est syndiqué sous cet id)

      <!--affichage des 5 dernières publications du forum MML -->
                  <div class="bloc_titre"> Derni&egrave;res nouvelles du forum </div>
                  <BOUCLE_forum(SITES){syndication=oui}{id_syndic=70}>
                  <BOUCLE_items(SYNDIC_ARTICLES){id_syndic}{par date}{inverse}{0,5}>
      			<div class="texte"><img src="puce.gif" border=0><a href="#URL_ARTICLE" target="_blank">[#TITRE] </a>
      [<font size="2">par #LESAUTEURS, le (#DATE|jour)] [(#DATE|nom_mois)</font>]</div>
      			</BOUCLE_items>
                  </BOUCLE_forum>

      Est-ce suffisamment clair ??

      cordialement

    Répondre à ce message

  • 2

    Re-bonjour à tous

    Après règlages divers, ça fonctionne !

    -  Questions :

    * Quels paramètres sont récupérés par le script ?
    -  J’ai vu (dites moi si je me trompe) :
    titre du topic (#TITRE) ;
    url du topic (#URL_ARTICLE) ;
    descriptif (??) ;
    auteur (#AUTEUR) ;
    date de màj (dernier post du sujet) (??) ;
    ....

    *Comment récupérer ces paramètres et les inclure dans une boucle SPIP
    -  pour #TITRE ET #URL_ARTICLE c’est ok

    * Je suppose à la lecture de l’article qu’il faut passer par l’option desc=hierarchie dans le lien de syndication pour pouvoir utiliser (#DESCRIPTIF) dans une boucle d’affichage ?
    J’ai mis ça après http://url_monsite/forum/backend.php?desc=hierarchie

    Merci de vos réponses

    Bertrand

    • Les éléments d’une boucle syndic_article correspondent à :

      -  #TITRE : titre du topic (sujet)
      -  #URL_ARTICLE : url du topic
      -  #DATE : date du topic ou du dernier post, mais celle-ci n’est plus modifiée par la suite (noyau spip non programmé pour cela)
      -  #LESAUTEURS : auteur du topic
      -  #DESCRIPTIF est vide par défaut où vaut « Catégorie/Forum » si, effectivement, on précise la variable desc dans l’url de syndication.

    • Merci James de ces pécisions ;-)
      ça fonctionne parfaitement à l’exception de #DESCRIPTIF qui ne renvoie rien malgré mon backend.php ?desc=hierarchie

      J’ai l’impression que desc ne passe pas, ni d’ailleurs by
      Sur mon site la date par défaut est celle du dernier post et non celle du sujet.

      Enfin, détail, y a t’il un moyen de modifier l’affichage des dates qui sont en format US ? Peut être intervenir sur les règlages du forum ?

      Merci

    Répondre à ce message

  • 4

    Salut et ... Merci

    Génial comme idée :-)

    Mais si l’installation a fonctionné, si la syndication a fonctionné, si j’ai fait une jolie boucle qui m’affiche ce que je veux, si ....

    J’ai un pb d’url vers les post du forum.

    L’url des articles est par ex. http://viewtopic.php?t=11
    Il pointe bien vers le topic adéquat, mais il a oublié l’url du forum en passant ???

    J’ai donc édité ton fichier backend, mais avant de le massacrer, je voudrais un conseil.

    Les 2 lignes suivantes font référence à l’url de base :

    $url_base = « http://$HTTP_HOST ».substr($SCRIPT_NAME, 0, strpos($SCRIPT_NAME, « backend.php »)) ; #URL de base du forum phpbb

    //$url_base = ’http://127.0.0.1/forums/’ ; #URL de base du forum phpbb

    Ma question : comment coder « en dur », sans faire de bétise, l’url de mon forum ?

    • Comme il est dit dans le PS :

      Si l’url calculée par ce script ne convient pas, éditer ce fichier pour définir la variable $url_base. Cette variable est importante puisqu’elle définie l’url de tous les liens, ce serait dommage qu’elle soit fausse ;)

    • J’avais bien lu le PS et bien compris qu’il fallait éditer la variable $url_base, MAIS je demandais une aide complémentaire pour que ça fontionne toujours !!

      L’url de mon forum étant :
      http://www.augfrance.com/MediaMomes/MM2003/Forum_phpBB/

      Dois je remplacer tout le contenu de
      $url_base = « http://$HTTP_HOST ».substr($SCRIPT_NAME, 0, strpos($SCRIPT_NAME, « backend.php »)) ; #URL de base du forum phpbb

      $url_base = « http://www.augfrance.com/MediaMomes/MM2003/Forum_phpBB/ »

      Ton script se débrouillera avec le backend.php ??

      Merci de ces précisions.
      Bertrand

    • Oui, voilà, c’est ça :-)

    • Merci de cette confirmation ;-)

    Répondre à ce message

  • 1

    Jean-Claude,

    J’ai le même problème... sauf qu’en ce qui me concerne ça marche nul part :-(

    1/ j’installe le backend du fichier zip (sinon Parse error)

    2/ je teste avec http://www.mondomain.tld/forum/backend.php?mode=screen et ça marche !

    3/ j’essaye de syndiquer le site et rien ! ou plutot « Attention : la syndication de ce site a rencontré un problème ; le système est donc temporairement interrompu pour l’instant. Vérifiez l’adresse du fichier de syndication de ce site »... pourtant tous les paramètre tapés dans l’interface sont ok !

    PS : aucun soucis avec la syndication d’autres sites...

    Help...

    • il m’est arrivé la même chose et j’ai recommencé mais en automatique...
      Du coup tout bon...
      Comprend po !

    Répondre à ce message

  • 1

    Merci pour cet article fort intéressant.

    Malheureusement cela ne fonctionne pas au niveau de mon forum, le fichier lorsque je l’appelle par l’url m’envoit une page vide...

    J’ai posté un topic sur un forum phpbb si cela vous intéresse :
    http://forum.2037.org/viewtopic.php?p=388922#388922

    J’ai spip (eva 1.0) et phpbb 2.0.6

    Merci par avance

    • brut de pomme, ce script n’affiche rien mais envoi un flux rss... donc c’est normal que la page soit vide.

      ?mode=screen ajouté dans l’adresse sur un navigateur web permet de contrôler que les requêtes tournent bien. Il faut bien sûr, ne pas définir cette variable dans l’adresse de syndication dans l’espace privé de spip.

      S’il n’y a toujours rien, c’est peut-être que tous les forums sont privés...? ce script n’affiche que des sujets de forums publics, je le répète : un lien vers une page inaccessible, c’est moche... ;-)

    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