You are here

function _date_field_settings in Date 6.2

Same name and namespace in other branches
  1. 5.2 date/date_admin.inc \_date_field_settings()
  2. 5 date_admin.inc \_date_field_settings()
  3. 6 date/date_admin.inc \_date_field_settings()

Implementation of hook_field_settings().

1 call to _date_field_settings()
date_field_settings in date/date.module

File

date/date_admin.inc, line 231
Date administration code. Moved to separate file since there is a lot of code here that is not needed often.

Code

function _date_field_settings($op, $field) {
  switch ($op) {
    case 'form':
      return date_field_settings_form($field);
    case 'validate':
      if (!in_array('year', $field['granularity'])) {
        form_set_error('granularity', t('Granularity must include a year.'));
      }
      if ($field['tz_handling'] != 'none' && !in_array('hour', array_filter($field['granularity']))) {
        form_set_error('tz_handling', t('Dates without hours granularity must not use any timezone handling.'));
      }
      break;
    case 'save':
      $options = array(
        'granularity',
        'timezone_db',
        'tz_handling',
        'todate',
        'repeat',
        'repeat_collapsed',
        'default_format',
      );
      return $options;
    case 'database columns':
      return date_columns($field);
    case 'views data':
      $data = content_views_field_views_data($field);
      $db_info = content_database_info($field);
      $table_alias = content_views_tablename($field);

      // Swap in the date multiple value handler for
      // CCK's regular multiple value handler.
      $data[$table_alias][$field['field_name'] . '_value']['field']['handler'] = 'date_handler_field_multiple';

      // Unset the filter and argument handlers, dates can use the generic
      // date argument and filter handlers created by the Date API.

      //unset($data[$table_alias][$field['field_name'] .'_value']['argument']);

      //unset($data[$table_alias][$field['field_name'] .'_value']['filter']);
      $data[$table_alias][$field['field_name'] . '_value']['argument']['handler'] = 'date_api_argument_handler';
      $data[$table_alias][$field['field_name'] . '_value']['filter']['handler'] = 'date_api_filter_handler';

      // Add in another set of fields for the To date.
      if (!empty($field['todate'])) {
        $data[$table_alias][$field['field_name'] . '_value']['field']['title'] = $data[$table_alias][$field['field_name'] . '_value']['title'];
        $data[$table_alias][$field['field_name'] . '_value']['field']['title short'] = $data[$table_alias][$field['field_name'] . '_value']['title short'];
        $data[$table_alias][$field['field_name'] . '_value2'] = $data[$table_alias][$field['field_name'] . '_value'];
        $data[$table_alias][$field['field_name'] . '_value']['title'] .= ' - ' . t('From date');
        $data[$table_alias][$field['field_name'] . '_value']['title short'] .= ' - ' . t('From date');
        $data[$table_alias][$field['field_name'] . '_value']['field']['title'] .= ' - ' . t('From date');
        $data[$table_alias][$field['field_name'] . '_value']['field']['title short'] .= ' - ' . t('From date');
        $data[$table_alias][$field['field_name'] . '_value2']['title'] .= ' - ' . t('To date');
        $data[$table_alias][$field['field_name'] . '_value2']['title short'] .= ' - ' . t('To date');
        $data[$table_alias][$field['field_name'] . '_value2']['field']['title'] .= ' - ' . t('To date');
        $data[$table_alias][$field['field_name'] . '_value2']['field']['title short'] .= ' - ' . t('To date');
        $data[$table_alias][$field['field_name'] . '_value2']['field']['field'] .= '2';
        $data[$table_alias][$field['field_name'] . '_value2']['sort']['field'] .= '2';
      }
      return $data;
  }
}