我刚刚开始维护一个非常大的Drupal网站。该网站有一个列出歌曲的播放列表。每首歌曲的内容类型具有文本字段,用户在播放歌曲的时间键入该文本字段。是的,它是一个TEXT字段,而不是日期字段:(因此默认情况下,在视图中我无法使用BETWEEN
运算符公开过滤器。呃。
有没有办法可以将此字段转换为日期字段,以便我可以使用between
运算符?或者也许我可以做一些其他的解决方案?谢谢你的帮助。
答案 0 :(得分:0)
最好的办法是使用自定义模块,在保存/加载节点时将该值存储在实际的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事件的更新选项,以更新现有节点。