protected override void OnLoad(EventArgs e) { base.OnLoad(e); // If printmode, simply exit. if (Request.QueryString["dnnprintmode"] != null) return; // Do a conversion if needed // TODO: Figure out what's happening here if (ModuleId > 0) { if (MainSettings.NeedsConversion) { if (!(string.IsNullOrEmpty(UserForumsList))) { var move = new Helpers.SettingConversion(); move.MoveSettings(ForumModuleId, ModuleId); } } } var p = new List<string>(); var viewType = Request.Params[ParamKeys.ViewType]; // Topic View if (TopicId > 0 && (viewType == Views.Topic)) { p.Add(ParamKeys.TopicId + "=" + TopicId); var firstNewPost = Request.Params[ParamKeys.FirstNewPost]; if(!string.IsNullOrWhiteSpace(firstNewPost)) p.Add(ParamKeys.FirstNewPost + "=" + firstNewPost); var contentJumpId = Request.Params[ParamKeys.ContentJumpId]; if (!string.IsNullOrWhiteSpace(contentJumpId)) p.Add(ParamKeys.ContentJumpId + "=" + contentJumpId); var pageId = Request.Params[ParamKeys.PageId]; if (!string.IsNullOrWhiteSpace(pageId)) { int parsedPageId; if(int.TryParse(pageId, out parsedPageId) && parsedPageId > 1) p.Add(ParamKeys.PageId + "=" + pageId); } var pageJumpId = Request.Params[ParamKeys.PageJumpId]; if (!string.IsNullOrWhiteSpace(pageJumpId)) { int parsedPageJumpId; if (int.TryParse(pageJumpId, out parsedPageJumpId) && parsedPageJumpId > 1) p.Add(ParamKeys.PageJumpId + "=" + pageJumpId); } var sort = Request.QueryString[ParamKeys.Sort]; if(!string.IsNullOrWhiteSpace(sort) && Request.IsAuthenticated) { sort = sort.ToUpperInvariant(); if(sort == "ASC" || sort == "DESC") p.Add(ParamKeys.Sort + "=" + sort); } } // Topics View else if (ForumId > 0 && viewType == Views.Topics) { p.Add(ParamKeys.ForumId + "=" + ForumId); var pageId = Request.Params[ParamKeys.PageId]; if (!string.IsNullOrWhiteSpace(pageId)) { int parsedPageId; if (int.TryParse(pageId, out parsedPageId) && parsedPageId > 1) p.Add(ParamKeys.PageId + "=" + pageId); } var pageJumpId = Request.Params[ParamKeys.PageJumpId]; if (!string.IsNullOrWhiteSpace(pageJumpId)) { int parsedPageJumpId; if (int.TryParse(pageJumpId, out parsedPageJumpId) && parsedPageJumpId > 1) p.Add(ParamKeys.PageJumpId + "=" + pageJumpId); } } if (p.Count <= 0) return; var sURL = Utilities.NavigateUrl(TabId, string.Empty, p.ToArray()); if (string.IsNullOrEmpty(sURL)) return; Response.Clear(); Response.Status = "301 Moved Permanently"; Response.AddHeader("Location", sURL); Response.End(); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); // If printmode, simply exit. if (Request.QueryString["dnnprintmode"] != null) { return; } // Do a conversion if needed // TODO: Figure out what's happening here if (ModuleId > 0) { if (MainSettings.NeedsConversion) { if (!(string.IsNullOrEmpty(UserForumsList))) { var move = new Helpers.SettingConversion(); move.MoveSettings(ForumModuleId, ModuleId); } } } var p = new List <string>(); var viewType = Request.Params[ParamKeys.ViewType]; // Topic View if (TopicId > 0 && (viewType == Views.Topic)) { p.Add(ParamKeys.TopicId + "=" + TopicId); var firstNewPost = Request.Params[ParamKeys.FirstNewPost]; if (!string.IsNullOrWhiteSpace(firstNewPost)) { p.Add(ParamKeys.FirstNewPost + "=" + firstNewPost); } var contentJumpId = Request.Params[ParamKeys.ContentJumpId]; if (!string.IsNullOrWhiteSpace(contentJumpId)) { p.Add(ParamKeys.ContentJumpId + "=" + contentJumpId); } var pageId = Request.Params[ParamKeys.PageId]; if (!string.IsNullOrWhiteSpace(pageId)) { int parsedPageId; if (int.TryParse(pageId, out parsedPageId) && parsedPageId > 1) { p.Add(ParamKeys.PageId + "=" + pageId); } } var pageJumpId = Request.Params[ParamKeys.PageJumpId]; if (!string.IsNullOrWhiteSpace(pageJumpId)) { int parsedPageJumpId; if (int.TryParse(pageJumpId, out parsedPageJumpId) && parsedPageJumpId > 1) { p.Add(ParamKeys.PageJumpId + "=" + pageJumpId); } } var sort = Request.QueryString[ParamKeys.Sort]; if (!string.IsNullOrWhiteSpace(sort)) { var defaultSort = (Request.IsAuthenticated && !string.IsNullOrWhiteSpace(ForumUser.Profile.PrefDefaultSort)) ? ForumUser.Profile.PrefDefaultSort.ToUpperInvariant().Trim() : "ASC"; sort = sort.ToUpperInvariant(); if ((sort != defaultSort) && (sort == "ASC" || sort == "DESC")) { p.Add(ParamKeys.Sort + "=" + sort); } } } // Topics View else if (ForumId > 0 && viewType == Views.Topics) { p.Add(ParamKeys.ForumId + "=" + ForumId); var pageId = Request.Params[ParamKeys.PageId]; if (!string.IsNullOrWhiteSpace(pageId)) { int parsedPageId; if (int.TryParse(pageId, out parsedPageId) && parsedPageId > 1) { p.Add(ParamKeys.PageId + "=" + pageId); } } var pageJumpId = Request.Params[ParamKeys.PageJumpId]; if (!string.IsNullOrWhiteSpace(pageJumpId)) { int parsedPageJumpId; if (int.TryParse(pageJumpId, out parsedPageJumpId) && parsedPageJumpId > 1) { p.Add(ParamKeys.PageJumpId + "=" + pageJumpId); } } } if (p.Count <= 0) { return; } var sURL = Utilities.NavigateUrl(TabId, string.Empty, p.ToArray()); if (string.IsNullOrEmpty(sURL)) { return; } Response.Clear(); Response.Status = "301 Moved Permanently"; Response.AddHeader("Location", sURL); Response.End(); }