Vous êtes ici : > Développeurs > XBBCode

Pourquoi et comment utiliser le XBBCode

Comme vous l'avez remarqué, le BBComposer permet l'utilisation d'un nouveau genre de BBCode; le XBBCode. Ce n'est pas un code de plus, mais bien un plus en matière de BBCode.

En effet, jusqu'ici, le BBCode permettait de mettre en forme les message de forum de façon intuitive. Deux problème se sont manifestés :

  • la pauvreté et le manque de standardisation du BBCode.
  • l'aspect stylistique des BBCodes (par opposition à l'aspect sémantique des XBBCodes).

Nous avons donc opté pour le XBBCode qui est une transcription du XHTML sans guillemets et avec des crochets à la place des signes inférieur à et supérieur à. Il devient donc un standard par héritage contrairement au BBCode.

Dans ce cas, pourquoi ne pas utiliser le XHTML diront certains. En effet, pourquoi pas. L'utilisation des crochets trouve sa justification dans le fait qu'il est beaucoup plus aisé de filtrer du XBBCode que du XHTML, que ce soit en terme de performance ou en terme de sécurité.

En effet, comme on ne convertit que ce que l'on autorise, les contenus qui passent le filtre restent, au pire des cas, entre crochet et donc, sans aucun effet nocif. Pour en savoir plus, lisez la partie XSS du tutoriel Elitwork sur la sécurité.

Et le Wiki dans tout ça ? Le Wiki permet une utilisation sémantique. Cependant, les intérêt individuels l'emportant sur l'intérêt général, chacun a fait sa petite sauce dans son coin. Il éxiste de nombreux codes wikis différents, c'est donc pour cela que BBComposer ne peut tous les supporter et supporte d'ailleurs mal le Wiki en général.

L'intérêt du XBBCode basé sur le XHTML devient donc évident. On ne peut pas inventer ses balises, l'intéropérabilité est donc maximale, on change de forum comme on le veut, sans perdre les messages précédents.

Traiter les XBBCodes pour l'affichage

L'atout majeur du BBComposer est de créer du code sémantiquement correct. Malheureusement, l'utilisation des BBCodes classiques ne permet pas de profiter de cet avantage. C'est pourquoi nous vous recommandons de passer aux XBBCodes. Pour vous aider à traiter ce langage, nous avons mis en libre service la fonction PHP utilisée au sein d'XCMS.

Avec tout CMS :
Vous devez utiliser la fonction citée ci-dessus pour interpréter les XBBCodes qui seront transformés en XHTML. En PHP, cela va ressembler à ça :
<?php
$xhtml = format_contain($xbbcode);
?>

Avec SPIP :
Il faut ajouter un nouveau filtre sur les sorties. Pour ce faire, vous devez d'abord, modifier vos fichiers squelettes. Par exemple, pour un article :
<(#TEXTE*|format_contain)>
L'étoile sert à désactiver le traitement par Spip et format_contain est le nom de la fonction à utiliser. Pour pouvoir l'utiliser, nous devons l'ajouter dans Spip. Pour cela, téléchargez ce fichier et enregistrez le dans Spip à la racine du site ou dans le dossier où sont stockés vos squelettes :

  • Versions inférieures à SPIP 1.9 : mes_fonctions.php3
  • Versions supérieures à SPIP 1.9 : mes_fonctions.php

Convertir les BBCodes classiques en XBBCodes

Afin de faciliter votre passage aux XBBCodes, nous nous sommes inspirés d'une fonction existante pour vous fournir une fonction permettant d'effectuer la conversion.

N'hésitez pas à proposer des alternatives plus puissantes que ces fonctions et nous serons ravis de les publier ici.