Ajouter fonction qui modifie BBCode en HTML

MyBnJmN Messages postés 1 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 14 avril 2009 - 14 avril 2009 à 01:36
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 - 14 avril 2009 à 11:26
Bonjour,

Mon problème est le suivant :

J'ai une page qui me permet de poster une news sur ma base de donnée.

J'ai un petit script pour faire du BBCode et à coté je peux le prévisualiser

J'enregistre donc le contenu au format BBCode dans la base de donnée mais j'aimerai l'afficher en HTML (comme sur ma prévisualisation) sur la page HOME qui contient les news.


J'ai choisi de stocker au format BBCode pour éviter de reconvertir lorsque je dois faire une modification.

Voici mon code de la page HOME qui va chercher les news dans la base de donnée pour les affiché

J'aimerai savoir comment ajouter la fonction javascript du prévisualisateur dans ma page PHP pour que le code BBCode soit modifier en HTML.

HOME.PHP
----------------
<?
function changedateusenfr($dateus) /* Fonction qui modifie l'affichage de la date stockée dans la BD au format initial AAAA-MM-JJ en un format plus adapté, soit JJ.MM.AA */
{
$datefr=$dateus{8}.$dateus{9}.".".$dateus{5}.$dateus{6}.".".$dateus{2}.$dateus{3};
return $datefr;
}

include("connect_bdd/seepaknet.php");

$donnees = mysql_query("SELECT * FROM news ORDER BY date_news DESC");

while($array = mysql_fetch_array($donnees))
{
$datefr=changedateusenfr($array['date_news']);
?>

<div class="news_titre"><? echo $array['titre_news'];?></div>
<div class="news_date"><i><? echo $datefr;?></i></div><br/>
<div class="news_corps"><? echo nl2br($array['text_news']);?></div><br/><br/><?
}

mysql_close();
?>
--------------



FONCTION JAVASCRIPT (surement à modifier je l'ai prise du preview)
-------

function preview(Name) {


var q1 = "<table align=center border=0 cellpadding=3 cellspacing=1 width=90%><tbody><tr><td><div align=\"left\" style=\"font-size : 11px; color: #000000;\"><b>";
var q2 = "</b></div></td></tr><tr><td align=\"left\" style=\"font-family: Arial; font-size: 11px; color: #444444; background-color: #FAFAFA; border: #D1D7DC; border-style: solid; border-width: 1px;\">";
var q3 = "</td></tr></tbody></table>";

var texte = document.getElementById(Name).value;

texte=texte.replace(/</g, '<');
texte=texte.replace(/>/g, '>');

texte=texte.replace(/\r\n|\r|\n/g, '<br />');
texte=texte.replace(/\[(b|u|s|i|\/b|\/u|\/s|\/i)]/g,'<$1>');

texte=texte.replace(/\[color=([^\[]*)\]/mig, '<span style=\'color:$1;\'>');
texte=texte.replace(/\[bgcolor=([^\[]*)\]/mig, '<span style=\'background-color:$1;\'>');
texte=texte.replace(/\[font=([^\[]*)\]/mig, '<span style=\'font-family:$1;\'>');
texte=texte.replace(/\[size=([^\[]*)\]/mig, '<span style=\'font-size:$1;\'>');
texte=texte.replace(/\[\/(color|bgcolor|font|size)\]/gi,'</span>');

texte=texte.replace(/\[align=([^\[]*)\]/mig, '<div style=\'text-align:$1;\'>');
texte=texte.replace(/\[\/align]/gi, '</div>');

texte=texte.replace(/\[code]/gi, '<div align="left" style="color:#000000;font-weight:bold; font-size: 11px;">Code :</div><div style="color:#333333;background-color:#F0F0F0;" align="left"><code lang="fr">');
texte=texte.replace(/\[\/code]/gi, '</code></div>');

texte=texte.replace(/\[quote]/gi, q1+'Citation:'+q2);
texte=texte.replace(/\[quote=([^\[]*)\]/gi, q1+'$1 a écrit :'+q2);
texte=texte.replace(/\[\/quote]/gi, q3);

texte=texte.replace(/\[url]([^\]]*)\[\/url]/mig,'<a href="$1" target="_blank">$1</a>');
texte=texte.replace(/\[url=([^\[]*)\]([^\]]*)\[\/url\]/mig, '<a href=\'$1\' target=\'_blank\'>$2</a>');
texte=texte.replace(/\[mail]([^\[]*)\[\/mail]/mig,'<a href="mailto:$1" target="_blank">$1</a>');
texte=texte.replace(/\[mail=([^\[]*)\]([^\]]*)\[\/mail\]/mig, '<a href=\'mailto:$1\' target=\'_blank\'>$2</a>');
texte=texte.replace(/\[img]([^\]]*)\[\/img]/mig,'<img src="$1" border="0" />');

texte=texte.replace(/\[list=([^\]]*)\](.+)\[\/list]/mig, '<ul type="$1">$2</ul>');
texte=texte.replace(/\[\*]([^\[]+)(?=(\[\*])|(<\/ul>))/mig, '<li>$1</li>');

texte=texte.replace(/\<br \/><\/ul>/gi, '</ul>');
texte=texte.replace(/<\/ul><br \/>/gi, '</ul>');

texte=texte.replace(/<div([^\>]*)><br \/>/gi, '<div $1>');
texte=texte.replace(/<\/div><br \/>/gi, '</div>');

texte=texte.replace(/<span([^\>]*)><br \/>/gi, '<span $1>');
texte=texte.replace(/(<\/span><br \/>|<br \/><\/span><br \/>|<br \/><\/span>)/gi, '</span>');

texte=texte.replace(/<td([^\>]*)><br \/>/gi, '<td $1>');
texte=texte.replace(/<\/table><br \/>/gi, '</table>');

texte=texte.replace(/<code([^\>]*)><br \/>/gi, '<code $1>');
texte=texte.replace(/(<\/code><br \/>|<br \/><\/code>|<br \/><\/code><br \/>)/gi, '</code>');

document.getElementById('Prev_'+Name).innerHTML = '<div class="bgpreview"><div class="preview">'+texte+'</div></div>';
return (texte);
}
----
A voir également:

1 réponse

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 514
14 avril 2009 à 11:26
Bonjour,

Je ne comprend pas le problème. Vous avez déjà une fonction de prévisualisation fonctionnelle?
Si tel est le cas, je vous conseille de la stocker dans un fichier fonctions.js qui regroupera les fonctions que vous pensez réutiliser dans diverses pages de votre site.
Vous l'insérer ensuite ainsi dans les page voulues, en ajoutant dans le head :
<SCRIPT LANGUAGE="Javascript" SRC="fonctions.js"> </SCRIPT>
2