更改主题列表主路由器 - 从最新到关注

大家好!

我试图更改默认的主页话题列表路由,但至今尚未找到方法!希望大家能帮我。

我想将“最新”改为“关注”(即显示我关注用户创建的话题)。

我已尝试的方法

我的目标:

这是否可行!?

希望大家能帮我!
此致,
Felipe

我最近的 PR 或许能帮上忙。

在此,我将“书签”添加到了可能的默认视图中:

最困难的部分是添加测试用例!:slight_smile:

我认为这可以作为一个针对该插件的 PR。棘手之处在于,它目前仅在有需要显示的内容时才会出现……因此你需要考虑这一点……

你好,Robert!我已经修改了你提到的 PR 中的两个文件。

但似乎没有生效。我原本以为通过这些修改,就可以选择“顶部菜单”站点设置。所以,如果必须使用 “latest”,我会将 “following” 和 “latest” 按顺序排列,这样主页就会重定向到 “following”。

在开发过程中,我找到了另一种方法:

import { setDefaultHomepage } from 'discourse/lib/utilities';

因此,在我的组件开头,我添加了:

setDefaultHomepage("following");

因为在 Rails 控制台中,我发现了一个变量 SiteSetting.homepage,其值为 “latest”。
这样就能正常工作了 :smiley:

你觉得有什么潜在问题吗?

我担心的是从后端加载 “latest”,并且初始化器在客户端加载。

此致,
Felipe

不,你无法直接修改 Ruby 文件。那只是一个提示。毕竟,你并不会像我当时那样向核心代码提交 PR。我怀疑你需要通过 plugin.rb 中的插件初始化器来对插件进行相应的修改……这将是对插件的更改,而非核心代码的更改。

嘿!

正如你所说,通过在 plugin.rb 中将 “following” 设为唯一选项,我成功了:

UserOption.class_eval do
    def homepage 
        "following"
    end 
end

哈哈,这确实是一种方法,但更推荐的做法是将其作为可选项附加,并始终允许用户自行更改……至少如果你希望这个功能被合并到插件中,就得这么做 :wink:

不过话说回来,做得不错,继续完善它吧。

顺便一提,也可以看看这个: