导航(侧边栏)菜单显示控制

|||
| - | - | - |
| :information_source: | 摘要 | 允许为员工、已登录用户和匿名用户显示部分和链接 |
| :hammer_and_wrench: | 代码库| https://github.com/Lillinator/navigation-menu-display-control |
| :question: | 安装指南 | 如何安装主题或主题组件 |
| :open_book: | 不熟悉 Discourse 主题? | Discourse 主题使用入门指南 |

Install this theme component

描述

导航菜单显示控制主题组件允许为仅限员工和/或仅限登录用户显示各种默认部分和链接。您还可以指定自定义部分或自定义链接(已包含占位符名称)。此外,还有一个设置用于仅为匿名用户显示自定义菜单部分,以及用于设置默认部分(类别、标签、聊天、频道、消息)顺序的设置。设置中的部分和链接是列表,可以编辑现有部分(请参见下面的屏幕截图),以及添加任意数量的自定义部分或链接。

设置

:point_right:t2: 对于自定义菜单部分,在设置它们时必须全局可见(必须启用“使此部分公开并对所有人可见”复选框)。
顶部的部分在代码中称为“community”,因此如果您想隐藏该部分,请使用“community”部分名称。您可以使用插件安装的链接,例如文档、周年纪念和生日链接。
还有相互覆盖的设置——在“更多”中为已登录用户可见的特定链接将被仅对员工可见的“更多”下拉设置覆盖。

设置名称 描述
show these sections for staff only 仅为员工显示的部门列表。可以包含自定义部门,使用“Staff Menu = staff-menu”的 slug 命名格式。
show these sections for logged-in only 仅为登录用户显示的部门列表。可以包含自定义部门,使用“User Menu = user-menu”的 slug 命名格式。
show these links for staff only 仅为员工显示的链接列表。可以包含使用相同大小写格式命名的自定义链接(“Staff Link”=“Staff Link”)。
show these links for logged-in only 仅为登录用户显示的链接列表。可以包含使用相同大小写格式命名的自定义链接(“User Link”=“User Link”)
show more for staff only 仅为员工显示“更多”下拉部分的复选框。
show more for logged-in only 仅为登录用户显示“更多”下拉部分的复选框。
show custom for anon only 用于自定义菜单部分的文本字段,仅显示给匿名用户(对登录用户隐藏)。
show navigation menu to logged-in only 仅为登录用户显示整个导航侧边栏菜单的复选框(对匿名用户隐藏)。
hide custom menus globe icon 隐藏自定义菜单部分员工的地球图标(默认情况下非员工不可见)。
default menu section ordering 允许重新排序默认菜单部分(不适用于自定义菜单)

屏幕截图

仅为员工和登录用户设置部分

仅为员工和登录用户设置链接

更多部分、仅为匿名用户自定义菜单部分、地球图标、隐藏整个导航菜单以及更改默认菜单部分顺序的设置


对于特定于组的自定义导航侧边栏菜单部分,请使用 Group Menu Sections 主题组件。

24 个赞

添加了一个部分,允许重新排序默认菜单部分。

5 个赞

我不太确定隐藏链接的功能目前是否正常工作。

分区可以很好地隐藏,但当我将自定义链接转换为小写和破折号时,我无法隐藏它们。

但是,官方链接似乎需要小写。所以它们可能被区别处理。

然而,如果使用完整的标题文本(带空格和大写),它们就可以正常工作。所以也许只需要更改 OP(是否可以进行维基化?)和 TC 中的说明。或者可能需要进行核心更改以保持一致性。

2 个赞

谢谢 Nathan。是的,那里有些东西变了。我将在周末看看这个问题。

1 个赞

好的,该组件仍然可以正常运行,但自定义链接的类名格式已更改,因此我必须对组件和 OP 中的字段文档进行一些更改。请更新主题组件。

与自定义菜单部分不同,对于自定义链接,组件设置中的名称应与其实际自定义名称的大小写格式相同。当然,默认的应该仍然是小写,只是为了让事情更加混乱,哈哈。:grin:

例如,如果我想仅为登录用户显示一个名为“GitHub Repo”的特定自定义链接:

我会在主题组件的 show these links for logged-in only 设置中输入相同的链接名称:

因此,如果您在链接显示设置中设置了自定义链接 - show these links for staff onlyshow these links for logged-in only - 您将需要更改这些组件设置条目以匹配链接名称。

请注意,对于自定义菜单部分(非链接),命名约定仍然与以前相同 - 它仍然是小写斜杠风格(例如,“Custom Menu Name” = custom-menu-name)。

再次感谢您提请我注意此事 @nathank :hugs:

我希望在某个时候能够添加重新排列所有导航侧边栏菜单部分(包括自定义部分)的功能,而不仅仅是像现在这样只重新排列默认部分。我知道如何在代码中实现它,我只需要将其构建为使用设置和变量。

4 个赞

莉莉,你好:

我注意到:

  • 无论我使用的是显示名称还是 slug,都无法重新排序版块
  • 即使我没有勾选“隐藏侧边栏”的选项,访客的整个侧边栏也会被隐藏
1 个赞

您无法使用此组件重新排序自定义部分。我刚刚检查了重新排序功能,它的运行符合预期。

是的,我可以确认匿名隐藏功能已损坏。我今天会修复它。感谢您告知我。

在查看之后,匿名隐藏功能运行符合预期,但您必须删除我在设置中用于演示其工作方式的默认示例,以用于“仅向登录用户显示这些部分”。

1 个赞


未登录模式下不显示任何人?

这应该是一个切换设置……

image

1 个赞

请看我上面的帖子 :slight_smile:

编辑:也许我应该考虑删除那些,只用截图来展示。 :thinking:

4 个赞

好的,我现在已经这样做了,并编辑了 OP。使用截图作为默认部分和链接名称的指南。

2 个赞

我认为 ⋮ More 部分的 CSS 已更改(btn-flat 不再存在)

我不得不使用这个来隐藏它,以便匿名用户可以访问:

.anon button.sidebar-more-section-links-details-summary {
    display: none;
}

这是一个 PR:

3 个赞

这已合并。再次感谢 Nathan :拥抱:

我还修复了隐藏整个侧边栏的匿名函数,它有点坏了。

3 个赞

您好,

我卡住了,在尝试理解如何使用这个漂亮的组件。我试图让匿名用户只看到“成为会员”或类似的东西。
您能帮帮我吗?

我将提供三种不同的方法来完成此操作:

1. 使用此主题组件

创建一个自定义侧边栏菜单,其中包含指向 /login 的链接,并在主题组件中使用此设置:


2. 在新/现有主题或组件中使用 CSS

如果您只想在“我的帖子”下的顶部区域添加链接,可以通过“更多 - 自定义此部分”链接添加指向 /login 的链接,如下所示。例如,如果链接名为“登录或注册”:

然后转到主题或主题组件并像这样编辑 html / css:

请记住,该顶部区域中的链接引用区分大小写:

.sidebar-section-link-wrapper[data-list-item-name="Login or Signup"] {
  display: none;
}

.anon .sidebar-section-link-wrapper[data-list-item-name="Login or Signup"] {
  display: block;
}

在隐身/匿名视图中的结果:


3. 使用以下主题组件

是的,我很久以前就做了一个专门的主题组件来实现这个功能。它也反过来工作——为会员(登录用户)显示一个部分。

3 个赞

好的。非常感谢您的详细指导。

2 个赞