【问题标题】:Drupal 7: Views exposed filter with BETWEEN operator for non-date field?Drupal 7:使用 BETWEEN 运算符查看非日期字段的公开过滤器?
【发布时间】:2012-08-16 13:57:48
【问题描述】:
我刚开始维护一个相当大的 Drupal 网站。该网站有一个列出歌曲的播放列表。每首歌曲的内容类型都有一个文本字段,用户可以在其中输入歌曲的播放时间。是的,它是 TEXT 字段,而不是日期字段 :( 所以默认情况下,在 Views 中,我无法使用 BETWEEN 运算符公开过滤器。呃。
有什么办法可以将此字段转换为日期字段,以便我可以使用between 运算符?或者也许我可以做一些其他的解决方法?感谢您的帮助。
【问题讨论】:
标签:
php
drupal
drupal-7
drupal-views
field
【解决方案1】:
您最好的选择是使用自定义模块,在保存/加载节点时将该值存储在实际的 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 事件的更新选项之一,以更新现有节点。