【发布时间】:2013-06-04 22:14:21
【问题描述】:
使用 Drupal 6,我的目标是订购一组类似于 Facebook 输出 cmets 的线程化 cmets:每个线程中的“锚”或第一条评论按 DESC 排序,任何“内部”线程回复按 ASC 排序,因此最新的 cmets 在底部。
这是来自 comment_render 的 SQL 查询,按 COMMENT_ORDER_NEWEST_FIRST 排序:
SELECT c.cid as cid, c.pid, c.nid,
c.subject, c.comment, c.format,
c.timestamp, c.name, c.mail,
c.homepage, u.uid, u.name AS
registered_name, u.signature,
u.picture, u.data, c.thread, c.status
FROM {comments} c INNER JOIN {users} u
ON c.uid = u.uid WHERE c.nid = 141737
AND c.status = 0 ORDER BY c.thread
DESC
这将返回所有 cmets,按最新线程优先排序:
03/
03.00/
02/
02.06/
02.05/
02.04/
02.03/
02.01/
02.00/
01/
在我的情况下,所需的顺序是这样的:
03/
03.00/
02/
02.00/
02.01/
02.02/
02.03/
02.04/
02.05/
02.06/
01/
再想想 Facebook 墙,你就明白了。
任何人都可以协助适当地增强 SQL 查询吗?在我的情况下(但可能并非在所有情况下),线程深度通过自定义模块强制限制为 1。
另一个注意事项 - 就我而言,它只需要在 MySQL 下工作。
【问题讨论】:
标签: drupal drupal-6 drupal-comments