public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { base.categoryList = db.fetchCategoryList(langToRenderFor); RenderParameters renderParams = RenderParameters.FromPlaceholderParamList(placeholderDefinition.ParamList); CmsUrlFormat pageLinkFormat = CmsUrlFormat.FullIncludingProtocolAndDomainName; CmsUrlFormat fileLinkFormat = CmsUrlFormat.FullIncludingProtocolAndDomainName; FileAggItem[] filesToShow = FetchAllFilesToShow(page, placeholderDefinition.Identifier, langToRenderFor, renderParams, pageLinkFormat, fileLinkFormat); List <Rss.RssItem> ret = new List <Rss.RssItem>(); foreach (FileAggItem file in filesToShow) { Rss.RssItem rssItem = CreateAndInitRssItem(page, langToRenderFor); // -- link directly to the file url rssItem.Link = new Uri(file.FileDownloadURL, UriKind.RelativeOrAbsolute); rssItem.Guid = new Rss.RssGuid(rssItem.Link); rssItem.Title = file.Title; rssItem.Description = file.Description; rssItem.PubDate_GMT = file.LastModified.ToUniversalTime(); ret.Add(rssItem); } // foreach file return(ret.ToArray()); } // GetRssFeedItems
public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { List <Rss.RssItem> ret = new List <Rss.RssItem>(); // -- get the news NewsArticleDb.NewsArticleAggregatorData aggData = (new NewsArticleDb()).fetchNewsAggregator(page, placeholderDefinition.Identifier, langToRenderFor, true); RenderParameters renderParams = RenderParameters.fromParamList(placeholderDefinition.ParamList, aggData); NewsAggItem[] newsItems = FetchAllNewsAggItems(page, placeholderDefinition.Identifier, langToRenderFor, renderParams, CmsUrlFormat.FullIncludingProtocolAndDomainName); int currYear = renderParams.AggregatorData.YearToDisplay; foreach (NewsAggItem newsItem in newsItems) { if (currYear < 0 || newsItem.NewsDate.Year == currYear) { Rss.RssItem rssItem = new Rss.RssItem(); rssItem = InitRssItem(rssItem, page, langToRenderFor); rssItem.Title = newsItem.Title; rssItem.Link = new Uri(newsItem.PageDisplayURL, UriKind.RelativeOrAbsolute); rssItem.Guid = new Rss.RssGuid(rssItem.Link); rssItem.PubDate_GMT = newsItem.NewsDate.ToUniversalTime(); rssItem.Description = newsItem.NewsArticleHtml; ret.Add(rssItem); } } return(ret.ToArray()); } // GetRssFeedItems
} // RenderEdit public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { List <Rss.RssItem> ret = new List <Rss.RssItem>(); Dictionary <CmsPage, CmsPlaceholderDefinition[]> childJobPages = CmsContext.getAllPlaceholderDefinitions("JobPostingDetails", page, CmsContext.PageGatheringMode.ChildPagesOnly); if (childJobPages.Count > 0) { JobPostingLocation[] allLocations = JobPostingLocation.FetchAll(); JobPostingLocation theAllLocationsLocation = JobPostingLocation.getAllLocations(allLocations); JobPostingDb db = new JobPostingDb(); JobPostingAggregatorData aggregatorData = db.getJobPostingAggregatorData(page, placeholderDefinition.Identifier, langToRenderFor, true); // -- grab all the details for all child job pages. foreach (CmsPage childPage in childJobPages.Keys) { foreach (CmsPlaceholderDefinition phDef in childJobPages[childPage]) { JobPostingDetailsData dataObj = db.getJobPostingDetailsData(childPage, phDef.Identifier, langToRenderFor, true); if (!dataObj.IsExpired && (aggregatorData.LocationId < 0 || aggregatorData.LocationId == theAllLocationsLocation.JobLocationId || dataObj.LocationId == aggregatorData.LocationId)) { Rss.RssItem rssItem = CreateAndInitRssItem(childPage, langToRenderFor); rssItem.Description = childPage.renderAllPlaceholdersToString(langToRenderFor, CmsPage.RenderPlaceholderFilterAction.RunAllPageAndPlaceholderFilters); ret.Add(rssItem); } } } // foreach child page } return(ret.ToArray()); }
} // RenderView public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { Rss.RssItem rssItem = CreateAndInitRssItem(page, langToRenderFor); rssItem.Description = page.renderPlaceholderToString(placeholderDefinition, langToRenderFor, CmsPage.RenderPlaceholderFilterAction.RunAllPageAndPlaceholderFilters); return(new Rss.RssItem[] { rssItem }); }
public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { List <Rss.RssItem> ret = new List <Rss.RssItem>(); UserImageGalleryDb db = (new UserImageGalleryDb()); UserImageGalleryPlaceholderData placeholderData = db.getUserImageGalleryPlaceholderData(page, placeholderDefinition.Identifier, langToRenderFor, true); string imageStorageDir = placeholderData.getImageStorageDirectory(page); CmsLocalImageOnDisk[] allResources = CmsLocalImageOnDisk.FetchAllImagesInDirectory(imageStorageDir, UserImageGalleryPlaceholderData.ImageExtensionsToDisplay); foreach (CmsLocalImageOnDisk image in allResources) { Rss.RssItem item = new Rss.RssItem(); string title = image.getImageCaption(); if (title == "") { title = image.FileName; } item.Title = title; Dictionary <string, string> pageParams = new Dictionary <string, string>(); pageParams.Add(UrlParamName, image.ResourceId.ToString()); item.Link = new Uri(page.getUrl(pageParams)); item.Description = renderFullSize(placeholderData, image, page, langToRenderFor); ret.Add(item); } // foreach return(ret.ToArray()); }
public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { Rss.RssItem rssItem = base.CreateAndInitRssItem(page, langToRenderFor); PlainTextContentDb db = new PlainTextContentDb(); string html = db.getPlainTextContent(page, placeholderDefinition.Identifier, langToRenderFor, true); rssItem.Description = html; return(new Rss.RssItem[] { rssItem }); }
} // RenderView public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { Rss.RssItem rssItem = base.CreateAndInitRssItem(page, langToRenderFor); string content = page.renderPlaceholderToString(placeholderDefinition, langToRenderFor, CmsPage.RenderPlaceholderFilterAction.RunAllPageAndPlaceholderFilters); if (content.Trim() != "") { rssItem.Description = content; return(new Rss.RssItem[] { rssItem }); } return(new Rss.RssItem[0]); }
public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { Rss.RssItem rssItem = CreateAndInitRssItem(page, langToRenderFor); FileLibraryDetailsData fileData = db.fetchDetailsData(page, placeholderDefinition.Identifier, langToRenderFor, true); rssItem.Description = fileData.Description; rssItem.Author = fileData.Author; string controlId = "fileLibrary_" + page.Id.ToString() + "_" + placeholderDefinition.Identifier.ToString() + "_" + langToRenderFor.shortCode + "_"; rssItem.Guid = new Rss.RssGuid(controlId); return new Rss.RssItem[] { rssItem }; }
public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { EventCalendarDb db = new EventCalendarDb(); EventCalendarDb.EventCalendarAggregatorData entity = db.fetchAggregatorData(page, placeholderDefinition.Identifier, langToRenderFor, true); DateTime start = DateTime.MinValue; DateTime end = DateTime.MinValue; switch (entity.ViewMode) { case CalendarViewMode.Agenda_Day: start = DateTime.Now.Date; end = DateTime.Now.AddDays(1); break; case CalendarViewMode.Agenda_Week: DayOfWeek firstDay = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek; start = DateTime.Now.Date; while (start.DayOfWeek != firstDay) { start = start.AddDays(-1); } end = DateTime.Now.AddDays(7); break; case CalendarViewMode.Month: start = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); end = start.AddMonths(1); break; default: throw new ArgumentException("Error: invalid CalendarView mode"); break; } List <Rss.RssItem> ret = new List <Rss.RssItem>(); List <EventCalendarDb.EventCalendarDetailsData> list = new EventCalendarDb().fetchDetailsDataByRange(start, end, langToRenderFor); foreach (EventCalendarDb.EventCalendarDetailsData e in list) { CmsPage detailPage = CmsContext.getPageById(e.PageId); Rss.RssItem rssItem = CreateAndInitRssItem(detailPage, langToRenderFor); rssItem.PubDate_GMT = e.StartDateTime; rssItem.Author = e.CreatedBy; rssItem.Description = detailPage.renderPlaceholdersToString("EventCalendarDetails", langToRenderFor, CmsPage.RenderPlaceholderFilterAction.RunAllPageAndPlaceholderFilters); ret.Add(rssItem); } return(ret.ToArray()); }
} // getAllPlaceholderDefinitions /// <summary> /// returns an array of CmsPlaceholderDefinitions for this template /// note: all placeholderType entries are lower case /// </summary> /// <returns></returns> public override CmsPlaceholderDefinition[] getAllPlaceholderDefinitions() { List <CmsPlaceholderDefinition> ret = new List <CmsPlaceholderDefinition>(); // -- get the template file contents string templateText = getTemplateFileContents(); string[] CommandParams = getCommandStatementParameters("placeholder", templateText); foreach (string c in CommandParams) { Dictionary <string, string> tokens = tokenizeCommandParameters(c); string phName = tokens["##commandname##"].ToLower(); if (tokens.ContainsKey("id")) { int phId = Convert.ToInt32(tokens["id"]); string[] subParamsArray = new string[] { c }; CmsPlaceholderDefinition def = new CmsPlaceholderDefinition(phName, phId, subParamsArray); ret.Add(def); } } // -- get the TemplateLayout statement string[] layouts = getCommandStatementParameters("TemplateLayout", templateText); if (layouts.Length > 0) { string layoutText = getTemplateLayoutFileContents(layouts[0]); CommandParams = getCommandStatementParameters("placeholder", layoutText); foreach (string c in CommandParams) { Dictionary <string, string> tokens = tokenizeCommandParameters(c); string phName = tokens["##commandname##"].ToLower(); if (tokens.ContainsKey("id")) { int phId = Convert.ToInt32(tokens["id"]); string[] subParamsArray = new string[] { c }; CmsPlaceholderDefinition def = new CmsPlaceholderDefinition(phName, phId, subParamsArray); ret.Add(def); } } // foreach } return(ret.ToArray()); } // getAllPlaceholderDefinitions
} // RenderView public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { GlossaryDb db = new GlossaryDb(); GlossaryPlaceholderData placeholderData = db.getGlossary(page, placeholderDefinition.Identifier, langToRenderFor, true); GlossaryPlaceholderData.GlossaryViewMode origViewMode = placeholderData.ViewMode; // -- gets all glossary items (regardless of the ViewMode) GlossaryData[] items = db.getGlossaryData(placeholderData.GlossaryId); // -- each glossary item gets its own rssItem List <Rss.RssItem> ret = new List <Rss.RssItem>(); foreach (GlossaryData glData in items) { Rss.RssItem rssItem = new Rss.RssItem(); rssItem = base.InitRssItem(rssItem, page, langToRenderFor); rssItem.Description = glData.description; // -- setup the proper link switch (placeholderData.ViewMode) { case GlossaryPlaceholderData.GlossaryViewMode.PagePerLetter: Dictionary <string, string> urlParams = new Dictionary <string, string>(); urlParams.Add("l", glData.word.ToUpper()[0].ToString()); rssItem.Link = new Uri(page.getUrl(urlParams, langToRenderFor)); break; case GlossaryPlaceholderData.GlossaryViewMode.SinglePageWithJumpList: // nothing to do break; default: throw new Exception("Error: invalid GlossaryViewMode"); } // switch } return(ret.ToArray()); }
} // callExternalPlaceholderRender public static Rss.RssItem[] GetRssFeedItems(string PlaceholderType, CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { // public abstract Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor); object ret = InvokePlaceholderFunction(PlaceholderType, "GetRssFeedItems", new object[] { page, placeholderDefinition, langToRenderFor }); if (ret is Rss.RssItem[]) { return(ret as Rss.RssItem[]); } return(new Rss.RssItem[0]); }
} // getAddEditContactForm public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { throw new Exception("The method or operation is not implemented."); }
/// <summary> /// Renders the placeholder to the RssFeed in view mode. /// </summary> /// <param name="rssFeed"></param> // public static Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition , CmsLanguage langToRenderFor) public abstract Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor);
} // getMapHtml public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { return(new Rss.RssItem[0]); // do not render anything in RSS. }
public override Rss.RssItem[] GetRssFeedItems(CmsPage page, CmsPlaceholderDefinition placeholderDefinition, CmsLanguage langToRenderFor) { return(new Rss.RssItem[0]); // no RSS items. }
/// <summary> /// returns string.empty on error, or when there's nothing to display /// </summary> /// <param name="page"></param> /// <param name="identifier"></param> /// <returns></returns> public static string renderPlaceholderToString(CmsPage page, CmsLanguage langToRender, CmsPlaceholderDefinition placeholderDef) { try { StringBuilder html = new StringBuilder(); System.IO.StringWriter output = new System.IO.StringWriter(html); HtmlTextWriter writer = new HtmlTextWriter(output); RenderInViewMode(placeholderDef.PlaceholderType, writer, page, placeholderDef.Identifier, langToRender, placeholderDef.ParamList, page.TemplateName); return(html.ToString()); } catch { } return(string.Empty); }