Lilly
(Lillian )
1
简介
我看到许多 Discourse 管理员请求重新排序侧边栏菜单部分,包括全局自定义部分。由于目前使用 CSS 对大多数人来说并不直观或简单,而且这样做难以管理和修改,因此我创建了一个主题组件,使其在管理界面中变得更加容易。
概述
此 Discourse 主题组件允许管理员在管理用户界面中重新排序论坛的侧边栏菜单部分,包括所有默认部分以及任何全局可见的自定义部分。
该组件适用于桌面和移动侧边栏视图,以及标题下拉模式(尽管它主要是为侧边栏模式设计的)。
安装与配置
- 按照 Discourse 主题使用入门指南 安装此主题组件。
community 部分指的是侧边栏顶部的默认部分——即带有 主题 标题的菜单,并包含 更多 下拉子菜单;建议不要将超过一两个部分(默认或自定义)移到 community 部分之上。
- 请勿在设置中删除任何默认部分,否则它们的顺序会错乱(您随时可以将其添加回来或重置设置)。
- 配置此组件的最佳方法是:在一个浏览器窗口中打开组件管理屏幕(包含重新排序列表设置),在另一个窗口中以测试用户身份查看论坛侧边栏;每次在列表中更改菜单部分顺序后,请刷新页面。
- 在组件管理设置中,请务必使用自定义部分的 slug 命名格式,否则它们将被忽略(例如:将“自定义菜单名称”设为
custom-menu-name,将“有用链接”设为 useful-links 等)。
设置
| 设置 |
描述 |
Sidebar menu order |
一个列表设置,包含默认菜单部分。(community 是侧边栏的默认顶部部分,并包含 More 下拉子菜单。)使用侧边的上下箭头重新排序菜单部分。也可以添加全局可见的自定义部分——请使用菜单名称的 slug(例如,对于标题为“测试菜单”的自定义菜单,请在设置中添加 test-menu)。 |
该主题组件初始具有默认设置。管理员需要添加他们希望混合到排序列表中的任何全局自定义菜单部分,然后与默认部分一起重新排序。
默认组件设置的截图
截图
以下截图展示了 community 部分,以及两个示例自定义菜单部分:“开发链接”(dev-links)和“工具箱”(toolbox),它们在左侧的组件管理面板和右侧的普通用户视图中显示的样子。用于在组件管理设置中上下移动菜单部分的箭头显示在红色小框中。
此处,设置配置为将默认的 categories 部分显示在 community 部分之上(折叠和展开模式):
这是一个使用两个自定义部分的示例:一个名为 dev-links 的部分位于默认 community 部分之上,另一个名为 toolbox 的部分位于默认 tags 部分之下。
此外,请注意上述管理截图中的 inbox-section 部分——这是 侧边栏的消息部分 组件插入到侧边栏中的 消息 部分(位于上述 toolbox 自定义菜单之下),表明此组件也可用于移动它。
此外,此主题组件可与 群组侧边栏菜单 和 缩进子类别 组件一起使用(参见上方截图)。
注意事项
- 在向
sidebar_menu_order 设置添加新的全局自定义部分后,论坛用户在刷新浏览器或折叠/展开侧边栏时将看到新的正确菜单顺序。
- 在启用此组件时创建新的全局自定义菜单部分,可能会导致管理员在侧边栏重新渲染之前(通过刷新页面或折叠/展开)暂时出现重复部分。
- 用户创建的自定义菜单部分将始终显示在该用户侧边栏的底部,但其他方面不受影响。
- 如果
Admin -> 所有站点设置 -> 聊天分离侧边栏模式 设置为 Always,聊天按钮将照常显示在底部,并且该组件将忽略默认的聊天菜单部分(chat-dms、chat-channels 和 chat-search)。
查看我的其他 Discourse 内容
27 个赞
太棒了。我真的很喜欢使用分类 (1) 然后聊天的 (2) 设置。非常感谢您莉莉(Lilly)出色的工作。
4 个赞
这还支持吗?我尝试安装时遇到了以下错误。我从这里和使用手动说明都试过了。
Moin
4
是的,确实如此。 “安装此主题组件”按钮中的链接已过时,但顶部的链接仍然正确,您可以使用它来手动安装该组件。
或者您可以尝试此按钮
2 个赞
nathank
(Nathan Kershaw)
5
我已经修复了OP中安装按钮的链接,所以现在一切都好了。
4 个赞
nathank
(Nathan Kershaw)
6
我遇到了一个小错误,当我的“桌面”屏幕特别窄时——比如在我的折叠手机上——指定的顺序不起作用。
我希望它看起来是这样的:
当我的屏幕尺寸很奇怪时(似乎宽度在 640-820 左右),顺序就乱了:
1 个赞
Lilly
(Lillian )
7
哦,天哪,两栏侧边栏又回来了。我以为那个东西已经消失了?我去看看……
4 个赞
nathank
(Nathan Kershaw)
8
原来是我有点糊涂了!我当时用的是旧组件,都没注意到。
不过我发现了一件事——原来被称为 community 的现在改成了 the-forum。这是个整理默认设置的拉取请求(PR):
1 个赞
Moin
9
在我的论坛上它仍然被称为 community,在这里的 Meta 上也是如此。
我想知道你是如何更改它的。
2 个赞
nathank
(Nathan Kershaw)
10
那确实很奇怪!我现在回想起来,确实记得在某个阶段更改过上面的文本。但不确定那段 HTML 是怎么进来的!
我将撤回那个 PR,再仔细琢磨一下。这可能只能成为我网站的一个“怪癖”了!
1 个赞
Lilly
(Lillian )
11
你应该能够使用一些 rails 命令将其重命名回来。如果你的版块确实叫做 the-forum,那么我认为从 rails 控制台执行以下操作应该有效:
cd /var/discourse
./launcher enter app
rails c
section = SidebarSection.find_by(title: 'the-forum', public: true)
if section
section.update!(title: 'community')
puts "完成:已重命名为 'community'。"
else
puts "未找到版块。"
end
一定要先备份。
3 个赞
Lilly
(Lillian )
14
注意:我刚刚为此组件推送了一些移动端修复——它之前开始渲染侧边栏区块之间的水平线,而这些线条本应仅在桌面或平板视图中显示。
2 个赞
我正在使用这个精美的主题组件,并与 Lilly 同样出色的 Discourse Group Sidebar Menus 组件搭配使用。我的使用场景是为客户端创建自定义菜单,让组织内的每个人都能在顶部、社区部分之后,快速访问与他们相关的专属链接。
想提醒未来的使用者(包括我自己):侧边栏区域名称非常敏感,必须完全匹配,且名称中的空格需转换为连字符。例如,“Doing business”会变成“doing-business”。
这本来一切顺利,但我在创建群组侧边栏区域时,不小心在群组名称末尾多了一个空格,结果变成了“doing-business-”。后来我通过开发者工具进行故障排查才发现了这个问题。
这些功能对我来说至关重要,因此我非常希望它们能被考虑纳入核心功能,以便在任何 Discourse 站点上都能更便捷地使用。
1 个赞
Lilly
(Lillian )
16
谢谢 Tobias。我实际上已在设置描述中建议使用部分名称的 slug,截图示例中也已标明(参见“dev-links”= DEV LINKS)。[quote=“Lilly, post:1, topic:394049”]
也可以添加全局可见的自定义部分——请使用菜单名称的 slug(例如,对于标题为“Test Menu”的自定义菜单,请在设置中添加 test-menu)。
[/quote]
也许我应该把它添加到设置描述以外的地方。
编辑:已完成
4 个赞