📄 basegalleryrsswriter.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System.Collections;
using System.IO;
using CommunityServer.Components;
namespace CommunityServer.Galleries.Components
{
/// <summary>
/// Summary description for BaseWeblogRssWriter.
/// </summary>
public abstract class BaseGalleryRssWriter : BaseRssWriter
{
public BaseGalleryRssWriter(ArrayList posts, Section s, string baseUrl):base(posts,s,baseUrl)
{
}
/// <summary>
/// First looks for a custom rss.xsl in the theme directory; then defaults back to the
/// passed in path
/// </summary>
/// <param name="path"></param>
protected override void WriteStyleSheet(string path)
{
string themePath = string.Format("{0}Galleries/{1}/rss.xsl", SiteUrls.Instance().Locations["themes"], CurrentGallery.Theme);
if(File.Exists(CSContext.Current.Context.Server.MapPath(themePath)))
{
string styleSheetURL = Globals.FullPath(this.BaseUrl, themePath) ;
this.WriteRaw(string.Format(styleElement,styleSheetURL)) ;
}
else
{
//#if !DEBUG
base.WriteStyleSheet(path);
//#endif
}
}
protected override string EnclosureUrl(PostAttachmentMetaData pa)
{
if(pa.IsRemote)
return pa.FileName;
return this.BaseUrl + GalleryUrls.Instance().AttachmentUrl(this.CurrentGallery,pa);
}
protected Gallery CurrentGallery
{
get{ return CurrentSection as Gallery;}
}
protected override string BuildLink(Post p)
{
return GalleryUrls.Instance().ViewPicture(CurrentGallery.ApplicationKey, p as GalleryPost);
}
protected override string WritePubDate(Post p)
{
//Updated to user blogger time!
return ((GalleryPost)p).UserTime.ToUniversalTime().ToString("r");
}
protected override void WriteItem(Post p)
{
base.WriteItem (p);
GalleryPost post = p as GalleryPost;
if(post != null && post.HasCategories)
{
// Determine whether to write Categories or Tags to the RSS feed
if (CurrentGallery.CategorizationType == CategorizationType.Album)
{
foreach(string name in post.Categories)
{
this.WriteStartElement("category");
this.WriteAttributeString("domain", CategoryUrl(name));
this.WriteString(name);
this.WriteEndElement();
}
}
else
{
foreach(string name in post.Categories)
{
this.WriteStartElement("category");
this.WriteAttributeString("domain", TagUrl(name));
this.WriteString(name);
this.WriteEndElement();
}
}
}
}
protected string CategoryUrl(string name)
{
PostCategory cat = PostCategories.GetCategory(name, this.CurrentGallery.SectionID);
return this.BaseUrl + GalleryUrls.Instance().ViewCategory(this.CurrentGallery.ApplicationKey, cat.CategoryID);
}
protected string TagUrl(string name)
{
return this.BaseUrl + GalleryUrls.Instance().TagsBrowser(CurrentGallery.ApplicationKey, new string[] {name});
}
protected override string GetUserName(Post p)
{
GalleryPost gp = p as GalleryPost;
if(gp == null)
return base.GetUserName(p);
else
return Globals.HtmlDecode(gp.DisplayName);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -