--- daterange.module 2007-10-11 23:40:05.000000000 +0200 +++ daterange.module-fabio84 2007-12-24 13:42:02.000000000 +0100 @@ -328,6 +328,7 @@ $value2 = _get_date_value($filter['value']['date1'], 23, 59, 59); } $field = $filter['field']; + $field2 = null; if (substr($field, 0, 15) == 'daterange_node_') { if (module_exists('content')) { $parts = explode('.', $field); @@ -345,29 +346,33 @@ ); $query->add_table($parts[0], false, 1, $joininfo); $field = ' UNIX_TIMESTAMP(REPLACE('. $parts[0] .'.'. $parts[1] .'_value, \'T\', \' \'))'; + $field2 = ' UNIX_TIMESTAMP(REPLACE('. $parts[0] .'.'. $parts[1] .'_value2, \'T\', \' \'))'; } } else { $field = str_replace('daterange_', '', $field); } - _views_handler_filter_between_date($field, $value1, $filter['operator'], $value2, $query); + _views_handler_filter_between_date($field, $value1, $filter['operator'], $value2, $query, $field2); } } } -function _views_handler_filter_between_date($field, $value1, $op, $value2, &$query) { +function _views_handler_filter_between_date($field, $value1, $op, $value2, &$query, $field2 = null) { + if ($field2 === null){ + $field2 = $field; + } switch ($op) { default: - $where = "$field >= $value1 && $field <= $value2"; + $where = "$field2 >= $value1 && $field <= $value2"; break; case 'outside': - $where = "($field < $value1 || $field > $value2)"; + $where = "($field2 < $value1 || $field > $value2)"; break; case 'before': $where = "$field < $value1"; break; case 'after': - $where = "$field > $value1"; + $where = "$field2 > $value1"; break; } $query->add_where($where);