diff --git a/filefield_field.inc b/filefield_field.inc index 2f8e607..0b99072 100644 --- a/filefield_field.inc +++ b/filefield_field.inc @@ -63,10 +63,13 @@ function filefield_field_settings_views_data($field) { $db_info = content_database_info($field); $table_alias = content_views_tablename($field); - // By defining the relationship, we already have a "Has file" filter - // plus all the filters that Views already provides for files. - // No need for having a filter by ourselves. - unset($data[$table_alias][$field['field_name'] .'_fid']['filter']); + // Although we effectively get a "Has file" filter by defining the + // relationship to the {files} table, this doesn't work as an exposed filter. + // Use the boolean handler to get a true/false filter. + $data[$table_alias][$field['field_name'] .'_fid']['filter']['handler'] = 'views_handler_filter_boolean_operator'; + // Allow NULL values to mean 'false', which is essential to filter by whether + // a file is present. + $data[$table_alias][$field['field_name'] .'_fid']['filter']['accept null'] = TRUE; // Add a relationship for related file. $data[$table_alias][$field['field_name'] .'_fid']['relationship'] = array(