Passer du bbcode dans un script javascript
Résolu/Fermé
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
-
8 avril 2009 à 14:34
beudet Messages postés 122 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 24 février 2011 - 9 avril 2009 à 10:59
beudet Messages postés 122 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 24 février 2011 - 9 avril 2009 à 10:59
A voir également:
- Passer du bbcode dans un script javascript
- Script vidéo youtube - Guide
- Telecharger javascript - Télécharger - Langages
- Passer de windows 7 à windows 10 - Accueil - Mise à jour
- Passer de qwerty a azerty - Guide
- Passer à la ligne dans une cellule excel - Guide
13 réponses
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
8 avril 2009 à 14:53
8 avril 2009 à 14:53
Quand vous remplacez le texte par autre chose que ce qui sort de la fonction bbcode, ça marche?
Si non, positionnez la souris sur le bouton image et regardez dans la barre d'état en bas à gauche sur votre navigateur (là où il y a écrit "terminé" au fin de chargement des pages et où on peut voir le verrou des pages sécurisées) l'appel noté, vous verrez peut-être la faute, sinon vous pouvez aussi afficher tout simplement les différentes variables passées dans la fonction js pour savoir.
Si non, positionnez la souris sur le bouton image et regardez dans la barre d'état en bas à gauche sur votre navigateur (là où il y a écrit "terminé" au fin de chargement des pages et où on peut voir le verrou des pages sécurisées) l'appel noté, vous verrez peut-être la faute, sinon vous pouvez aussi afficher tout simplement les différentes variables passées dans la fonction js pour savoir.
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
13
8 avril 2009 à 15:16
8 avril 2009 à 15:16
Oui quand je le remplace par autre chose cela fonctionne très bien.
lorsque que je fait l'input si je passe la variable de cette facon :
<?php $texte; ?> : rien ne s'affiche dans ma fenetre javascript
<?php echo $texte; ?> : le $texte s'affiche dans ma page liste_article_membre.php
Je comprend pas pourquoi celle la sa me l'affiche et les autres variables elles passe très bien en paramètre.
Quelqu'un aurait une idée ?:)
lorsque que je fait l'input si je passe la variable de cette facon :
<?php $texte; ?> : rien ne s'affiche dans ma fenetre javascript
<?php echo $texte; ?> : le $texte s'affiche dans ma page liste_article_membre.php
Je comprend pas pourquoi celle la sa me l'affiche et les autres variables elles passe très bien en paramètre.
Quelqu'un aurait une idée ?:)
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
8 avril 2009 à 15:19
8 avril 2009 à 15:19
ah ça y est, je parie qu'il y a des " ou des ' dans ton $texte renvoyé par bbcode ?
Donc quand il essaie de l'utiliser il peut pas car la chaîne envoyée referme les " et ' n'importe où. Il faut utiliser des \ et ça devrait aller
Donc quand il essaie de l'utiliser il peut pas car la chaîne envoyée referme les " et ' n'importe où. Il faut utiliser des \ et ça devrait aller
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
13
8 avril 2009 à 15:25
8 avril 2009 à 15:25
En utilisant $text=addslashes($text); ?
Je comprend pas bien
Je comprend pas bien
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
8 avril 2009 à 15:32
8 avril 2009 à 15:32
Non addslashes c'est pour les bases de données.
Je vous explique, vous avez cette ligne :
<input type="image" value="Fenetre" src="../img/lecture.png" onclick="creer_fenetre(200,200,600,600,'<?php echo $titre; ?>','<?php echo $texte; ?>','<?php echo $lien; ?>','<?php echo $fichier; ?>')" />
imaginez que $texte contiennent un caractère "
alors le programme comprendra le " comme la fin du contenu du onclick alors que ce sera juste un élément de votre texte.
Je ne sais pas s'il y a une fonction qui permet de placer des antislash là où il faut Sinon devant tous les " et ' de votre $texte vous devrez mettre un antislash (antislash veut dire que le caractère d'après ne doit pas être considérer comme un élément spécial mais comme un simple texte)
Je vous explique, vous avez cette ligne :
<input type="image" value="Fenetre" src="../img/lecture.png" onclick="creer_fenetre(200,200,600,600,'<?php echo $titre; ?>','<?php echo $texte; ?>','<?php echo $lien; ?>','<?php echo $fichier; ?>')" />
imaginez que $texte contiennent un caractère "
alors le programme comprendra le " comme la fin du contenu du onclick alors que ce sera juste un élément de votre texte.
Je ne sais pas s'il y a une fonction qui permet de placer des antislash là où il faut Sinon devant tous les " et ' de votre $texte vous devrez mettre un antislash (antislash veut dire que le caractère d'après ne doit pas être considérer comme un élément spécial mais comme un simple texte)
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
13
8 avril 2009 à 15:55
8 avril 2009 à 15:55
Le problème venait bien de la. J'ai remplacer dans ma table bbcode les " par des ' pour les classes.
Maintenant il ne s'affiche plus dans la page liste_article_membre.php mais le problème c'est que la fenêtre dynamique ne s'ouvre plus quand je met <?php echo $text ?> .
A quoi cela peut être due ?
Maintenant il ne s'affiche plus dans la page liste_article_membre.php mais le problème c'est que la fenêtre dynamique ne s'ouvre plus quand je met <?php echo $text ?> .
A quoi cela peut être due ?
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
8 avril 2009 à 16:04
8 avril 2009 à 16:04
il faut pas remplacer les " par des ', ça ratera aussi car le ' entoure les chaîne de caractères que tu passes au javascript en paramètres :s
Faut vraiment utiliser les antislash
Faut vraiment utiliser les antislash
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
13
8 avril 2009 à 16:12
8 avril 2009 à 16:12
Donc il faut que je remplace sa au niveau de ma table SQL bbcode.
INSERT INTO `bbcode` VALUES (1, '#\\<couleur=(.+)\\>(.+)\\<\\/couleur\\>#isU', '<span class=\'$1\'>$2</span>');
INSERT INTO `bbcode` VALUES (5, '#\\<souligne\\>(.+)\\</souligne\\>#isU', '<span class="souligne">$1</span>');
INSERT INTO `bbcode` VALUES (3, '#\\<gras\\>(.+)\\</gras\\>#isU', '<span class=\'gras\'>$1</span>');
INSERT INTO `bbcode` VALUES (4, '#\\<italique\\>(.+)\\</italique\\>#isU', '<span class="italique">$1</span>');
INSERT INTO `bbcode` VALUES (6, '#\\<barre\\>(.+)\\</barre\\>#isU', '<span class="barre">$1</span>');
INSERT INTO `bbcode` VALUES (7, '#\\<citation=(.+)\\>(.+)\\</citation\\>#isU', '<span class="citation">Citation :$1</span><div class="citation2">$2</div>');
INSERT INTO `bbcode` VALUES (8, '#\\<image\\>(.+)\\</image\\>#isU', '<img src=\'$1\' alt=\'image poster par utilisateur\' />');
INSERT INTO `bbcode` VALUES (9, '#\\<lien=(.+)\\>(.+)\\</lien\\>#isU', '<a href=\'$1\'>$2</a>');
INSERT INTO `bbcode` VALUES (10, '#\\<email=(.+)\\>(.+)\\</email\\>#isU', '<a href=\'mailto:$1\'>$2</a>');
INSERT INTO `bbcode` VALUES (11, '#\\<position=(.+)\\>(.+)\\</position\\>#isU', '<div class=\'$1\'>$2</div>');
INSERT INTO `bbcode` VALUES (12, '#\\<taille=(.+)\\>(.+)\\</taille\\>#isU', '<span class="$1">$2</span>');
INSERT INTO `bbcode` VALUES (13, '#\\<police=(.+)\\>(.+)\\</police\\>#isU', '<span class="$1">$2</span>');
Le problème certain élément du bbcode ne seront plus pris en compte à l'affichage si je met des antislash non ?
INSERT INTO `bbcode` VALUES (1, '#\\<couleur=(.+)\\>(.+)\\<\\/couleur\\>#isU', '<span class=\'$1\'>$2</span>');
INSERT INTO `bbcode` VALUES (5, '#\\<souligne\\>(.+)\\</souligne\\>#isU', '<span class="souligne">$1</span>');
INSERT INTO `bbcode` VALUES (3, '#\\<gras\\>(.+)\\</gras\\>#isU', '<span class=\'gras\'>$1</span>');
INSERT INTO `bbcode` VALUES (4, '#\\<italique\\>(.+)\\</italique\\>#isU', '<span class="italique">$1</span>');
INSERT INTO `bbcode` VALUES (6, '#\\<barre\\>(.+)\\</barre\\>#isU', '<span class="barre">$1</span>');
INSERT INTO `bbcode` VALUES (7, '#\\<citation=(.+)\\>(.+)\\</citation\\>#isU', '<span class="citation">Citation :$1</span><div class="citation2">$2</div>');
INSERT INTO `bbcode` VALUES (8, '#\\<image\\>(.+)\\</image\\>#isU', '<img src=\'$1\' alt=\'image poster par utilisateur\' />');
INSERT INTO `bbcode` VALUES (9, '#\\<lien=(.+)\\>(.+)\\</lien\\>#isU', '<a href=\'$1\'>$2</a>');
INSERT INTO `bbcode` VALUES (10, '#\\<email=(.+)\\>(.+)\\</email\\>#isU', '<a href=\'mailto:$1\'>$2</a>');
INSERT INTO `bbcode` VALUES (11, '#\\<position=(.+)\\>(.+)\\</position\\>#isU', '<div class=\'$1\'>$2</div>');
INSERT INTO `bbcode` VALUES (12, '#\\<taille=(.+)\\>(.+)\\</taille\\>#isU', '<span class="$1">$2</span>');
INSERT INTO `bbcode` VALUES (13, '#\\<police=(.+)\\>(.+)\\</police\\>#isU', '<span class="$1">$2</span>');
Le problème certain élément du bbcode ne seront plus pris en compte à l'affichage si je met des antislash non ?
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
8 avril 2009 à 16:28
8 avril 2009 à 16:28
c'est pas au niveau de la base qu'il faut le faire mais entre l'appel à la fonction bbcode et l'écriture du input type="image"
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
13
8 avril 2009 à 16:46
8 avril 2009 à 16:46
J'ai réécrit dans ma fonction bbcode tout les regex pour ne plus utiliser la base de donnée. J ai mit des \ devant les ' et " , cela donne sa
$text = preg_replace("#\<email=(.+)\>(.+)\</email\>#isU","\'<a href=\'mailto:$1\'>$2</a>\'",$text);
$text = preg_replace("#\<lien=(.+)\>(.+)\</lien\>#isU","\'<a href=\'$1\'>$2</a>\'",$text);
$text = preg_replace("#\<image\>(.+)\</image\>#isU","\'<img src=\'$1\' alt=\'image poster par utilisateur\' />\'",$text);
$text = preg_replace("#\<citation=(.+)\>(.+)\</citation\>#isU","'<span class=\'citation\'>Citation :$1</span><div class=\'citation2\'>$2</div>\'",$text);
$text = preg_replace("#\<barre\>(.+)\</barre\>#isU","\'<span class=\'barre\'>$1</span>\'",$text);
$text = preg_replace("#\<italique\>(.+)\</italique\>#isU","'<span class=\'italique\'>$1</span>\'",$text);
$text = preg_replace("#\<gras\>(.+)\</gras\>#isU","\'<span class=\'gras\'>$1</span>\'",$text);
$text = preg_replace("#\<souligne\>(.+)\</souligne\>#isU","\'<span class=\'souligne\'>$1</span>\'",$text);
$text = preg_replace("#\<couleur=(.+)\>(.+)\<\/couleur\>#isU","\'<span class=\'$1\'>$2</span>\'",$text);
$text = preg_replace("#\<position=(.+)\>(.+)\</position\>#isU","\'<div class=\'$1\'>$2</div>\'",$text);
$text = preg_replace("#\<taille=(.+)\>(.+)\</taille\>#isU","\'<span class=\'$1\'>$2</span>\'",$text);
$text = preg_replace("#\<police=(.+)\>(.+)\</police\>#isU","\'<span class=\'$1\'>$2</span>\'",$text);
La la fenêtre dynamique s'ouvre bien mais le problème c'est l'affichage du corp du texte étant donné que j'ai \ les ' et " le texte s'affiche de cette facon :
'<span class='rouge'>'<span class='ttgros'>COUCOU</span>'</span>'
Il n'arrive pas à reconnaitre le css comme il y a toujours les '.
J'ai peut être fait une erreur dans ce que tu m'as dit.
En tout cas merci pour m'aider dans ce problème.
$text = preg_replace("#\<email=(.+)\>(.+)\</email\>#isU","\'<a href=\'mailto:$1\'>$2</a>\'",$text);
$text = preg_replace("#\<lien=(.+)\>(.+)\</lien\>#isU","\'<a href=\'$1\'>$2</a>\'",$text);
$text = preg_replace("#\<image\>(.+)\</image\>#isU","\'<img src=\'$1\' alt=\'image poster par utilisateur\' />\'",$text);
$text = preg_replace("#\<citation=(.+)\>(.+)\</citation\>#isU","'<span class=\'citation\'>Citation :$1</span><div class=\'citation2\'>$2</div>\'",$text);
$text = preg_replace("#\<barre\>(.+)\</barre\>#isU","\'<span class=\'barre\'>$1</span>\'",$text);
$text = preg_replace("#\<italique\>(.+)\</italique\>#isU","'<span class=\'italique\'>$1</span>\'",$text);
$text = preg_replace("#\<gras\>(.+)\</gras\>#isU","\'<span class=\'gras\'>$1</span>\'",$text);
$text = preg_replace("#\<souligne\>(.+)\</souligne\>#isU","\'<span class=\'souligne\'>$1</span>\'",$text);
$text = preg_replace("#\<couleur=(.+)\>(.+)\<\/couleur\>#isU","\'<span class=\'$1\'>$2</span>\'",$text);
$text = preg_replace("#\<position=(.+)\>(.+)\</position\>#isU","\'<div class=\'$1\'>$2</div>\'",$text);
$text = preg_replace("#\<taille=(.+)\>(.+)\</taille\>#isU","\'<span class=\'$1\'>$2</span>\'",$text);
$text = preg_replace("#\<police=(.+)\>(.+)\</police\>#isU","\'<span class=\'$1\'>$2</span>\'",$text);
La la fenêtre dynamique s'ouvre bien mais le problème c'est l'affichage du corp du texte étant donné que j'ai \ les ' et " le texte s'affiche de cette facon :
'<span class='rouge'>'<span class='ttgros'>COUCOU</span>'</span>'
Il n'arrive pas à reconnaitre le css comme il y a toujours les '.
J'ai peut être fait une erreur dans ce que tu m'as dit.
En tout cas merci pour m'aider dans ce problème.
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
8 avril 2009 à 16:59
8 avril 2009 à 16:59
Il y a des onequote (') en trop :
exemple :
$text = preg_replace("#\<police=(.+)\>(.+)\</police\>#isU","\'<span class=\'$1\'>$2</span>\'",$text);
devient
$text = preg_replace("#\<police=(.+)\>(.+)\</police\>#isU","<span class=\'$1\'>$2</span>",$text);
:)
exemple :
$text = preg_replace("#\<police=(.+)\>(.+)\</police\>#isU","\'<span class=\'$1\'>$2</span>\'",$text);
devient
$text = preg_replace("#\<police=(.+)\>(.+)\</police\>#isU","<span class=\'$1\'>$2</span>",$text);
:)
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
13
8 avril 2009 à 17:20
8 avril 2009 à 17:20
Les changement on été éffectués , j obtiens maintenant <span class='rouge'>couleur</span>
C'est toujours une erreur avec les regex ou sa vient de mon code JS.
un extrait du code :
function creer_fenetre(left,top,width,height,titre,texte,lien,fichier) {
alert(titre);
alert(texte);
//ON CREER LE MILIEU DE LA FENETRE
var milieu = document.createElement("div");
milieu.className="milieu";
var milieu_gauche = document.createElement("div");
milieu_gauche.className="milieu_gauche";
var milieu_droite = document.createElement("div");
milieu_droite.className="milieu_droite";
var milieu_centre = document.createElement("div");
milieu_centre.className="milieu_centre";
var milieu_centre_titre = document.createElement("div");
milieu_centre_titre.className="milieu_centre_titre";
var milieu_centre_commentaire = document.createElement("div");
milieu_centre_commentaire.className="milieu_centre_commentaire";
var milieu_centre_upload = document.createElement("div");
milieu_centre_upload.className="milieu_centre_upload";
var milieu_centre_fermer = document.createElement("div");
milieu_centre_fermer.className="milieu_centre_fermer";
//Création des div pour l'affichage de l'article ( sujet, corps, partage fichier, et bouton pour fermer)
milieu_centre.appendChild(milieu_centre_titre);
milieu_centre.appendChild(milieu_centre_commentaire);
milieu_centre.appendChild(milieu_centre_upload);
milieu_centre.appendChild(milieu_centre_fermer);
var titre_legend_corps = document.createTextNode("Corps");
var titre_legend_upload = document.createTextNode("Fichier joins");
//Création de la legend pour la mise en page du corps du texte
var legend_commentaire = document.createElement("legend");
legend_commentaire.className="legend_commentaire";
//Création du fieldset pour la mise en page du corps du texte
var contour_commentaire = document.createElement("fieldset");
contour_commentaire.className="contour_commentaire";
//Création de la legend pour la mise en page de l'upload
var legend_upload = document.createElement("legend");
legend_upload.className="legend_upload";
//Création du fieldset pour la mise en page de l'upload
var contour_upload = document.createElement("fieldset");
contour_upload.className="contour_upload";
var titre = document.createTextNode(titre);
var corps = document.createTextNode(texte); <<<<<---- Affichage de mon fameux texte
De plus je fait appel à bbcode.css dans ma page liste_article_membre.php
C'est toujours une erreur avec les regex ou sa vient de mon code JS.
un extrait du code :
function creer_fenetre(left,top,width,height,titre,texte,lien,fichier) {
alert(titre);
alert(texte);
//ON CREER LE MILIEU DE LA FENETRE
var milieu = document.createElement("div");
milieu.className="milieu";
var milieu_gauche = document.createElement("div");
milieu_gauche.className="milieu_gauche";
var milieu_droite = document.createElement("div");
milieu_droite.className="milieu_droite";
var milieu_centre = document.createElement("div");
milieu_centre.className="milieu_centre";
var milieu_centre_titre = document.createElement("div");
milieu_centre_titre.className="milieu_centre_titre";
var milieu_centre_commentaire = document.createElement("div");
milieu_centre_commentaire.className="milieu_centre_commentaire";
var milieu_centre_upload = document.createElement("div");
milieu_centre_upload.className="milieu_centre_upload";
var milieu_centre_fermer = document.createElement("div");
milieu_centre_fermer.className="milieu_centre_fermer";
//Création des div pour l'affichage de l'article ( sujet, corps, partage fichier, et bouton pour fermer)
milieu_centre.appendChild(milieu_centre_titre);
milieu_centre.appendChild(milieu_centre_commentaire);
milieu_centre.appendChild(milieu_centre_upload);
milieu_centre.appendChild(milieu_centre_fermer);
var titre_legend_corps = document.createTextNode("Corps");
var titre_legend_upload = document.createTextNode("Fichier joins");
//Création de la legend pour la mise en page du corps du texte
var legend_commentaire = document.createElement("legend");
legend_commentaire.className="legend_commentaire";
//Création du fieldset pour la mise en page du corps du texte
var contour_commentaire = document.createElement("fieldset");
contour_commentaire.className="contour_commentaire";
//Création de la legend pour la mise en page de l'upload
var legend_upload = document.createElement("legend");
legend_upload.className="legend_upload";
//Création du fieldset pour la mise en page de l'upload
var contour_upload = document.createElement("fieldset");
contour_upload.className="contour_upload";
var titre = document.createTextNode(titre);
var corps = document.createTextNode(texte); <<<<<---- Affichage de mon fameux texte
De plus je fait appel à bbcode.css dans ma page liste_article_membre.php
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
8 avril 2009 à 17:22
8 avril 2009 à 17:22
Pourriez-vous afficher votre texte à la sortie de la fonction bbcode, pour que je voies, merci
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
13
8 avril 2009 à 17:36
8 avril 2009 à 17:36
Il y a le bbcode du lien et de l'email qui fonctionne le reste affiche juste le mot rentrer en paramètre.
Cet affichage est fait dans la page liste_article_membre.php
Exemple :
dans la fenetre JS =>> <span class='souligne'>souligne</span>
dans la page php =>> souligne
dans la fenetre JS =>> <span class='barre'>barré</span>
dans la page php =>> barre
Voila l'affichage.
Je vous redonne ma fonction actuel de bbcode si cela peut vous servir :
<?php
function bbcode($text)
{
$text = preg_replace("#\<email=(.+)\>(.+)\</email\>#isU","<a href=\"mailto:$1\">$2</a>",$text);
$text = preg_replace("#\<lien=(.+)\>(.+)\</lien\>#isU","<a href=\'$1\'>$2</a>",$text);
$text = preg_replace("#\<image\>(.+)\</image\>#isU","<img src=\'$1\' alt=\"image poster par utilisateur\" />",$text);
$text = preg_replace("#\<citation=(.+)\>(.+)\</citation\>#isU","<span class=\'citation\'>Citation :$1</span><div class=\'citation2\'>$2</div>",$text);
$text = preg_replace("#\<barre\>(.+)\</barre\>#isU","<span class=\'barre\'>$1</span>",$text);
$text = preg_replace("#\<italique\>(.+)\</italique\>#isU","<span class=\'italique\'>$1</span>",$text);
$text = preg_replace("#\<gras\>(.+)\</gras\>#isU","<span class=\'gras\'>$1</span>",$text);
$text = preg_replace("#\<souligne\>(.+)\</souligne\>#isU","<span class=\'souligne\'>$1</span>",$text);
$text = preg_replace("#\<couleur=(.+)\>(.+)\<\/couleur\>#isU","<span class=\'$1\'>$2</span>",$text);
$text = preg_replace("#\<position=(.+)\>(.+)\</position\>#isU","<div class=\'$1\'>$2</div>",$text);
$text = preg_replace("#\<taille=(.+)\>(.+)\</taille\>#isU","<span class=\'$1\'>$2</span>",$text);
$text = preg_replace("#\<police=(.+)\>(.+)\</police\>#isU","<span class=\'$1\'>$2</span>",$text);
$text = strtr($text,array('''=>'\''));
$text = preg_replace("#\<code=php\>(.*)\</code\>#eUi","\'<div class=\'code\'>Code</div><div class=\'code2\'>'.highlight_string(html_entity_decode('$1'),true).'</div>\'",$text);
$text = preg_replace("#\<code=html\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = preg_replace("#\<code=c\+\+\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = preg_replace("#\<code=c\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = preg_replace("#\<code=javascript\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = preg_replace("#\<code=vb\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = preg_replace("#\<code=actionscript\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = nl2br($text);
return $text;
}
?>
Petite absence d'1h et je suis de retour, je n'abandonne pas le POST :)
Cet affichage est fait dans la page liste_article_membre.php
Exemple :
dans la fenetre JS =>> <span class='souligne'>souligne</span>
dans la page php =>> souligne
dans la fenetre JS =>> <span class='barre'>barré</span>
dans la page php =>> barre
Voila l'affichage.
Je vous redonne ma fonction actuel de bbcode si cela peut vous servir :
<?php
function bbcode($text)
{
$text = preg_replace("#\<email=(.+)\>(.+)\</email\>#isU","<a href=\"mailto:$1\">$2</a>",$text);
$text = preg_replace("#\<lien=(.+)\>(.+)\</lien\>#isU","<a href=\'$1\'>$2</a>",$text);
$text = preg_replace("#\<image\>(.+)\</image\>#isU","<img src=\'$1\' alt=\"image poster par utilisateur\" />",$text);
$text = preg_replace("#\<citation=(.+)\>(.+)\</citation\>#isU","<span class=\'citation\'>Citation :$1</span><div class=\'citation2\'>$2</div>",$text);
$text = preg_replace("#\<barre\>(.+)\</barre\>#isU","<span class=\'barre\'>$1</span>",$text);
$text = preg_replace("#\<italique\>(.+)\</italique\>#isU","<span class=\'italique\'>$1</span>",$text);
$text = preg_replace("#\<gras\>(.+)\</gras\>#isU","<span class=\'gras\'>$1</span>",$text);
$text = preg_replace("#\<souligne\>(.+)\</souligne\>#isU","<span class=\'souligne\'>$1</span>",$text);
$text = preg_replace("#\<couleur=(.+)\>(.+)\<\/couleur\>#isU","<span class=\'$1\'>$2</span>",$text);
$text = preg_replace("#\<position=(.+)\>(.+)\</position\>#isU","<div class=\'$1\'>$2</div>",$text);
$text = preg_replace("#\<taille=(.+)\>(.+)\</taille\>#isU","<span class=\'$1\'>$2</span>",$text);
$text = preg_replace("#\<police=(.+)\>(.+)\</police\>#isU","<span class=\'$1\'>$2</span>",$text);
$text = strtr($text,array('''=>'\''));
$text = preg_replace("#\<code=php\>(.*)\</code\>#eUi","\'<div class=\'code\'>Code</div><div class=\'code2\'>'.highlight_string(html_entity_decode('$1'),true).'</div>\'",$text);
$text = preg_replace("#\<code=html\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = preg_replace("#\<code=c\+\+\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = preg_replace("#\<code=c\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = preg_replace("#\<code=javascript\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = preg_replace("#\<code=vb\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = preg_replace("#\<code=actionscript\>(.*)\</code\>#isU","\'<div class=\'code\'>Code</div><div class=\'code2\'>$1</div>\'",$text);
$text = nl2br($text);
return $text;
}
?>
Petite absence d'1h et je suis de retour, je n'abandonne pas le POST :)
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
8 avril 2009 à 19:15
8 avril 2009 à 19:15
ouh je crois que je vois.
En fait textNode comme son nom l'indique c'est pour du texte, or votre texte étant du HTML il a besoin d'être interprété!
Il faut donc faire
document.createElement("div");
div.innerHTML = texte;
En fait textNode comme son nom l'indique c'est pour du texte, or votre texte étant du HTML il a besoin d'être interprété!
Il faut donc faire
document.createElement("div");
div.innerHTML = texte;
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
13
9 avril 2009 à 09:59
9 avril 2009 à 09:59
Merci NookZ, le problème était la.
Ca commence à prendre forme. Il y a encore quelque petite chose qui ne fonctionne pas.
J'ai l'impression que l'affichage ne prend pas en compte les retour à la ligne avec la touche entrée que j'ai fait pendant la création d'article.
Je continu de tester mes autres bbcode voir si tout passe bien.
Encore merci de ton aide NookZ
Ca commence à prendre forme. Il y a encore quelque petite chose qui ne fonctionne pas.
J'ai l'impression que l'affichage ne prend pas en compte les retour à la ligne avec la touche entrée que j'ai fait pendant la création d'article.
Je continu de tester mes autres bbcode voir si tout passe bien.
Encore merci de ton aide NookZ
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
9 avril 2009 à 10:22
9 avril 2009 à 10:22
Pour les retours à la ligne il faut remplacer les caractères \n par des <br/> très certainement :)
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
13
9 avril 2009 à 10:34
9 avril 2009 à 10:34
Héhé oui c'est bon j'ai ajouté $text = preg_replace ("#(\r|\n|\r\n)#isU","<br>", $text); dans ma fonction bbcode et ca marche nickel.
Je vais commencer à m'attaquer à l'affichage de l'upload maintenant.
Merci pour ton aide.
Je vais commencer à m'attaquer à l'affichage de l'upload maintenant.
Merci pour ton aide.
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
9 avril 2009 à 10:47
9 avril 2009 à 10:47
par contre il faut mettre <br/> et non <br> car dans la norme toutes les balises HTML doivent être fermées :)
beudet
Messages postés
122
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
24 février 2011
13
9 avril 2009 à 10:59
9 avril 2009 à 10:59
C'est fait :) merci