📄 forumgroupview.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using CommunityServer.Components;
using CommunityServer.Controls;
using CommunityServer.Discussions.Components;
namespace CommunityServer.Discussions.Controls
{
// *********************************************************************
// ForumGroupView
//
/// <summary>
/// This server control is used to display top level threads. Note, a thread
/// is a post with more information. The Thread class inherits from the Post
/// class.
/// </summary>
///
// ********************************************************************/
public class ForumGroupView : TemplatedWebControl
{
#region Child Controls
protected Repeater repeater;
HtmlAnchor togglePersonalize;
IText forumGroupName;
HtmlGenericControl forumGroupDetails, topBreadCrumb;
CSContext csContext = CSContext.Current;
ControlUserMode mode = ControlUserMode.User;
#endregion
protected override void OnInit(EventArgs e)
{
if (SkinName == null)
ExternalSkinFileName = "View-ForumGroupView.ascx";
else
ExternalSkinFileName = SkinName;
base.OnInit(e);
}
protected override void OnLoad(EventArgs e)
{
DataBind();
base.OnLoad(e);
}
#region DataBind
public override void DataBind()
{
base.DataBind();
if (forumGroupName != null)
forumGroupName.Text = ResourceManager.GetString("discussions");
if (togglePersonalize != null)
{
if (!csContext.User.IsAnonymous)
{
if (csContext.QueryString["personalize"] != "true")
{
togglePersonalize.HRef = Globals.GetSiteUrls().ForumPersonalize;
togglePersonalize.InnerText = ResourceManager.GetString("ForumGroupView_Personalize_Manage");
}
else
{
togglePersonalize.HRef = Globals.GetSiteUrls().ForumsHome;
togglePersonalize.InnerText = ResourceManager.GetString("ForumGroupView_Personalize_View");
}
}
else
togglePersonalize.Visible = false;
}
ArrayList forumGroups = null;
// Don't data bind if the data source is already populated
//
if (repeater.DataSource != null)
return;
// Get all forum groups if we're auto-databinding
// we always cache
//
switch (Mode)
{
case ControlUserMode.Administrator:
forumGroups = ForumGroups.GetForumGroups(false);
// Ignore collapse/expand information
foreach (Group group in forumGroups)
group.HideSections = false;
break;
case ControlUserMode.Moderator:
forumGroups = ForumGroups.GetForumGroups(false,false,true, true);
// Ignore collapse/expand information
foreach (Group group in forumGroups)
group.HideSections = false;
break;
default:
if(csContext.QueryString["personalize"] == "true" || csContext.GroupID > 0)
{
forumGroups = ForumGroups.GetForumGroups(true);
}
else
{
forumGroups = ForumGroups.GetFilteredForumGroups();
}
break;
}
// Have we asked for a particular forum group?
//
if (csContext.GroupID > 0)
{
ArrayList newForumGroups = new ArrayList();
// Try to find the requested forum group
foreach (Group f in forumGroups)
{
if (f.GroupID == csContext.GroupID)
{
f.HideSections = false;
newForumGroups.Add(f);
Head.AddSiteNameTitle(f.Name,Context);
if (ForumGroups.IsPublic(f.GroupID) && Mode == ControlUserMode.User)
{
UsersOnline.SetLocation(f.Name);
}
else
{
UsersOnline.PrivateLocation();
}
break;
}
}
forumGroups = newForumGroups;
// Display details for selected forum group
//
if (forumGroupDetails != null)
{
forumGroupDetails.Visible = true;
}
if (forumGroupName != null && forumGroups.Count > 0)
{
forumGroupName.Text = ((Group) forumGroups[0]).Name;
if(csContext.User.IsForumAdministrator)
{
InlineTextEdit inline = forumGroupName as InlineTextEdit;
if(inline != null)
{
AjaxManager.Register(this,"QuickForumGroupEdit");
inline.AjaxClientID = this.ClientID;
inline.AjaxFunction= string.Format("QuickForumGroupEdit.UpdateForumGroupName('{0}',this.innerHTML,null);",this.ClientID);
}
}
}
if (topBreadCrumb != null)
{
topBreadCrumb.Visible = true;
}
}
else
{
if (Mode == ControlUserMode.User)
{
if (csContext.QueryString["personalize"] == "true")
{
Head.AddSiteNameTitle(ResourceManager.GetString("ForumGroupView_Personalize_Manage"), Context);
UsersOnline.SetLocation(ResourceManager.GetString("ForumGroupView_Personalize_Manage"));
}
else
{
Head.AddSiteNameTitle(ResourceManager.GetString("forums"), Context);
UsersOnline.SetLocation(ResourceManager.GetString("forums"));
}
}
}
// Databind if we have values
//
if (forumGroups.Count > 0)
{
repeater.DataSource = forumGroups;
repeater.DataBind();
}
}
[AjaxMethod(IncludeControlValuesWithCallBack=false)]
public string ToggleGroupVisiblity(int groupID, string text)
{
return text;
}
[AjaxMethod(IncludeControlValuesWithCallBack=false)]
public void UpdateForumGroupName(string name)
{
if(csContext.User.IsForumAdministrator)
{
Group g = ForumGroups.GetForumGroup(csContext.GroupID);
if(g != null)
{
g.Name = name;
ForumGroups.Update(g);
}
}
}
#endregion
#region Skin
protected override void AttachChildControls()
{
forumGroupDetails = FindControl("ForumGroupDetails") as HtmlGenericControl;
topBreadCrumb = FindControl("TopBreadCrumb") as HtmlGenericControl;
forumGroupName = TextControlHelper.Create(FindControl("ForumGroupName"));
repeater = (Repeater) FindControl("forumGroupRepeater");
togglePersonalize = FindControl("Personalize") as HtmlAnchor;
InitializeChildControls();
}
private void InitializeChildControls()
{
// Add an item command to the forum group repeater
//
// if (repeater != null)
// repeater.ItemCreated += new RepeaterItemEventHandler(Repeater_ItemCreated);
}
#endregion
#region Properties
public ControlUserMode Mode
{
get { return mode; }
set { mode = value; }
}
#endregion
#region Event Handlers
// private void Repeater_ItemCreated(Object sender, RepeaterItemEventArgs e)
// {
// if (e.Item.ItemType == ListItemType.Item ||
// e.Item.ItemType == ListItemType.AlternatingItem)
// {
// ImageButton b = (ImageButton) e.Item.FindControl("ExpandCollapse");
//
// if (b != null)
// {
// /*
// if (csContext.ForumGroupID > 0) {
// b.Visible = false;
// }
// else {
// b.Command += new CommandEventHandler(ExpandCollapse_Command);
// }*/
//
// if (csContext.User.EnableCollapsingPanels &&
// csContext.SiteSettings.EnableCollapsingPanels &&
// (csContext.GroupID <= 0))
// {
//
// b.Visible = true;
// b.Command += new CommandEventHandler(ExpandCollapse_Command);
// }
// else
// b.Visible = false;
// }
//
// }
// }
// public void ExpandCollapse_Command(object sender, CommandEventArgs e)
// {
// ArrayList groups = (ArrayList) repeater.DataSource;
// int fgID = Convert.ToInt32( e.CommandArgument );
// UserCookie userCookie = csContext.User.GetUserCookie();
//
// // Run through each group and set the appropriate display
// //
// foreach (Group g in groups)
// {
// if (g.GroupID == fgID)
// {
// if (g.HideSections)
// {
// g.HideSections = false;
// userCookie.RemoveHiddenForumGroup(g.GroupID);
// }
// else
// {
// userCookie.AddHiddenForumGroup(g.GroupID);
// g.HideSections = true;
// }
// }
//
// }
//
// if (HttpContext.Current != null)
// {
// HttpContext context = HttpContext.Current;
// context.Response.Redirect( context.Request.RawUrl );
// }
// else
// {
// repeater.DataSource = groups;
// repeater.DataBind();
// }
// }
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -