You are here

function global_filter_extract_date_range in Views Global Filter 8

Same name and namespace in other branches
  1. 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;
}