如何自定义Leemon CMS以按自定义字段过滤内容?

时间:2014-07-17 09:09:10

标签: asp.net content-management-system lemoon

我正在使用Lemoon CMS。我已经创建了一个新的内容类型,并且我已经使用新字段对其进行了修改,并且所有内容都正常工作。

我创建了一个新的用户控件来显示我的内容类型中的一些数据(" isFeatured = true")

如何自定义代码以过滤内容,以及如何按自定义添加字段对数据进行排序?

 ContentQuery query = new ContentQuery();
    query.ParentID = 70;
    query.MinDepth = 1;
    query.MaxDepth = 1;
    query.LanguageMode = LanguageMode.Fallback;
    query.SearchNonSearchable = null;
    query.ContentTypes.Add(typeof(Mindroute.Lemoon.Generated.ContentType.ServiceItem).FullName);

    query.ContentTypeMode = ContentTypeMode.Inherit;
    //query.OrderBy.Add(new SortItem(ContentColumn.Columns[6], "desc"));
    Response.Write(ContentColumn.Columns[6]);
    query.PageSize = 8;
    Entries = ContentService.Search(query).Cast<Mindroute.Lemoon.Generated.ContentType.ServiceItem>();

1 个答案:

答案 0 :(得分:0)

首先,我认为您可以简化获取ServiceItems的代码。您只需使用ContentService.GetChildren<ServiceItem>(70)而不是设置ContentQuery

要按特定属性进行过滤和排序,您可以像这样使用Linq:

var children = ContentService.GetChildren<ServiceItem>(70);
var filtered = children.Where(x => x.IsFeatured == true);
var ordered = filtered.OrderBy(x => x.SomeOtherProperty);

也可以使用ContentQuery查找具有自定义属性的项目,然后您需要设置ContentQuery.PropertyValue = new PersistedValue("IsFeatured", true);