protected void Page_Load(object sender, EventArgs e)
        {
            Guid topic;
            int  page;

            Sitecore.Globalization.Language language;

            if (Sitecore.Globalization.Language.TryParse(Lang, out language))
            {
                Sitecore.Context.SetLanguage(language, false);
            }

            if (Guid.TryParse(Topic, out topic) && int.TryParse(ResultPage, out page))
            {
                Item item = Sitecore.Context.Database.GetItem(Sitecore.Data.ID.Parse(topic));
                if (item != null && item.InheritsTemplate(TopicLandingPageItem.TemplateId))
                {
                    TopicLandingPageItem topicItem = item;
                    bool hasMoreResults;
                    articleListing.Articles = topicItem.GetTopicArticles(page, out hasMoreResults);
                    phMoreResults.Visible   = hasMoreResults;
                }
            }
            else
            {
                articleListing.Visible = false;
            }
        }
        private void BindContent()
        {
            litTitle.Text = Model.ContentPage.PageTitle.Rendered;

            if (Model.InnerItem.Parent != null)
            {
                TopicLandingPageItem topic = Model.InnerItem.Parent;
                hlBreadcrumbNav.NavigateUrl = topic.GetUrl();
                litPreviousLink.Text        = topic.ContentPage.BasePageNEW.NavigationTitle.Rendered;
            }

            Dictionary <string, string> filters = Model.GetArticleFilters();

            if (filters.Count > 0)
            {
                rptFilters.DataSource = filters;
                rptFilters.DataBind();

                litFirstFilter.Text = filters.First().Value;
            }
        }
예제 #3
0
        protected void rptTopicLanding_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.IsItem())
            {
                TopicLandingPageItem topic = e.Item.DataItem as TopicLandingPageItem;
                if (topic != null)
                {
                    HyperLink hlTopicLink       = e.FindControlAs <HyperLink>("hlTopicLink");
                    Repeater  rptTopicListItems = e.FindControlAs <Repeater>("rptTopicListItems");

                    hlTopicLink.Text        = topic.ContentPage.PageTitle;
                    hlTopicLink.NavigateUrl = topic.InnerItem.GetUrl();

                    IEnumerable <DefaultArticlePageItem> topicArticles = Enumerable.Empty <DefaultArticlePageItem>();
                    var curated = topic.GetFeaturedSectionArticles();

                    // Check curated first, fallback to most recent articles
                    if (curated.Any())
                    {
                        topicArticles = curated.Take(Constants.SECTION_LANDING_ARTICLES_PER_ROW).Select(x => new DefaultArticlePageItem(x));
                    }
                    else
                    {
                        var recent = SearchHelper.GetMostRecentArticlesWithin(topic.ID, Constants.SECTION_LANDING_ARTICLES_PER_ROW);
                        if (recent.Any())
                        {
                            topicArticles = recent.Where(i => i.GetItem() != null)
                                            .Select(i => new DefaultArticlePageItem(i.GetItem()));
                        }
                    }

                    if (topicArticles.Any())
                    {
                        rptTopicListItems.DataSource = topicArticles;
                        rptTopicListItems.DataBind();
                    }
                }
            }
        }