créer un site


bbCodes

Poster un nouveau sujet sur javascript   Répondre au sujet à javascript:bbCodes    Accueil Forum -> javascript
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
meo
html mioche
html mioche
MessagebbCodes , Posté le: 03-05-2009 16:29

Bonjour,

Alors, j'ai déjà un peu cherché sur le net et dans les forums j'avoue ne pas comprendre grand chose encore au javascript Confused

Donc j'ai honteusement piqué un code que j'ai réussi à appliquer à mes fichiers. Mais il me reste un problème.

Ce code permet d'insérer des balises bbcodes dans une zone de texte. Tout fonctionne sauf qu'elle s'insèrent automatiquement en fin de ligne... Impossible de sélectionner un texte déjà tapé et d'y appliquer la balise (de l'encadrer donc). Du moins sous FF, à priori sous IE ça fonctionne.
Vu le code, je suppose que ça se joue au niveau de la fonction "AddText" ? Mais j'y vais un peu à l'arrache, en disant ça.

Toujours est-il que j'ai trop la trouille pour tripatouiller là dedans Laughing

Je vous mets les codes, si jamais vous avez une idée, je suis preneuse !

Script de la page de formulaire :
Code:
<script language="javascript" type="text/javascript">
function AddText(startTag,defaultText,endTag)
{
   with(document.poster)
   {
      if (text_ref.createTextRange)
      {
         var text;
         text_ref.focus(text_ref.caretPos);
         text_ref.caretPos = document.selection.createRange().duplicate();
         if(text_ref.caretPos.text.length>0)
         {
            //gère les espace de fin de sélection. Un double-click sélectionne le mot
            //+ un espace qu'on ne souhaite pas forcément...
            var sel = text_ref.caretPos.text;
            var fin = '';
            while(sel.substring(sel.length-1, sel.length)==' ')
            {
               sel = sel.substring(0, sel.length-1)
               fin += ' ';
            }
            text_ref.caretPos.text = startTag + sel + endTag + fin;
         }
         else
            text_ref.caretPos.text = startTag+defaultText+endTag;
      }
      else text_ref.value += startTag+defaultText+endTag;
   }
}
</script>


Exemple de balise à insérer :
Code:
<a href="javascript:AddText('[b]','','[/b]');" alt="Mettre le texte en gras"><img src="gras_text.png" alt="Mettre le texte en gras"></a>


Fichier fonction.php
Code:

<?php
function bbCode($t)
// remplace les balises BBCode par des balises HTML
{
   // barre horizontale
   $t=str_replace("[/]", "<hr width=\"100%\" size=\"1\" />", $t);
   $t=str_replace("[hr]", "<hr width=\"100%\" size=\"1\" />", $t);
   
   // gras
   $t=str_replace("[b]", "<strong>", $t);
   $t=str_replace("[/b]", "</strong>", $t);
   
        // smileys
   $t=str_replace(":s", "<img src=\"images_forums/icon_confused.gif\" alt=\"\" border=\"0\" />", $t);
   $t=str_replace(":(", "<img src=\"images_forums/icon_cry.gif\" alt=\"\" border=\"0\" />", $t);
   $t=str_replace(":o", "<img src=\"images_forums/icon_surprised.gif\" alt=\"\" border=\"0\" />", $t);
   $t=str_replace(":!", "<img src=\"images_forums/icon_eek.gif\" alt=\"\" border=\"0\" />", $t);
   $t=str_replace(":@", "<img src=\"images_forums/icon_evil.gif\" alt=\"\" border=\"0\" />", $t);
   $t=str_replace("8)", "<img src=\"images_forums/icon_rolleyes.gif\" alt=\"\" border=\"0\" />", $t);
    $t=str_replace(";)", "<img src=\"images_forums/icon_wink.gif\" alt=\"\" border=\"0\" />", $t);
    $t=str_replace("lol", "<img src=\"images_forums/lol.gif\" alt=\"\" border=\"0\" />", $t);
   $t=str_replace("[na!]", "<img src=\"images_forums/na.gif\" alt=\"\" border=\"0\" />", $t);
   $t=str_replace("[bug]", "<img src=\"images_forums/bug.gif\" alt=\"\" border=\"0\" />", $t);
   $t=str_replace("[colere]", "<img src=\"images_forums/colere.gif\" alt=\"\" border=\"0\" />", $t);
   // italique
   $t=str_replace("[i]", "<em>", $t);
   $t=str_replace("[/i]", "</em>", $t);
   
   // soulignement
   $t=str_replace("[u]", "<u>", $t);
   $t=str_replace("[/u]", "</u>", $t);
   
   // alignement gauche
   $t=str_replace("[left]", "<p style=\"text-align: left\">", $t);
   $t=str_replace("[/left]", "</p>", $t);
   
   // alignement centré
   $t=str_replace("[center]", "<p style=\"text-align: center\">", $t);
   $t=str_replace("[/center]", "</p>", $t);
   
   // alignement à droite
   $t=str_replace("[right]", "<p style=\"text-align: right\">", $t);
   $t=str_replace("[/right]", "</p>", $t);
   
   // alignement justifié
   $t=str_replace("[justify]", "<p style=\"text-align: justify\">", $t);
   $t=str_replace("[/justify]", "</p>", $t);
   
   // couleur
   $t=str_replace("[/color]", "</span>", $t);
   $regCouleur="\[color= ?(([[:alpha:]]+)|(#[[:digit:][:alpha:]]{6})) ?\]";
   $t=ereg_replace($regCouleur, "<span style=\"color: \\1\">", $t);
   
   // taille des caractères
   $t=str_replace("[/size]", "</span>", $t);
   $regCouleur="\[size= ?([[:digit:]]+) ?\]";
   $t=ereg_replace($regCouleur, "<span style=\"font-size: \\1px\">", $t);
   
   // lien
   $regLienSimple="\[url\] ?([^\[]*) ?\[/url\]";
   $regLienEtendu="\[url ?=([^\[]*) ?] ?([^]]*) ?\[/url\]";
   $regLienEtenduSansred="\[durl ?=([^\[]*) ?] ?([^]]*) ?\[/durl\]";
   if (ereg($regLienSimple, $t)) $t=ereg_replace($regLienSimple, "<a href=\"\\1\" target=\"_blank\">\\1</a>", $t);
   else if (ereg($regLienEtendu, $t)) $t=ereg_replace($regLienEtendu, "<a href=\"\\1\" target=\"_blank\">\\2</a>", $t);
   else $t=ereg_replace($regLienEtenduSansred, "<a href=\"\\1\">\\2</a>", $t);
   
   
   // image
   $regImage="\[img\] ?([^\[]*) ?\[/img\]";
   $regImageAlternatif="\[img ?= ?([^\[]*) ?\]";
   if (ereg($regImage, $t)) $t=ereg_replace($regImage, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $t);
   else $t=ereg_replace($regImageAlternatif, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $t);
   



   return $t;
}
function StripHTML ($sString) {
    return preg_replace ('@<[\/\!]*?[^<>]*?>@si', '', $sString);
}
?>


Un truc qui marche aussi bien que sur ce forum, ce serait top Razz

Merci
meo
html mioche
html mioche
MessagebbCodes , Posté le: 06-05-2009 10:21

Hello

Bon, du coup j'ai trouvé une solution toute seule Laughing

En cherchant encore un peu plus... Embarassed


http://www.editeurjavascript.com/scripts/scripts_formulaires_3_318.php [http://www.editeurjavascript.com/scripts/scripts_formulaires_3_318.php]

Voilà voilà

A+
referencement expert
dreamweaver mioche
dreamweaver mioche
MessagebbCodes , Posté le: 12-05-2009 8:54

Google est ton meilleur amis ! Laughing

Après la communauté de salemioche bien sur ! Cool
Montrer les messages depuis:   
Poster un nouveau sujet sur javascript   Répondre au sujet à javascript:bbCodes    Accueil Forum -> javascript Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
S'enregistrerS'enregistrer
ProfilProfil
Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés
RechercherRechercher
Liste des MembresMembres
FAQFAQ
ConnexionConnexion 


© Mentions Légales