侧边栏菜单重新排序

安装此主题组件

:bulb: 简介

我注意到许多 Discourse 管理员希望重新排序侧边栏菜单部分,包括全局自定义部分。由于目前通过 CSS 对大多数人来说并不直观或简单,且难以管理和修改,我创建了一个主题组件,使其在管理界面中变得更容易。

:woman_technologist:t2: 概述

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

该组件适用于桌面和移动侧边栏视图,以及标题下拉模式(尽管理想情况下,它是为侧边栏模式设计的)。


:wrench: 安装与配置

  • 按照 Discourse 主题使用入门指南 安装此主题组件。
  • community 部分指的是侧边栏的默认顶部部分——带有 主题 标题的菜单,并包含 更多 下拉子菜单;建议不要将超过一个或两个部分(默认或自定义)移动到 community 部分之上。
  • 不要在设置中删除任何默认部分,否则它们将失去顺序(您可以随时重新添加或重置设置)。
  • 配置此组件的最佳方法是在一个浏览器窗口中打开包含重新排序列表设置的主题组件管理屏幕,并在另一个窗口中以测试用户身份查看论坛侧边栏;在列表中的每个菜单部分顺序更改后重新加载页面。
  • 在主题组件设置中,务必使用 slug 命名格式来命名自定义部分,否则它们将被忽略(例如:对于名为“自定义菜单名称”的菜单,使用 custom-menu-name;对于“有用链接”,使用 useful-links,等等)。

:gear: 设置

设置 描述
侧边栏菜单顺序 一个包含默认菜单部分的列表设置。(community 是侧边栏中的默认顶部部分,并包含 更多 下拉子菜单。)使用侧面的上下箭头重新排序菜单部分。也可以添加全局可见的自定义部分——使用菜单名称的 slug(例如,对于名为 Test Menu 的自定义菜单,在设置中添加 test-menu)。

主题组件最初具有默认设置。 管理员需要添加他们希望混入排序列表的任何全局自定义菜单部分,然后与默认部分一起重新排序。

默认组件设置截图


:camera_flash: 截图

下面的截图显示了 community 部分,以及两个名为“Dev Links”(dev-links)和“Toolbox”(toolbox)的示例自定义菜单部分,它们分别出现在左侧的主题组件管理面板和右侧的普通用户视图中。在主题组件设置中用于上下移动菜单部分的箭头显示在小红框中。


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

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

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

此外,此主题组件可以与 组侧边栏菜单缩进子类别 组件一起使用(参见上述截图)。


:backhand_index_pointing_right: 注意事项

  • 将新的全局自定义部分添加到 sidebar_menu_order 设置后,论坛用户在重新加载浏览器或折叠/展开侧边栏时将看到新的正确菜单顺序。
  • 在启用此组件时创建新的全局自定义菜单部分可能会导致管理员暂时看到重复的部分,直到侧边栏重新渲染,无论是通过页面刷新还是通过折叠和展开。
  • 用户创建的自定义菜单部分将始终出现在该用户侧边栏的底部,但其他方面不受影响。
  • 如果 Admin -> All Site Settings -> Chat Separate Sidebar Mode 设置设置为 Always,聊天按钮将照常出现在底部,并且该组件将忽略默认的聊天菜单部分(chat-dmschat-channelschat-search)。

查看我的其他 Discourse 作品
28 个赞

太棒了。我真的很喜欢使用分类 (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 个赞

我正在使用这个精美的主题组件,并与 Lilly 同样出色的 Discourse Group Sidebar Menus 组件搭配使用。我的使用场景是为客户端创建自定义菜单,让组织内的每个人都能在顶部、社区部分之后,快速访问与他们相关的专属链接。

想提醒未来的使用者(包括我自己):侧边栏区域名称非常敏感,必须完全匹配,且名称中的空格需转换为连字符。例如,“Doing business”会变成“doing-business”。

这本来一切顺利,但我在创建群组侧边栏区域时,不小心在群组名称末尾多了一个空格,结果变成了“doing-business-”。后来我通过开发者工具进行故障排查才发现了这个问题。

这些功能对我来说至关重要,因此我非常希望它们能被考虑纳入核心功能,以便在任何 Discourse 站点上都能更便捷地使用。:folded_hands:

2 个赞

谢谢 Tobias。我实际上已在设置描述中建议使用部分名称的 slug,截图示例中也已标明(参见“dev-links”= DEV LINKS)。[quote=“Lilly, post:1, topic:394049”]
也可以添加全局可见的自定义部分——请使用菜单名称的 slug(例如,对于标题为“Test Menu”的自定义菜单,请在设置中添加 test-menu)。
[/quote]

也许我应该把它添加到设置描述以外的地方。:thinking:

编辑:已完成

6 个赞