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 :
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 me diront certains. En effet, pourquoi pas. L'utilisation des crochets trouve sa justification dans le fait qu'il est beaucoup plus aisé de filtrer des 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.
L'atout majeur du BBComposer est de créer du code sémantiquement correct. Malheureusement, l'utilisation des BBCodes classiques ou de la syntaxe Wiki 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 :
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.