public GetBlogHeadingFromURL ( |
||
currentSite | ||
sFilterPath | string | |
Результат | Carrotware.CMS.Core.PageViewType |
public PageViewType GetBlogHeadingFromURL(SiteData currentSite, string sFilterPath)
{
Guid siteID = currentSite.SiteID;
PageViewType pvt = new PageViewType { ExtraTitle = String.Empty, CurrentViewType = PageViewType.ViewType.SinglePage, RawValue = null };
string sTitle = String.Empty;
if (currentSite.CheckIsBlogCategoryPath(sFilterPath)) {
pvt.CurrentViewType = PageViewType.ViewType.CategoryIndex;
vw_carrot_CategoryURL query = CompiledQueries.cqGetCategoryByURL(db, siteID, sFilterPath);
if (query != null) {
sTitle = query.CategoryText;
pvt.RawValue = query.CategoryText;
}
}
if (currentSite.CheckIsBlogTagPath(sFilterPath)) {
pvt.CurrentViewType = PageViewType.ViewType.TagIndex;
vw_carrot_TagURL query = CompiledQueries.cqGetTagByURL(db, siteID, sFilterPath);
if (query != null) {
sTitle = query.TagText;
pvt.RawValue = query.TagText;
}
}
if (currentSite.CheckIsBlogEditorFolderPath(sFilterPath)) {
pvt.CurrentViewType = PageViewType.ViewType.AuthorIndex;
vw_carrot_EditorURL query = CompiledQueries.cqGetEditorByURL(db, siteID, sFilterPath);
if (query != null) {
ExtendedUserData usr = new ExtendedUserData(query.UserId);
sTitle = usr.ToString();
pvt.RawValue = usr;
}
}
if (currentSite.CheckIsBlogDateFolderPath(sFilterPath)) {
pvt.CurrentViewType = PageViewType.ViewType.DateIndex;
BlogDatePathParser p = new BlogDatePathParser(currentSite, sFilterPath);
TimeSpan ts = p.DateEndUTC - p.DateBeginUTC;
pvt.RawValue = p.DateBegin;
int daysDelta = ts.Days;
if (daysDelta < 400 && daysDelta > 90) {
sTitle = p.DateBegin.ToString("yyyy");
pvt.CurrentViewType = PageViewType.ViewType.DateYearIndex;
}
if (daysDelta < 36 && daysDelta > 3) {
sTitle = p.DateBegin.ToString("MMMM yyyy");
pvt.CurrentViewType = PageViewType.ViewType.DateMonthIndex;
}
if (daysDelta < 5) {
sTitle = p.DateBegin.ToString("MMMM d, yyyy");
pvt.CurrentViewType = PageViewType.ViewType.DateDayIndex;
}
}
if (currentSite.CheckIsSiteSearchPath(sFilterPath)) {
pvt.CurrentViewType = PageViewType.ViewType.SearchResults;
string sSearchTerm = "";
if (HttpContext.Current.Request.QueryString[SiteData.SearchQueryParameter] != null) {
sSearchTerm = HttpContext.Current.Request.QueryString[SiteData.SearchQueryParameter].ToString();
}
pvt.RawValue = sSearchTerm;
sTitle = String.Format(" '{0}' ", sSearchTerm);
}
pvt.ExtraTitle = sTitle;
return pvt;
}
private void LoadHeadCaption() { if (this.TheSite.Blog_Root_ContentID == this.ThePage.Root_ContentID && _headingText == null && this.TypeLabelPrefixes.Any()) { _headingText = String.Empty; using (ContentPageHelper pageHelper = new ContentPageHelper()) { PageViewType pvt = pageHelper.GetBlogHeadingFromURL(this.TheSite, SiteData.CurrentScriptName); _headingText = pvt.ExtraTitle; TypeHeadingOption titleOpts = this.TypeLabelPrefixes.Where(x => x.KeyValue == pvt.CurrentViewType).FirstOrDefault(); if (titleOpts == null && (pvt.CurrentViewType == PageViewType.ViewType.DateDayIndex || pvt.CurrentViewType == PageViewType.ViewType.DateMonthIndex || pvt.CurrentViewType == PageViewType.ViewType.DateYearIndex)) { titleOpts = this.TypeLabelPrefixes.Where(x => x.KeyValue == PageViewType.ViewType.DateIndex).FirstOrDefault(); } if (titleOpts != null) { if (!String.IsNullOrEmpty(titleOpts.FormatText)) { pvt.ExtraTitle = string.Format(titleOpts.FormatText, pvt.RawValue); _headingText = pvt.ExtraTitle; } if (!String.IsNullOrEmpty(titleOpts.LabelText)) { this.ThePage.PageHead = String.Format("{0} {1}", titleOpts.LabelText, _headingText); this.ThePage.TitleBar = this.ThePage.PageHead; _headingText = this.ThePage.PageHead; } } } } }