Version actuelle
0.8.4.2
 

Forums

Un problème, une idée d'amélioration ?
C'est ici que ça se passe !

You are not logged in.

Announcement

Suivez l'actualité du développement de Hyla sur son blog : http://blog.hyla-project.org/

#1 2011-07-03 16:24:21

deathart
Membres
Registered: 2011-07-03
Posts: 8

Système de bbcode

Bonjour,

Voila je fait un site avec votre tpl !
Je voudrais faire un système de news avec bbcode!
Le problème c'est que tous s'affiche mais pas le bbcode !

Voici mon tpl:

Code:

  
            <!-- BLOCK::ON::News -->
            <div id="news">
                <div id="titre">
                    <div id="titreleft">
                        {$News.Titre}
                    </div>
                    <div id="titreright">
                        {$News.Auteur}/ {$News.Dates}
                    </div>
                </div>
                <div id="texte">
                   {$News.Message} 
                </div>
            </div>
            <!-- BLOCK::OFF::News -->

Ma fonction pour le bbcode:

Code:

<?php

class News{
    
    private $Table;

    public function __construct() {
        
        $this->Table = "News";
        
    }
    
    public function Affichage($Template) {

        $this->RequeteNewsMiniSQL =  mysql_query('SELECT * FROM '.$this->Table.' ORDER BY Dates DESC LIMIT 5') or die (mysql_error()) ;
        $this->message = array();
        while($this->ReponseNewsMiniSQL = mysql_fetch_array($this->RequeteNewsMiniSQL)) {
            
            $this->message = stripslashes($this->ReponseNewsMiniSQL['Message']); // On enl?ve les slash qui se seraient ajout?s automatiquement
            $this->message = htmlspecialchars($this->message); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
            $this->message = nl2br($this->message); // On cr?e des <br /> pour conserver les retours ? la ligne
            // Parsage du bbcode
            $this->message = preg_replace('#&lt;gras&gt;(.+)&lt;/gras&gt;#isU', '<strong>$1</strong>', $this->message); 
            $this->message = preg_replace('#&lt;italique&gt;(.+)\&lt;/italique&gt;#isU', '<em>$1</em>', $this->message); 
            $this->message = preg_replace('#&lt;barre&gt;(.+)\&lt;/barre&gt;#isU', '<del>$1</del>', $this->message); 
            $this->message = preg_replace('#&lt;lien url=(.+?)&gt;(.+?)\&lt;/lien\&gt;#isU', '<a href="$1" title="$2" target="_blank">$2</a>', $this->message); 
            $this->message = preg_replace('#&lt;images&gt;(.+)\&lt;/images\&gt;#isU', '<img src="$1" alt="Image" />', $this->message); 
            $this->message = preg_replace('#&lt;citation nom=(.+?)&gt;(.+?)\&lt;/citation\&gt;#isU', "<table border= \"1\" width=\"100%\"><tr><th align=\"left\">Citation de: $1</th></tr><tr><td align=\"left\">$2</td></tr></table>", $this->message);
            $this->message = preg_replace('#&lt;color=(.+?)&gt;(.+?)\&lt;/color\&gt;#isU', '<span style="color:$1;">$2</span>', $this->message);
            $this->message = preg_replace('#&lt;ttpetit&gt;(.+)\&lt;/ttpetit\&gt;#isU', '<span style="font-size: 7px">$1</span>', $this->message); 
            $this->message = preg_replace('#&lt;tpetit&gt;(.+)\&lt;/tpetit\&gt;#isU', '<span style="font-size: 12px">$1</span>', $this->message); 
            $this->message = preg_replace('#&lt;petit&gt;(.+)\&lt;/petit\&gt;#isU', '<span style="font-size: 15px">$1</span>', $this->message); 
            $this->message = preg_replace('#&lt;gros&gt;(.+)\&lt;/gros\&gt;#isU', '<span style="font-size: 20px">$1</span>', $this->message); 
            $this->message = preg_replace('#&lt;tgros&gt;(.+)\&lt;/tgros\&gt;#isU', '<span style="font-size: 30px">$1</span>', $this->message); 
            $this->message = preg_replace('#&lt;ttgros&gt;(.+)\&lt;/ttgros\&gt;#isU', '<span style="font-size: 40px">$1</span>', $this->message);
            $this->message = preg_replace('#&lt;ttgros&gt;(.+)\&lt;/ttgros\&gt;#isU', '<span style="font-size: 40px">$1</span>' , $this->message);
        $this->message = preg_replace('#\&lt;align=(left|center|right)\&gt;(.+)\&lt;/align\&gt;#isU', '<div style="float:$1">$2</span>', $this->message);
            $this->message = preg_replace('#\&lt;color=(red|green|blue|yellow|purple|olive)\&gt;(.+)\&lt;/color\&gt;#isU', '<span style="color:$1">$2</span>', $this->message);
            // parsage des smilies
        $smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-?');
        $smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
        $smiliesPath = "http://www.siteduzero.com/Templates/images/smilies/";
    
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $this->message = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" title="'. $smiliesName[$i] .'" alt="smiley" />', $this->message);
            }
        
            $Template->setVar('News', $this->ReponseNewsMiniSQL );
            $Template->render('News');
        }
    }
    
    public function Pagination($Template) {
        
        
        
    }
    
}
?>

Et la page qui réuni tous:

Code:

<?php
$Template->importFile('Index/accueil.tpl');

$News = new News;
$News -> Affichage($Template);

echo $Template->render();
?>

Avec toute c'est ligne ça donne ca:

Code:

Adresse du serveur : 91.121.5.153
http://img.root-top.com/topsite/topminecraftfr/banner.gif http://minecraft-serveurs.fr/button.php?u=Darkblue http://www.rpg-paradize.com/vote.gif
http://minestatus.net/4835-extazya-project.png http://www.serveurs-minecraft.org/default/images/logo.png

Est ce qui à dans la base de donnés :

Code:

Adresse du serveur : <gras>91.121.5.153</gras><br />
<lien url="http://www.root-top.com/topsite/topminecraftfr/in.php?ID=1"><images>http://img.root-top.com/topsite/topminecraftfr/banner.gif</images></lien>
<lien url="http://minecraft-serveurs.fr/"><images>http://minecraft-serveurs.fr/button.php?u=Darkblue</images></lien>
<lien url="http://www.rpg-paradize.com/?page=vote&amp;vote=25717"><images>http://www.rpg-paradize.com/vote.gif</images></lien>
<br /> 
<lien url="http://minestatus.net/4835-extazya-project/vote"><images>http://minestatus.net/4835-extazya-project.png</images></lien>
<lien url="http://www.serveurs-minecraft.org/vote.php?id=2172"><images>http://www.serveurs-minecraft.org/default/images/logo.png</images></lien>
<br />

Voila c'est compliquer je c'est hmm ^^
Pour toute question, et merci d'avoir lu

Offline

 

#2 2011-07-04 09:53:41

hugo
Administrateur
Registered: 2007-04-10
Posts: 807

Re: Système de bbcode

Bonjour,

déjà, tes déclarations de blocs sont pas bonnes; commence par corriger cela en prenant exemple sur la doc : http://tpl.hyla-project.org/fr/documentation#bloc

++

Offline

 

#3 2011-07-04 11:02:33

deathart
Membres
Registered: 2011-07-03
Posts: 8

Re: Système de bbcode

Si elle sont bonne puisque tous s'affiche correctement , (modifier aussi dans le fichier template)
C'est juste le parsage du bbcode

Offline

 

#4 2011-07-04 11:05:54

hugo
Administrateur
Registered: 2007-04-10
Posts: 807

Re: Système de bbcode

deathart wrote:

Si elle sont bonne puisque tous s'affiche correctement , (modifier aussi dans le fichier template)
C'est juste le parsage du bbcode

Tu as modifié la lib Hyla_Tpl ?

Ton problème ne semble pas venir de Hyla_Tpl donc ?

Offline

 

#5 2011-07-04 11:09:12

deathart
Membres
Registered: 2011-07-03
Posts: 8

Re: Système de bbcode

Exactement ^^ (ps j'ai modifier que ca et que pour mo :p )
Aucun problème du système de tpl, c'est juste mon parsage
http://minecraft.extazya-project.fr/?Page=Accueil regardez par vous meme il y a aucune erreur !
il affiche la news mais comme dans ma fonction il y a

Code:

$Template->setVar('News', $this->ReponseNewsMiniSQL );
            $Template->render('News');

il prend que ca et pas

Code:

$this->message = stripslashes($this->ReponseNewsMiniSQL['Message']); // On enl?ve les slash qui se seraient ajout?s automatiquement
            $this->message = htmlspecialchars($this->message); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
            $this->message = nl2br($this->message); // On cr?e des <br /> pour conserver les retours ? la ligne
            // Parsage du bbcode
            $this->message = preg_replace('#&lt;gras&gt;(.+)&lt;/gras&gt;#isU', '<strong>$1</strong>', $this->message); 
            $this->message = preg_replace('#&lt;italique&gt;(.+)\&lt;/italique&gt;#isU', '<em>$1</em>', $this->message); 
            $this->message = preg_replace('#&lt;barre&gt;(.+)\&lt;/barre&gt;#isU', '<del>$1</del>', $this->message); 
            $this->message = preg_replace('#&lt;lien url=(.+?)&gt;(.+?)\&lt;/lien\&gt;#isU', '<a href="$1" title="$2" target="_blank">$2</a>', $this->message); 
            $this->message = preg_replace('#&lt;images&gt;(.+)\&lt;/images\&gt;#isU', '<img src="$1" alt="Image" />', $this->message); 
            $this->message = preg_replace('#&lt;citation nom=(.+?)&gt;(.+?)\&lt;/citation\&gt;#isU', "<table border= \"1\" width=\"100%\"><tr><th align=\"left\">Citation de: $1</th></tr><tr><td align=\"left\">$2</td></tr></table>", $this->message);
            $this->message = preg_replace('#&lt;color=(.+?)&gt;(.+?)\&lt;/color\&gt;#isU', '<span style="color:$1;">$2</span>', $this->message);
            $this->message = preg_replace('#&lt;ttpetit&gt;(.+)\&lt;/ttpetit\&gt;#isU', '<span style="font-size: 7px">$1</span>', $this->message); 
            $this->message = preg_replace('#&lt;tpetit&gt;(.+)\&lt;/tpetit\&gt;#isU', '<span style="font-size: 12px">$1</span>', $this->message); 
            $this->message = preg_replace('#&lt;petit&gt;(.+)\&lt;/petit\&gt;#isU', '<span style="font-size: 15px">$1</span>', $this->message); 
            $this->message = preg_replace('#&lt;gros&gt;(.+)\&lt;/gros\&gt;#isU', '<span style="font-size: 20px">$1</span>', $this->message); 
            $this->message = preg_replace('#&lt;tgros&gt;(.+)\&lt;/tgros\&gt;#isU', '<span style="font-size: 30px">$1</span>', $this->message); 
            $this->message = preg_replace('#&lt;ttgros&gt;(.+)\&lt;/ttgros\&gt;#isU', '<span style="font-size: 40px">$1</span>', $this->message);
            $this->message = preg_replace('#&lt;ttgros&gt;(.+)\&lt;/ttgros\&gt;#isU', '<span style="font-size: 40px">$1</span>' , $this->message);
        $this->message = preg_replace('#\&lt;align=(left|center|right)\&gt;(.+)\&lt;/align\&gt;#isU', '<div style="float:$1">$2</span>', $this->message);
            $this->message = preg_replace('#\&lt;color=(red|green|blue|yellow|purple|olive)\&gt;(.+)\&lt;/color\&gt;#isU', '<span style="color:$1">$2</span>', $this->message);
            // parsage des smilies
        $smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '&gt;_&lt;', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-?');
        $smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
        $smiliesPath = "http://www.siteduzero.com/Templates/images/smilies/";
    
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $this->message = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" title="'. $smiliesName[$i] .'" alt="smiley" />', $this->message);
            }

Offline

 

#6 2011-07-04 11:27:11

hugo
Administrateur
Registered: 2007-04-10
Posts: 807

Re: Système de bbcode

C'est normal que cela ne fonctionne pas, tu fais tes modifs sur la variable $this->message et tu donnes au moteur de tpl le pointeur $this->ReponseNewsMiniSQL

affiche le contenu de  $this->message avec un echo, normalemenent, tu verras les bonnes valeurs bbcode parsées...

Offline

 

#7 2011-07-04 11:30:47

deathart
Membres
Registered: 2011-07-03
Posts: 8

Re: Système de bbcode

Oui mais dans le tpl, que dois-je mettre ? seulement  {$message} ?

Offline

 

#8 2011-07-04 11:34:44

deathart
Membres
Registered: 2011-07-03
Posts: 8

Re: Système de bbcode

Il affiche bien le bbcode choisi mais comment le faire afficher dans mon tpl ?

Offline

 

#9 2011-07-04 12:07:15

hugo
Administrateur
Registered: 2007-04-10
Posts: 807

Re: Système de bbcode

Remplace $Template->setVar('News', $this->ReponseNewsMiniSQL ); par :

Code:

$msg['Titre'] = $this->ReponseNewsMiniSQL['Titre'];
$msg['Auteur'] = $this->ReponseNewsMiniSQL['Auteur'];
$msg['Dates'] = $this->ReponseNewsMiniSQL['Dates'];
$msg['Message'] = $this->message;

$Template->setVar('News', $msg);

Offline

 

#10 2011-07-04 12:16:03

deathart
Membres
Registered: 2011-07-03
Posts: 8

Re: Système de bbcode

TOUS MARCHE merci infiniement !

Offline

 

#11 2011-07-04 12:19:12

hugo
Administrateur
Registered: 2007-04-10
Posts: 807

Re: Système de bbcode

Cool, par contre, revois un peu le code car c'est pas super clean...

Offline

 

#12 2011-07-04 12:52:07

deathart
Membres
Registered: 2011-07-03
Posts: 8

Re: Système de bbcode

Ce que tu m'a donnés ? ou mon ancien ?

Offline

 

#13 2011-07-04 13:03:47

hugo
Administrateur
Registered: 2007-04-10
Posts: 807

Re: Système de bbcode

ton ancien

Offline

 

#14 2011-07-04 13:08:38

deathart
Membres
Registered: 2011-07-03
Posts: 8

Re: Système de bbcode

Ah, je debute en poo ^^ je suis une vrai ***

Offline

 

Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson