Moving posts into an existing topic doesn't keep chronology

But you agree that year old posts being inserted as new is a terrible idea! :slight_smile:

The opposite of that is to keep chronology so that when a duplicate topic is created by someone and merged to an established topic, the new post gets put it at the right point.

2 个赞

Could I be so bold as to run a poll?

As a forum moderator, which behaviour would you prefer to see?

  • A) Merged posts are always inserted in chronological positions
  • B) Merged posts are always placed at the end of the destination topic (existing behaviour)
  • Moderator chooses A or B depending on the topic
  • Other (please comment)

0 voters

1 个赞

But the existing behaviour is not B.

The existing behaviour shoves the posts in a totally random point … in my case about 200 posts back and ‘2 years ago’ despite having dates of ‘1 day ago’.

In addition to this, when listing the posts in latest or category view, the most recently dated post (which comes from the newer merged thread) is marked … but it’s actually buried in the thread way earlier.

That has to be a bug?

Did you have any weird migrations on your site? Will I be able to repro this on try.discourse.org?

Yes this forum was a perfect once-run import from phpBB. Would that make a difference?

Don’t know, but I’ll give it a run at some point. I have reproduced it on 3 forums that have come from phpBB, but not on a clean install yet.

The option to do one or the other would be lovely. I like the other way, and so does my community, so the status quo is an irritant :slight_smile:

1 个赞

Just experienced this and agree that it is a difficult problem. Had two parallel discussions on exact same topic and interleaving merged list according to chronology looks like it might have worked better. Latest post to original (merged into) topic is now quite a ways up in the thread. Tradeoff hard to analyze at glance.

3 个赞

Discourse 不能同时提供这两种方式,让版主或管理员在合并时选择使用哪一种吗?

5 个赞

我想将移动的帖子插入到现有主题的最后一个帖子中。看来这无法实现,因此移动的帖子会乱序出现,并显示在现有主题中原帖的后面。

合并主题可能通常不是个好主意,但我期望帖子能按时间顺序显示。

当前的方式几乎像是线程化(原始的首帖及其回复,随后是“空降”的首帖及其回复,再之后是后续帖子),根据我的理解,这至少违背了 Discourse 理念的精神,即便未必违反其字面规定。

就现状而言,关闭一个主题,并在两个主题的顶部显示某种管理员通知,以引导用户关注另一个主题,往往可能是更好的做法。

4 个赞

我们也注意到了这个奇怪的现象。我认为用户心中的认知模型是:帖子按定义就是按时间顺序排列的回复列表。无论我是回复一个新帖子,还是几个月前的旧帖子,我的回复都会出现在末尾。合并主题会打破这一模型,因为被合并的帖子部分会被插入到管理员执行合并操作的时间点。

从抽象层面来看,我能理解当前行为背后的逻辑:它维护了被合并主题内部对话的完整性。但这同时也引发了一个问题:为什么要合并主题?

在我们社区的情况下,我们希望将关于某个具体主题的讨论集中在一个帖子中。例如,我们希望设立一个专门的主题,供用户报告他们是否已被 俄亥俄州立大学2025届录取。如果有人新建了一个主题,它会被合并到官方主题中。这些回复往往彼此独立,并不紧密相关。大多数时候,用户使用“回复”按钮来回应特定帖子,因此回复在页面上的位置是否紧邻彼此并不那么重要。

如果回复之间紧密关联,我怀疑是否还有必要合并帖子。相反,在一个帖子中回复并附上另一个帖子的链接可能更合理。或者两个方向都这样做,甚至关闭其中一个帖子。合并意味着两个主题在很大程度上是重叠的。对于处理并行对话,其实还有其他(且更好)的工具可用。

无论如何,我只是提供一个数据点:这种合并的实现方式难以融入用户现有的认知模型,使得该功能在实际使用中不如预期那样有效;如果回复能按时间顺序排列,其效用本可以更高。

6 个赞

也许有一天,主题的 <kbd>:wrench:</kbd> 菜单中会提供一个“按日期排序帖子”的选项?

这样,默认行为保持不变,新帖子仍会合并到末尾。如果管理员认为该主题更适合将这些帖子融入原有讨论中,只需快速点击该选项即可按需完成操作。

19 个赞

这个问题似乎反复出现,是否有相关的功能请求提交渠道?我非常希望能得到解决。

4 个赞

目前有一个 rake 任务可以完成此操作,但 UI 上尚无触发入口。

2 个赞

我需要在导入期间将某些电子邮件线程拆分为单独的主题时使用此功能,因此我想对此进行详细说明,以防其他人也有此需求。您需要能够访问运行 Discourse 实例的服务器的命令行。

首先将所有所需的帖子移动到目标主题中,然后获取主题 ID。在地址栏中,您可能会看到类似以下内容,其中主题 ID 为 24855:
/t/topic-slug/24855/9

在您的服务器上,使用以下命令进入 Discourse 应用。如果您的可用空间少于 5GB,可能需要先清理一些空间。

cd /var/discourse
./launcher enter app

如果成功,您可以使用以下命令按时间戳重新排序帖子,请根据实际情况替换主题 ID。

rake posts:reorder_posts[24855]
5 个赞

我们即将在合并帖子时添加“两害相权取其轻”选项,以便您选择哪种错误的方法对您的使用场景来说错误程度最低。:wink:

8 个赞

是否有计划在(不久的)将来将其添加到路线图中?

4 个赞

我也对此非常感兴趣!至少在我们的论坛上,我们经常将整个讨论重组为新主题,因为它们经常偏离主题。此外,出于 SEO 原因,当“已移动+已关闭”主题的排名优于后续主题时,我们经常移动帖子。

3 个赞

这个功能实现(上线)了吗?

2 个赞