Passer du bbcode dans un script javascript
Résolu
beudet
Messages postés
128
Statut
Membre
-
beudet Messages postés 128 Statut Membre -
beudet Messages postés 128 Statut Membre -
Bonjour,
Je vais essayer de vous présenter mon problème le plus clairement.
J'ai une page php ( liste_article_membre.php) qui affiche la liste des articles rentrés dans ma BD. Le corps du messages ai été écrit avec du bbcode. Pour pouvoir afficher le corps du messages quand on visualise l'article, je passe ma variable $texte dans une fonction bbcode pour parser. Puis je l'envoie dans une fonction JS qui m'affiche l'article dans une fenetre dynamique.
liste_article_membre.php
$id=$donnees_messages['id_page'];
$article=mysql_query("SELECT * FROM page WHERE id_page='$id'");
while ($donnees = mysql_fetch_array($article) )
{
$titre=$donnees['titre']; $texte=$donnees['commentaire'];
}
$texte=bbcode($texte);
$lien="../upload/capitaine.hadock";
$fichier="sitemap.ppx";
<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; ?>')" />
function bbcode
<?php
require("../include/config.php");
$result = mysql_query('SELECT * FROM bbcode');
while($row = mysql_fetch_array($result))
{
$text = preg_replace("$row[preg]","$row[replace]",$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;
}
?>
Mon problème je n'arrive pas à faire passer la variable text dans ma fonction créer_fenetre une fois qu'elle passe dans la fonction bbcode.
Je vais essayer de vous présenter mon problème le plus clairement.
J'ai une page php ( liste_article_membre.php) qui affiche la liste des articles rentrés dans ma BD. Le corps du messages ai été écrit avec du bbcode. Pour pouvoir afficher le corps du messages quand on visualise l'article, je passe ma variable $texte dans une fonction bbcode pour parser. Puis je l'envoie dans une fonction JS qui m'affiche l'article dans une fenetre dynamique.
liste_article_membre.php
$id=$donnees_messages['id_page'];
$article=mysql_query("SELECT * FROM page WHERE id_page='$id'");
while ($donnees = mysql_fetch_array($article) )
{
$titre=$donnees['titre']; $texte=$donnees['commentaire'];
}
$texte=bbcode($texte);
$lien="../upload/capitaine.hadock";
$fichier="sitemap.ppx";
<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; ?>')" />
function bbcode
<?php
require("../include/config.php");
$result = mysql_query('SELECT * FROM bbcode');
while($row = mysql_fetch_array($result))
{
$text = preg_replace("$row[preg]","$row[replace]",$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;
}
?>
Mon problème je n'arrive pas à faire passer la variable text dans ma fonction créer_fenetre une fois qu'elle passe dans la fonction bbcode.
A voir également:
- Passer du bbcode dans un script javascript
- Script vidéo youtube - Guide
- Passer de qwerty a azerty - Guide
- Passer a windows 10 - Accueil - Mise à jour
- Mas script - Accueil - Windows
- Passer un texte en majuscule - Guide
13 réponses
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.
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 ?:)
En utilisant $text=addslashes($text); ?
Je comprend pas bien
Je comprend pas bien
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)
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ?
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.
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
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 :)
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;
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