1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
| <?php
//On récupère la valeur de f
$forum = (int) $_GET['f'];
//Maintenant, on va afiche en 2 étapes.
// premier étape : on affiche la pagination
// deuxième étapes : on affiche le tableau des annonces
// troisième étapes : on affiche le tableau des topics
//A partir d'ici, on va compter le nombre de messages
//pour n'afficher que les 25 premiers
$query=$db->prepare('SELECT forum_name, forum_topic, auth_view, auth_topic FROM forum_forum WHERE forum_id = :forum');
$query->bindValue(':forum',$forum,PDO::PARAM_INT);
$query->execute();
$data=$query->fetch();
$totalDesMessages = $data['forum_topic'] + 1;
$nombreDeMessagesParPage = 25;
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
//on affiche la fil ariane , afin de savoir sur qu'elle page on est situer
echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./voirforum.php?f='.$forum.'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>';
////////////////////////////////////////////////la premier étape/////////////////////////////////////////////////////////////////////////
//Nombre de pages
$page = (isset($_GET['page']))?intval($_GET['page']):1;
//On affiche les pages 1-2-3, etc.
//là je met if afin de faire une condition afin qu'on puisse de comencer avoir page1 et 2 au lieu de comencer par page 1
//if ($nombreDePages > 1)
//{
echo '<p>Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
if ($i == $page) //On ne met pas de lien sur la page actuelle
{
echo $i;
}
else
{
echo '<a href="voirforum.php?f='.$forum.'&page='.$i.'">'.$i.'</a>';
}
}
echo '</p>';
//}
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
//Le titre du forum
echo '<h1>'.stripslashes(htmlspecialchars($data['forum_name'])).'</h1><br /><br />';
//Et le bouton pour poster
echo'<a href="./poster.php?action=nouveautopic&f='.$forum.'"><img src="./images/nouveau.gif" alt="Nouveau topic" title="Poster un nouveau topic" /></a>';
$query->CloseCursor();
////////////////////////////////////////////////la deucième étape/////////////////////////////////////////////////////////////////////////
//On prend tout ce qu'on a sur les Annonces du forum
$query=$db->prepare('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post, Mb.membre_pseudo AS membre_pseudo_createur, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur, post_id FROM forum_topic
LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur
LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id
LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur
WHERE topic_genre = "Annonce" AND forum_topic.forum_id = :forum
ORDER BY topic_last_post DESC');
$query->bindValue(':forum',$forum,PDO::PARAM_INT);
$query->execute();
//On lance notre tableau seulement s'il y a des requêtes !
if ($query->rowCount()>0)
{
?>
<table>
<tr>
<th><img src="./images/annonce.gif" alt="Annonce" /></th>
<th class="titre"><strong>Titre</strong></th>
<th class="nombremessages"><strong>Réponses</strong></th>
<th class="nombrevu"><strong>Vus</strong></th>
<th class="auteur"><strong>Auteur</strong></th>
<th class="derniermessage"><strong>Dernier message</strong></th>
</tr>
<?php
//On commence la boucle
while ($data=$query->fetch())
{
//Pour chaque topic :
//Si le topic est une annonce on l'affiche en haut
//mega echo de bourrain pour tout remplir
echo'<tr>
<td><img src="./images/annonce.gif" alt="Annonce" /></td>
<td id="titre"><strong>Annonce : </strong><strong><a href="./voirtopic.php?t='.$data['topic_id'].'" title="Topic commencé à'.date('H\hi \l\e d M,y',$data['topic_time']).'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a></strong></td>
<td class="nombremessages">'.$data['topic_post'].'</td>
<td class="nombrevu">'.$data['topic_vu'].'</td>
<td><a href="./voirprofil.php?m='.$data['topic_createur'].'&action=consulter">'.stripslashes(htmlspecialchars($data['membre_pseudo_createur'])).'</a></td>';
//Selection dernier message
$nombreDeMessagesParPage = 15;
$nbr_post = $data['topic_post'] +1;
$page = ceil($nbr_post / $nombreDeMessagesParPage);
echo '<td class="derniermessage">Par <a href="./voirprofil.php?m='.$data['post_createur'].'&action=consulter"> '.stripslashes(htmlspecialchars($data['membre_pseudo_last_posteur'])).'</a><br />
A <a href="./voirtopic.php?t='.$data['topic_id'].'&page='.$page.'#p_'.$data['post_id'].'">'.date('H\hi \l\e d M y',$data['post_time']).'</a></td></tr>';
}
?>
</table>
<?php
}
$query->CloseCursor();
////////////////////////////////////////////////la troisième étape/////////////////////////////////////////////////////////////////////////
//On prend tout ce qu'on a sur les topics normaux du forum
$query=$db->prepare('SELECT forum_topic.topic_id, topic_titre, topic_createur, topic_vu, topic_post, topic_time, topic_last_post, Mb.membre_pseudo AS membre_pseudo_createur, post_id, post_createur, post_time, Ma.membre_pseudo AS membre_pseudo_last_posteur FROM forum_topic
LEFT JOIN forum_membres Mb ON Mb.membre_id = forum_topic.topic_createur
LEFT JOIN forum_post ON forum_topic.topic_last_post = forum_post.post_id
LEFT JOIN forum_membres Ma ON Ma.membre_id = forum_post.post_createur
WHERE topic_genre <> "Annonce" AND forum_topic.forum_id = :forum
ORDER BY topic_last_post DESC
LIMIT :premier ,:nombre');
$query->bindValue(':forum',$forum,PDO::PARAM_INT);
$query->bindValue(':premier',(int) $premierMessageAafficher,PDO::PARAM_INT);
$query->bindValue(':nombre',(int) $nombreDeMessagesParPage,PDO::PARAM_INT);
$query->execute();
if ($query->rowCount()>0)
{
?>
<table>
<tr>
<th><img src="./images/message.gif" alt="Message" /></th>
<th class="titre"><strong>Titre</strong></th>
<th class="nombremessages"><strong>Réponses</strong></th>
<th class="nombrevu"><strong>Vus</strong></th>
<th class="auteur"><strong>Auteur</strong></th>
<th class="derniermessage"><strong>Dernier message </strong></th>
</tr>
<?php
//On lance la boucle
while ($data = $query->fetch())
{
//Ah bah tiens... re vla l'echo de fou
echo'<tr><td><img src="./images/message.gif" alt="Message" /></td>
<td class="titre"><strong><a href="./voirtopic.php?t='.$data['topic_id'].'" title="Topic commencé à '.date('H\hi \l\e d M,y',$data['topic_time']).'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a></strong></td>
<td class="nombremessages">'.$data['topic_post'].'</td>
<td class="nombrevu">'.$data['topic_vu'].'</td>
<td><a href="./voirprofil.php?m='.$data['topic_createur'].'&action=consulter">'.stripslashes(htmlspecialchars($data['membre_pseudo_createur'])).'</a></td>';
//Selection dernier message
$nombreDeMessagesParPage = 15;
$nbr_post = $data['topic_post'] +1;
$page = ceil($nbr_post / $nombreDeMessagesParPage);
echo '<td class="derniermessage">Par <a href="./voirprofil.php?m='.$data['post_createur'].'&action=consulter">'.stripslashes(htmlspecialchars($data['membre_pseudo_last_posteur'])).'</a><br />
A <a href="./voirtopic.php?t='.$data['topic_id'].'&page='.$page.'#p_'.$data['post_id'].'">'.date('H\hi \l\e d M y',$data['post_time']).'</a></td></tr>';
}
?>
</table>
<?php
}
else //S'il n'y a pas de message
{
echo'<p>Ce forum ne contient aucun sujet actuellement</p>';
}
$query->CloseCursor();
?> |
Partager