diff --git a/includes/core-overrides.inc b/includes/core-overrides.inc index c2b38d8..53a0570 100644 --- a/includes/core-overrides.inc +++ b/includes/core-overrides.inc @@ -191,12 +191,17 @@ function advanced_forum_forum_load($tid = NULL) { $forum->num_posts = 0; } - // Query "Last Post" information for this forum. - $query = db_select('node', 'n'); - $query->join('forum_index', 'f', 'n.nid = f.nid AND f.tid = :tid', array(':tid' => $forum->tid)); - $query->join('node_comment_statistics', 'ncs', 'n.nid = ncs.nid'); - $query->join('users', 'u', 'ncs.last_comment_uid = u.uid'); - $query->addExpression('CASE ncs.last_comment_uid WHEN 0 THEN ncs.last_comment_name ELSE u.name END', 'last_comment_name'); + // Query "Last Post" information for this forum. + $tids = array($forum->tid); + $tid_children = taxonomy_get_children($forum->tid); + if (!empty($tid_children)) { + $tids = array_merge($tids, array_keys($tid_children)); + } + $query = db_select('node', 'n'); + $query->join('forum_index', 'f', 'n.nid = f.nid AND f.tid IN (:tids)', array(':tids' => $tids)); + $query->join('node_comment_statistics', 'ncs', 'n.nid = ncs.nid'); + $query->join('users', 'u', 'ncs.last_comment_uid = u.uid'); + $query->addExpression('CASE ncs.last_comment_uid WHEN 0 THEN ncs.last_comment_name ELSE u.name END', 'last_comment_name'); $topics = $query ->fields('ncs', array('last_comment_timestamp', 'last_comment_uid'))