Ejemplo n.º 1
0
    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;
    }
Ejemplo n.º 2
0
    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";
    }