Adding CommentsFilter

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2011-10-30 10:46:16 -07:00
parent 8859efb933
commit d7f258b830

View File

@@ -0,0 +1,39 @@
using System;
using System.Linq;
using Orchard.ContentManagement;
using Orchard.Events;
using Orchard.Localization;
using Orchard.Comments.Models;
namespace Orchard.Comments.Projections {
public interface IFilterProvider : IEventHandler {
void Describe(dynamic describe);
}
public class CommentsFilter : IFilterProvider {
public CommentsFilter() {
T = NullLocalizer.Instance;
}
public Localizer T { get; set; }
public void Describe(dynamic describe) {
describe.For("Comments", T("Comments"), T("Comments"))
.Element("HasComments", T("Has Comments"), T("Commented content items"),
(Action<dynamic>)ApplyFilter,
(Func<dynamic, LocalizedString>)DisplayFilter,
null
);
}
public void ApplyFilter(dynamic context) {
var query = (IContentQuery<ContentItem>)context.Query;
context.Query = query.Where<CommentsPartRecord>(x => x.CommentPartRecords.Any());
}
public LocalizedString DisplayFilter(dynamic context) {
return T("Has comments");
}
}
}