📄 forumurls.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using CommunityServer.Components;
using CommunityServer.Configuration;
namespace CommunityServer.Discussions.Components
{
/// <summary>
/// Summary description for ForumUrls.
/// </summary>
public class ForumUrls : CommunityServer.Components.ApplicationUrls
{
public static readonly string ForumUrlsProviderName = "ForumUrlsProvider";
public ForumUrls() { }
#region Instance
private static ForumUrls _defaultInstance = null;
static ForumUrls()
{
CreateDefaultCommonProvider();
}
/// <summary>
/// Returns an instance of the user-specified data provider class.
/// </summary>
/// <returns>An instance of the user-specified data provider class. This class must inherit the
/// CommonDataProvider interface.</returns>
public static ForumUrls Instance()
{
return _defaultInstance;
}
public static ForumUrls Instance (Provider dataProvider)
{
ForumUrls fdp = CSCache.Get(dataProvider.Name) as ForumUrls;
if(fdp == null)
{
fdp = DataProviders.Invoke(dataProvider) as ForumUrls;
CSCache.Max(dataProvider.Name,fdp);
}
return fdp;
}
/// <summary>
/// Creates the Default CommonDataProvider
/// </summary>
private static void CreateDefaultCommonProvider()
{
// Read the configuration specific information
// for this provider
//
Provider urlProvider = (Provider) CSConfiguration.GetConfig().Providers[ForumUrlsProviderName];
// Create the instance for the provider, or fall back on the builtin one
//
if(urlProvider != null)
_defaultInstance = CreateInstance(urlProvider) as ForumUrls;
else
_defaultInstance = new ForumUrls();
}
#endregion
#region public Forum methods
public virtual string Forum (int forumID)
{
return Forum(forumID, CSContext.Current.SiteSettings.EnableSearchFriendlyURLs);
}
public virtual string Forum (int forumID, bool searchFriendly)
{
Section f = Forums.GetForum(forumID, true, true);
if(f == null)
f = Forums.GetForum(forumID); //Hack. First attempt fails, but the second works?
switch (f.ForumType)
{
case ForumType.Link:
return f.NavigateUrl;
case ForumType.FAQ:
if (searchFriendly)
{
return FormatUrl("searchFriendlyTelligentFaq", forumID.ToString());
}
else
return FormatUrl("telligentFaq", forumID.ToString());
case ForumType.KB:
if (searchFriendly)
{
return FormatUrl("searchFriendlyTelligentKB", forumID.ToString());
}
else
return FormatUrl("telligentKb", forumID.ToString());
default:
if (searchFriendly)
{
return FormatUrl("searchFriendlyForum", forumID.ToString());
}
else
{
return FormatUrl("forum", forumID.ToString());
}
}
}
public virtual string PostPendingModeration(int forumID)
{
return FormatUrl("post_PendingModeration", forumID.ToString());
}
#endregion
#region Report
public virtual string Report(int reportedSectionID)
{
return FormatUrl("post_Create", reportedSectionID.ToString());
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -