public string BuildForumView(int ForumTemplateId, int CurrentUserId, string ThemePath) { try { SettingsInfo MainSettings = DataCache.MainSettings(ModuleId); string sOutput = string.Empty; string sTemplate; int TemplateCache = MainSettings.TemplateCache; if (UseTemplatePath && TemplatePath != string.Empty) { DisplayTemplate = Utilities.GetFileContent(TemplatePath + "ForumView.htm"); DisplayTemplate = Utilities.ParseSpacer(DisplayTemplate); } else if (DisplayTemplate == string.Empty) { DisplayTemplate = Utilities.GetFileContent(Server.MapPath(ThemePath) + "templates/ForumView.ascx"); DisplayTemplate = Utilities.ParseSpacer(DisplayTemplate); } sTemplate = DisplayTemplate == string.Empty ? DataCache.GetCachedTemplate(TemplateCache, ModuleId, "ForumView", ForumTemplateId) : DisplayTemplate; try { sTemplate = ParseControls(sTemplate); } catch (Exception ex) { Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex); sTemplate = ex.Message; //ParseControls(sTemplate) } if (sTemplate.Contains("[NOTOOLBAR]")) { if (HttpContext.Current.Items.Contains("ShowToolbar")) { HttpContext.Current.Items["ShowToolbar"] = false; } else { HttpContext.Current.Items.Add("ShowToolbar", false); } sTemplate = sTemplate.Replace("[NOTOOLBAR]", string.Empty); } if (sTemplate.Contains("[FORUMS]")) { string sGroupSection = string.Empty; string sGroupSectionTemp = TemplateUtils.GetTemplateSection(sTemplate, "[GROUPSECTION]", "[/GROUPSECTION]"); string sGroup = TemplateUtils.GetTemplateSection(sTemplate, "[GROUP]", "[/GROUP]"); string sForums = string.Empty; string sForumTemp = TemplateUtils.GetTemplateSection(sTemplate, "[FORUMS]", "[/FORUMS]"); string tmpGroup = string.Empty; //Dim reader As IDataReader = Nothing if (ForumTable == null) { var ds = new DataSet(); dtForums = new DataTable(); var fc = new ForumController(); ForumTable = fc.GetForumView(PortalId, ModuleId, CurrentUserId, UserInfo.IsSuperUser, ForumIds); // KR - added cache retreival //ds = DataProvider.Instance.UI_ForumView(PortalId, ModuleId, CurrentUserId, UserInfo.IsSuperUser, ForumIds) //ForumTable = ds.Tables(0) } string sCrumb = string.Empty; string sGroupName = string.Empty; //Dim ForumGroupId As Integer = 0 if (ForumGroupId != -1) { DataRow tmpDR = null; ForumTable.DefaultView.RowFilter = "ForumGroupId = " + ForumGroupId; if (ForumTable.DefaultView.ToTable().Rows.Count > 0) { tmpDR = ForumTable.DefaultView.ToTable().Rows[0]; } if (tmpDR != null) { sGroupName = tmpDR["GroupName"].ToString(); sCrumb = "<div class=\"afcrumb\"><i class=\"fa fa-comments-o fa-grey\"></i> <a href=\"" + Utilities.NavigateUrl(TabId) + "\">[RESX:ForumMain]</a> <i class=\"fa fa-long-arrow-right fa-grey\"></i> " + tmpDR["GroupName"] + "</div>"; } //dtForums.DefaultView.RowFilter = "" } if (ParentForumId != -1) { //SubsOnly = True DataRow tmpDR = null; string sFilter = "ForumId = " + ParentForumId + " "; ForumTable.DefaultView.RowFilter = sFilter; if (ForumTable.DefaultView.ToTable().Rows.Count > 0) { tmpDR = ForumTable.DefaultView.ToTable().Rows[0]; } ForumTable.DefaultView.RowFilter = ""; sGroupName = tmpDR["GroupName"].ToString(); } if (MainSettings.UseSkinBreadCrumb && ForumTable.Rows.Count > 0 && SubsOnly == false && ForumGroupId != -1) { Environment.UpdateBreadCrumb(Page.Controls, "<a href=\"" + NavigateUrl(TabId, "", ParamKeys.GroupId + "=" + ForumGroupId) + "\">" + sGroupName + "</a>"); sTemplate = sTemplate.Replace("<div class=\"afcrumb\">[FORUMMAINLINK] > [FORUMGROUPLINK]</div>", string.Empty); sTemplate = sTemplate.Replace("[BREADCRUMB]", string.Empty); } else { sTemplate = sTemplate.Replace("[BREADCRUMB]", sCrumb); } int iForum = 1; int ForumCount = 0; bool hasForums = false; DataTable rsForums = ForumTable.DefaultView.ToTable(); Forum fi; int tmpGroupCount = 0; int asForumGroupId; var social = new Social(); asForumGroupId = social.GetMasterForumGroup(PortalId, TabId); int groupForumsCount = 0; foreach (DataRow dr in rsForums.Rows) { //If CBool(dr("CanView")) Or (Not CBool(dr("GroupHidden"))) Then ' And Not CBool(dr("CanView"))) Or UserInfo.IsSuperUser Then if (!(asForumGroupId == Convert.ToInt32(dr["ForumGroupId"]) && Convert.ToBoolean(dr["GroupHidden"]))) { if (tmpGroup != dr["GroupName"].ToString()) { if (tmpGroupCount < Globals.GroupCount) { ForumTable.DefaultView.RowFilter = "ForumGroupId = " + Convert.ToInt32(dr["ForumGroupId"]) + " AND ParentForumId = 0"; ForumCount = ForumTable.DefaultView.Count; ForumTable.DefaultView.RowFilter = ""; if (sForums != string.Empty) { sGroupSection = TemplateUtils.ReplaceSubSection(sGroupSection, sForums, "[FORUMS]", "[/FORUMS]"); sForums = string.Empty; } int GroupId = Convert.ToInt32(dr["ForumGroupId"]); sGroupSectionTemp = TemplateUtils.GetTemplateSection(sTemplate, "[GROUPSECTION]", "[/GROUPSECTION]"); sGroupSectionTemp = sGroupSectionTemp.Replace("[GROUPNAME]", dr["GroupName"].ToString()); sGroupSectionTemp = sGroupSectionTemp.Replace("[FORUMGROUPID]", dr["ForumGroupId"].ToString()); sGroupSectionTemp = sGroupSectionTemp.Replace("[GROUPCOLLAPSE]", "<img class=\"afarrow\" id=\"imgGroup" + GroupId.ToString() + "\" onclick=\"toggleGroup(" + GroupId.ToString() + ");\" src=\"" + ThemePath + GetImage(GroupId) + "\" alt=\"[RESX:ToggleGroup]\" />"); //any replacements on the group string sNewGroup = "<div id=\"group" + GroupId + "\" " + GetDisplay(GroupId) + " class=\"afgroup\">" + sGroup + "</div>"; sGroupSectionTemp = TemplateUtils.ReplaceSubSection(sGroupSectionTemp, sNewGroup, "[GROUP]", "[/GROUP]"); sGroupSection += sGroupSectionTemp; tmpGroup = dr["GroupName"].ToString(); tmpGroupCount += 1; iForum = 1; } } if (iForum <= Globals.ForumCount) { fi = FillForumRow(dr); bool canView = Permissions.HasPerm(fi.Security.View, ForumUser.UserRoles); if (canView || (!fi.Hidden)) { sForumTemp = TemplateUtils.GetTemplateSection(sTemplate, "[FORUMS]", "[/FORUMS]"); hasForums = true; if (fi.ParentForumId == 0 || SubsOnly || (SubsOnly == false && fi.ParentForumId > 0 && rsForums.Rows.Count == 1)) { sForumTemp = ParseForumRow(sForumTemp, fi, iForum, ThemePath, ForumCount); iForum += 1; sForums += sForumTemp; } } } } //End If } if (hasForums == false && SubsOnly) { return string.Empty; } if (sForums != string.Empty) { sGroupSection = TemplateUtils.ReplaceSubSection(sGroupSection, sForums, "[FORUMS]", "[/FORUMS]"); } sTemplate = sTemplate.Contains("[GROUPSECTION]") ? TemplateUtils.ReplaceSubSection(sTemplate, sGroupSection, "[GROUPSECTION]", "[/GROUPSECTION]") : sGroupSection; sTemplate = TemplateUtils.ReplaceSubSection(sTemplate, string.Empty, "[FORUMS]", "[/FORUMS]"); } return sTemplate; } catch (Exception ex) { Services.Exceptions.Exceptions.LogException(ex); return string.Empty; } }
public string BuildForumView(int ForumTemplateId, int CurrentUserId, string ThemePath) { try { SettingsInfo MainSettings = DataCache.MainSettings(ModuleId); string sOutput = string.Empty; string sTemplate; int TemplateCache = MainSettings.TemplateCache; if (UseTemplatePath && TemplatePath != string.Empty) { DisplayTemplate = Utilities.GetFileContent(TemplatePath + "ForumView.htm"); DisplayTemplate = Utilities.ParseSpacer(DisplayTemplate); } else if (DisplayTemplate == string.Empty) { DisplayTemplate = Utilities.GetFileContent(Server.MapPath(ThemePath) + "templates/ForumView.ascx"); DisplayTemplate = Utilities.ParseSpacer(DisplayTemplate); } sTemplate = DisplayTemplate == string.Empty ? DataCache.GetCachedTemplate(TemplateCache, ModuleId, "ForumView", ForumTemplateId) : DisplayTemplate; try { sTemplate = ParseControls(sTemplate); } catch (Exception ex) { Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex); sTemplate = ex.Message; //ParseControls(sTemplate) } if (sTemplate.Contains("[NOTOOLBAR]")) { if (HttpContext.Current.Items.Contains("ShowToolbar")) { HttpContext.Current.Items["ShowToolbar"] = false; } else { HttpContext.Current.Items.Add("ShowToolbar", false); } sTemplate = sTemplate.Replace("[NOTOOLBAR]", string.Empty); } if (sTemplate.Contains("[FORUMS]")) { string sGroupSection = string.Empty; string sGroupSectionTemp = TemplateUtils.GetTemplateSection(sTemplate, "[GROUPSECTION]", "[/GROUPSECTION]"); string sGroup = TemplateUtils.GetTemplateSection(sTemplate, "[GROUP]", "[/GROUP]"); string sForums = string.Empty; string sForumTemp = TemplateUtils.GetTemplateSection(sTemplate, "[FORUMS]", "[/FORUMS]"); string tmpGroup = string.Empty; //Dim reader As IDataReader = Nothing if (ForumTable == null) { var ds = new DataSet(); dtForums = new DataTable(); var fc = new ForumController(); ForumTable = fc.GetForumView(PortalId, ModuleId, CurrentUserId, UserInfo.IsSuperUser, ForumIds); // KR - added cache retreival //ds = DataProvider.Instance.UI_ForumView(PortalId, ModuleId, CurrentUserId, UserInfo.IsSuperUser, ForumIds) //ForumTable = ds.Tables(0) } string sCrumb = string.Empty; string sGroupName = string.Empty; //Dim ForumGroupId As Integer = 0 if (ForumGroupId != -1) { DataRow tmpDR = null; ForumTable.DefaultView.RowFilter = "ForumGroupId = " + ForumGroupId; if (ForumTable.DefaultView.ToTable().Rows.Count > 0) { tmpDR = ForumTable.DefaultView.ToTable().Rows[0]; } if (tmpDR != null) { sGroupName = tmpDR["GroupName"].ToString(); sCrumb = "<div class=\"afcrumb\"><i class=\"fa fa-comments-o fa-grey\"></i> <a href=\"" + Utilities.NavigateUrl(TabId) + "\">[RESX:ForumMain]</a> <i class=\"fa fa-long-arrow-right fa-grey\"></i> " + tmpDR["GroupName"] + "</div>"; } //dtForums.DefaultView.RowFilter = "" } if (ParentForumId != -1) { //SubsOnly = True DataRow tmpDR = null; string sFilter = "ForumId = " + ParentForumId + " "; ForumTable.DefaultView.RowFilter = sFilter; if (ForumTable.DefaultView.ToTable().Rows.Count > 0) { tmpDR = ForumTable.DefaultView.ToTable().Rows[0]; } ForumTable.DefaultView.RowFilter = ""; sGroupName = tmpDR["GroupName"].ToString(); } if (MainSettings.UseSkinBreadCrumb && ForumTable.Rows.Count > 0 && SubsOnly == false && ForumGroupId != -1) { Environment.UpdateBreadCrumb(Page.Controls, "<a href=\"" + NavigateUrl(TabId, "", ParamKeys.GroupId + "=" + ForumGroupId) + "\">" + sGroupName + "</a>"); sTemplate = sTemplate.Replace("<div class=\"afcrumb\">[FORUMMAINLINK] > [FORUMGROUPLINK]</div>", string.Empty); sTemplate = sTemplate.Replace("[BREADCRUMB]", string.Empty); } else { sTemplate = sTemplate.Replace("[BREADCRUMB]", sCrumb); } int iForum = 1; int ForumCount = 0; bool hasForums = false; DataTable rsForums = ForumTable.DefaultView.ToTable(); Forum fi; int tmpGroupCount = 0; int asForumGroupId; var social = new Social(); asForumGroupId = social.GetMasterForumGroup(PortalId, TabId); int groupForumsCount = 0; foreach (DataRow dr in rsForums.Rows) { //If CBool(dr("CanView")) Or (Not CBool(dr("GroupHidden"))) Then ' And Not CBool(dr("CanView"))) Or UserInfo.IsSuperUser Then if (!(asForumGroupId == Convert.ToInt32(dr["ForumGroupId"]) && Convert.ToBoolean(dr["GroupHidden"]))) { if (tmpGroup != dr["GroupName"].ToString()) { if (tmpGroupCount < Globals.GroupCount) { ForumTable.DefaultView.RowFilter = "ForumGroupId = " + Convert.ToInt32(dr["ForumGroupId"]) + " AND ParentForumId = 0"; ForumCount = ForumTable.DefaultView.Count; ForumTable.DefaultView.RowFilter = ""; if (sForums != string.Empty) { sGroupSection = TemplateUtils.ReplaceSubSection(sGroupSection, sForums, "[FORUMS]", "[/FORUMS]"); sForums = string.Empty; } int GroupId = Convert.ToInt32(dr["ForumGroupId"]); sGroupSectionTemp = TemplateUtils.GetTemplateSection(sTemplate, "[GROUPSECTION]", "[/GROUPSECTION]"); sGroupSectionTemp = sGroupSectionTemp.Replace("[GROUPNAME]", dr["GroupName"].ToString()); sGroupSectionTemp = sGroupSectionTemp.Replace("[FORUMGROUPID]", dr["ForumGroupId"].ToString()); sGroupSectionTemp = sGroupSectionTemp.Replace("[GROUPCOLLAPSE]", "<img class=\"afarrow\" id=\"imgGroup" + GroupId.ToString() + "\" onclick=\"toggleGroup(" + GroupId.ToString() + ");\" src=\"" + ThemePath + GetImage(GroupId) + "\" alt=\"[RESX:ToggleGroup]\" />"); //any replacements on the group string sNewGroup = "<div id=\"group" + GroupId + "\" " + GetDisplay(GroupId) + " class=\"afgroup\">" + sGroup + "</div>"; sGroupSectionTemp = TemplateUtils.ReplaceSubSection(sGroupSectionTemp, sNewGroup, "[GROUP]", "[/GROUP]"); sGroupSection += sGroupSectionTemp; tmpGroup = dr["GroupName"].ToString(); tmpGroupCount += 1; iForum = 1; } } if (iForum <= Globals.ForumCount) { fi = FillForumRow(dr); bool canView = Permissions.HasPerm(fi.Security.View, ForumUser.UserRoles); if (canView || (!fi.Hidden)) { sForumTemp = TemplateUtils.GetTemplateSection(sTemplate, "[FORUMS]", "[/FORUMS]"); hasForums = true; if (fi.ParentForumId == 0 || SubsOnly || (SubsOnly == false && fi.ParentForumId > 0 && rsForums.Rows.Count == 1)) { sForumTemp = ParseForumRow(sForumTemp, fi, iForum, ThemePath, ForumCount); iForum += 1; sForums += sForumTemp; } } } } //End If } if (hasForums == false && SubsOnly) { return(string.Empty); } if (sForums != string.Empty) { sGroupSection = TemplateUtils.ReplaceSubSection(sGroupSection, sForums, "[FORUMS]", "[/FORUMS]"); } sTemplate = sTemplate.Contains("[GROUPSECTION]") ? TemplateUtils.ReplaceSubSection(sTemplate, sGroupSection, "[GROUPSECTION]", "[/GROUPSECTION]") : sGroupSection; sTemplate = TemplateUtils.ReplaceSubSection(sTemplate, string.Empty, "[FORUMS]", "[/FORUMS]"); } return(sTemplate); } catch (Exception ex) { Services.Exceptions.Exceptions.LogException(ex); return(string.Empty); } }