You are here

function global_filter_field_date_widget_form_alter in Views Global Filter 8

Same name and namespace in other branches
  1. 7 widgets/global_filter.datewidget.inc \global_filter_field_date_widget_form_alter()

Implements hook_field_widget_form_alter().

Responds to 'set_date_from_session' being set on the $form_state.

1 call to global_filter_field_date_widget_form_alter()
global_filter_field_widget_form_alter in ./global_filter.widgets.inc
Implements hook_field_widget_form_alter().

File

widgets/global_filter.datewidget.inc, line 51
global_filter.datewidget.inc

Code

function global_filter_field_date_widget_form_alter(&$element, &$form_state, $context) {
  if (!empty($form_state['set_date_from_session'])) {
    $session_value = global_filter_get_session_value($element['#field_name']);
    if (class_exists('date_sql_handler')) {

      // Date module.
      $date_range = new date_sql_handler();
      $parts = $date_range
        ->arg_parts($session_value);
    }
    else {

      // @todo Format needs to be parts[0][date][year,month,day]
      // Use explode('--', $session_value); ?
      $parts = array();
    }
    if (!empty($parts[0]['date'])) {
      $field = $context['field'];
      $instance = $context['instance'];
      $lang = $context['langcode'];
      $instance['settings']['default_value'] = 'strtotime';
      $instance['settings']['default_value_code'] = implode('-', $parts[0]['date']);
      if (!empty($parts[1]['date'])) {
        $instance['settings']['default_value2'] = 'strtotime';
        $instance['settings']['default_value_code2'] = implode('-', $parts[1]['date']);
      }

      // Date module.
      $default_date_range = date_default_value($field, $instance, $lang);
      $element['#default_value'] = reset($default_date_range);
    }
  }
}