自定义类型的RSS--Orchard

标签 rss orchardcms

我们正在考虑获取 Orchard 站点上内容的 RSS,然后使用 C# 对其进行解析,以将其粘贴到我们自己的数据库中。为此,我们需要 RSS 来获取我们自定义类型的每个字段。现在,当我获得投影的 RSS 时,我们获得了标题、描述等的默认元素,但没有获得类型的字段。

另一方面,使用 Import/Export 模块,我能够获取自定义类型的所有字段,但该模块不支持查询(这就是我们使用投影的原因)。

有没有办法获得一个类型的所有字段的 RSS 提要,但使用查询/投影?

最佳答案

没有自动的方法可以做到这一点,但您可以编写自己的模块来执行此操作。

你需要做的是添加一个实现Orchard.Core.Feeds.IFeedItemBuilder的类界面。接口(interface)本身只有一个方法你需要实现 - void Populate(FeedContext context) .

以下是如何实现此方法的代码片段:

public void Populate(FeedContext context) 
{
    context.Response.Contextualize(
      c => {
        foreach (var feedItem in context.Response.Items.OfType<FeedItem<ContentItem>>()) 
        {
          var contentItem = feedItem.Item;
          foreach (var part in contentItem.Parts)
          {
            // extract data you're interested in from parts
            foreach (var field in part.Fields)
            {
              // extract data you're interested in from fields
              feedItem.Element.SetElementValue("description", "Text to output to RSS");
            }
          }
        }
      });
}
context.Response.Items保存将输出到 RSS 的所有项目。这里棘手的部分是要知道您想要将哪些数据输出到 RSS,因为有许多不同的部分具有许多不同的字段。它们都有不同的属性名称,您希望输出到 RSS。

因此,我的建议是测试 contentItem在上面的示例中是您的自定义类型。如果是,请将其转换并使用您的自定义字段名称来填充 description其中feedItem .

关于自定义类型的RSS--Orchard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13827777/

相关文章:

asp.net-mvc-3 - 尝试根据 Orchard (NHibernate) 中的枚举保存复选框选择

c# - Orchard CMS : Adding default data to fields and then querying them

html - 将元素符号添加到 Orchard 中的标题标签

php - 使用 simplepie 从 RSS 提要获取图像 url

java - 如果下一个标签位于新行上,XmlPullParser 读取 null

java - 关于使用 Informa RSS 库的问题

orchardcms - Orchard CMS : Create OnPublished event on existing content type

content-management-system - 我可以让Orchard在博客列表中显示整个博客文章吗?

php - 如何通过命令行在服务器上运行php脚本

python - 正在读取<内容:encoded> tags using BeautifulSoup 4