protected void saveNav_Click(object sender, EventArgs e) { int row = 0; foreach (object o in DataGrid1.GetKeyIDArray()) { int id = int.Parse(o.ToString()); string displayorder = DataGrid1.GetControlValue(row, "displayorder").Trim(); string url = DataGrid1.GetControlValue(row, "url").Trim(); NavInfo nav = Navs.GetNavigation(id); if (nav == null) { continue; } if (!Utils.IsNumeric(displayorder) || url == "") { row++; continue; } if (nav.Displayorder != int.Parse(displayorder) || nav.Url != url) { nav.Displayorder = int.Parse(displayorder); nav.Url = url; Navs.UpdateNavigation(nav); } row++; } Response.Redirect(Request.RawUrl, true); }
protected void Page_Load(object sender, EventArgs e) { DataGrid1.DataKeyField = "id"; string menuid = DNTRequest.GetString("menuid"); string mode = DNTRequest.GetString("mode"); if (mode != "") { if (mode == "del") { Navs.DeleteNavigation(DNTRequest.GetQueryInt("id", 0)); Response.Redirect(Request.Path + (DNTRequest.GetString("parentid") != "" ? "?parentid=" + DNTRequest.GetString("parentid") : ""), true); } else { if (DNTRequest.GetFormString("name").Trim() == "" || DNTRequest.GetFormString("displayorder").Trim() == "" || DNTRequest.GetFormInt("displayorder", 0) > Int16.MaxValue) { this.RegisterStartupScript("", "<script type='text/javascript'>alert('名称或序号输入不合法。');window.location=window.location;</script>"); return; } if (menuid == "0") { NavInfo nav = new NavInfo(); nav.Parentid = DNTRequest.GetQueryInt("parentid", 0); GetFromData(nav); Navs.InsertNavigation(nav); } else { NavInfo nav = new NavInfo(); nav.Id = DNTRequest.GetFormInt("menuid", 0); GetFromData(nav); Navs.UpdateNavigation(nav); } Response.Redirect(Request.RawUrl, true); } } else { BindDataGrid(DNTRequest.GetQueryInt("parentid", 0)); if (DNTRequest.GetString("parentid") == "") { returnbutton.Visible = false; } } }
protected override void Initialize(RequestContext requestContext) { base.Initialize(requestContext); this.ValidateRequest = false; WorkContext.IsHttpAjax = WebHelper.IsAjax(); WorkContext.IP = WebHelper.GetIP(); WorkContext.RegionInfo = Regions.GetRegionByIP(WorkContext.IP); WorkContext.RegionId = WorkContext.RegionInfo.RegionId; WorkContext.Url = WebHelper.GetUrl(); WorkContext.UrlReferrer = WebHelper.GetUrlReferrer(); //获得用户唯一标示符sid WorkContext.Sid = MallUtils.GetSidCookie(); if (WorkContext.Sid.Length == 0) { //生成sid WorkContext.Sid = Sessions.GenerateSid(); //将sid保存到cookie中 MallUtils.SetSidCookie(WorkContext.Sid); } PartUserInfo partUserInfo; //获得用户id int uid = MallUtils.GetUidCookie(); if (uid < 1)//当用户为游客时 { //创建游客 partUserInfo = Users.CreatePartGuest(); } else//当用户为会员时 { //获得保存在cookie中的密码 string encryptPwd = MallUtils.GetCookiePassword(); //防止用户密码被篡改为危险字符 if (encryptPwd.Length == 0 || !SecureHelper.IsBase64String(encryptPwd)) { //创建游客 partUserInfo = Users.CreatePartGuest(); encryptPwd = string.Empty; MallUtils.SetUidCookie(-1); MallUtils.SetCookiePassword(""); } else { partUserInfo = Users.GetPartUserByUidAndPwd(uid, MallUtils.DecryptCookiePassword(encryptPwd)); if (partUserInfo != null) { //发放登陆积分 Credits.SendLoginCredits(ref partUserInfo, DateTime.Now); } else//当会员的账号或密码不正确时,将用户置为游客 { partUserInfo = Users.CreatePartGuest(); encryptPwd = string.Empty; MallUtils.SetUidCookie(-1); MallUtils.SetCookiePassword(""); } } WorkContext.EncryptPwd = encryptPwd; } //设置用户等级 if (UserRanks.IsBanUserRank(partUserInfo.UserRid) && partUserInfo.LiftBanTime <= DateTime.Now) { UserRankInfo userRankInfo = UserRanks.GetUserRankByCredits(partUserInfo.PayCredits); Users.UpdateUserRankByUid(partUserInfo.Uid, userRankInfo.UserRid); partUserInfo.UserRid = userRankInfo.UserRid; } //当用户被禁止访问时重置用户为游客 if (partUserInfo.UserRid == 1) { partUserInfo = Users.CreatePartGuest(); WorkContext.EncryptPwd = string.Empty; MallUtils.SetUidCookie(-1); MallUtils.SetCookiePassword(""); } WorkContext.PartUserInfo = partUserInfo; WorkContext.Uid = partUserInfo.Uid; WorkContext.UserName = partUserInfo.UserName; WorkContext.UserEmail = partUserInfo.Email; WorkContext.UserMobile = partUserInfo.Mobile; WorkContext.Password = partUserInfo.Password; WorkContext.NickName = partUserInfo.NickName; WorkContext.Avatar = partUserInfo.Avatar; WorkContext.PayCreditName = Credits.PayCreditName; WorkContext.PayCreditCount = partUserInfo.PayCredits; WorkContext.RankCreditName = Credits.RankCreditName; WorkContext.RankCreditCount = partUserInfo.RankCredits; WorkContext.UserRid = partUserInfo.UserRid; WorkContext.UserRankInfo = UserRanks.GetUserRankById(partUserInfo.UserRid); WorkContext.UserRTitle = WorkContext.UserRankInfo.Title; //设置用户商城管理员组 WorkContext.MallAGid = partUserInfo.MallAGid; WorkContext.MallAdminGroupInfo = MallAdminGroups.GetMallAdminGroupById(partUserInfo.MallAGid); WorkContext.MallAGTitle = WorkContext.MallAdminGroupInfo.Title; //设置当前控制器类名 WorkContext.Controller = RouteData.Values["controller"].ToString().ToLower(); //设置当前动作方法名 WorkContext.Action = RouteData.Values["action"].ToString().ToLower(); WorkContext.PageKey = string.Format("/{0}/{1}", WorkContext.Controller, WorkContext.Action); WorkContext.ImageCDN = WorkContext.MallConfig.ImageCDN; WorkContext.CSSCDN = WorkContext.MallConfig.CSSCDN; WorkContext.ScriptCDN = WorkContext.MallConfig.ScriptCDN; //在线总人数 WorkContext.OnlineUserCount = OnlineUsers.GetOnlineUserCount(); //在线游客数 WorkContext.OnlineGuestCount = OnlineUsers.GetOnlineGuestCount(); //在线会员数 WorkContext.OnlineMemberCount = WorkContext.OnlineUserCount - WorkContext.OnlineGuestCount; //搜索词 WorkContext.SearchWord = string.Empty; //购物车中商品数量 WorkContext.CartProductCount = Carts.GetCartProductCountCookie(); //设置导航列表 WorkContext.NavList = Navs.GetNavList(); //设置友情链接列表 WorkContext.FriendLinkList = FriendLinks.GetFriendLinkList(); //设置帮助列表 WorkContext.HelpList = Helps.GetHelpList(); }
public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { if (context.TryAddContext <NavigationContext, NavigationTagHelper>(out NavigationContext navigationContext)) { await output.GetChildContentAsync(); if (Navs.Any()) { output.TagName = "ul"; output.TagMode = TagMode.StartTagAndEndTag; output.Attributes.Add("id", Id); output.Attributes.Add("class", Classes); if (!String.IsNullOrWhiteSpace(Title)) { output.Content.AppendHtml($"<li class='kt-nav__head'>{Title}</li>"); output.Content.AppendHtml($"<li class='kt-nav__separator'></li>"); } var sections = Navs.Where(t => !string.IsNullOrWhiteSpace(t.Section)).OrderBy(t => t.Order).Select(t => t.Section).Distinct().ToList(); if (sections.Any()) { for (var i = 0; i < sections.Count; i++) { var section = sections[i]; var sectionItem = new TagBuilder("div"); sectionItem.AddCssClass("kt-nav__section"); if (i == 0) { sectionItem.AddCssClass("kt-nav__section--first"); } sectionItem.InnerHtml.AppendHtml($"<span class='kt-nav__section-text'>{section}</span>"); output.Content.AppendHtml(sectionItem); var items = Navs.Where(t => t.Section == section); BuildNavigation(output, items); } } else { BuildNavigation(output, Navs); } if (navigationContext.Footer.IsNotNull()) { output.Content.AppendHtml($"<li class='kt-nav__separator'></li>"); output.Content.AppendHtml(navigationContext.Footer); } return; } } output.SuppressOutput(); }
/// <summary> /// BasePage类构造函数 /// </summary> public BaseController() { m_starttick = DateTime.Now; if (recordPageView) { PageViewStatistic(pagename); } config = GeneralConfigs.GetConfig(); if (SpacePluginProvider.GetInstance() == null) { config.Enablespace = 0; } if (AlbumPluginProvider.GetInstance() == null) { config.Enablealbum = 0; } if (MallPluginProvider.GetInstance() == null) { config.Enablemall = 0; } LoadUrlConfig(); userid = Utils.StrToInt(ForumUtils.GetCookie("userid"), -1); //清空当前页面查询统计 #if DEBUG Discuz.Data.DbHelper.QueryCount = 0; Discuz.Data.DbHelper.QueryDetail = ""; #endif // 如果启用游客页面缓存,则对游客输出缓存页 if (userid == -1 && config.Guestcachepagetimeout > 0 && GetUserCachePage(pagename)) { return; } AddMetaInfo(config.Seokeywords, config.Seodescription, config.Seohead); if (config.Nocacheheaders == 1) { System.Web.HttpContext.Current.Response.BufferOutput = false; System.Web.HttpContext.Current.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1); System.Web.HttpContext.Current.Response.Cache.SetExpires(DateTime.Now.AddDays(-1)); System.Web.HttpContext.Current.Response.Expires = 0; System.Web.HttpContext.Current.Response.CacheControl = "no-cache"; System.Web.HttpContext.Current.Response.Cache.SetNoStore(); } //当为forumlist.aspx或forumindex.aspx,可能出现在线并发问题,这时系统会延时2秒 if ((pagename != "forumlist.aspx") && (pagename != "forumindex.aspx")) { oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout); } else { try { oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout); } catch { System.Threading.Thread.Sleep(2000); oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout); } } if (config.PostTimeStorageMedia == 1 && Utils.GetCookie("lastposttime") != "")//如果最后发帖时间cookie不为空,则在此修改用户的该属性 { oluserinfo.Lastposttime = Utils.GetCookie("lastposttime"); } userid = oluserinfo.Userid; usergroupid = oluserinfo.Groupid; username = oluserinfo.Username; password = oluserinfo.Password; userkey = password.Length > 16 ? password.Substring(4, 8).Trim() : ""; lastposttime = oluserinfo.Lastposttime; lastpostpmtime = oluserinfo.Lastpostpmtime; lastsearchtime = oluserinfo.Lastsearchtime; olid = oluserinfo.Olid; isopenconnect = DiscuzCloud.GetCloudServiceEnableStatus("connect"); isbindconnect = isopenconnect ? DiscuzCloud.OnlineUserIsBindConnect(userid) : false; //确保头像可以取到 if (userid > 0) { useravatar = Avatars.GetAvatarUrl(userid, AvatarSize.Small); } if (Utils.InArray(DNTRequest.GetString("selectedtemplateid"), Templates.GetValidTemplateIDList())) { templateid = DNTRequest.GetInt("selectedtemplateid", 0); } else if (Utils.InArray(Utils.GetCookie(Utils.GetTemplateCookieName()), Templates.GetValidTemplateIDList())) { templateid = Utils.StrToInt(Utils.GetCookie(Utils.GetTemplateCookieName()), config.Templateid); } if (templateid == 0) { templateid = config.Templateid; } pmsound = Utils.StrToInt(ForumUtils.GetCookie("pmsound"), 0); //已登录用户检测用户组状态,如果是禁言或禁止访问状态时间到期,则自动解禁 if (usergroupid == 4 || usergroupid == 5) { //int groupExpiry = Users.GetShortUserInfo(userid).Groupexpiry; //if (groupExpiry != 0 && groupExpiry <= Utils.StrToInt(DateTime.Now.ToString("yyyyMMdd"), 0)) //{ // //先改为第一个积分组 // usergroupid = 11; // //usergroupinfo = UserGroups.GetUserGroupInfo(usergroupid); // Users.UpdateUserGroup(userid, 11); //} ShortUserInfo userInfo = Users.GetShortUserInfo(userid); if (userInfo.Groupexpiry != 0 && userInfo.Groupexpiry <= Utils.StrToInt(DateTime.Now.ToString("yyyyMMdd"), 0)) { UserGroupInfo groupInfo = CreditsFacade.GetCreditsUserGroupId(userInfo.Credits); usergroupid = groupInfo.Groupid != 0 ? groupInfo.Groupid : usergroupid; Users.UpdateUserGroup(userid, usergroupid); } } usergroupinfo = UserGroups.GetUserGroupInfo(usergroupid); // 取得用户权限id,1管理员,2超版,3版主,0普通组,-1特殊组 useradminid = usergroupinfo.Radminid; string tips = ForumUtils.GetUserCreditsCookie(userid, usergroupinfo.Grouptitle); if (tips != "") { string[] userinfotipsList = tips.Split(',');//因为考虑到应用程序做单点登录时获取不到userinfotips,封装了此方法 userinfotips = "<p><a class=\"drop\" onmouseover=\"showMenu(this.id);\" href=\"" + BaseConfigs.GetForumPath + "usercpcreditspay.aspx\" id=\"extcreditmenu\">" + userinfotipsList[0] + "</a> "; userinfotips += "<span class=\"pipe\">|</span>用户组: <a class=\"xi2\" id=\"g_upmine\" href=\"" + BaseConfigs.GetForumPath + "usercp.aspx\">" + userinfotipsList[1].Split(':')[1] + "</a></p>"; userinfotips += "<ul id=\"extcreditmenu_menu\" class=\"p_pop\" style=\"display:none;\">"; for (int i = 2; i < userinfotipsList.Length; i++) { userinfotips += string.Format("<li><a> {0}</a></li>", userinfotipsList[i]); } userinfotips += "</ul>"; } mainnavigation = Navs.GetNavigationString(userid, useradminid); subnavigation = Navs.GetSubNavigation(); mainnavigationhassub = Navs.GetMainNavigationHasSub(); // 如果论坛关闭且当前用户请求页面不是登录页面且用户非管理员, 则跳转至论坛关闭信息页 if (config.Closed == 1 && pagename != "login.aspx" && pagename != "logout.aspx" && pagename != "register.aspx" && useradminid != 1) { ShowMessage(1); return; } if (!Utils.InArray(pagename, "attachment.aspx"))//加入附件页面判断减少性能消耗 { onlineusercount = (userid != -1) ? OnlineUsers.GetOnlineAllUserCount() : OnlineUsers.GetCacheOnlineAllUserCount(); } //校验用户是否可以访问论坛 if (!ValidateUserPermission()) { return; } //更新用户在线时长 if (userid != -1 && !Utils.InArray(pagename, "attachment.aspx"))//加入附件页面判断减少性能消耗 { OnlineUsers.UpdateOnlineTime(config.Oltimespan, userid); } Discuz.Entity.TemplateInfo templateInfo = Templates.GetTemplateItem(templateid); templatepath = templateInfo.Directory; if (templateInfo.Templateurl.ToLower().StartsWith("http://")) { imagedir = templateInfo.Templateurl.TrimEnd('/') + "/images"; cssdir = templateInfo.Templateurl.TrimEnd('/'); } else { imagedir = forumpath + "templates/" + templateInfo.Directory + "/images"; cssdir = forumpath + "templates/" + templateInfo.Directory; } if (EntLibConfigs.GetConfig() != null && !Utils.StrIsNullOrEmpty(EntLibConfigs.GetConfig().Topicidentifydir)) { topicidentifydir = EntLibConfigs.GetConfig().Topicidentifydir.TrimEnd('/'); } else { topicidentifydir = forumpath + "images/identify"; } if (EntLibConfigs.GetConfig() != null && !Utils.StrIsNullOrEmpty(EntLibConfigs.GetConfig().Posticondir)) { posticondir = EntLibConfigs.GetConfig().Posticondir.TrimEnd('/'); } else { posticondir = forumpath + "images/posticons"; } if (EntLibConfigs.GetConfig() != null && !Utils.StrIsNullOrEmpty(EntLibConfigs.GetConfig().Jsdir)) { jsdir = EntLibConfigs.GetConfig().Jsdir.TrimEnd('/'); } else { jsdir = rooturl + "javascript"; } nowdate = Utils.GetDate(); nowtime = Utils.GetTime(); nowdatetime = Utils.GetDateTime(); ispost = DNTRequest.IsPost(); isget = DNTRequest.IsGet(); link = ""; script = ""; templatelistboxoptions = Caches.GetTemplateListBoxOptionsCache(); string originalTemplate = string.Format("<li><a href=\"###\" onclick=\"window.location.href='{0}showtemplate.aspx?templateid={1}'\">", "", BaseConfigs.GetForumPath, templateid); string newTemplate = string.Format("<li class=\"current\"><a href=\"###\" onclick=\"window.location.href='{0}showtemplate.aspx?templateid={1}'\">", BaseConfigs.GetForumPath, templateid); templatelistboxoptions = templatelistboxoptions.Replace(originalTemplate, newTemplate); isLoginCode = config.Seccodestatus.Contains("login.aspx"); //当该页面设置了验证码检验,并且当前用户的用户组没有给予忽略验证码的权限,则isseccode=true; isseccode = Utils.InArray(pagename, config.Seccodestatus) && usergroupinfo.Ignoreseccode == 0; headerad = Advertisements.GetOneHeaderAd("", 0); footerad = Advertisements.GetOneFooterAd("", 0); //设定当前页面的显示样式 if (config.Allowchangewidth == 0) { Utils.WriteCookie("allowchangewidth", ""); } if (pagename != "website.aspx") { if (Utils.GetCookie("allowchangewidth") == "0" || (string.IsNullOrEmpty(Utils.GetCookie("allowchangewidth")) && config.Showwidthmode == 1)) { isnarrowpage = true; } } //校验验证码 if (isseccode && ispost && !ValidateVerifyCode()) { return; } newtopicminute = config.Viewnewtopicminute; }