Drupal - 用于 RSS 时的日期字段语言

Posted

技术标签:

【中文标题】Drupal - 用于 RSS 时的日期字段语言【英文标题】:Drupal - date field language when used for RSS 【发布时间】:2015-09-10 11:02:42 【问题描述】:

我对以下情况有疑问。 我设置了一个带有date field 类型“日期(ISO 格式)”的节点。 为了在 RSS 提要中显示这些节点,我从内容和格式 RSS 提要创建了一个视图。此外,我在 Drupal 中通过“r”(RFC 2822)或(D,d M Y H:i:s O)设置了自定义日期格式,并将其用于该字段“field_time”。该字段用作 pubDate。

日期字段创建而不是:

Wed, 01 Jul 2015 00:00:00 +0200

“德语”版本。

Mi, 01 Jul 2015 00:00:00 +0200

如果我对例如“创建”日期执行相同操作,我会得到正确的英文输出。

我已经尝试将该视图的“现场语言”设置为英语。 我还尝试以编程方式更改行 tpl 中的输出(压倒我的 php 知识)。

它与here 非常相似。

也许有人可以提示我更改该字段,在行模板中更改它或类似的东西。 提前致谢!

【问题讨论】:

【参考方案1】:

经过一些尝试和错误,我通过字段级别的视图模板重写了我的字段“field_time”的输出。我从该字段中获取原始值,将其“再次”转换为 RFC 2822 格式,并保持为英文。

$rawdate = $row->field_data_field_time_field_time_value;
$unixdate = strtotime($rawdate);
print date('r', $unixdate);

在那之后我对其进行了一些修改,以使提要中的其他节点也只有例如node_created 通过视图 UI 中的“如果为空则重写”。

if (isset($row->field_data_field_time_field_time_value)) 
  $rawdate = $row->field_data_field_time_field_time_value;
  $unixdate = strtotime($rawdate);
  print date('r', $unixdate);
 else 
  print $output;

我不确定,如果那很干净。仍然欢迎提出建议。

【讨论】:

以上是关于Drupal - 用于 RSS 时的日期字段语言的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 7:如果日期字段具有结束日期,则过滤视图

Drupal主题化RSS提要视图

尝试根据日期条件隐藏 Drupal 视图输出中的 CC 字段

为网站加入Drupal星球制作RSS订阅源

如何在 Drupal 中以页面的形式更改“视图”的“日期字段”格式?

Drupal 7 node_save在cron期间不保存计算字段