diff --git a/SiteServer.CMS/Core/TabManager.cs b/SiteServer.CMS/Core/TabManager.cs index 37de728e8..1b3e43595 100644 --- a/SiteServer.CMS/Core/TabManager.cs +++ b/SiteServer.CMS/Core/TabManager.cs @@ -129,7 +129,7 @@ public static List GetTabList(string topId, int siteId) if (isExists) continue; - tabs.Add(PluginMenuManager.GetPluginTab(menu.PluginId, string.Empty, menu)); + tabs.Add(PluginMenuManager.GetPluginTab(menu.PluginId, null, menu)); //if (string.IsNullOrEmpty(menu.ParentId)) //{ diff --git a/SiteServer.CMS/Plugin/PluginMenuManager.cs b/SiteServer.CMS/Plugin/PluginMenuManager.cs index 95a873957..137b02e79 100644 --- a/SiteServer.CMS/Plugin/PluginMenuManager.cs +++ b/SiteServer.CMS/Plugin/PluginMenuManager.cs @@ -77,10 +77,9 @@ public static List GetTopMenus() if (metadataMenus.Count == 0) continue; - var i = 0; foreach (var metadataMenu in metadataMenus) { - var pluginMenu = GetMenu(service.PluginId, 0, 0, 0, metadataMenu, ++i); + var pluginMenu = GetMenu(service.PluginId, 0, 0, 0, metadataMenu); menus.Add(pluginMenu); } } @@ -116,10 +115,9 @@ public static List GetSiteMenus(int siteId) if (metadataMenus.Count == 0) continue; - var i = 0; foreach (var metadataMenu in metadataMenus) { - var pluginMenu = GetMenu(service.PluginId, siteId, 0, 0, metadataMenu, ++i); + var pluginMenu = GetMenu(service.PluginId, siteId, 0, 0, metadataMenu); menus.Add(pluginMenu); } } @@ -158,10 +156,9 @@ public static List GetContentMenus(List pluginIds, ContentIn if (metadataMenus.Count == 0) continue; - var i = 0; foreach (var metadataMenu in metadataMenus) { - var pluginMenu = GetMenu(service.PluginId, contentInfo.SiteId, contentInfo.ChannelId, contentInfo.Id, metadataMenu, ++i); + var pluginMenu = GetMenu(service.PluginId, contentInfo.SiteId, contentInfo.ChannelId, contentInfo.Id, metadataMenu); menus.Add(pluginMenu); } } @@ -241,7 +238,7 @@ private static string GetMenuHref(string pluginId, string href, int siteId, int // }); //} - private static PluginMenu GetMenu(string pluginId, int siteId, int channelId, int contentId, Menu metadataMenu, int i) + private static PluginMenu GetMenu(string pluginId, int siteId, int channelId, int contentId, Menu metadataMenu) { var menu = new PluginMenu { @@ -255,7 +252,7 @@ private static PluginMenu GetMenu(string pluginId, int siteId, int channelId, in if (string.IsNullOrEmpty(menu.Id)) { - menu.Id = pluginId + i; + menu.Id = metadataMenu.Text; } if (!string.IsNullOrEmpty(menu.Href)) { @@ -269,10 +266,9 @@ private static PluginMenu GetMenu(string pluginId, int siteId, int channelId, in if (metadataMenu.Menus != null && metadataMenu.Menus.Count > 0) { var children = new List(); - var x = 1; foreach (var childMetadataMenu in metadataMenu.Menus) { - var child = GetMenu(pluginId, siteId, channelId, contentId, childMetadataMenu, x++); + var child = GetMenu(pluginId, siteId, channelId, contentId, childMetadataMenu); children.Add(child); } @@ -282,7 +278,7 @@ private static PluginMenu GetMenu(string pluginId, int siteId, int channelId, in return menu; } - public static Tab GetPluginTab(string pluginId, string prefix, Menu menu) + public static Tab GetPluginTab(string pluginId, Menu parent, Menu menu) { var tab = new Tab { @@ -302,15 +298,15 @@ public static Tab GetPluginTab(string pluginId, string prefix, Menu menu) for (var i = 0; i < menu.Menus.Count; i++) { var child = menu.Menus[i]; - var childPermission = GetMenuPermission(pluginId, menu.Text, child); + var childPermission = GetMenuPermission(pluginId, menu, child); permissions.Add(childPermission); - tab.Children[i] = GetPluginTab(pluginId, menu.Text, child); + tab.Children[i] = GetPluginTab(pluginId, menu, child); } } else { - var permission = GetMenuPermission(pluginId, prefix, menu); + var permission = GetMenuPermission(pluginId, parent, menu); permissions.Add(permission); } tab.Permissions = TranslateUtils.ObjectCollectionToString(permissions); @@ -333,9 +329,14 @@ public static Tab GetPluginTab(string pluginId, string prefix, Menu menu) return permissions; } - private static string GetMenuPermission(string pluginId, string prefix, Menu menu) + private static string GetMenuPermission(string pluginId, Menu parent, Menu menu) { - return string.IsNullOrEmpty(prefix) ? $"{pluginId}:{menu.Text}" : $"{pluginId}:{prefix}:{menu.Text}"; + var prefix = string.Empty; + if (parent != null) + { + prefix = string.IsNullOrEmpty(parent.Id) ? $":{parent.Text}" : $":{parent.Id}"; + } + return string.IsNullOrEmpty(menu.Id) ? $"{pluginId}{prefix}:{menu.Text}" : $"{pluginId}{prefix}:{menu.Id}"; } public static List GetSitePermissions(int siteId) @@ -355,13 +356,13 @@ private static string GetMenuPermission(string pluginId, string prefix, Menu men { foreach (var menu in metadataMenu.Menus) { - var permission = GetMenuPermission(service.PluginId, metadataMenu.Text, menu); + var permission = GetMenuPermission(service.PluginId, metadataMenu, menu); permissions.Add(new PermissionConfigManager.PermissionConfig(permission, $"{service.Metadata.Title} -> {menu.Text}")); } } else { - var permission = GetMenuPermission(service.PluginId, string.Empty, metadataMenu); + var permission = GetMenuPermission(service.PluginId, null, metadataMenu); permissions.Add(new PermissionConfigManager.PermissionConfig(permission, $"{service.Metadata.Title} -> {metadataMenu.Text}")); } } diff --git a/SiteServer.CMS/Provider/ContentDao.Select.cs b/SiteServer.CMS/Provider/ContentDao.Select.cs index 548b6d99a..0f4309d2a 100644 --- a/SiteServer.CMS/Provider/ContentDao.Select.cs +++ b/SiteServer.CMS/Provider/ContentDao.Select.cs @@ -1,10 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; -using System.Web.UI.WebControls; using Datory; -using OpenXmlPowerTools; using SiteServer.CMS.Core; using SiteServer.CMS.DataCache; using SiteServer.CMS.DataCache.Stl; diff --git a/SiteServer.CMS/Provider/ContentDao.cs b/SiteServer.CMS/Provider/ContentDao.cs index ea6344ece..e023d6ad0 100644 --- a/SiteServer.CMS/Provider/ContentDao.cs +++ b/SiteServer.CMS/Provider/ContentDao.cs @@ -1440,7 +1440,10 @@ public List GetIdListBySameTitle(string tableName, int channelId, string ti public int GetCountCheckedImage(int siteId, int channelId) { - var tableName = SiteManager.GetSiteInfo(siteId).TableName; + var siteInfo = SiteManager.GetSiteInfo(siteId); + if (siteInfo == null) return 0; + + var tableName = siteInfo.TableName; var sqlString = $"SELECT COUNT(*) FROM {tableName} WHERE {ContentAttribute.ChannelId} = {channelId} AND {nameof(ContentInfo.ImageUrl)} != '' AND {ContentAttribute.IsChecked} = '{true}' AND {ContentAttribute.SourceId} != {SourceManager.Preview}"; @@ -1449,7 +1452,10 @@ public int GetCountCheckedImage(int siteId, int channelId) public int GetCountChecking(int siteId) { - var tableName = SiteManager.GetSiteInfo(siteId).TableName; + var siteInfo = SiteManager.GetSiteInfo(siteId); + if (siteInfo == null) return 0; + + var tableName = siteInfo.TableName; var sqlString = $"SELECT COUNT(*) FROM {tableName} WHERE {ContentAttribute.ChannelId} > 0 AND {ContentAttribute.IsChecked} = '{false}' AND {ContentAttribute.SourceId} != {SourceManager.Preview}"; diff --git a/SiteServer.Web/Web.config b/SiteServer.Web/Web.config index 0d49cba92..8e46b5f92 100644 --- a/SiteServer.Web/Web.config +++ b/SiteServer.Web/Web.config @@ -12,6 +12,9 @@ + +