summaryrefslogtreecommitdiff
path: root/library/WT/Theme/BaseTheme.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/WT/Theme/BaseTheme.php')
-rw-r--r--library/WT/Theme/BaseTheme.php10
1 files changed, 8 insertions, 2 deletions
diff --git a/library/WT/Theme/BaseTheme.php b/library/WT/Theme/BaseTheme.php
index 7b19a77e57..5d066ca8b0 100644
--- a/library/WT/Theme/BaseTheme.php
+++ b/library/WT/Theme/BaseTheme.php
@@ -1591,15 +1591,21 @@ abstract class BaseTheme {
*/
public function menuThemes() {
if ($this->tree && !$this->isSearchEngine() && WT_Site::getPreference('ALLOW_USER_THEMES') && $this->tree->getPreference('ALLOW_THEME_DROPDOWN')) {
- $menu = new WT_Menu(WT_I18N::translate('Theme'), '#', 'menu-theme');
+ $submenus = array();
foreach (Theme::installedThemes() as $theme) {
$submenu = new WT_Menu($theme->themeName(), get_query_url(array('theme' => $theme->themeId()), '&'), 'menu-theme-' . $theme->themeId());
if ($theme === $this) {
$submenu->addClass('', '', 'active');
}
- $menu->addSubmenu($submenu);
+ $submenus[] = $submenu;
}
+ usort($submenus, function(WT_Menu $x, WT_Menu $y) {
+ return WT_I18N::strcasecmp($x->getLabel(), $y->getLabel());
+ });
+
+ $menu = new WT_Menu(WT_I18N::translate('Theme'), '#', 'menu-theme', '', $submenus);
+
return $menu;
} else {
return null;