Créer un compte
Connexion

PRobleme parsage sur la page index

Pour créer et répondre aux sujets, vous devez être connecté.
Ce sujet est résolu.
Pages: 1
Auteur Message
momolamasse
22/04/2010 à 19:36:00
momolamasse
Membre
Bonjour depuis quelques jour je n'arrive pas à afficher le BBcode en HTML je voudrais qu'il soi traduis puis affiché.

voici les scripts de la page où son affiché les news qui devraient être traduites
index.php
<?php
mysql_connect("", "", "");
mysql_select_db("");
// On récupère les 5 dernières news
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
while ($donnees = mysql_fetch_array($retour))
{
?>
<div class="news">
    <h3>
        <?php echo $donnees['titre']; ?>
        <em>le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></em>
    </h3>
   
    <p>
    <?php
    include("admin/view.php");
    $contenu = parseZCode($contenu);
   

// On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
    $contenu = nl2br(stripslashes($donnees['contenu']));
    echo $contenu($parseZCode);
    ?>
    </p>
</div>


<?php
} // Fin de la boucle des news
?>
 

La page du BBcode
view.php
<?php

function parseZCode($contenu) {
        // Parsage des balises
        $zcode = array(  
                '`&lt;italique&gt;(.+)&lt;/italique&gt;`isU',  
                '`&lt;gras&gt;(.+)&lt;/gras&gt;`isU',
                '`&lt;barre&gt;(.+)&lt;/barre&gt;`isU',
                '`&lt;lien&gt;(.+)&lt;/lien&gt;`isU',
                '`&lt;lien url=&quot;(.+)&quot;&gt;(.+)&lt;/lien&gt;`isU',
                '`&lt;image&gt;(.+)&lt;/image&gt;`isU',
                '`&lt;citation&gt;(.+)&lt;/citation&gt;`isU',
                '`&lt;citation nom=&quot;(.+)&quot;&gt;(.+)&lt;/citation&gt;`isU',
                '`&lt;citation lien=&quot;(.+)&quot;&gt;(.+)&lt;/citation&gt;`isU',
                '`&lt;taille valeur=&quot;(.+)&quot;&gt;(.+)&lt;/taille&gt;`isU'
        );  
       
        $html = array(  
                '<em>$1</em>',  
                '<strong>$1</strong>',
                '<del>$1</del>',
                '<a href="$1">$1</a>',
                '<a href="$1">$2</a>',
                '<img src="$1" alt="Image utilisateur" />',
                '<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                '<span class="$1">$2</span>'
        );
       
        $contenu = htmlspecialchars($contenu);
        $contenu = preg_replace($zcode, $html, $contenu);
       
        // parsage des smilies
        $smiliesName = array(':sourire:',':malheureu:',':moustache:',':lunette:',':lunette2:',':hum:',':aventure:');
        $smiliesUrl  = array('sourire.gif', 'malheureu.gif', 'souriremoustache.gif', 'sourirelunette.gif', 'sourirelunette2.gif', 'hum.gif','aventurier.gif');
        $smiliesPath = "textarea/";
       
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $contenu = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $contenu);
        }
       
        // Rtours à la ligne
        $contenu = preg_replace('`\n`isU', '<br />', $contenu);
       
        return $contenu;

}

if (isset($_POST["string"])) {
        $content = $_POST["string"];
       
        if (get_magic_quotes_gpc()) {
                $content = stripslashes($content);
        }

        echo parseZCode($content); // Ecriture du contenu parsé.
}
?>

 

Les liens sont bon mais le message d'erreur suivant s'affiche et l'include de mon pied de page ne marche pas avec ce code
"Fatal error: Call to undefined function < g r a s>dgdfgdfgdfg </g r a s > () in /home/sites/hebfree.org/bricktown/public_html/index.php on line 69
" (j'ai espacé les lettres de la balise gras sinon votre BBcode fesait effet.

ybouane
22/04/2010 à 23:09:56
ybouane
Admin
Bonjour,
dans ton fichier index.php
modifie:
echo $contenu($parseZCode); par:
echo parseZCode($contenu);
Cordialement :)

Image
momolamasse
23/04/2010 à 17:53:43
momolamasse
Membre
Alors la vraiment un tres tres grand merci car je ne trouvais pas de solution au probleme.

Vraiment merci bravo j'ai posté ma reponse hier et j'ai eu la bonne reponse alors que sur le site du zero je l'avais posté il y a longtemps et il n'ont toujours pas trouvé la solution.

vraiment merci vous fêtes un tres beau boulot.

momolamasse
25/04/2010 à 09:39:22
momolamasse
Membre
Maintenant j'ai un petit probleme qui se pose, quand je saute ou passe une ligne dans le textarea de postage j'ai les <br /> qui s'affiche sur l'index où son affiché les news. Pourtant j'avais rendu les balises html inofensive.

ybouane
26/04/2010 à 17:01:30
ybouane
Admin
Bonjour,
je ne suis pas sûr de bien comprendre, quand tu dis que les <br /> sont affiché, tu veut dire que les sauts sont pris en compte ou que tu voir d'écrit sur ta page des <br />
donc pour le premier cas ça donne ça:
Quote: Exemple 1
Ligne 1
Ligne 2
Et le deuxième
Quote: Exemple 2
Ligne 1<br />Ligne 2
ou encore
Quote: Exemple 3
Ligne 1<br />
Ligne 2

Je crois que c'est le dernier cas, essaye en modifiant la ligne:
$contenu = nl2br(stripslashes($donnees['contenu'])); par:
$contenu = stripslashes($donnees['contenu']);
si ce n'est pas ça, peut-tu préciser.
Cordialement :)

Image
momolamasse
26/04/2010 à 18:37:39
momolamasse
Membre
Merci s'etait la 3eme situation.

Je savais que c'etait de ce côté que sa plantait mais pas avoir une correction.

Merci


Pages: 1