Bonjour,

J'aimerai afficher les derniers messages de mon forum sur la page d'accueil de mon site en mettant une couleur différente pour le fond une ligne sur deux ... un peu comme c'est fait sur la homepage de WRI mais je ne sais pas comment faire, peut être qu'il y a un tuto ou un bon topic qui parle de ce que je veux faire mais je n'ai pas trouvé
Salut !

Pourrais-tu nous donner un peu plus de détails sur ta demande ?

Est-ce simplement l'affichage avec les couleurs qui te pose problème ou le tout (sélection des X derniers messages etc...) ?

Quel script utilises-tu pour ton forum (phpBB, punBB...) ?

As-tu regardé sur le site de ton forum pour voir s'il n'existe pas déjà un "module" ou un "plugin" tout fait ?
Bonjour vespa,

Il suffit d'utiliser l'opérateur modulo.

Exemple en PHP ($i dans une boucle avec incrémentation) :


if ($i % 2 == 0)
{
// element html avec class="paire"
}
else
{
// element html avec class="impaire"
}


<edit>
24 avril 2007 - Solution plus élégante :

$class = ($i % 2 == 0) ? 'paire' : 'impaire';

puis à appliquer sur l'attribut class de l'élément voulu.
</edit>

Bonne continuation.
Romain
Modifié par yodaswii (24 Apr 2007 - 22:43)
Merci pour vos réponses à tous les deux.
Mon forum est phpbb j'ai bien déjà le code pour afficher les X derniers topics, c'était l'affichage avec une couleur différente une ligne sur deux qui me posait problème mais je pense qu'avec le code de yodaswii, je devrai y arriver Smiley cligne

Encore merci Smiley biggrin
Tu peux aussi utiliser un booléen, je ne sais pas quelle méthode est la moins gourmande en ressources (ça serait intéressant de tester ça, tiens).
Le booléen est particulièrement utile si tu utilises une boucle foreach

Ca donnerait :

$b = true;
foreach($tableau_contenant_tes_elements_a_afficher as $element)
{
// Ton traitement ici...

if($b)
// la class de ton élément sera 'rouge' par exemple
else
// la class de ton élément sera 'vert' par exemple

// On inverse la valeur du booléen :
$b = !$b;
}
salut !

en php je fais comme ca :


<?php
$couleurs = array('class1', 'class2');
$nb = count($couleurs);
?>
$i = 0;
while ( ... )
{
    echo '
    <tr class="'.$couleurs[$i%$nb].'">
        <td> ... </td>
    </tr>
    ';
}


avec le css qui va bien


.class1 { background:#333; }
.class2 { background:#666; }