samedi, avril 20, 2024
Nom d'utilisateur : Mot de passe :
Home > Projets > Classe BBCode > Classe BBCode : le How-To
[NEWS]
Envoyé par unreal
Ce petit guide devrait vous permettre d'exploiter rapidement la classe BBCode.



1. Les préliminaires

Avant toute utilisation de la classe, il vous faut insérer le fichier et créer un nouvel objet (comme pour toute classe php) :

require_once ('inc/inc_cg_filter.php');
$filter = new cg_filter;


2. Le filtre HTML

La fonction html_filter() offre plusieurs fonctionnalités interessantes, telles que le filtrage html (htmlentities), la conversion des \n en sauts de ligne (nl2br) et la détection automatique des liens et smileys.

Par défaut, les 4 options sont activées, mais il est possible d'en désactiver certaines et d'en laisser d'autres en positionnant l'array $html_filter_prefs avant d'appeler la fonction html_filter() :

$filter->html_filter_prefs['entities'] = 0; // Désactive le filtrage HTML.
$filter->html_filter_prefs['smileys'] = 0; // Désactive la détection des smileys.


Quand la détection des smileys est active, il est possible de configurer le path vers le dossier contenant les smileys :

$filter->smiley_path = 'smileys/'; // Il ne faut pas oublier le / final !


Passons maintenant au convertisseur BBCode.

3. Le convertisseur BBCode <-> HTML

Le convertisseur se compose de 2 fonctions : bbcode_to_html() et html_to_bbcode(), qui permettent de convertir dans un sens ou l'autre.

Le paragraphe suivant vous donnera un apperçu des possibilités de cette classe.
Note : dans les exemples, des espaces sont rajoutés pour que les balises ne soient pas interprétées.

  • [b ]texte[/b ], [i ]texte[/i ] et [u ]texte[/u ] : permet d'afficher du texte en gras, italique ou surligné.
  • [align=center ]texte[/align ] et [align=right ]texte[/align ] : permet de postionner le texte.
  • [img ]http://site.com/image.jpg[/img ] : permet d'insérer une image
  • [url=http://site.com ][/url ] ou [url=http://site.com ]Site[/url ] : permet d'insérer un lien.
  • [list ]
    [* ] élément 1
    [* ] élément 2
    [/list ] : permet de réaliser une liste sans ordre.
  • [quote ]texte[/quote ] : rajoute un style pour faire apparaître le texte (très utile pour citer).
  • [anchor ]paragraphe1[/anchor ] : insère une ancre nommée


4. Exemple d'utilisation

Si le reste n'était pas totalement clair, essayez cet exemple !

bbcode_test.php
<?php
require_once ('inc/inc_cg_filter.php');
$filter = new cg_filter;

$filter->html_filter_prefs['url_parsing'] = 0; // On désactive la détection automatique des liens

// Enlevez les espaces dans les balises !
$filter->string = "[b ]En gras ![/b ]\n[i ]En italique ![/i ]\n[u ]En surligné ![/u ]\n[b ][i ][u ]En gras, italique et surligné ![/u ][/i ][/b ]\n\n";

$filter->html_filter(); // Filtrage HTML
$filter->bbcode_to_html(); // Conversion BBCode en HTML;

echo ($filter->string); // Affichage HTML

$filter->html_to_bbcode(); // Conversion HTML en BBCode

echo ($filter->string); // Affichage BBCode
?>


5. Conclusion

N'hésitez pas à tester tout ça et de faire part de vos remarques ! happy.gif


Posté le 30/03/05 à 01:13

Commentaires...[1-7]


RE: Classe BBCode : le How-To
Yvan
Merci beaucoup pour cette classe. Je vais l'étudier de près pour bien comprendre le système.

Posté le 14/02/06 à 14:07

RE: Classe BBCode : le How-To
Nak
Bonjour,

Je voudrais savoir si ton code passe si je recupere un champs "texte_bbcode"
mis dans la variable "$text"
Comment pourrais-je faire en sorte que lors de l'affichage, il me transforme les balises bbcode du $text en balise html?

Posté le 04/10/06 à 14:38

RE: Classe BBCode : le How-To

unreal

[AVATAR]

Messages : 15
Inscrit le : 07/03/04
J'ai un peu de mal à comprendre la question. :)

Posté le 05/10/06 à 09:56

RE: Classe BBCode : le How-To
Nico
Je crois que sa question est... "est-ce que ta classe possede une fonction qui transforme du bbcode en code html et qui s'appelle bbcode_to_html() ?"

Posté le 11/10/06 à 12:39

RE: Classe BBCode : le How-To
artotal
Merci de partager ce travail ;)


Posté le 15/11/06 à 15:07

RE: Classe BBCode : le How-To
xaviou
Dans un texte venant d'une base, sa provoque des espaces de trois ou quatre ligne, de plus le temps d'affichage est multiplié.

Posté le 15/11/06 à 15:09

RE: Classe BBCode : le How-To
xaviou
Méa culpa
sa venait de moi.

Posté le 18/11/06 à 01:18

Classe BBCode : le How-To
Vous pourriez commenter si vous aviez un compte !