public BlogCommentWrapper(BXBlogComment entity, BXAdminPage parentPage, BXBlogCommentChain processor) { if (entity == null) throw new ArgumentNullException("entity"); if (parentPage == null) throw new ArgumentNullException("parentPage"); this.processor = processor ?? new BXBlogCommentChain(); this.entity = entity; this.parentPage = parentPage; }
protected void ItemGrid_Select(object sender, BXSelectEventArgs e) { if (!BXPrincipal.Current.IsCanOperate(BXBlog.Operations.AdminManagement)) return; List<BlogCommentWrapper> list = new List<BlogCommentWrapper>(); BXFilter f = new BXFilter(ItemFilter.CurrentFilter, BXBlogComment.Fields); BXSelect s = new BXSelect(BXSelectFieldPreparationMode.Add, BXBlogComment.Fields.Author.User.FirstName, BXBlogComment.Fields.Author.User.LastName, BXBlogComment.Fields.Author.User.UserName, BXBlogComment.Fields.Blog.Id, BXBlogComment.Fields.Blog.Name, BXBlogComment.Fields.Post.Id, BXBlogComment.Fields.Post.Title); this.comments = BXBlogComment.GetList( f, new BXOrderBy(BXBlogComment.Fields, string.IsNullOrEmpty(e.SortExpression) ? "Id" : e.SortExpression), s, new BXQueryParams(e.PagingOptions), BXTextEncoder.EmptyTextEncoder ); this.processor = new BXBlogCommentChain(); foreach (BXBlogComment comment in this.comments) list.Add(new BlogCommentWrapper(comment, this, this.processor)); e.Data = list; }
public string GetSubject() { string typeName = Attributes["TypeName"], itemId = Attributes["ItemID"]; bool displayTypeName; if (!bool.TryParse(Attributes["DisplayTypeName"], out displayTypeName)) displayTypeName = false; if (typeName == "BLOGPOST") { BXBlogPost p = BXBlogPost.GetById(itemId, BXTextEncoder.EmptyTextEncoder); if (p == null) return "N/A"; BXBlog b = BXBlog.GetById(p.BlogId, BXTextEncoder.EmptyTextEncoder); if (b == null) return "N/A"; string type = displayTypeName ? GetMessage("TypeName.BlogPost", true) + " / " : string.Empty, title = HttpUtility.HtmlEncode(b.Name + " / " + p.Title); string url = FindUrl("blog", "p" + p.Id, 0); if (url.Length > 0) { url = url.Replace("#BlogSlug#", b.Slug); } return url.Length > 0 ? string.Format("{0}<a href='{1}'>{2}</a>", type, HttpUtility.HtmlAttributeEncode(url), title) : string.Concat(type, title); } else if (typeName == "BLOGCOMMENT") { BXBlogCommentChain chain = new BXBlogCommentChain(); BXBlogComment c = BXBlogComment.GetById(itemId, BXTextEncoder.EmptyTextEncoder); if (c == null) return "N/A"; BXBlog b = BXBlog.GetById(c.BlogId, BXTextEncoder.EmptyTextEncoder); if (b == null) return "N/A"; BXBlogPost p = BXBlogPost.GetById(c.PostId, BXTextEncoder.EmptyTextEncoder); if (p == null) return "N/A"; string type = displayTypeName ? GetMessage("TypeName.BlogComment", true) + " / " : string.Empty, title = BXWordBreakingProcessor.Break(b.Name + " / " + p.Title, 30, true), text = BXWordBreakingProcessor.Break(chain.StripBBCode(c.Content.Length <= 64 ? c.Content : c.Content.Substring(0, 61) + "..."), 30, true); string url = FindUrl("blog", "p" + p.Id, 0); if (url.Length > 0) { url = url.Replace("#BlogSlug#", b.Slug); } if (url.Length > 0) return string.Format( "{0}<a href='{1}'>{2}</a><p style='font-size:100%;'><i>{3}</i></p>", type, HttpUtility.HtmlAttributeEncode(url), title, text); else return string.Format( "{0}{1}<p style='font-size:100%;'><i>{2}</i></p>", type, title, text); } return "N/A"; }