Drupal 7:视图公开过滤器,带有非日期字段的 BETWEEN 运算符


Drupal 7: Views exposed filter with BETWEEN operator for non-date field?

我刚刚开始维护一个相当大的Drupal网站。该网站有一个列出歌曲的播放列表。每首歌曲的内容类型都有一个文本字段,用户可在其中键入播放歌曲的时间。是的,这是一个文本字段,而不是日期字段:(因此,默认情况下,在视图中,我无法使用BETWEEN运算符公开过滤器。呸。

有什么方法可以将此字段转换为日期字段,以便我可以使用between运算符?或者也许我可以做一些其他解决方法?感谢您的任何帮助。

最好的办法是使用自定义模块,该模块在保存/加载节点时将该值存储在实际的Drupal日期字段中。

function mymodule_node_presave($node) {
  if ($node->type == 'whatever_content_type') {
    $node->actualdatefield[LANGUAGE_NONE][0]['value'] = date('Y-m-d g:i:s', strtotime($node->userdatefield[LANGUAGE_NONE][0]['value']));
  }
}

类似的东西。您需要触发通过内容列表页面触发node_save事件的更新选项之一,例如发布节点,以更新现有节点。