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
public RenderParameters(string[] paramList, NewsArticleDb.NewsArticleAggregatorData aggData) { if (CmsConfig.TemplateEngineVersion == CmsTemplateEngineVersion.v2) { ArticleDisplayFormat = PlaceholderUtils.getParameterValue("displayformat", ArticleDisplayFormat, paramList); NumCharactersToShowInSnippet = PlaceholderUtils.getParameterValue("snippetchars", NumCharactersToShowInSnippet, paramList); AggregatorData = aggData; PageIdToGatherNewsFrom = PlaceholderUtils.getParameterValue("gatherfrompageid", Int32.MinValue, paramList); RecursiveGatherNews = PlaceholderUtils.getParameterValue("gatherrecusive", RecursiveGatherNews, paramList); } else { throw new ArgumentException("Invalid CmsTemplateEngineVersion"); } } // constructor
public override void RenderInEditMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] param) { NewsArticleDb db = new NewsArticleDb(); NewsArticleDb.NewsArticleAggregatorData entity = db.fetchNewsAggregator(page, identifier, langToRenderFor, true); string ProjectSummaryId = "ProjectSummary_" + page.ID.ToString() + "_" + identifier.ToString() + "_" + langToRenderFor.shortCode; // ------- CHECK THE FORM FOR ACTIONS string action = PageUtils.getFromForm(ProjectSummaryId + "_Action", ""); if (action.Trim().ToLower() == "update") { // save the data to the database int id = PageUtils.getFromForm(ProjectSummaryId + "_ProjectSummaryId", -1); int newDefaultYear = PageUtils.getFromForm("defaultYear_" + ProjectSummaryId, -1); entity.YearToDisplay = newDefaultYear; bool b = db.updateNewsAggregator(page, identifier, langToRenderFor, entity); if (!b) { writer.Write("Error saving updates to database!"); } } // ------- START RENDERING // note: no need to put in the <form></form> tags. StringBuilder html = new StringBuilder(); html.Append("<p><strong>News Aggregator Display Settings:</strong></p>"); html.Append("<table>"); string dropDownHtml = PageUtils.getInputTextHtml("defaultYear_" + ProjectSummaryId, "defaultYear_" + ProjectSummaryId, entity.YearToDisplay.ToString(), 7, 4); html.Append("<tr><td>Default Year to display summaries for: (-1 = all years)</td>"); html.Append("<td>" + dropDownHtml + "</td></tr>"); html.Append("</table>"); html.Append("<input type=\"hidden\" name=\"" + ProjectSummaryId + "_Action\" value=\"update\">"); html.Append("<input type=\"hidden\" name=\"" + ProjectSummaryId + "_ProjectSummaryId\" value=\"" + page.ID.ToString() + "\">"); writer.WriteLine(html.ToString()); }
public override void RenderInViewMode(HtmlTextWriter writer, CmsPage page, int identifier, CmsLanguage langToRenderFor, string[] param) { AddNewsArticleCommandToEditMenu(page, page); CmsPage currentPage = CmsContext.currentPage; StringBuilder html = new StringBuilder(); NewsArticleDb db = new NewsArticleDb(); NewsArticleDb.NewsArticleAggregatorData newsAggregator = db.fetchNewsAggregator(page, identifier, langToRenderFor, true); RenderParameters renderParams = RenderParameters.fromParamList(param, newsAggregator); NewsAggItem[] newsToShow = FetchAllNewsAggItems(page, identifier, langToRenderFor, renderParams, CmsUrlFormat.RelativeToRoot); // -- display results html.Append(getHtmlForSummaryView(newsToShow, renderParams, langToRenderFor)); writer.Write(html.ToString()); }
public static RenderParameters fromParamList(string[] paramList, NewsArticleDb.NewsArticleAggregatorData aggData) { return(new RenderParameters(paramList, aggData)); }