Skip to content

Commit f39ff7b

Browse files
committedJan 6, 2013
filter_api: apply all project_where_clauses first
where_clauses and project_where_clauses must not be mixed, since the where_params are expected to be held in order - first for the project_where_clauses and then for the where_clauses. Fixes #15320: Date filters broken since 1.2.12
1 parent e70513f commit f39ff7b

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed
 

‎core/filter_api.php

+11-11
Original file line numberDiff line numberDiff line change
@@ -1263,6 +1263,17 @@ function filter_get_bug_rows( &$p_page_number, &$p_per_page, &$p_page_count, &$p
12631263
log_event( LOG_FILTERING, 'project query = ' . $t_project_query );
12641264
array_push( $t_project_where_clauses, $t_project_query );
12651265
}
1266+
1267+
# date filter
1268+
if(( 'on' == $t_filter[FILTER_PROPERTY_FILTER_BY_DATE] ) && is_numeric( $t_filter[FILTER_PROPERTY_START_MONTH] ) && is_numeric( $t_filter[FILTER_PROPERTY_START_DAY] ) && is_numeric( $t_filter[FILTER_PROPERTY_START_YEAR] ) && is_numeric( $t_filter[FILTER_PROPERTY_END_MONTH] ) && is_numeric( $t_filter[FILTER_PROPERTY_END_DAY] ) && is_numeric( $t_filter[FILTER_PROPERTY_END_YEAR] ) ) {
1269+
1270+
$t_start_string = $t_filter[FILTER_PROPERTY_START_YEAR] . "-" . $t_filter[FILTER_PROPERTY_START_MONTH] . "-" . $t_filter[FILTER_PROPERTY_START_DAY] . " 00:00:00";
1271+
$t_end_string = $t_filter[FILTER_PROPERTY_END_YEAR] . "-" . $t_filter[FILTER_PROPERTY_END_MONTH] . "-" . $t_filter[FILTER_PROPERTY_END_DAY] . " 23:59:59";
1272+
1273+
$t_where_params[] = strtotime( $t_start_string );
1274+
$t_where_params[] = strtotime( $t_end_string );
1275+
array_push( $t_project_where_clauses, "($t_bug_table.date_submitted BETWEEN " . db_param() . " AND " . db_param() . " )" );
1276+
}
12661277

12671278
# view state
12681279
$t_view_state = db_prepare_int( $t_filter[FILTER_PROPERTY_VIEW_STATE] );
@@ -1642,17 +1653,6 @@ function filter_get_bug_rows( &$p_page_number, &$p_per_page, &$p_page_count, &$p
16421653
}
16431654
}
16441655

1645-
# date filter
1646-
if(( 'on' == $t_filter[FILTER_PROPERTY_FILTER_BY_DATE] ) && is_numeric( $t_filter[FILTER_PROPERTY_START_MONTH] ) && is_numeric( $t_filter[FILTER_PROPERTY_START_DAY] ) && is_numeric( $t_filter[FILTER_PROPERTY_START_YEAR] ) && is_numeric( $t_filter[FILTER_PROPERTY_END_MONTH] ) && is_numeric( $t_filter[FILTER_PROPERTY_END_DAY] ) && is_numeric( $t_filter[FILTER_PROPERTY_END_YEAR] ) ) {
1647-
1648-
$t_start_string = $t_filter[FILTER_PROPERTY_START_YEAR] . "-" . $t_filter[FILTER_PROPERTY_START_MONTH] . "-" . $t_filter[FILTER_PROPERTY_START_DAY] . " 00:00:00";
1649-
$t_end_string = $t_filter[FILTER_PROPERTY_END_YEAR] . "-" . $t_filter[FILTER_PROPERTY_END_MONTH] . "-" . $t_filter[FILTER_PROPERTY_END_DAY] . " 23:59:59";
1650-
1651-
$t_where_params[] = strtotime( $t_start_string );
1652-
$t_where_params[] = strtotime( $t_end_string );
1653-
array_push( $t_project_where_clauses, "($t_bug_table.date_submitted BETWEEN " . db_param() . " AND " . db_param() . " )" );
1654-
}
1655-
16561656
# fixed in version
16571657
if( !filter_field_is_any( $t_filter[FILTER_PROPERTY_FIXED_IN_VERSION] ) ) {
16581658
$t_clauses = array();

0 commit comments

Comments
 (0)
Please sign in to comment.