/// <summary> /// 绑定全局选项 /// </summary> public void BindGlobal() { if (EditTabID != Int32.MaxValue) { DNNGo_ThemePlugin_Menu Item = ContentItem; div_GlobalSettings.Visible = true; WebHelper.BindList(rblUseGlobalSettings, typeof(EnumTrueFalse)); if (Item != null && Item.ID > 0) { if (Token.IndexOf("Background", StringComparison.CurrentCultureIgnoreCase) >= 0) { WebHelper.SelectedListByValue(rblUseGlobalSettings, Item.Globals_Background); } else { WebHelper.SelectedListByValue(rblUseGlobalSettings, Item.Globals_Breadcrumb); } } else { WebHelper.SelectedListByValue(rblUseGlobalSettings, 1); } } else { div_GlobalSettings.Visible = false; } }
/// <summary> /// 查找当前页面设置的参数列表 /// </summary> /// <param name="tabInfo"></param> /// <returns></returns> public DNNGo_ThemePlugin_Menu FindTabOptions(TabInfo tabInfo) { QueryParam qp = new QueryParam(); qp.Where.Add(new SearchParam(DNNGo_ThemePlugin_Menu._.TabID, tabInfo.TabID, SearchType.Equal)); return(DNNGo_ThemePlugin_Menu.FindAllByItem(qp)); }
/// <summary> /// 获取全局设置 /// </summary> /// <returns></returns> public DNNGo_ThemePlugin_Menu GetGlobalSettings() { QueryParam qp = new QueryParam(); qp.Where.Add(new SearchParam(DNNGo_ThemePlugin_Menu._.TabID, PortalSettings.ActiveTab.TabID, SearchType.Equal)); qp.Where.Add(new SearchParam(DNNGo_ThemePlugin_Menu._.Language, "en-US", SearchType.Equal)); return(DNNGo_ThemePlugin_Menu.FindAllByItem(qp)); }
/// <summary> /// 判断当前菜单是否为MegaMenu类型 /// </summary> /// <param name="tabInfo"></param> /// <returns></returns> public Boolean TrueMegaType(TabInfo tabInfo, out DNNGo_ThemePlugin_Menu MenuOptions) { QueryParam qp = new QueryParam(); qp.Where.Add(new SearchParam(DNNGo_ThemePlugin_Menu._.TabID, tabInfo.TabID, SearchType.Equal)); qp.Where.Add(new SearchParam(DNNGo_ThemePlugin_Menu._.MenuType, (Int32)EnumTabType.MegaMenu, SearchType.Equal)); MenuOptions = DNNGo_ThemePlugin_Menu.FindAllByItem(qp); return(MenuOptions != null && MenuOptions.ID > 0); }
/// <summary> /// 查找当前页面设置的值列表 /// </summary> /// <param name="Option"></param> /// <returns></returns> public List <KeyValueEntity> FindTabValues(DNNGo_ThemePlugin_Menu MenuOptions) { List <KeyValueEntity> ItemSettings = new List <KeyValueEntity>(); if (MenuOptions != null && MenuOptions.ID > 0 && !String.IsNullOrEmpty(MenuOptions.Options)) { try { ItemSettings = ConvertTo.Deserialize <List <KeyValueEntity> >(MenuOptions.Options); } catch { } } return(ItemSettings); }
/// <summary> /// 页面加载需要绑定的方法 /// </summary> public void BindPageLoad() { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.AppendFormat("<ul id=\"{0}\" class=\"{1}\">", SkinClientID, CssClass).AppendLine(); DNNGo_ThemePlugin_Menu Item = GetGlobalSettings(); EnumRelationshipsFileType FileType = Token.IndexOf("Breadcrumb", StringComparison.CurrentCultureIgnoreCase) >= 0 ? EnumRelationshipsFileType.Breadcrumb : EnumRelationshipsFileType.Background; Boolean isGlobal = (Token.IndexOf("Breadcrumb", StringComparison.CurrentCultureIgnoreCase) >= 0 ? Item.Globals_Breadcrumb : Item.Globals_Background) == 1; List <String> FileIDs = new List <String>(); List <DNNGo_ThemePlugin_Relationships> Relationships = DNNGo_ThemePlugin_Relationships.FindAllViewByID(PortalSettings.ActiveTab.TabID, PortalSettings.PortalId, (Int32)FileType, isGlobal); foreach (DNNGo_ThemePlugin_Relationships Relationship in Relationships) { FileIDs.Add(Relationship.FileID.ToString()); } if (FileIDs != null && FileIDs.Count > 0) { //绑定所有分类到页面 QueryParam qp = new QueryParam(); int RecordCount = 0; qp.Where.Add(new SearchParam(DNNGo_ThemePlugin_Multimedia._.PortalId, PortalSettings.PortalId, SearchType.Equal)); qp.Where.Add(new SearchParam(DNNGo_ThemePlugin_Multimedia._.ID, Common.GetStringByList(FileIDs), SearchType.In)); List <DNNGo_ThemePlugin_Multimedia> lst = DNNGo_ThemePlugin_Multimedia.FindAll(qp, out RecordCount); foreach (String FileID in FileIDs) { if (lst.Exists(r => r.ID.ToString() == FileID)) { DNNGo_ThemePlugin_Multimedia PictureItem = lst.Find(r => r.ID.ToString() == FileID); if (PictureItem != null && PictureItem.ID > 0) { sb.AppendFormat("<li style=\"background-image:url('{0}')\"></li>", GetPhotoPath(PictureItem.FilePath)).AppendLine(); } } } } sb.Append("</ul>").AppendLine(); liHTML.Text = sb.ToString(); }
/// <summary> /// 更新内容 /// </summary> protected void cmdUpdate_Click(object sender, EventArgs e) { try { DNNGo_ThemePlugin_Menu menu = MenuItem; menu.MenuWidth = WebHelper.GetIntParam(Request, txtMegaMenuWidth.UniqueID, 0); menu.MenuType = WebHelper.GetIntParam(Request, ddlMenuType.UniqueID, 0); List <KeyValueEntity> Options = menu.SettingItems; Options = UpdateSettings(Options, "MegaPosition", WebHelper.GetStringParam(Request, ddlMegaPosition.UniqueID, "0")); menu.Options = Options.ToJson(); menu.LastIP = WebHelper.UserHost; menu.LastTime = DateTime.Now; menu.LastUser = UserId; if (menu.ID > 0) { menu.Update(); } else { menu.PortalId = PortalId; menu.TabID = EditTabID; menu.ModuleId = ModuleId; menu.Insert(); } mTips.LoadMessage("SaveOptionsSuccess", EnumTips.Success, this, new String[] { }); Response.Redirect(WebHelper.GetScriptUrl, false); //String GoUrl = String.Format("{0}?PortalId={1}&TabID={2}&Token={3}&SkinFileName={4}#tabs-box-{3}", "Resource_Options.aspx", PortalId, TabId, "Options", ""); //Response.Redirect(GoUrl,false); } catch (Exception exc) { ProcessModuleLoadException(exc); } }
/// <summary> /// 读取数据项参数 /// </summary> /// <param name="DataItem">数据项</param> /// <param name="Name">参数名</param> /// <param name="DefaultValue">默认值</param> /// <returns></returns> public object GetSettingByStatic(DNNGo_ThemePlugin_Menu DataItem, String Name, object DefaultValue) { object o = DefaultValue; if (DataItem != null && DataItem.ID > 0 && !String.IsNullOrEmpty(DataItem.Options)) { try { List <KeyValueEntity> ItemSettings = DataItem.Options.ToList <KeyValueEntity>(); KeyValueEntity KeyValue = ItemSettings.Find(r1 => r1.Key.ToLower() == Name.ToLower()); if (KeyValue != null && !String.IsNullOrEmpty(KeyValue.Key)) { o = KeyValue.Value; } } catch { } } return(o); }
/// <summary> /// 设置全局选项 /// </summary> public void SetGlobal() { if (EditTabID != Int32.MaxValue) { DNNGo_ThemePlugin_Menu Item = ContentItem; if (Token.IndexOf("Background", StringComparison.CurrentCultureIgnoreCase) >= 0) { Item.Globals_Background = WebHelper.GetIntParam(Request, rblUseGlobalSettings.UniqueID, 1); } else { Item.Globals_Breadcrumb = WebHelper.GetIntParam(Request, rblUseGlobalSettings.UniqueID, 1); } Item.LastIP = WebHelper.UserHost; Item.LastTime = DateTime.Now; Item.LastUser = UserId; if (Item != null && Item.ID > 0) { Item.Update(); } else { Item.PortalId = PortalId; Item.Language = "en-US"; Item.ModuleId = ModuleId; //Item.Position = (Int32)EnumPosition.Top; Item.TabID = EditTabID; Item.Insert(); } } }
/// <summary> /// 绑定MEGA菜单第一层 /// </summary> /// <param name="allTabs"></param> /// <param name="ParentTab"></param> /// <returns></returns> public void BindMegaMenu(List <TabInfo> allTabs, TabInfo MegaTab, DNNGo_ThemePlugin_Menu MenuOptions, Int32 ChildLevel) { if (ChildLevel <= MaxLevel || MaxLevel <= 0) { //筛选当前所要打印的菜单 //List<TabInfo> MegaTabs = allTabs.FindAll(r => r.ParentId == ParentTab.TabID); BindString("<div class=\"dnngo_menuslide\" data-width=\"{0}\" data-position=\"{1}\">", MenuOptions.MenuWidth, GetSettingT <Int32>(MenuOptions, "MegaPosition", 0)); BindString("<div class=\"dnngo_boxslide\">"); ////循环调用每个顶级菜单的的二级菜单 //查找菜单的设置 List <KeyValueEntity> TabValues = FindTabValues(MenuOptions); //循环打印所有的列 List <DNNGo_ThemePlugin_MenuPane> Panes = DNNGo_ThemePlugin_MenuPane.FindAllByTabID(MegaTab.TabID); if (Panes != null && Panes.Count > 0) { BindString("<div class=\"dnngo_custommenu\">"); //循环打印所有的列到页面上 for (Int32 PaneIndex = 0; PaneIndex < Panes.Count; PaneIndex++) { var PaneItem = Panes[PaneIndex]; //BindString("<div class=\"menupane pane_{0} {2} {3} {4} {5}\" style=\"width:{1}%;padding-top:{6}px;padding-right:{7}px;padding-bottom:{8}px;padding-left:{9}px;\">", // PaneItem.ID, // PaneItem.PaneWidth, // GetSettingT<Boolean>(PaneItem, "PaneTopLine", false) ? "topline" : "", // GetSettingT<Boolean>(PaneItem, "PaneBottomLine", false) ? "bottomline" : "", // GetSettingT<Boolean>(PaneItem, "PaneLeftLine", false) ? "leftline" : "", // GetSettingT<Boolean>(PaneItem, "PaneRightLine", false) ? "rightline" : "", // GetSettingT<Int32>(PaneItem, "PaneTopSpacing", 10), // GetSettingT<Int32>(PaneItem, "PaneRightSpacing", 10), // GetSettingT<Int32>(PaneItem, "PaneBottomSpacing", 10), // GetSettingT<Int32>(PaneItem, "PaneLeftSpacing", 10) // ); //BindString("<div class=\"menupane pane_{0}\" style=\"width:{1}%;\">", // PaneItem.ID, // PaneItem.PaneWidth // ); BindString("<div class=\"menupane pane_{0} {2} {3} {4} {5}\" style=\"width:{1}%;\">", PaneItem.ID, PaneItem.PaneWidth, GetSettingT <String>(PaneItem, "PaneTopLine", "0") == "1" ? "topline" : "", GetSettingT <String>(PaneItem, "PaneBottomLine", "0") == "1" ? "bottomline" : "", GetSettingT <String>(PaneItem, "PaneLeftLine", "0") == "1" ? "leftline" : "", GetSettingT <String>(PaneItem, "PaneRightLine", "0") == "1" ? "rightline" : "" ); BindString("<div class=\"pane_space\" style=\"padding-top:{0}px;padding-right:{1}px;padding-bottom:{2}px;padding-left:{3}px;\">", GetSettingT <Int32>(PaneItem, "PaneTopSpacing", 10), GetSettingT <Int32>(PaneItem, "PaneRightSpacing", 10), GetSettingT <Int32>(PaneItem, "PaneBottomSpacing", 10), GetSettingT <Int32>(PaneItem, "PaneLeftSpacing", 10) ); //打印行结构到列中 BindMegaMenuRow(allTabs, MegaTab, PaneItem, ChildLevel + 1); BindString("</div>"); BindString("</div>"); } BindString("</div>"); BindString("<div class=\"clear\"></div>"); } BindString("</div>"); BindString("</div>"); } //return ContentTHML.ToString(); }
/// <summary> /// 绑定顶级菜单 /// </summary> public void BindTopMenu() { List <TabInfo> allTabs = AllTabs; //查找当前活动菜单的顶级菜单 TabInfo ActiveTopTab = FindTopTabByActive(allTabs); Int32 TabTabID = GetTopTab(allTabs, PortalSettings.ActiveTab); BindString(" <ul class=\"primary_structure\">"); //循环绑定一级菜单 List <TabInfo> TopTabs = allTabs.FindAll(r => r.ParentId == TabTabID && r.IsVisible); foreach (TabInfo TopTab in TopTabs) { DNNGo_ThemePlugin_Menu MenuOptions = new DNNGo_ThemePlugin_Menu(); Boolean trueMegaType = TrueMegaType(TopTab, out MenuOptions); //检测有无下级目录 Boolean TrueSub = allTabs.Exists(r => r.ParentId == TopTab.TabID && r.IsVisible); BindString(String.Format(" <li class=\"{0} {1}\">", TrueSub || trueMegaType ? "dir" : "", ActiveTopTab != null && ActiveTopTab.TabID == TopTab.TabID ? "current" : "")); //打印顶级菜单的链接 BindString(FormatAlink(TopTab)); //这里插入下级菜单的代码 #region "这里插入下级菜单的代码" if (trueMegaType && MenuOptions != null && MenuOptions.ID > 0) { //插入MegaMenu BindMegaMenu(allTabs, TopTab, MenuOptions, 2); } else { //有下级菜单的时候才进入 if (TrueSub) { //插入普通菜单 //ContentTHML.Append(BindGeneralMenu(allTabs, TopTab)).AppendLine(); BindGeneralMenu(allTabs, TopTab, 2); } } #endregion //ContentTHML.AppendFormat(" </li>").AppendLine(); BindString("</li>"); } //ContentTHML.Append("</ul>").AppendLine(); BindString("</ul>"); //liContentHTML.Text = ContentTHML.ToString(); }
/// <summary> /// 读取XML参数 /// </summary> /// <typeparam name="T">参数类型</typeparam> /// <param name="Name">参数名</param> /// <param name="DefaultValue">默认值</param> /// <returns></returns> public T GetSettingT <T>(DNNGo_ThemePlugin_Menu DataItem, String Name, object DefaultValue) { return((T)Convert.ChangeType(GetSetting(DataItem, Name, DefaultValue), typeof(T))); }
/// <summary> /// 读取数据项参数 /// </summary> /// <param name="DataItem">数据项</param> /// <param name="Name">参数名</param> /// <param name="DefaultValue">默认值</param> /// <returns></returns> public object GetSetting(DNNGo_ThemePlugin_Menu DataItem, String Name, object DefaultValue) { return(GetSettingByStatic(DataItem, Name, DefaultValue)); }