diff --git a/public/language/en-GB/admin/settings/navigation.json b/public/language/en-GB/admin/settings/navigation.json
index 13dd01aae7..7baca85096 100644
--- a/public/language/en-GB/admin/settings/navigation.json
+++ b/public/language/en-GB/admin/settings/navigation.json
@@ -11,6 +11,8 @@
"properties": "Properties:",
"groups": "Groups:",
"open-new-window": "Open in a new window",
+ "dropdown": "Dropdown",
+ "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a href="https://myforum.com">Link 1</a></li>",
"btn.delete": "Delete",
"btn.disable": "Disable",
@@ -20,4 +22,4 @@
"custom-route": "Custom Route",
"core": "core",
"plugin": "plugin"
-}
\ No newline at end of file
+}
diff --git a/public/src/app.js b/public/src/app.js
index 1cf4471fb5..e6f3e95e1c 100644
--- a/public/src/app.js
+++ b/public/src/app.js
@@ -284,9 +284,12 @@ app.cacheBuster = null;
$('#main-nav li')
.removeClass('active')
.find('a')
- .filter(function (i, x) {
- return window.location.hostname === x.hostname && (window.location.pathname === x.pathname ||
- window.location.pathname.startsWith(x.pathname + '/'));
+ .filter(function (i, a) {
+ return $(a).attr('href') !== '#' && window.location.hostname === a.hostname &&
+ (
+ window.location.pathname === a.pathname ||
+ window.location.pathname.startsWith(a.pathname + '/')
+ );
})
.parent()
.addClass('active');
diff --git a/src/controllers/admin/settings.js b/src/controllers/admin/settings.js
index 41166e6d1c..d4abecd479 100644
--- a/src/controllers/admin/settings.js
+++ b/src/controllers/admin/settings.js
@@ -1,5 +1,7 @@
'use strict';
+const validator = require('validator');
+
const meta = require('../../meta');
const emailer = require('../../emailer');
const notifications = require('../../notifications');
@@ -72,6 +74,7 @@ settingsController.navigation = async function (req, res) {
enabled.selected = index === 0;
enabled.title = translator.escape(enabled.title);
enabled.text = translator.escape(enabled.text);
+ enabled.dropdownContent = translator.escape(validator.escape(String(enabled.dropdownContent || '')));
enabled.groups = admin.groups.map(group => ({
displayName: group.displayName,
selected: enabled.groups.includes(group.name),
diff --git a/src/views/admin/settings/navigation.tpl b/src/views/admin/settings/navigation.tpl
index 86cff2d1e1..cd406b90ab 100644
--- a/src/views/admin/settings/navigation.tpl
+++ b/src/views/admin/settings/navigation.tpl
@@ -89,6 +89,19 @@
+
+ [[admin/settings/navigation:dropdown-placeholder]] +
+ +