Partage
  • Partager sur Facebook
  • Partager sur Twitter

bbcode

encore un ...

Sujet résolu
    3 décembre 2006 à 7:26:48

    Bonjour a toutes et a tous.

    Je sais ce que vous pensez encore un qui ouvre un topic pour ca. :p

    Oui mais je suis pas tres doue et en plus ca fait des heures que je cherche mais ca fonctionne pas. :-°

    J'ai donc inserer un petit script de news sur mon site (qui n'est pas de moi) et j'ai voulu inserer du bbcode.

    J'arrive parfaitement a ecrire ma news avec le bbcode, le probleme est sur la page ou ma news apparait. La news est sous la forme [b]mot[/b].

    En parcourant le forum j'ai compris qu'il y avait une fontion bbcode pour retourner ma news correctement. Le probleme c'est que j'arrive pas a m'en servir :-° .

    Je vous donne mon code pour rediger mes news:



    <form name="news" action="admin.php" method="post">
    <input type="button" value="b" style="width:50px;font-weight:bold" onclick="storeCaret('b')">
    <input type="button" value="i" style="width:50px;font-style:italic" onclick="storeCaret('i')">
    <input type="button" value="u" style="width:50px;text-decoration:underline" onclick="storeCaret('u')">
    <input type="button" value="quote"style="width:50px" onclick="storeCaret('quote')">
    <input type="button" value="code"style="width:50px" onclick="storeCaret('code')">
    <input type="button" value="url"style="width:50px" onclick="storeCaret('url')">
    <input type="button" value="img"style="width:50px" onclick="storeCaret('img')"><br>





    <?php

    if(!isset($_SESSION['ident'])) {
        $_SESSION['ident'] = false ;
    }

    require_once('config.php');

    $db_link = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASS);
    mysql_select_db(SQL_BDD);

    if(isset($_POST)) {
        foreach($_POST as $k => $v) {
            $_POST[$k] = trim(htmlspecialchars($v)) ;
        }
    }
    if(isset($_GET)) {
        foreach($_GET as $k => $v) {
            $_GET[$k] = trim(htmlspecialchars($v)) ;
        }
    }

    //print'<style type="text/css"> @import url(css-capnews.css); </style>';

    if(isset($_POST['login']) && $_POST['login'] == LOGIN
        && isset($_POST['pass']) && $_POST['pass'] == PASS) {
        $_SESSION['ident'] = true ;
    }

    if($_SESSION['ident'] == false) {
        print ' <div id="cap_cadre"><br /><br /><strong>Identification</strong>
        <form action="admin.php" method="post">
        Login<br />
        <input type="text" name="login" size="25" /><br />
        Password<br />
        <input type="password" name="pass" size="25" /><br />
        <input type="submit" value="Valider" /></form></div>'
    ;
    }
    elseif($_SESSION['ident'] == true) {
       
        if(isset($_POST['send'])) {
            if($_POST['send'] == 'new') {
            $sql = "INSERT INTO cap_news (auteur,date,titre,news,active)
            values
            ('"
    .$_POST['auteur']."',now(),'".$_POST['titre']."','".$_POST['news']."','1')";
            }
            elseif($_POST['send'] == 'update') {
            $sql = 'update cap_news set titre = "'.$_POST['titre'].'", auteur =
            "'
    .$_POST['auteur'].'", news = "'.$_POST['news'].'", date =
            "'
    .$_POST['date'].'" WHERE newsId = "'.$_POST['newsId'].'"';
            }
            mysql_query($sql,$db_link) or die(mysql_error());
        }
        if(isset($_GET['delete']) and is_numeric($_GET['delete'])) {
           mysql_query("delete from cap_news where newsId =
           \"
    ".$_GET['delete']."\"",$db_link);
           header("location: admin.php");       
        }
           
        if(isset($_GET['edit']) and is_numeric($_GET['edit'])) {
            $Id = $_GET['edit'] ;
            $sql = 'SELECT * FROM cap_news WHERE newsId = "'.$Id.'" LIMIT 1' ;
            $rc = mysql_query($sql,$db_link);
            while($data = mysql_fetch_array($rc)) {
                print '<div id="cap_cadre">
                <form action="admin.php" method="post">
                <strong>Modification d\'
    une news :</strong><br /><br />
                Titre<br />
                <input type="text" name="titre" maxlength="120"
                value="'.htmlentities($data['titre']).'"/><br />
                Auteur<br />
                <input type="text" name="auteur" maxlenght="60"
                value="'.htmlentities($data['auteur']).'" /><br />
                Date de la News<br />
                <input type="text" name="date" size="10" value="'.$data['date'].'" />
                News (sans html)<br />
                <textarea name="news" cols="40"
                rows="6">'.htmlentities($data['news']).'</textarea>
                <br /><input type="submit" value="Valider" />
                <input type="hidden" name="newsId" value="'.$_GET['edit'].'" />
                <input type="hidden" name="send" value="update" />
                </form>
                <hr /><br />';
            }
                   
        }
        else {
            echo '
    <div id="gnews">
           
            <strong>Ajouter une news :</strong><br /><br />
            Titre<br />
            <input type="text" name="titre" maxlength="120" /><br />
            Auteur<br />
            <input type="text" name="auteur" maxlenght="60" /><br />
            News (sans html)<br />
            <textarea name="news" id="newst" rows="10" wrap="virtual" cols="45"></textarea>
            <br /><input type="submit" value="Valider" />
            <input type="hidden" name="send" value="new" />
            </form>
            <hr /><br /
                   
           
                    <strong>Gestion des News :</strong><br /><br /><ul>';
            $sql = '
    SELECT * FROM cap_news ORDER BY newsId DESC' ;
            $rc = mysql_query($sql,$db_link);
            while($data = mysql_fetch_array($rc)) {
            echo '
    <li>
                Le '.$data['date'].' par '.$data['auteur'].', Titre : '.$data['titre'].'
                <br /> <a href="?delete='.$data['newsId'].'">Supprimer</a> -
                <a href="?edit='.$data['newsId'].'">Editer</a></li>
                ';
            }
            echo'
    </ul>' ;
        }
        echo'
    </div>';
    }
    ob_end_flush();
    ?>

     


    Puis voici mon code pour qu'apparaisse ma news :



    <?php
    //Connexion ?la base de donnée
    $db_link = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASS);
    mysql_select_db(SQL_BDD);

    //Recupération des 'LIMIT_NEWS'(fichier de config) dernière news
    $sql = 'SELECT * FROM cap_news ORDER BY newsId DESC LIMIT '.LIMIT_NEWS.'';

    $rc = mysql_query($sql);

    while($data = mysql_fetch_array($rc)) {
    //remplacement du '\n' par '<br />'
    $data['news']str_replace("\n","<br />", $data['news']);

    //On Affiche ou pas l'Auteur et la Date (fichier de config)
    if(SHOW_DATE == 'yes')
    ?>



                    <div id="titre"> <!-- Titre des news -->
                    <? echo ''.$data['titre'].'<br />'; ?>
                    </div>

                    <div id="date"> <!-- Date plus auteur de la news -->
                    <?php   { echo 'le  '.$data['date'].', '; }  ?>
                    <? if(SHOW_AUTEUR == 'yes') ?>
                    <? { echo 'par  '.$data['auteur'].'<br/><br/>'; }?>
                    </div>
                   
                    <div id="news"> <!-- La news elle meme -->
                    <? echo ''.$data['news'].'<br /><br />';   } ?>



    Voila :D . Merci pour votre aide en tous les cas ;)
    • Partager sur Facebook
    • Partager sur Twitter
      3 décembre 2006 à 8:16:51

      Merci j'y vais de ce pas. :D
      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2006 à 8:48:54

        Si tu a des probleme avec les regex envoie moi un MP.
        Mais normalement pour ce que tu veux faire c'ets pas très compliquer (en plus y'a meme un exemple^^).
        • Partager sur Facebook
        • Partager sur Twitter
          3 décembre 2006 à 9:22:14

          Je suis donc alle voir le tuto. :p

          Je pense avoir compris le systeme des regex, du moins le principe. :)

          Mais le probleme je n'arrive pas a l'adapter. Dans mon cas j'ai remplace les $texte par des $news. Mais rien ... :euh:

          En fait si je veux etre plus realiste je suis un gros boulet qui comprend rien un debutant qui arrive pas a l'adpater avec mes pages. :(

          Mais merci de ton aide Ulriel. Mais je baisse pas les bras je retourne a mes regex :lol:
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            3 décembre 2006 à 9:28:00

            Essaye d'apprendre au moins tout le cours PHP
            • Partager sur Facebook
            • Partager sur Twitter
              3 décembre 2006 à 13:12:05

              Citation : be090129

              Je suis donc alle voir le tuto. :p

              Je pense avoir compris le systeme des regex, du moins le principe. :)

              Mais le probleme je n'arrive pas a l'adapter. Dans mon cas j'ai remplace les $texte par des $news. Mais rien ... :euh:

              En fait si je veux etre plus realiste je suis un gros boulet qui comprend rien un debutant qui arrive pas a l'adpater avec mes pages. :(

              Mais merci de ton aide Ulriel. Mais je baisse pas les bras je retourne a mes regex :lol:


              Ulried ^^

              Et sinon oui le plus dur et d'evidament l'adapter.
              Et comme dit Arnaud lis les cours de PHP : Mais je pense que tu les a déjà lus parce que sinon ... t'ataquer aux regex sans comprendre ce qu'est php je te souhaite bon courage ^^.
              Voila, commence aussi les regex par le 1er Chapitre je t'est donné le dernier mais essaye de voir plus avant si tu ty perd un peux...
              • Partager sur Facebook
              • Partager sur Twitter
                3 décembre 2006 à 14:38:20

                Voici un petit exemple rapide:

                En début de page qui affiche tes news:
                function BBcode($txt){

                 $in = array(
                  '`\[b\](.*)\[/b\]`isU',
                  '`\[i\](.*)\[/i\]`isU',
                  '`\[u\](.*)\[/u\]`isU'
                 );

                 $out = array(
                  '<b>$1</b>',
                  '<i>$1</i>',
                  '<u>$1</u>'
                 );

                 return preg_replace($in, $out, $txt);
                }


                Ensuite, remplace:
                <? echo ''.$data['news'].'<br /><br />';   } ?>

                par:
                <? echo ''.BBcode($data['news']).'<br /><br />';   } ?>
                • Partager sur Facebook
                • Partager sur Twitter
                Erreur PDO - Installation Wamp - Docs PHP et MYSQL.
                  3 décembre 2006 à 16:18:05

                  Eh bien merci beaucoup B-dav. :D

                  Ca fonctionne parfaitement bien. J'etais bien loin de la solution

                  Encore merci a toi. ;)

                  • Partager sur Facebook
                  • Partager sur Twitter

                  bbcode

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown