有办法重新排序帖子吗?

is there a way to reorder posts in a topic? the problem occurs when threads are created by select + move posts by multiple moderators.

8 个赞

This would require the ability to set timestamp on the posts cc @sam @tgxworld

Why? Are the posts always supposed be in order of time? …because that’s not what I’m seeing.

I reproduced by selecting 10 posts from the bottom of a long topic and moving them into a new topic. Then I selected 3 from the top of the same topic and moved them into the same new topic. The 3 are showing up at the end, the 10 are showing up above the 3.

If that’s not what you were implying, ignore this post :smile:

3 个赞

Oh yes I forgot about that. Good point. We thought it would be bizarre if previously sequential posts had other posts randomly interspersed with them. So a pure time order of insertion when splitting topics seemed like a bad idea…

2 个赞

Your decision was a good one, and the ability to move posts to an existing topic is awesome way of cleaning up the site, but it gets confusing if you can’t reorder.

It helps a ton when trying to keep topics on-topic.

8 个赞

Hi, I just had the same problem and, I think, an easy an elegant solution would be to allow for posts to be “moved from one topic into the same topic”. At the moment it is not possible to press “Move into existing topic” and then enter the same topic ID as the original topic (e.g. moving posts from ID 10820 to ID 10820, for them to appear at the end of the post list).

What do you think about it?

3 个赞

Today, I was trying to illustrate a potential use case for Discourse. We have some “weekly update” communications from various teams that are currently sent via email. I wanted to show how this would look if we did this in Discourse instead, so I was going through my inbox and copying/pasting messages into an example topic in Discourse. I wanted to change the dates to match the original email dates. This way the “gaps” and the “timeline” in the progress bar would look more “real”.

Would be cool if we could do this. (Might come up again if there’s enough interest in actually migrating old content into Discourse, though perhaps that will just be done by some other means).

4 个赞

Not sure if this is the right place for this query but it was pointed out to me in reply to a topic I recently created. As I stated:

I’ve got a few dozen comments that I’m manually importing (we’re talking copying and pasting into the comment box) from Commentics to Discourse. Supposing a previous user from Commentics has set up an account with my new Discourse install I discovered that I can change ownership of the comment from me (as the copier and paster) to said user. What I’m wondering is, now that I’ve done that is it also possible to change the timestamp of said comments in a similar way to how it’s possible to change the timestamp of a topic? If not, would it be possible via some non-GUI method?

In the process of moving some wikis to discourse, I came across this issue. I’d like to do what I’ve seen here on meta where a topic has a series of wiki posts in it. This is helpful because it lets those that follow (including our future selves) to quickly edit a section without having to scroll through loads of markdown.

Reordering these posts after they have been posted becomes a challenge. Am I right in understanding that the “official” method for slotting in a post later is to select the ones that should go below, move them to a new temporary topic, then move them back again after adding the new post?

Or, if all the posts you want to reorder exist already, you’d move them into new temporary topics and then move them back in order you want?

This somehow seems… complicated. Also, it seems to leave behind artifacts like this that I am not seeing a way to remove.

Is there something I am missing here?

5 个赞

Dear all, apologies for resuming a quiet topic after some time.

For our community the ability to change the timestamp of single posts is quite important. Let me explain my case.
My community deals with space missions. I have developed a small bot that opens a new topic via API when a mission is “officially” announced, but this does not prevent our users discussing that very same mission quite in advance with respect on the API-created opening of a new topic.

Now, our need is the ability to merge the topic created via API with the one created (earlier) by our users, but having the first post of the former as the first topic of the merged topic.

As the API-created topics are (usually but not always) having one post only, at the moment our workaround is to change the timestamp of that topic and only after proceed with the merger. The situation becomes quite more complicated in case some user decides to comment in the the API-created topic before we merge. In this case a shift back of the timestamp will “drag” all posts back in time, and this is something we really don’t want.

Long story short, the abiliy to merge topics and then cherry pick posts we want to move up/down in time would be precious. If doing this in UX is considered too much of an effort, no worries. I think that even a dedicated rake task (something that takes a post_id and a ISO date as parameters) that after the change calls for the existing rake task to reorder posts in a topic could be enough.

4 个赞

So, the posts:reorder_posts rake task isn’t enough for you? You can change post timestamps via API or UI before executing that task.

3 个赞

Yes and no.

As said, I need a specific post to be the first of the merged duscussion thread.
Using the posts:reorder_posts option would place this “special” post right where it belongs in order of time, but that would be a no go.
So the list of actions should be:

  1. apply a new timestamp to a specific post (or posts)
  2. merge the topics
  3. run posts:reorder_posts rake task to put everything where it belongs

The change of timestamp available today is applicable only to an entire topic, and all posts in that topic will be re-timestamped according to the delta time applied.

3 个赞

大家好,

我在 Keyboard Maestro 论坛上遇到了这个问题。

有一位用户在同一个任务上留下了多条回复,我将它们合并了。(这本身也是一项烦人的工作。)

不幸的是,帖子的顺序错乱得很厉害。

虽然能够拖放以重新排序会很理想,但像“将所选帖子移至顶部”和/或“将所选帖子移至底部”这样的功能,也比没有强得多。

  • Chris
1 个赞

这方面有任何进展吗?这些用例非常有说服力,我最近也在尝试整合帖子时遇到了同样的问题。@gerhard,我该如何修改回复的时间戳?这里有一个建议,但过程很繁琐。我假设如果我有服务器访问权限,可能会更简单(但我不想弄坏任何东西)。

1 个赞

我也希望看到这方面的进展。我拆分了几条有些离题的回复,但它们本身需要一些上下文。因此,我尝试添加一条帖子,引用原始主题中的相关内容,但该帖子现在位于我移动的帖子底部。

最终,我删除了它,因为它显得格格不入。

1 个赞

以下是关于如何更改帖子时间戳的一些帮助。具体需要多少手动操作,取决于这是新话题(原始帖子)还是回复。

您也可以在 Meta 上搜索“更改帖子时间戳”,会找到不少结果可供查阅。也许其中就有您需要的确切内容。

1 个赞

感谢 @JimPas,您关于重新排序回复的“变通方法”引导我找到了最终、非常简单的解决方案。我创建了一个包含对原始内容介绍性引用的新帖子,然后将原始分割帖子中的回复移动到了新主题中。之后,我删除了原始分割帖子。

我确实需要更新原始主题中的分割引用链接,使其指向正确的主题,因为我已删除了中间的帖子。今后,如果我想再次添加介绍,我应该先创建该主题,然后将相关回复移动过去。这样可以避免链接失效的问题。

3 个赞

有什么进展吗?
你应该添加“选择帖子”。

1 个赞

我尝试了这个变通方法,但如何删除第一个介绍性引用而不删除整个帖子?

我经常遇到用户在现有帖子中发帖,我需要将他们分离到自己的帖子中,同时又不丢失原始日期顺序,因此此功能很重要。希望能够实现。

1 个赞

你好 @ianm,我不确定你到底想实现什么。在我的例子中,我实际上是在拆分主题之后删除了我最后添加的上下文帖子,因为它顺序不对。

主题的主帖(在不删除整个主题的情况下)无法被删除。但是,当你拆分主题时,你可以在将帖子发送到现有主题或新主题之间进行选择。如果你先创建你的介绍性帖子作为新主题的开头,然后拆分到你的新主题,那么你将拥有第一个帖子,并可以随心所欲地处理它。否则,你拆分后的第一个回复将成为该主题的开头。

我最终采用了第二种方法。清楚了吗?

1 个赞