Soucis de balises bbcode !!

Résolu
kida28 Messages postés 16 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 24 février 2006 - 30 janv. 2005 à 14:59
kida28 Messages postés 16 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 24 février 2006 - 31 janv. 2005 à 12:20
Kida

Salut les codeurs!

Je cherche partout sur le web une personne ayant eu mon prob, mais non !

J'utilise une function storeCaret(selec) ... pour ajouter des balises bbcode dans mon formulaire. Ca marche nickel avec les smiley, le gras, souligné et alignements, mais avec color, quand je met :

--> storeCaret('color=#FF000000'), il m'écrire dans le form ceci:

--> [color='#FF0000']test/color='#FF0000'

et donc ne me traduit pas le seconde balise, et sur Preview ca donne:

--> test/color=#FF0000

j'ai essayer de bidouiller ma function bbcode($t) mais rien à faire.

Si quelqu'un avait une idée ca serait chouette, car je suis déjà à la bourre dans le timing du site.

Merci d'avance pour vos réponses.

Kida

6 réponses

cs_windu Messages postés 282 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 19 juillet 2006
30 janv. 2005 à 22:20
anthomicro-> kan je marke explode("=",'color=#FF000000'),
il es bien évident qu'il faut remplacer color=#xxxxxx par une
variable par ex. qui contiendrait la chaine de caractère color=#xxxxxx!

ainsi quelque soit la couleur cela mrhcera: il suffit de rmplir la variable ar le code couleur désiré




Que la Force soit avec toi, Jeune Padawan!!!
3
cs_windu Messages postés 282 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 19 juillet 2006
30 janv. 2005 à 17:53
pour ta fermeure de balise, tente un explode:


$color=explode("=",'color=#FF000000')."\'";



ainsi $color contiendra juste 'color'... a toi d'afficher le /




Que la Force soit avec toi, Jeune Padawan!!!
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
30 janv. 2005 à 18:55
Salut ;-)



Windu > la couleur étant variable je doute que ce soit une bonne méthode



kida > dis nous ce que tu souhaites faire précisément stp et le code actuel que tu utilises pour réaaliser cette fonction.



a ++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
30 janv. 2005 à 22:28
Ok ;-)

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kida28 Messages postés 16 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 24 février 2006
31 janv. 2005 à 11:50
Kida

Hello !

Merci pour vos réponses !!

Je viens d'arriver devant le pc, j'essaie vos solutions et vous tiens au courant de la suite des évènements .

Schuss !
0
kida28 Messages postés 16 Date d'inscription vendredi 3 décembre 2004 Statut Membre Dernière intervention 24 février 2006
31 janv. 2005 à 12:20
Kida

Bon j'y arrive pas !

Je vais essaier de vous expliquer plus précisement.

En fait j'ai un un formulaire en Back Office qui permettra aux admin du site de saisir des textes long et je fais donc en sorte qu'ils puissent mettre en forme leurs textes avec du bbcode.

Ensuite en bas du form il y a un bouton "Preview" pour prévisualiser la page avant l'ajout dans la base.

Codes:

Page du form:

Bouton et fonction storeCaret();

(c'est pas moi qui l'ai faite)
-------------------------------------------
<script language= "Javascript">


var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;


function storeCaret(selec)


{


if (isMozilla)


{


// Si on est sur Mozilla


oField = document.forms['ajoutMethode'].elements['par1'];


objectValue = oField.value;


deb = oField.selectionStart;


fin = oField.selectionEnd;


objectValueDeb = objectValue.substring( 0 , oField.selectionStart );


objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );


objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );


// alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");


oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "+ selec + "" + objectValueFin;


oField.selectionStart = strlen(objectValueDeb);


oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "+ selec + "");


oField.focus();


oField.setSelectionRange(


objectValueDeb.length + selec.length + 2,


objectValueDeb.length + selec.length + 2);


}


else


{


// Si on est sur IE


oField = document.forms['ajoutMethode'].elements['par1'];


var str = document.selection.createRange().text;


if (str.length>0)


{


// Si on a selectionné du texte


var sel = document.selection.createRange();


sel.text = "[" + selec + "]" + str + "+ selec + "";


sel.collapse();


sel.select();


}


else


{


oField.focus(oField.caretPos);


// alert(oField.caretPos+"\n"+oField.value.length+"\n")


oField.focus(oField.value.length);


oField.caretPos = document.selection.createRange().duplicate();


var bidon = "%~%";


var orig = oField.value;


oField.caretPos.text = bidon;


var i = oField.value.search(bidon);


oField.value = orig.substr(0,i) + "[" + selec + "]+ selec + "" + orig.substr(i, oField.value.length);


pos = i + 2 + selec.length;


//placer(document.forms['news'].elements['newst'], pos);


var r = oField.createTextRange();


r.moveStart('character', pos);


r.collapse();


r.select();
}
}
}
</script>

Ici il m'affiche: --> test='#FF0000'

Page "Preview":

<? include('../BBCode.php'); ?>

BBCode.php:

// couleur
$t= str_replace(" ", "", $t);
$regCouleur="\[color= ?(([[:alpha:]]+)|(#[[:digit:][:alpha:]]{6})) ?\]";
$t=ereg_replace($regCouleur, "[file://\\1\ \\1\ ]">", $t);

Affichage du paragraphe:

<? echo bbCode(html_entity_decode(stripslashes(affich($par1)))) ?>

Ici il m'affiche: --> test=#FF0000

Je connaît pas mal le language mais suis pas non plus hypra forte.

Merci pour votre aide! Je continue mes recherches !!
0
Rejoignez-nous