Example #1
0
        /// <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;
            }
        }
Example #2
0
        /// <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));
        }
Example #3
0
        /// <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));
        }
Example #4
0
        /// <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);
        }
Example #5
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);
        }
Example #6
0
        /// <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);
            }
        }
Example #8
0
        /// <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);
        }
Example #9
0
        /// <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();
                }
            }
        }
Example #10
0
        /// <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();
        }
Example #11
0
        /// <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();
        }
Example #12
0
 /// <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)));
 }
Example #13
0
 /// <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));
 }