function cck_time_field_widget_form in CCK Time 7
Implements hook_field_widget_form().
File
- ./
cck_time.module, line 122 - Creates a time widget for CCK text fields
Code
function cck_time_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
$element += array(
'#type' => 'cck_time_select',
'#default_value' => '',
);
//deal with default values when editing a form
if (isset($items[0]['value'])) {
//value comes from a previously stored node with this cck field;
//divide the single string value from the database into its drop-down boxes on the form
list($hour, $minute) = explode(':', $items[0]['value']);
if ($field['settings']['format'] == 12) {
$items[0]['minute'] = substr($minute, 0, 2);
$items[0]['meridiem'] = substr($minute, 2, 2);
}
else {
$items[0]['minute'] = $minute;
}
$items[0]['hour'] = $hour;
$element['#default_value'] = $items[0];
}
elseif (isset($items[0]['hour'])) {
//brand-new node: assign the default values from the cck field setup form that
//happen to be stored in $items[0]
$element['#default_value'] = $items[0];
}
elseif (!$instance['required']) {
//CCK field not required, so could be empty intentionally
$element['#default_value'] = array(
'hour' => '',
'minute' => '',
);
}
elseif (isset($items[0])) {
//the CCK field was added later to the node; the field is empty -> get the default values
$element['#default_value'] = $instance['widget']['default_value'][0];
}
return $element;
}