问题标签 [threaded-comments]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 线程化消息的 SQL 查询
我的网站有一个消息功能,一个用户可以向另一个用户发送消息。消息支持线程 - 父消息可能有任意数量的子消息,但只有一层深。
消息表如下所示:
我想在每个“父”消息的页面上显示消息,然后是子消息的折叠视图。
我可以使用 GROUP BY 子句或类似结构在一个查询中检索父消息和子消息吗?现在我只检索父消息,然后遍历它们并对每个消息执行另一个查询以获取所有相关的子消息。
我想收到这样的消息:
php - PHP MySQL,带有页面的嵌套/线程注释,LIMIT 10 OFFSET 等
我一直在寻找答案,但似乎无法弄清楚,所以我希望这里的人可以提供帮助。我只是想找出一种方法,只在一个页面上显示 XX 评论,允许这个过程嵌套/线程评论,当用户可能有超过 1,000 条评论时,不必在一页上显示所有评论。如果我尝试使用一个 mysql 查询而不是 2 个来执行此操作我必须这样做。
这是我的 MySQL 表(它是一个尚未发布的新表,因此我可以根据需要进行更改)
id = 评论的 id 自动增加
toUid = 是针对哪个个人资料/用户的
fromUid = 评论来自谁
Pid = 父 id 的 id..
Puid = 父 id 的用户 id 编号
Pseen = 如果是父user has seen the comment
seen = if the toUid has seen the comment
comment = fromUid 留下的评论
tim = 留下的时间()
Pid = 人的 ip
无论如何,我正在尝试对用户个人资料发表评论,如果他们想回复他们,他们会在其中嵌套对上一个/父评论的回复。
我想将页面上的评论数量限制为 10 或 20,无论我觉得合适,这个数字还包括嵌套评论。
例如,如果我想在第 1 页上发表 10 条评论
然后在第 2 页,如果第一条评论是对另一条评论的回复,它将从他们回复的原始父评论开始,如果仍然只能在该页面上保留 10 条评论,如果不是的话可以在顶部显示额外的评论,或者可能在底部显示第 1 页的额外评论。我不确定哪个会更容易。
我在想一个 MySQL IN 子句会这样做,但我得到一个错误..“试过 -
并且得到
这是我以前从未见过的..
如果可以的话,感谢您的寻找和帮助!
php - PHP线程评论分页
我正在使用来自http://www.jongales.com/blog/2009/01/27/php-class-for-threaded-comments/的线程评论,但我不知道如何实现分页系统。如果有人能指出我的方向或某事,因为我正在寻找解决方案但没有找到任何东西......
html - 将回复表单添加到嵌套评论的最简洁方法
我正在向我的应用程序添加嵌套(类似 reddit)的评论;到目前为止,我只是使用comment
div,在我的 CSS 中我这样做:
这适用于显示评论。我的问题是现在向每个评论添加回复表单的最干净的方法是什么(并且仅在用户单击某种回复按钮时显示它)?
这通常是通过立即添加评论的所有输入框来完成的,首先隐藏它们,然后仅在用户单击回复按钮时才显示它们?或者也许我应该只<form>
在用户单击回复该评论后将相关的 HTML 代码附加到给定的 div ?
最干净的方法是什么?
python - 如何让应用程序 threadedcomments_extras 显示或被忽略?
我越来越:
media/apps 目录中有一些东西在我看来就像一个 Django 应用程序:
但是,将媒体应用程序复制到 ./apps/ 会立即终止工作线程。在 settings.py 中注释掉 'threadedcomments_extras' 也是如此。
我如何才能安装并运行 threadedcomments_extras,或者消除对 threadedcomments_extras 的所有期望?
谢谢,
django - Django 用 up/down-voting 线程化评论(如 Hacker News 或 Reddit)
我是 Django 的新手。我正在尝试在 Django 中构建一个讨论应用程序,就像 Reddit 和 Hacker News 一样,它是完全线程化的,并通过赞成/反对投票对每个评论进行排序。
我一直在使用 django-voting 应用程序,如果可能的话,我想继续使用它。
我的 models.py 的简化版本是:
因为我使用的是 django-voting 应用程序,所以我可以获得任何特定评论的“分数”(赞成票减去反对票),如下所示:
我想不通的是如何:(a)以可以在模板中转换为线程讨论的格式在视图中准备数据,以及(b)如何以按以下方式排序的方式进行操作赞成票。
对于这两个问题的任何帮助将不胜感激。
我愿意使用另一种方法(如 mptt)来构建评论树——但我仍然不清楚如何在 django-mptt 应用程序中通过 upvote 进行排序。
谢谢!
编辑: 我在下面提出了我自己的、非常骇人听闻的解决方案。我不会将此问题标记为已回答,因为我认为这不是人们会在生产中使用的那种解决方案(我希望自己不要在生产中使用它)。但是,以防万一有人在寻找解决方案,我希望这会有所帮助:
在我的 views.py 中,我创建了一个函数,该函数通过给定对象查询集的投票输出排序列表:
我使用该函数按分数对所有顶级评论进行排序。所以我的上下文变量只包括评论,按分数排序,没有父母——即:
在我的 models.py 中,我定义了一个获取给定评论子项的 list_sorted_by_score 的方法:
最后,我为单个评论制作了一个模板,“comment.html”。它的简化版本如下所示:
很明显,这是相当骇人听闻的。我仍然对听到人们在现实世界中尝试过的真实解决方案非常感兴趣。
php - PHP MYSQL - 显示多线程注释不起作用
这就是我的数据库的样子
评论
回复
问题是,我希望评论显示嵌套如下:
评论 - 我需要帮助
--- 回复 - 您需要什么帮助?
- - 我可以帮助你!
- - - 我不明白!
评论 - 我现在要睡觉了
--- 回复 - 好的,晚安。
评论 - 看新闻。
- - 无回复
不是这样,这是我现在得到的。
评论 - 我需要帮助
--- 回复 - 您需要什么帮助?
评论 - 我需要帮助
- - 我可以帮助你!
评论 - 我需要帮助
- - 我不明白!
评论 - 我现在要睡觉了
--- 回复 - 好的,晚安。
评论 - 看新闻。
- - 无回复
这是我的查询
问题显然出在查询结构中,但我不确定如何构建它,以便获得所需的结果。
我希望我足够清楚地解释了我的自我,感谢您提前提供的任何帮助。
php - 带有 Eloquent 的 Laravel 中的线程注释
我有用户个人资料,允许用户互相留言。(想想 Facebook/MySpace)...
给定一个profile_messages
包含以下字段id
、user_id
、author_id
、parent_id
和的表格message
,我将如何在线程布局中有效地显示它们?
注意:评论的深度只有 1 级。
目前,我正在获取所有相关评论,然后重建集合以在每个项目上都有$messages
一个子集合。replies
这很好用。但是,我不禁想到有更好的方法来做到这一点......有没有更好的方法来做到这一点,或者也许有一种方法可以利用关系来获得与$profileMessage->replies
结构匹配的结果集?
rss - 生成线程化 RSS / ATOM 提要
我想生成一个可以在 RSS-Clients 中显示的 RSS 提要。
因此,如果提要描述了诸如评论或对同一个实体的更改之类的内容,我希望这些内容在视觉上进行分组。
这在Java中可能吗?
php - 在 PHP 中的线程中分组消息
我有一组消息及其对父消息的引用,它看起来像这样:
该数组的键是消息 ID,值是对零个或多个父 ID 的引用(以任何顺序)。ID 的顺序可以是随机的,并且不能保证引用的父 ID 在给定的消息集中。
我需要做的是将这些消息分组在“线程视图”中。所以基本上我需要把这个数组转换成这样的东西:
每条消息都应分配给按顶级消息分组的线程。当消息没有对父级的引用或被引用的父级在集合中不存在时,它被认为是顶级的。消息“m1”和“m6”是顶级的,因为“m9”和“m7”不在给定集中。尽管引用了不存在的“m8”,但消息“m3”位于“m1”线程中 - 它还有其他现有的父级将其链接到“m1”。
我的问题是如何做到这一点,以及如何有效地做到这一点?任何帮助,将不胜感激。
更新:
我想出的是首先扭转这些关系,所以它变成:
然后我会添加没有子元素的键“m6”和“m5”,因为它们存在于输入键中,但不存在于转换后的数组中。
现在我有了可以在输入数据中找到的每个关系 parent => children。在将此数组的键与输入数组进行比较后,我可以将键“m9”、“m8”和“m7”拒绝为不存在。
最后数组看起来像这样:
我现在需要做的是以某种方式扁平化这个结构。我需要找到每个父母p1也是另一个父母p2的孩子,并将p1孩子附加到p2孩子。除了一遍又一遍地迭代这些数组,我不知道如何以另一种方式做到这一点,但这不是一个选择。