我正在使用 Drupal 7,带有 Views、Feeds 和 Views PHP 模块(以及其他模块,但我认为这些是唯一相关的模块)。
我的目标是一个单一的视图,它结合了(a)通过 Feeds 模块引入的多个 RSS 提要,(b)我自己的两个或三个内容类型,用于在我的站点上手动创建的内容。结果将是一个块和一个页面,其中包含我所有最新作品的流,无论它在哪里——我自己的站点或另一个站点(当然,只要那个站点有 RSS 提要)。
理想的结果将显示一个列表,按日期排序,混合项目而不考虑内容类型。
我的问题:Feeds 模块和我的自定义内容类型有不同的日期字段。我的内容类型有一个名为 Original Date 的字段,这是我在创建内容时设置的(例如,添加我三年前写的一篇文章——我显然希望它按发布时间排序,而不是按我添加到地点)。但是,每个 feed_item 都有一个日期字段 Published Date,它对应于 RSS 提要中的日期,并由 RSS 与项目的其余部分一起接收。
我曾尝试以多种方式使用 Views PHP 功能来使用 if/then 语句。例如,我检查 content_type 是什么,然后根据内容类型将变量设置为原始日期或发布日期。或者,我测试了是否设置了原始日期字段;如果是这样,我返回该字段,否则我返回 Published Date 字段。他们都以各种方式失败。大多数抛出的 PHP 错误甚至对匿名用户都是可见的(显然是一个问题)。
我已经在视图的排序标准部分直接尝试了这些不同的方法;我还尝试在“字段”部分中提出日期,然后使用排序标准调用该结果。我已将所有内容都转换为 Unix 时间戳,以确保我有一些简单的排序依据;我试过把日期作为日期。无论哪种方式都没有运气。
这是真正奇怪的部分:我已成功使用这些方法来显示正确的日期,因此(例如)该块显示 • TITLE | 自定义内容类型的原始日期,以及 • TITLE | 提要项目的发布日期。但是,当我尝试使用相同的方法按日期排序时,它会失败。
我忽略了一些更简单的东西吗?我必须使用 PHP 视图吗?有没有其他方法可以通过两个不同(尽管相似)字段的组合对多个内容类型的视图进行排序?
谢谢!
tf