dayassine Posté 25 Juillet 2007 Posté 25 Juillet 2007 Bonjour, j'ai besoin d'une aide svp J'utilise punbb comme forum et j'ai crée une page http://www.bladitour.fr/forum/dernier-post.php qui met les 10 derniers post du forum. Je voudrais alternet la couleur des lignes, je trouve quelque code mais je sais pas ou les inserer. voila le code de ma page si ca pourrait aider <?php//-------------------------------------------------////--Fonctions pour recuperer les messages recents--////-------------------------------------------------//define('PUN_ROOT', './');require PUN_ROOT.'include/common.php';//requete pour récuperer le nombre de ligne$sql = 'SELECT t.id FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.moved_to IS NULL ORDER BY t.posted DESC LIMIT 0,10';$result = $db->query($sql) or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());$num_hits = $db->num_rows($result);$search_ids = array(); while ($row = $db->fetch_row($result)) $search_ids[] = $row[0];$db->free_result($result);$search_results = implode(',', $search_ids);//requete pour récuperer les derniers messages$sql = 'SELECT t.id AS tid, t.poster, t.subject, t.last_post, t.last_post_id, t.last_poster, t.num_replies, t.closed, t.forum_id FROM '.$db->prefix.'topics AS t WHERE t.id IN('.$search_results.') ORDER BY t.last_post';$result = $db->query($sql) or error('Unable to fetch search results', __FILE__, __LINE__, $db->error());$search_set = array(); while ($row = $db->fetch_assoc($result)) $search_set[] = $row;?> <div id="vf" class="blocktable"> <h2><span>Discussions récents</span></h2> <div class="box"> <div class="inbox"> <table cellspacing="0" border="1"> <thead> <tr> <th class="tcl" scope="col"><?php echo $lang_common['Topic']; ?></th> <th class="tc2" scope="col"><?php echo $lang_common['Forum'] ?></th> <th class="tc3" scope="col"><?php echo $lang_common['Replies'] ?></th> <th class="tcr" scope="col"><?php echo $lang_common['Last post'] ?></th> </tr> </thead> <tbody> <? // Fetch the list of forums $result = $db->query('SELECT id, forum_name FROM '.$db->prefix.'forums') or error('Unable to fetch forum list', __FILE__, __LINE__, $db->error()); $forum_list = array(); while ($forum_list[] = $db->fetch_row($result)) ; // Finally, lets loop through the results and output them for ($i = count($search_set)-1; $i >=0; $i--) { _AT_reset($forum_list); while (list(, $temp) = _AT_each($forum_list)) { if ($temp[0] == $search_set[$i]['forum_id']) $forum = '<a href="viewforum.php?id='.$temp[0].'">'.pun_htmlspecialchars($temp[1]).'</a>'; } $icon = '<div class="icon"><div class="nosize">'.$lang_common['Normal icon'].'</div></div>'."\n"; $icon_text = $lang_common['Normal icon']; $item_status = ''; $icon_type = 'icon'; $subject = '<a href="viewtopic.php?id='.$search_set[$i]['tid'].'">'.pun_htmlspecialchars($search_set[$i]['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($search_set[$i]['poster']).'</span>'; if ($search_set[$i]['closed'] != '0') { $icon_text = $lang_common['Closed icon']; $item_status = 'iclosed'; } if (!$pun_user['is_guest'] && $search_set[$i]['last_post'] > $pun_user['last_visit']) { $icon_text .= ' '.$lang_common['New icon']; $item_status .= ' inew'; $icon_type = 'icon inew'; $subject = '<strong>'.$subject.'</strong>'; $subject_new_posts = '<span class="newtext">[ <a href="viewtopic.php?id='.$search_set[$i]['tid'].'&action=new" title="'.$lang_common['New posts info'].'">'.$lang_common['New posts'].'</a> ]</span>'; } else $subject_new_posts = null; $num_pages_topic = ceil(($search_set[$i]['num_replies'] + 1) / $pun_user['disp_posts']); if ($num_pages_topic > 1) $subject_multipage = '[ '.paginate($num_pages_topic, -1, 'viewtopic.php?id='.$search_set[$i]['tid']).' ]'; else $subject_multipage = null; // Should we show the "New posts" and/or the multipage links? if (!empty($subject_new_posts) || !empty($subject_multipage)) { $subject .= ' '.(!empty($subject_new_posts) ? $subject_new_posts : ''); $subject .= !empty($subject_multipage) ? ' '.$subject_multipage : ''; }?> <tr<?php if ($item_status != '') echo ' class="'.trim($item_status).'"'; ?>> <td class="tcl"> <div class="intd"> <div class="<?php echo $icon_type ?>"> <div class="nosize"><?php echo trim($icon_text) ?></div> </div> <div class="tclcon"> <?php echo $subject."\n" ?> </div> </div></td> <td class="tc2"><?php echo $forum ?></td> <td class="tc3"><?php echo $search_set[$i]['num_replies'] ?></td> <td class="tcr"><?php echo '<a href="viewtopic.php?pid='.$search_set[$i]['last_post_id'].'#p'.$search_set[$i]['last_post_id'].'">'.format_time($search_set[$i]['last_post']).'</a> '.$lang_common['by'].' '.pun_htmlspecialchars($search_set[$i]['last_poster']) ?></td> </tr> <? } echo "\t\t\t".'</tbody>'."\n\t\t\t".'</table>'."\n\t\t".'</div>'."\n\t".'</div>'."\n".'</div>'."\n\n"; ?> Merci
Portekoi Posté 26 Juillet 2007 Posté 26 Juillet 2007 Bonjour, Prend une variable que tu incrémentes dans ta boucle. ($compteur par exemple) Puis, si $compteur Modulo 2 égal 0 alors tu affiches blanc sinon tu affiches noir En te mettant dans ton TR, ca donne ceci : <?//pas testé mais ca doit ressembler à sa :)if (($compteur % 2) == 0)echo "bgcolor=\"#FFFFFF\"";elseecho "bgcolor=\"#000000\"";?> Et dans ta boucle, n'oublie pas d'ajouter $compteur++; Bon courage Portekoi
dayassine Posté 26 Juillet 2007 Auteur Posté 26 Juillet 2007 Merci d'avoir répondu, mais j'arrive toujours pas a trouver la solution. <tr<?php if ($item_status != '') echo ' class="'.trim($item_status).'"'; ?>> <?//alterner ligne tableauif (($compteur % 2) == 0)echo "bgcolor=\"#FFFFFF\"";elseecho "bgcolor=\"#000000\"";?> <td class="tcl"> <div class="intd"> <div class="<?php echo $icon_type ?>"> <div class="nosize"><?php echo trim($icon_text) ?></div> </div> <div class="tclcon"> <?php echo $subject."\n" ?> </div> </div></td> <td class="tc2"><?php echo $forum ?></td> <td class="tc3"><?php echo $search_set[$i]['num_replies'] ?></td> <td class="tcr"><?php echo '<a href="viewtopic.php?pid='.$search_set[$i]['last_post_id'].'#p'.$search_set[$i]['last_post_id'].'">'.format_time($search_set[$i]['last_post']).'</a> '.$lang_common['by'].' '.pun_htmlspecialchars($search_set[$i]['last_poster']) ?></td> </tr> <? } echo "\t\t\t".'</tbody>'."\n\t\t\t".'</table>'."\n\t\t".'</div>'."\n\t".'</div>'."\n".'</div>'."\n\n"; ?> voila j'ai ajouté ton bout de code aprés le tr mais je sais pas comment avancer. dsl et merci pour votre aide
Portekoi Posté 26 Juillet 2007 Posté 26 Juillet 2007 Non tu dois le mettre DANS le tr <tr --ici mon code---- >
dayassine Posté 26 Juillet 2007 Auteur Posté 26 Juillet 2007 Rebonjour, j'ai mis ton code dans le tr et maintenant ca me donne aucune erreur mais aucun resultat non plus. http://www.bladitour.fr/forum/dernier-post.php Merci
Portekoi Posté 26 Juillet 2007 Posté 26 Juillet 2007 As tu mis le $i++; dans ta boucle? Redonne le code modifié
dayassine Posté 26 Juillet 2007 Auteur Posté 26 Juillet 2007 C'est bon j'ai trouvé une solution voila le code que j'ai mis <tr <? if (($i % 2) == 0) echo "bgcolor=\"#FFFFFF\""; else echo "bgcolor=\"#000000\"";?> <?php if ($item_status != '') echo ' class="'.trim($item_status).'"'; ?>> Merci
Portekoi Posté 26 Juillet 2007 Posté 26 Juillet 2007 Euh vi, c'est la solution que je t'ai donné Par contre, change un peu les couleurs car c'est pas super lisible Bon courage Portekoi
dayassine Posté 26 Juillet 2007 Auteur Posté 26 Juillet 2007 Oui c'etait ta solution mais j'etais un peu perdu et je le suis toujours. j'appelle le fichier des 10 derniers posts par un include qui etait dans le repertoire forum. Maintenant que j'ai mis a la racine le fichier qui appelle les 10 derniers posts il me sort ca: http://www.bladitour.fr/dernier-post.php alors que j'ai changé ca <?php include"recent.php"; ?> par <?php include"/forum/recent.php"; ?> c'est bizarre. Merci
Portekoi Posté 26 Juillet 2007 Posté 26 Juillet 2007 Re, <?php include"./forum/recent.php"; ?> Le '.' est important.
dayassine Posté 27 Juillet 2007 Auteur Posté 27 Juillet 2007 (modifié) Re, J'ai copié ton code mais rien n'y fait ---------------------- C'est bon je viens de trouver j'ai mis les 2 fichiers dans la racine et j'ai changé define('PUN_ROOT', './'); par define('PUN_ROOT', './forum/'); voila et merci portekoi pour ton aide. Modifié 27 Juillet 2007 par dayassine
Portekoi Posté 27 Juillet 2007 Posté 27 Juillet 2007 Re, C'est toujours la même erreur? Tu n'as pas changé autre chose? Le dossier forum est bien à la racine du site? N'y a t il pas un dossier au dessus? EDIT : Ok pas de soucis Portekoi
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant