diff options
author | Dries Buytaert <dries@buytaert.net> | 2008-12-29 22:29:44 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2008-12-29 22:29:44 +0000 |
commit | 5339dccdaadbc347da17beb5da188c5f57281a48 (patch) | |
tree | 30ef56ebb1081f9cd965a1a94770e73b0827dd76 /modules/forum | |
parent | 44c0672806bfe6e1535a4f1d3fddd8d4626af4ee (diff) | |
download | brdo-5339dccdaadbc347da17beb5da188c5f57281a48.tar.gz brdo-5339dccdaadbc347da17beb5da188c5f57281a48.tar.bz2 |
- Patch #299176 by Moshe et al: replace db_rewrite_sql() with hook_query_alter().
Diffstat (limited to 'modules/forum')
-rw-r--r-- | modules/forum/forum.module | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/modules/forum/forum.module b/modules/forum/forum.module index d652eeff8..e41280b53 100644 --- a/modules/forum/forum.module +++ b/modules/forum/forum.module @@ -502,8 +502,20 @@ function forum_block_view($delta = '') { switch ($delta) { case 'active': $title = t('Active forum topics'); - $sql = db_rewrite_sql("SELECT n.nid, n.title, l.comment_count, l.last_comment_timestamp FROM {node} n INNER JOIN {term_node} tn ON tn.vid = n.vid INNER JOIN {term_data} td ON td.tid = tn.tid INNER JOIN {node_comment_statistics} l ON n.nid = l.nid WHERE n.status = 1 AND td.vid = %d ORDER BY l.last_comment_timestamp DESC"); - $result = db_query_range($sql, variable_get('forum_nav_vocabulary', ''), 0, variable_get('forum_block_num_active', '5')); + $query = db_select('node', 'n'); + $tn_alias = $query->join('term_node', 'tn', 'tn.vid = n.vid'); + $td_alias = $query->join('term_data', 'td', 'tn.tid = tn.tid'); + $l_alias = $query->join('node_comment_statistics', 'l', 'n.nid = l.nid'); + $query->addField('n', 'nid', 'nid'); + $query->addField('n', 'title', 'title'); + $query->addField($l_alias, 'comment_count', 'comment_count'); + $query->addField($l_alias, 'last_comment_timestamp'); + $query->condition("n.status", 1); + $query->condition("{$td_alias}.vid", variable_get('forum_nav_vocabulary', '')); + $query->orderBy("{$l_alias}.last_comment_timestamp", 'DESC'); + $query->range(0, variable_get('forum_block_num_active', '5')); + $query->addTag('node_access'); + $result = $query->execute(); $content = node_title_list($result); break; |