Rss 使用树列表值查询Sitecore项目

Rss 使用树列表值查询Sitecore项目,rss,sitecore,treelist,Rss,Sitecore,Treelist,我有一个名为All Recipes的项目,其中包含名为R1、R2和R3的配方。我有另一个名为My Recipes的项目,它有一个名为Recipes的树状列表字段,它包含从All Recipes项目中选择的值R2和R3。我试图编写的查询是针对RSS提要的Items字段的。 显示“我的食谱”的“食谱”字段中出现的所有食谱中的项目的查询语法是什么?如果您是用xslt编写的,您可以使用sc:listfielditems('fieldname',$item)获取树列表中项目的节点集,然后可以对每个使用进行

我有一个名为All Recipes的项目,其中包含名为R1、R2和R3的配方。我有另一个名为My Recipes的项目,它有一个名为Recipes的树状列表字段,它包含从All Recipes项目中选择的值R2和R3。我试图编写的查询是针对RSS提要的Items字段的。


显示“我的食谱”的“食谱”字段中出现的所有食谱中的项目的查询语法是什么?

如果您是用xslt编写的,您可以使用
sc:listfielditems('fieldname',$item)
获取树列表中项目的节点集,然后可以对每个
使用
进行迭代


如果你是在.net中写这篇文章的,我不知道——但我知道一个人是这样写的,我会把这篇文章发给他。

你在使用SQL Server吗?Sitecore食谱建议您执行以下操作:

MyItems=GetSomeItems(“/home/whatever/allrecipes”);
foreach(MyItems中的项目)
{
如果(项目在MyRecipes中)
做点什么
}
原因是查询/home/where/allrecipes是由提供者优化的,而复杂的查询检查MyRecipes的成本会更高


.

这不能通过Sitecore查询完成。相反,创建一个自定义提要类,扩展
Sitecore.Syndication.PublicFeed
并覆盖
GetSourceItems()
。下面是一个例子:

公共类MyCustomFeed:Sitecore.Syndication.PublicFeed { 公共重写IEnumerable GetSourceItems() { Sitecore.Data.Database master=Sitecore.Configuration.Factory.GetDatabase(“master”); Item contentFolder=master.GetItem(“/sitecore/content/Home/MyContentFolder”); //在此处进行处理以获取提要项目 //我只是在抓取内容文件夹中的内容,但它可能很复杂。 ChildList cl=contentFolder.GetChildren(); 返回cl; } }

在RSS提要的类型字段中,在可扩展性部分下,输入自定义类的类路径和程序集:

Utility.SitecoreLibrary.RSS Folder.MyCustomFeed,Utility.SitecoreLibrary



请将RSS提要的Items字段留空,因为这个自定义类将取代它。

我无法对上面adam的帖子发表评论,因此我将留空作为回答:没有名为
sc:listfielditems的Sitecore函数/方法。
。你能再检查一遍你的代码吗?

我真的在寻找一个可以输入RSS提要的Items字段的查询。以“query:/sitecore/content/home/*[query TO GET ITEMS FROM TREELIST HERE]”的形式出现。