Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
Cette astuce permet d'ajouter un lien vers la dernière discussion créé par un membre dans son profil.
Dans le fichier profile.php
Chercher
$last_post = format_time($user['last_post']);Ajouter après
$result = $db->query('SELECT id, subject, posted FROM '.$db->prefix.'topics WHERE poster = \''.$db->escape($user['username']).'\' ORDER BY posted DESC LIMIT 1') or error('Impossible de récupérer la dernière discussion créée', __FILE__, __LINE__, $db->error());
if($db->num_rows($result))
{
$last_topic_row = $db->fetch_assoc($result);
$last_topic = "<a href='viewtopic.php?id=".$last_topic_row['id']."'>".pun_htmlspecialchars($last_topic_row['subject'])."</a>";
}
else
$last_topic = $lang_profile['Unknown'];Chercher
<dd><?php echo $last_post ?></dd>Ajouter après
<dt>Dernière discussion créée : </dt>
<dd><?php echo $last_topic ?></dd>Chercher
<p><?php echo $lang_common['Last post'] ?>: <?php echo $last_post ?></p>Ajouter après
<p>Dernière discussion créée : <?php echo $last_topic ?></p>Astuce créée initalement pour Guims dans cette discussion : http://www.punbb.fr/forums/viewtopic.php?id=9916
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Super top cette modif
encore merci ...
Hors ligne
Très bonne idée, merci je prends.
Hors ligne
Alors là, rien à dire, j'adhère
Hors ligne
merci pour l'astuce
Hors ligne
Merci pour l'astuce!
Cependant, elle affiche aussi le titre des discussions créée dans des sections cachés (types admins, modos...).
Ça supprime donc toute confidentialité...
Hors ligne
Tu as raison, essaie en remplaçant la requête par celle-ci :
$result = $db->query('SELECT id, subject, posted FROM '.$db->prefix.'topics 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 poster = \''.$db->escape($user['username']).'\' AND t.moved_to IS NULL ORDER BY posted DESC LIMIT 1') or error('Impossible de récupérer la dernière discussion créée', __FILE__, __LINE__, $db->error());Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Je viens de remplacer la dernière requête, il affiche l'erreur
An error was encountered
Error: Impossible de récupérer la dernière discussion créée.J'ai remplacé celle-ci
$result = $db->query('SELECT id, subject, posted FROM '.$db->prefix.'topics WHERE poster = \''.$db->escape($user['username']).'\' ORDER BY posted DESC LIMIT 1') or error('Impossible de récupérer la dernière discussion créée', __FILE__, __LINE__, $db->error());Par
$result = $db->query('SELECT id, subject, posted FROM '.$db->prefix.'topics 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 poster = \''.$db->escape($user['username']) .'\' ORDER BY posted DESC LIMIT 1') or error('Impossible de récupérer la dernière discussion créée', __FILE__, __LINE__, $db->error());Hors ligne
Je confirme l'erreur, et je l'obtiens aussi avec la proposition de NoX09. 
Hors ligne
Salut
J'aimerai modifier cette astuce pour afficher plusieurs messages (10). Et je ne sais pas par où commencer! quelqu'un pourrait m'aider? merci
Hors ligne
Tu peux commencer par modifier le "limit" pour qu'il récupère 10 topics et pas qu'un seul 
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Ok c'est fait,
Et maintenant j'utilise implode pour afficher les messages ?
Hors ligne
Quelqu'un pourrait m'expliquer comment afficher les messages, s'il vous plaît ?
Hors ligne
Il faut déjà utiliser une boucle while pour parcourir les résultats de ta requête
while ($cur_topic = $db->fetch_assoc($result))et les afficher à l'intérieur de cette boucle.
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Pages : 1