示例#1
0
        public static void Show(object sender, ShowGPageEventArgs e)
        {
            e.Template.SetTemplate("News", "viewnews");

            News news = null;
            try
            {
                news = new News(e.Core, e.Page.Owner);
            }
            catch (InvalidNewsException)
            {
                news = News.Create(e.Core, e.Page.Owner, e.Page.Owner.TitleNameOwnership + " News", 10);
            }

            e.Template.Parse("PAGE_TITLE", e.Core.Prose.GetString("NEWS"));

            e.Core.Display.ParsePageList(e.Page.Owner, true);

            List<Article> articles = news.GetArticles(e.Page.TopLevelPageNumber, 10);

            e.Template.Parse("NEWS_COUNT", articles.Count.ToString());

            foreach (Article article in articles)
            {
                VariableCollection articleVariableCollection = e.Template.CreateChild("news_list");

                e.Core.Display.ParseBbcode(articleVariableCollection, "BODY", article.ArticleBody, e.Page.Owner);
                articleVariableCollection.Parse("TITLE", article.ArticleSubject);
                articleVariableCollection.Parse("U_ARTICLE", article.Uri);
                articleVariableCollection.Parse("U_POSTER", article.Poster.Uri);
                articleVariableCollection.Parse("USERNAME", article.Poster.DisplayName);
                articleVariableCollection.Parse("COMMENTS", article.Comments.ToString());
                articleVariableCollection.Parse("DATE", e.Core.Tz.DateTimeToString(article.GetCreatedDate(e.Core.Tz)));
            }

            if (news.Access.Can("CREATE_ARTICLES"))
            {
                e.Template.Parse("U_CREATE_ARTICLE", news.Owner.AccountUriStub);
                e.Template.Parse("L_POST_NEWS_ARTICLE", "New Article");
            }

            e.Core.Display.ParsePagination(e.Template, news.Uri, 10, e.Page.Group.GroupInfo.NewsArticles);

            List<string[]> breadCrumbParts = new List<string[]>();
            breadCrumbParts.Add(new string[] { "news", e.Core.Prose.GetString("NEWS") });

            e.Page.Group.ParseBreadCrumbs(breadCrumbParts);
        }
示例#2
0
        public static void Show(object sender, ShowGPageEventArgs e)
        {
            e.Template.SetTemplate("News", "viewnewsarticle");

            Article article = null;

            try
            {
                article = new Article(e.Core, e.ItemId);
            }
            catch (InvalidArticleException)
            {
                e.Core.Functions.Generate404();
            }

            e.Template.Parse("PAGE_TITLE", article.ArticleSubject);

            e.Core.Display.ParsePageList(e.Page.Owner, true);

            e.Core.Display.ParseBbcode(e.Template, "ARTICLE_BODY", article.ArticleBody);
            e.Template.Parse("ARTICLE_TITLE", article.ArticleSubject);
            e.Template.Parse("ARTICLE_U_ARTICLE", article.Uri);
            e.Template.Parse("ARTICLE_U_POSTER", article.Poster.Uri);
            e.Template.Parse("ARTICLE_USERNAME", article.Poster.DisplayName);
            e.Template.Parse("ARTICLE_COMMENTS", article.Comments.ToString());
            e.Template.Parse("ARTICLE_DATE", e.Core.Tz.DateTimeToString(article.GetCreatedDate(e.Core.Tz)));

            // PaginationOptions.Blog
            e.Core.Display.ParsePagination(e.Template, article.Uri, 10, article.Comments);

            List<string[]> breadCrumbParts = new List<string[]>();
            breadCrumbParts.Add(new string[] { "news", e.Core.Prose.GetString("NEWS") });
            breadCrumbParts.Add(new string[] { e.ItemId.ToString(), article.ArticleSubject });

            e.Page.Group.ParseBreadCrumbs(breadCrumbParts);

            e.Template.Parse("CAN_COMMENT", "TRUE");
            e.Core.Display.DisplayComments(e.Template, e.Page.Group, article);
        }