[Drupal 7 - Forum] $topic -> new replies
Bonjour a tous,
But sur la partie liste des forums :
Lors d'un nouveau Topic dans un forum $forum->new_topics devient TRUE
Utilisable sur la page forum-list-tpl.php (Liste des forums)
Par contre a chaque nouveau commentaire ont ne voit rien sur la liste des forums.
Comment faire pour activer une nouvelle variable pour les nouveaux commentaires ?
Pour voir si il existe des commentaires, ont est obligé de rentrer dans tous les forums...
Les nouveaux commentaires $topic->new_replies sont visibles sur la page forum-topic-list.tpl.php (Liste des Topics dans un forum)
Dans mes recherches :
// --- /// Liste des forums
Dans function template_preprocess_forum_list : variable pour la liste des forums (forum-list.tpl.php)
Ont peut voir le déclenchement de la variable Nouveau topic
Lgn 20-21
Code:
1 2 3
|
$variables['forums'][$id]->new_topics = _forum_topics_unread($forum->tid, $user->uid);
if ($variables['forums'][$id]->new_topics) { |
Avec la function _forum_topics_unread, je ne sais pas si possible de la dupliquer/modifier pour faire le déclenchement sur les commentaires non lu.
// --- /// Liste des Topics/Sujets
Dans function template_preprocess_forum_topic_list : variable pour la liste des topics (forum-topic-list.tpl.php)
Déclenchement de la variable "Nouveau commentaire" ($topic->new_replies) disponible que sur cette page forum-topic-list.tpl.php et non sur forum-list.tpl.php
Lgn 38
Code:
1 2 3 4 5
|
if ($topic->new_replies) {
$variables['topics'][$id]->new_text = format_plural($topic->new_replies, '1 new', '@count new');
$variables['topics'][$id]->new_url = url("node/$topic->nid", array('query' => comment_new_page_count($topic->comment_count, $topic->new_replies, $topic), 'fragment' => 'new'));
} |
// --- /// Function
function forum_get_topics
Lgn 68-87
Basculement de la variable
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
if ($user->uid) {
// A forum is new if the topic is new, or if there are new comments since
// the user's last visit.
if ($topic->forum_tid != $tid) {
$topic->new = 0;
}
else {
$history = _forum_user_last_visit($topic->nid);
$topic->new_replies = comment_num_new($topic->nid, $history);
$topic->new = $topic->new_replies || ($topic->last_comment_timestamp > $history);
}
}
else {
// Do not track "new replies" status for topics if the user is anonymous.
$topic->new_replies = 0;
$topic->new = 0;
} |
Par la suite j'aimerai même faire apparaitre une petite infobulle au niveau du menu "Forum" pour indiquer
- un/des nouveau sujet
- un/des nouveau commentaire
Variable globale ?
J'ai essayé de mettre le maximum d'info pour mieux cerner le problème.
Merci d'avance
Cordialement
Kit