如何创建Drupal论坛报告/分析视图?

时间:2011-02-09 00:48:28

标签: drupal drupal-6 reporting drupal-views forum

我想在Drupal中创建一个页面来报告一些基本的论坛信息。我以为我会使用Views,但Views只允许你为每个视图设置一个“实体”类型,但论坛主题由节点和注释(又名,主题和回复)组成。

理想情况下,我希望单个视图将所有论坛节点和注释列在一个表中(按日期排序),如果可能的话,还会将两者的总数列在一起。有没有办法用Views做到这一点?

更新:我正在寻找的是这样的:

-------------------------------------------------------
| User | Post                      | Type    | Date   |
-------------------------------------------------------
| amy  | post text appears here    | post    | 1/5/01 |
| bob  | comment text appears here | comment | 1/5/01 |
| amy  | another comment here      | comment | 1/5/01 |
| cid  | another post appears here | post    | 1/4/01 |
| dave | yet another comment here  | comment | 1/4/01 |
-------------------------------------------------------
total posts + comments: 5

2 个答案:

答案 0 :(得分:1)

不确定你真正想要的是什么。您可以在同一级别显示节点+注释或节点数和注释数,但是它们没有总数,因为它们都是分开的吗?或者您是否希望将每条评论与该帖子中的评论数量分开显示?

如果是后者,那可能不是一件容易的事。

基本上,您可以创建UNION Select查询并查询节点和注释表。可能看起来像这样:

(SELECT 'node' AS type, n.nid as id, n.title as title, nncs.comment_count as comment_count, n.created as timestamp FROM {node} n INNER JOIN {node_comment_statistics} nncs ON n.nid = nncs.nid)
UNION
(SELECT 'comment' AS type, c.cid as id, c.subject as title, cncs.comment_count as comment_count, c.timestamp as timestamp FROM {comments} c INNER JOIN {node_comment_statistics} cncs ON c.nid = cncs.nid)
ORDER BY timestamp DESC LIMIT 10;

这将返回包含:node / comment |的结果id |标题| comment_count |时间戳。

有关UNION的详细信息,请参阅http://dev.mysql.com/doc/refman/5.1/en/union.html

然后,您可以将其作为表格进行主题化。

提示:

  • 如果您需要更多数据,请延伸 查询或使用node / comment_load
  • 你也可以加入{node} 第二个查询并使用节点标题 而不是评论主题
  • 该查询将 因为它总是会做一个文件排序 因为那里有一个工会。它 实际上可能会更快执行 两个单独的查询,然后mangle 如果你有一个用PHP在一起的话 大量节点/评论

答案 1 :(得分:0)

事实证明Tracker 2 module足以满足我的需要。