feabila
(Felipe)
1
大家好!
我试图更改默认的主页话题列表路由,但至今尚未找到方法!希望大家能帮我。
我想将“最新”改为“关注”(即显示我关注用户创建的话题)。
我已尝试的方法:
我的目标:
这是否可行!?
希望大家能帮我!
此致,
Felipe
我最近的 PR 或许能帮上忙。
在此,我将“书签”添加到了可能的默认视图中:
最困难的部分是添加测试用例!
我认为这可以作为一个针对该插件的 PR。棘手之处在于,它目前仅在有需要显示的内容时才会出现……因此你需要考虑这一点……
feabila
(Felipe)
3
你好,Robert!我已经修改了你提到的 PR 中的两个文件。
- discourse/app/models/user_option.rb
- discourse/app/controllers/preferences/interface.js
- 修改 USER_HOMES 常量,添加 “following”
但似乎没有生效。我原本以为通过这些修改,就可以选择“顶部菜单”站点设置。所以,如果必须使用 “latest”,我会将 “following” 和 “latest” 按顺序排列,这样主页就会重定向到 “following”。
在开发过程中,我找到了另一种方法:
import { setDefaultHomepage } from 'discourse/lib/utilities';
因此,在我的组件开头,我添加了:
setDefaultHomepage("following");
因为在 Rails 控制台中,我发现了一个变量 SiteSetting.homepage,其值为 “latest”。
这样就能正常工作了
!
你觉得有什么潜在问题吗?
我担心的是从后端加载 “latest”,并且初始化器在客户端加载。
此致,
Felipe
不,你无法直接修改 Ruby 文件。那只是一个提示。毕竟,你并不会像我当时那样向核心代码提交 PR。我怀疑你需要通过 plugin.rb 中的插件初始化器来对插件进行相应的修改……这将是对插件的更改,而非核心代码的更改。
feabila
(Felipe)
5
嘿!
正如你所说,通过在 plugin.rb 中将 “following” 设为唯一选项,我成功了:
UserOption.class_eval do
def homepage
"following"
end
end
哈哈,这确实是一种方法,但更推荐的做法是将其作为可选项附加,并始终允许用户自行更改……至少如果你希望这个功能被合并到插件中,就得这么做 
不过话说回来,做得不错,继续完善它吧。
顺便一提,也可以看看这个: