equivalent html des balises [quote] et [list] de bbcode

equivalent html des balises [quote] et [list] de bbcode - HTML/CSS - Programmation

Marsh Posté le 10-10-2007 à 15:20:15    

Bonjour,
 
 
Je recherche l'équivalent des balises [quote] et [list] pour html qui donne le meme résultat bien sur. Et comment l'écrire dans mon code?
Voici ma fonction qui transforme le bbcode en HTML:
 

Code :
  1. <? function bbCode($t)
  2. // remplace les balises BBCode par des balises HTML
  3. {
  4.    // barre horizontale
  5.    $t=str_replace("[/]", "<hr width=\"100%\" size=\"1\" />", $t);
  6.    $t=str_replace("[hr]", "<hr width=\"100%\" size=\"1\" />", $t);
  7.  
  8.    // gras
  9.    $t=str_replace("", "<strong>", $t);
  10.    $t=str_replace("", "</strong>", $t);
  11.  
  12.    // italique
  13.    $t=str_replace("", "<em>", $t);
  14.    $t=str_replace("", "</em>", $t);
  15.  
  16.    // soulignement
  17.    $t=str_replace("", "<u>", $t);
  18.    $t=str_replace("", "</u>", $t);
  19.  
  20.    // alignement centré
  21.    $t=str_replace("[center]", "<div style=\"text-align: center\">", $t);
  22.    $t=str_replace("[/center]", "</div>", $t);
  23.  
  24.    // alignement à droite
  25.    $t=str_replace("[right]", "<div style=\"text-align: right\">", $t);
  26.    $t=str_replace("[/right]", "</div>", $t);
  27.  
  28.    // alignement justifié
  29.    $t=str_replace("[justify]", "<div style=\"text-align: justify\">", $t);
  30.    $t=str_replace("[/justify]", "</div>", $t);
  31.  
  32.    // couleur
  33.    $t=str_replace("[/color]", "</span>", $t);
  34.    $regCouleur="\[color= ?(([[:alpha:]]+)|(#[[:digit:][:alpha:]]{6})) ?\]";
  35.    $t=ereg_replace($regCouleur, "<span style=\"color: \\1\">", $t);
  36.  
  37.    // taille des caractères
  38.    $t=str_replace("[/size]", "</span>", $t);
  39.    $regCouleur="\[size= ?([[:digit:]]+) ?\]";
  40.    $t=ereg_replace($regCouleur, "<span style=\"font-size: \\1px\">", $t);
  41.  
  42.    // lien
  43.    $regLienSimple="\[url\] ?([^\[]*) ?\[/url\]";
  44.    $regLienEtendu="\[url ?=([^\[]*) ?] ?([^]]*) ?\[/url\]";
  45.    if (ereg($regLienSimple, $t)) $t=ereg_replace($regLienSimple, "<a href=\"\\1\">\\1</a>", $t);
  46.    else $t=ereg_replace($regLienEtendu, "<a href=\"\\1\" target=\"_blank\">\\2</a>", $t);
  47.  
  48.    // mail
  49.    $regMailSimple="\[email\] ?([^\[]*) ?\[/email\]";
  50.    $regMailEtendu="\[email ?=([^\[]*) ?] ?([^]]*) ?\[/email\]";
  51.    if (ereg($regMailSimple, $t)) $t=ereg_replace($regMailSimple, "<a href=\"mailto:\\1\">\\1</a>", $t);
  52.    else $t=ereg_replace($regMailEtendu, "<a href=\"mailto:\\1\">\\2</a>", $t);
  53.  
  54.    // image
  55.    $regImage="\[img\] ?([^\[]*) ?\[/img\]";
  56.    $regImageAlternatif="\[img ?= ?([^\[]*) ?\]";
  57.    if (ereg($regImage, $t)) $t=ereg_replace($regImage, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $t);
  58.    else $t=ereg_replace($regImageAlternatif, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $t);
  59.  
  60.    return $t;
  61. }
  62. ?>


 
Merci


Message édité par mjcom le 10-10-2007 à 15:27:36
Reply

Marsh Posté le 10-10-2007 à 15:20:15   

Reply

Marsh Posté le 10-10-2007 à 16:02:42    

quote : <citation> il me semble
list : <ul> ou <ol> (avec les <li> à l'intérieur)

Reply

Marsh Posté le 10-10-2007 à 16:04:16    

http://www.w3schools.com/tags/default.asp
 
PS : pourquoi <em> au lieu de <i> ? Parceque <em> sémantiquement, ça veut pas du tout dire "italique"... Traduit en français, ça veut même dire "souligné" (dans le sens, "mis en valeur". ça peut donc tout aussi bien être souligné ou gras...)
 
Donc, pas de "<citation>" mais "<blockquote>".


Message édité par MagicBuzz le 10-10-2007 à 16:06:17
Reply

Marsh Posté le 10-10-2007 à 17:13:57    

en faite le code viens d'un site asp.net je crois. <em> ca marche mais c'est vrai que j'aurais pu changer par <i>.
<blockquote> je crois que ca indente le texte. Moi ce que je veux c'est avoir des balises html qui permettent d'avoir le meme résultat qu'avec [quote].
En ce qui concerne les listes: Si l'utilisateur clic sur [list], je voudrais faire évidement comme avec <ul><li></li></ul>. Mais à chaque retour à la ligne dans la balise [list] je voudrais que dans mon code html, les balises <li></li> se mettent automatiquement voire meme avec un <ul type="circle">. Enfin j'espere avoir été clair. Merci

Reply

Marsh Posté le 10-10-2007 à 17:32:57    

Privilégie la sémantique des balises plutôt que l'aspect par défaut.
 
J'insiste très fort là dessus pour deux raisons :
1/ Aujourd'hui, certains navigateurs font un certain rendu par défaut particulier pour chaque balises, mais rien ne garantie que demain, d'autres navigateurs feront le même rendu. C'est ce qui est écrit dès la préface de n'importe quel bon livre sur le HTML.*
2/ Avec une CSS, tu peux forcer le comportement de n'importe quelle balise. Genre tu peux peux tout à fait décider que "<i>" souligne sans mettre en italique, ou que "<pre>" utilise une police proprotionnelle. C'est uniquement à ce niveau que tu dois faire attention au rendu. Le choix des balises ne doit pas du tout prendre en considération le rendu par défaut. Seule la sémantique doit entrer en jeu.
 
 
Ensuite, pour le comportement de ta liste, y'a pas à tortiller, ce sera à grand coup d'expressions régulières que tu vas forcer le comportement à chaque retour à la ligne. A noter toutefois que nombre de forums demandent l'utilisation de [ *] pour faire une puce dans une liste. C'est bien pratique pour faire des retours à la ligne dans un élément, sans pour autant mettre une puce devant.
 
 
* : Exemple simple...
<fieldset><legend>plop</legend>coincoin</fieldset>
 
=> Ce code faire un cadre avec un titre NOIR sous dans IE7 sous Windows Vista. Le même code fait un cadre avec un titre BLEU dans IE7 sous Windows XP. Donc même avec le même navigateur, deux OS différents proposent un rendu par défaut différent !


Message édité par MagicBuzz le 10-10-2007 à 17:36:22
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed