function cck_time_select_process in CCK Time 7
Process the element before displaying the field.
1 string reference to 'cck_time_select_process'
- cck_time_element_info in ./
cck_time.module - Implements hook_element_info().
File
- ./
cck_time.module, line 213 - Creates a time widget for CCK text fields
Code
function cck_time_select_process($element, &$form_state, $form) {
// to do: add CSS using #attach.
drupal_add_css(drupal_get_path('module', 'cck_time') . '/cck_time.css', 'module', 'screen', FALSE);
$field = field_widget_field($element, $form_state);
$instance = field_widget_instance($element, $form_state);
$delta = $element['#delta'];
$required = $delta == 0 && $instance['required'] ? $element['#required'] : FALSE;
$format = $field['settings']['format'];
$increment = $field['settings']['increment'];
if ($increment < 1) {
$increment = 1;
}
switch ($format) {
case 12:
$h_min = 1;
$h_max = 12;
break;
case 24:
default:
$h_min = 0;
$h_max = 23;
break;
}
// hours
$hours = $required ? array() : array(
'' => '',
);
for ($i = $h_min; $i <= $h_max; $i++) {
if ($format == 24) {
$val = $i < 10 ? "0{$i}" : $i;
$hours[$val] = $val;
}
else {
$hours[$i] = $i;
}
}
// minutes
$minutes = $required ? array() : array(
'' => '',
);
for ($i = 0; $i <= 59; $i += $increment) {
$val = $i < 10 ? "0{$i}" : $i;
$minutes[$val] = $val;
}
$element['#type'] = 'fieldset';
$element['#tree'] = TRUE;
$element['#attributes'] = array(
'class' => 'cck-time',
);
$element['#title'] = $instance['label'];
$element['hour'] = array(
'#type' => 'select',
'#title' => t('Hour'),
'#title_display' => 'invisible',
'#options' => $hours,
'#required' => $required,
'#default_value' => isset($element['#value']['hour']) ? $element['#value']['hour'] : NULL,
'#prefix' => '<div class="cck-time-element">',
'#suffix' => '</div>',
);
$element['minute'] = array(
'#type' => 'select',
'#title' => t('Minute'),
'#title_display' => 'invisible',
'#options' => $minutes,
'#required' => $required,
'#default_value' => isset($element['#value']['minute']) ? $element['#value']['minute'] : NULL,
'#prefix' => '<div class="cck-time-element">',
'#suffix' => '</div>',
);
if ($format == 12) {
$element['meridiem'] = array(
'#type' => 'select',
'#title' => t('Meridiem'),
'#title_display' => 'invisible',
'#options' => array(
'AM' => 'AM',
'PM' => 'PM',
),
'#required' => $required,
'#default_value' => isset($element['#value']['meridiem']) ? $element['#value']['meridiem'] : NULL,
'#prefix' => '<div class="cck-time-element">',
'#suffix' => '</div>',
);
}
return $element;
}