Discourse 侧边栏菜单重新排序

安装此主题组件

:bulb: 简介

我注意到许多 Discourse 管理员希望重新排序侧边栏菜单部分,包括全局自定义部分。由于目前通过 CSS 实现这一功能对大多数人来说不够直观或简便,且管理和修改起来较为困难,因此我创建了一个主题组件,使在管理员界面中完成此操作变得轻松许多。

:woman_technologist:t2: 概述

此 Discourse 主题组件允许管理员在管理员用户界面中重新排序论坛的侧边栏菜单部分,包括所有默认部分以及任何全局可见的自定义部分。

该组件适用于桌面和移动端的侧边栏视图,同时也支持标题下拉模式(尽管它主要是为侧边栏模式设计的)。


:wrench: 安装与配置

  • 按照 Discourse 主题使用入门指南 安装此主题组件。
  • community 部分指的是侧边栏顶部的默认部分——即带有 主题 标题的菜单,并包含 更多 下拉子菜单;建议不要将超过一两个部分(默认或自定义)移动到 community 部分之上。
  • 请勿在设置中删除任何默认部分,否则它们将失去顺序(您可以随时将它们添加回来或重置设置)。
  • 配置此组件的最佳方式是:在一个浏览器窗口中打开组件管理员屏幕(包含重新排序列表设置),在另一个窗口中以测试用户身份查看论坛侧边栏;每次在列表中更改菜单部分顺序后,请刷新页面。

:gear: 设置

设置 描述
Sidebar menu order 一个列表设置,包含默认菜单部分(community 是侧边栏的默认顶部部分,包含 More 下拉子菜单)。使用侧边的上下箭头重新排序菜单部分。还可以添加全局可见的自定义部分——请使用菜单名称的 slug(例如,对于标题为“测试菜单”的自定义菜单,在设置中添加 test-menu)。

该主题组件初始使用默认设置。管理员需要添加任何希望混合到排序列表中的全局自定义菜单部分,然后与默认部分一起重新排序。

默认组件设置截图


:camera_flash: 截图

以下截图展示了 community 部分以及两个示例自定义菜单部分:“开发链接”(dev-links)和“工具箱”(toolbox)。左侧为组件管理员面板中的显示效果,右侧为普通用户的显示效果。用于在组件管理员设置中上下移动菜单部分的箭头显示在红色小框中。


此处,设置配置为将默认的 categories 部分显示在 community 部分之上(折叠和展开模式):

以下是一个使用两个自定义部分的示例:一个名为 dev-links 的部分位于默认 community 部分之上,另一个名为 toolbox 的部分位于默认 tags 部分之下。

另外,请注意上述管理员截图中的 inbox-section 部分——这是 侧边栏消息部分 组件插入到侧边栏中的 消息 部分(位于上述 toolbox 自定义菜单之下),表明此组件也可用于移动该部分。

此外,此主题组件可与 群组侧边栏菜单缩进子分类 组件配合使用(见上方截图)。


:backhand_index_pointing_right: 注意事项

  • sidebar_menu_order 设置中添加新的全局自定义部分后,论坛用户在刷新浏览器或折叠/展开侧边栏时将看到正确的菜单顺序。
  • 在此组件启用时创建新的全局自定义菜单部分,可能会导致管理员暂时看到重复的部分,直到侧边栏重新渲染(通过刷新页面或折叠/展开操作)。
  • 用户创建的自定义菜单部分将始终显示在该用户侧边栏的底部,但其他方面不受影响。
  • 如果 Admin -> 所有站点设置 -> 聊天独立侧边栏模式 设置为 Always,聊天按钮将照常显示在底部,且该组件将忽略默认的聊天菜单部分(chat-dmschat-channelschat-search)。

查看我的其他 Discourse 相关内容
26 个赞

太棒了。我真的很喜欢使用分类 (1) 然后聊天的 (2) 设置。非常感谢您莉莉(Lilly)出色的工作。

4 个赞

这还支持吗?我尝试安装时遇到了以下错误。我从这里和使用手动说明都试过了。

是的,确实如此。 “安装此主题组件”按钮中的链接已过时,但顶部的链接仍然正确,您可以使用它来手动安装该组件。

或者您可以尝试此按钮

安装此主题组件

2 个赞

我已经修复了OP中安装按钮的链接,所以现在一切都好了。

4 个赞

我遇到了一个小错误,当我的“桌面”屏幕特别窄时——比如在我的折叠手机上——指定的顺序不起作用。

我希望它看起来是这样的:

   

当我的屏幕尺寸很奇怪时(似乎宽度在 640-820 左右),顺序就乱了:

1 个赞

哦,天哪,两栏侧边栏又回来了。我以为那个东西已经消失了?我去看看……

4 个赞

原来是我有点糊涂了!我当时用的是旧组件,都没注意到。

不过我发现了一件事——原来被称为 community 的现在改成了 the-forum这是个整理默认设置的拉取请求(PR):

1 个赞

在我的论坛上它仍然被称为 community,在这里的 Meta 上也是如此。


我想知道你是如何更改它的。

2 个赞

那确实很奇怪!我现在回想起来,确实记得在某个阶段更改过上面的文本。但不确定那段 HTML 是怎么进来的!

我将撤回那个 PR,再仔细琢磨一下。这可能只能成为我网站的一个“怪癖”了!

1 个赞

你应该能够使用一些 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 个赞

终于试了一下这个。不过它没有找到该部分:

我想这可能只是网站的一个小怪癖吧,对吧?

1 个赞

(帖子已被作者删除)

2 个赞

注意:我刚刚为此组件推送了一些移动端修复——它之前开始渲染侧边栏区块之间的水平线,而这些线条本应仅在桌面或平板视图中显示。

2 个赞