function global_filter_extract_date_range in Views Global Filter 8
Same name and namespace in other branches
- 7 widgets/global_filter.datewidget.inc \global_filter_extract_date_range()
Convert the date range received on the form to the standard string.
Parameters
array $form_state: the form state
int $filter_key: the filter key
Return value
string date range in the format YYYY-MM-DD--YYYY-MM-DD
1 call to global_filter_extract_date_range()
- global_filter_set_form_on_session in ./
global_filter.widgets.inc - Stashes the selected global filter value(s) in the user's session.
File
- widgets/
global_filter.datewidget.inc, line 95 - global_filter.datewidget.inc
Code
function global_filter_extract_date_range($form_state, $filter_key) {
$name = $form_state['global_filters'][$filter_key]['name'];
$lang = $form_state['language'];
if (empty($form_state['input'][$name][$lang][0]) || !is_array($form_state['input'][$name][$lang][0])) {
// Not a date.
return FALSE;
}
$values = $form_state['input'][$name][$lang][0];
if (isset($values['value']['date'])) {
// From date_popup.
$date_string = $values['value']['date'];
//$time_string = empty($values['value']['time']) ? '' : $values['value']['time'];
if (!empty($date_string)) {
// @todo Add support for hours and minutes
$timestamp = strtotime($date_string);
$value = format_date($timestamp, 'custom', 'Y-m-d');
if (!empty($values['value2']['date'])) {
$timestamp2 = strtotime($values['value2']['date']);
$value .= '--' . format_date($timestamp2, 'custom', 'Y-m-d');
}
}
}
elseif (!empty($values['value']['day'])) {
// From date_select.
$value = $form_state['input'][$name][$lang][0]['value'];
$day = drupal_strlen($value['day']) == 1 ? '0' . $value['day'] : $value['day'];
$month = drupal_strlen($value['month']) == 1 ? '0' . $value['month'] : $value['month'];
$value = $value['year'] . '-' . $month . '-' . $day;
if (!empty($form_state['input'][$name][$lang][0]['value2']['day'])) {
$value2 = $form_state['input'][$name][$lang][0]['value2'];
$day = drupal_strlen($value2['day']) == 1 ? '0' . $value2['day'] : $value2['day'];
$month = drupal_strlen($value2['month']) == 1 ? '0' . $value2['month'] : $value2['month'];
$value .= '--' . $value2['year'] . '-' . $month . '-' . $day;
}
}
// Check for corrupt date and return.
return empty($value) || drupal_strlen($value) < 10 ? '' : $value;
}