我刚刚开始维护一个相当大的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事件的更新选项之一,例如发布节点,以更新现有节点。