function cck_time_widget in CCK Time 6
Same name and namespace in other branches
- 5 cck_time.module \cck_time_widget()
Implementation of hook_widget().
File
- ./
cck_time.module, line 132
Code
function cck_time_widget(&$form, &$form_state, $field, $items, $delta = 0) {
$element = array(
'#type' => $field['widget']['type'],
'#default_value' => '',
);
//deal with default values when editing a form
if (isset($items[$delta]['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) = split(':', $items[$delta]['value']);
if ($field['format'] == 12) {
$items[$delta]['minute'] = substr($minute, 0, 2);
$items[$delta]['meridiem'] = substr($minute, 2, 2);
}
else {
$items[$delta]['minute'] = $minute;
}
$items[$delta]['hour'] = $hour;
$element['#default_value'] = $items[$delta];
}
elseif (isset($items[$delta]['hour'])) {
//brand-new node: assign the default values from the cck field setup form that
//happen to be stored in $items[$delta]
$element['#default_value'] = $items[$delta];
}
elseif (!$field['required']) {
//CCK field not required, so could be empty intentionally
$element['#default_value'] = array(
'hour' => '',
'minute' => '',
);
}
elseif (isset($items[$delta])) {
//the CCK field was added later to the node; the field is empty -> get the default values
$element['#default_value'] = $field['widget']['default_value'][0];
}
return $element;
}