This theme component allows displaying Discourse custom navigation (sidebar) menu sections to only specific user groups (including trust levels and default groups). The component allows for up to eight custom menu sections to use, and as many groups as you decide for each specified section. Use lowercase group section names separated by dashes (ie: "Superuser Menu = superuser-menu, Staff Menu = staff-menu). The groups are selected from your available groups via drop down selection fields.
Note that the custom sections specified in this component must be setup as public and visible to everyone. To create a new group navigation menu section, make a public one as usual then include it in the settings of this component along with the groups you want it to be visible to. You can specify the section in the component settings before you setup your custom section as long as use the correct section name - this will prevent the section from being displayed to all before you restrict it with the component.
Although this component is intended for custom sections, it can also be used for any existing sections of the navigation menu (ie: categories, tags, channels, personal chat, and even the now deprecated “community” top section). For example you can show custom menus to superuser and staff groups, and also hide tags and channels from a new user group (trust_level_0) at same time. If you want to display a specific menu section for only forum members (hide from anonymous) you can set it to display for the trust_level_0 group.
Group visibility must be set to “Everyone” in the group interaction settings for any groups you wish to use for this component.
Settings:
List of settings
Name
Description
menu 1
Navigation menu section 1 to show to group(s) in setting below. User lowercase slug names.
display menu 1 for these groups only
Drop down selector of available groups for menu 1. Group visibility must be set to Everyone in the group interaction settings.
menu 2 - 8
Menu sections to show to group(s) in respective groups setting .
display menu 2 - 8 for these groups only
Drop down selectors of available groups for menus 2 - 8.
hide custom menus globe icon
Hide the globe icon for staff (not applicable to non-staff)
Please note that this component is generally intended for the navigation menu in sidebar mode, but does also function in header drop-down for now. Also works for both desktop and mobile views.
Create a new custom navigation menu section, called say “Anon Menu” (you can call it whatever you want, but remember the name) and make it a public section (check box at bottom of the modal).
Then in the Common-CSS of a theme or theme component that you create, insert this CSS code. Replace “anon-menu” with the section name-slug of the menu section name you created in step 1 (ie: Custom Section = custom-section).
In fact, I like this idea as a use case scenario and will add it to the component when I update it next. I’m building a JSON schema modal for the component’s settings so it’s a bit more intuitive to configure.
Thanks. This is more complex than I expected simply from a maintenance perspective I wouldn’t remember what I had done a few months down the line.
EDIT: My attempt to create an anonymous users group does NOT work because that’s only for the Anonymous feature, i.e. when a logged in user changes to Anonymous mode after logging in and not for truly anonymous users (users who don’t have an account).
Another suggestion, it would be great if it can read the list of groups and offer a dropdown to select from a list of available groups so one doesn’t have typo’s while writing the name of groups
Yes that’s correct, I’m referring to not-logged-in-users, people who land the website and haven’t logged in or don’t have an account.
I tried something above but it didn’t work because that’s a completely different feature (it caused more confusion that it should and I’m sorry about that).
I have updated this component with group drop-down selection boxes that populate with available groups. Also increased the number of menu sections to eight and added a globe icon hider.
Oh no it’s not, I just had that as part of the example menu name. For example, if the menu name is “User Info” then it would be “user-info”. The best way to do it is when you create the menu section, use the name in the Section title field and convert it to slug format with lowercase and dashes for spaces.
Russian I think? Whatever is in the Section title field I marked with an arrow in the first screenshot but with lowercase and dashes for spaces.
I just tested that configuration in my screenshot and it works.
Did you rename the community section in russian at any point? if not then using “community” should work (I’m assuming you mean the top unnamed default menu section).