如何创建在 Drupal 7 网站之间传输节点的提要



我有一个Drupal 7网站,内容类型像"events"和"news"。

我希望将这些内容类型的节点自动导入其他网站。

我在"客户端"网站上玩过提要、XPath 和"服务器"端的视图 RSS 字段,但我意识到文件类型字段(如文件)会出现问题......有什么建议吗?我希望能够在其他网站中为此内容创建新视图。

附言网站之间的内容类型将相同(但如果解决方案包含其他内容,则不必相同)。

您可能在服务和内容分发方面取得了更大的成功。RSS 源不太适合传输语义数据。他们高度关注文章列表,通常缺少"事件开始日期"等信息。

服务允许您在服务器 drupal-site 上公开服务,将节点公开为 例如 RESTfull json。然后,客户端drupalsite可以使用服务和内容分发从所述服务器导入节点。

也就是说,这些服务适合插入视图,并且非常沉重,庞大和复杂。如果你对大型和复杂的项目过敏(像我一样),你可能最好编写简单的模块:

  • events-service:一个 20+ 行的模块,从数据库中获取事件,并将它们呈现为 JSON。
  • news-service:一个 10+ 行模块,用于获取新闻节点列表并将它们显示为 json。
  • events-client:一个小模块(~400-800行?),它在给定的URL上吃掉所述JSON并将它们转换为节点。它将在节点表旁边保留一些UUID的寄存器,以避免在上游更改时重新创建节点(而是找到关联的节点并更新它)。
  • 新闻客户端:一个小模块。同上。

编写这样的模块是非常有益的,因为与其与文档记录不佳的视图插件、围绕服务的复杂层等作斗争,不如完全控制和完全理解。它还允许更好的调整和性能。

一个很大的缺点是Drupal,更具体地说:CCK或Fields,决定了数据库及其结构。当你的站点上的一些微小的配置更改破坏了你的模块SQL查询时,你会突然出现SQL错误,因为Drupal决定重命名或移出一些表,列或引用。

也许您可以通过创建客户端将使用的 xmls/json(服务器端)来共享数据。

服务是一个很好的方式。但是对于简单的东西,我发现它很复杂。

您可以做的是创建将输出为 xml/json 的视图...您可以通过在模块/模板文件中执行预处理功能来执行此操作。

之后,客户端(可能运行 cron)将采用 xml/json 并以编程方式创建节点。

最新更新