3

我有一个 Drupal 7 网站,其中包含“事件”和“新闻”等内容类型。

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

我在“客户端”网站上使用 Feed、XPath 并在“服务器”端使用 Views RSS 字段,但我意识到内容类型字段(如文件)会有问题......有什么建议吗?我希望能够在其他网站上为此内容创建新视图。

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

4

2 回答 2

1

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

服务是个好方法。但我发现简单的东西很复杂。

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

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

于 2012-06-15T03:56:29.530 回答
1

您可能在服务内容分发方面取得了更大的成功。RSS 提要不太适合语义数据的传输。他们高度关注文章列表,通常缺乏诸如“事件开始日期”之类的信息。

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

也就是说,服务套装插入视图,并且非常沉重、庞大和复杂。如果你对大型和复杂的项目(比如我)过敏,你可能会更好地编写简单的模块:

  • events-service:一个 20 多行的模块,它从数据库中获取事件,并将它们呈现为 json。
  • 新闻服务:一个 10 多行的模块,用于获取新闻节点列表并将它们呈现为 json。
  • events-client:一个小模块(~400-800 行?),它在给定的 url 处吃掉所说的 json 并将它们变成节点。它将在节点表旁边保留一些 UUID 的寄存器,以避免在上游更改时重新创建节点(而是找到关联的节点并更新它)。
  • news-client:一个小模块。和上面一样。

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

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

于 2012-06-12T13:40:43.260 回答