Index: cck_time.module
===================================================================
--- cck_time.module (revision 123)
+++ cck_time.module (working copy)
@@ -90,6 +90,7 @@
break;
}
// hours
+ $hours[-1] = '--';
for ($i = $h_min; $i <= $h_max; $i++) {
if ($clock == 24) {
$val = ($i < 10) ? "0$i" : $i;
@@ -101,6 +102,7 @@
}
// minutes
+ $minutes[-1] = '--';
for ($i = 0; $i <= 59; $i+=$increment) {
$val = ($i < 10) ? "0$i" : $i;
$minutes[$val] = $val;
@@ -134,7 +136,7 @@
$form[$field['field_name']]['meridem'] = array(
'#type' => 'select',
'#title' => '',
- '#options' => array('AM'=>'AM', 'PM'=>'PM'),
+ '#options' => array(-1 => '--', 'AM'=>'AM', 'PM'=>'PM'),
'#required' => $field['required'],
'#default_value' => $node_field['default_meridiem'],
'#prefix' => '
',
@@ -155,16 +157,21 @@
$h_max = 23;
break;
}
- if (!is_numeric($node_field['hour']) || $node_field['hour'] < $h_min || $node_field['hour'] > $h_max ) {
+ if (!$field['required'] && $node_field['hour'] == -1 && $node_field['minute'] == -1 && $node_field['meridem'] == -1) {
+ // this is ok, the time is empty and it's not a required field
+ }
+ else {
+ if (!is_numeric($node_field['hour']) || $node_field['hour'] < $h_min || $node_field['hour'] > $h_max ) {
form_set_error($field['field_name'], t('Please select an hour from the list.'));
- }
- if (!is_numeric($node_field['minute']) || $node_field['minute'] < 0 || $node_field['minute'] > 59 ) {
+ }
+ if (!is_numeric($node_field['minute']) || $node_field['minute'] < 0 || $node_field['minute'] > 59 ) {
form_set_error($field['field_name'], t('Please select a minute from the list.'));
- }
- if ($clock == 12) {
- if ($node_field['meridem'] != 'AM' && $node_field['meridem'] != 'PM') {
- form_set_error($field['field_name'], t('Please select AM or PM.'));
}
+ if ($clock == 12) {
+ if ($node_field['meridem'] != 'AM' && $node_field['meridem'] != 'PM') {
+ form_set_error($field['field_name'], t('Please select AM or PM.'));
+ }
+ }
}
break;
@@ -173,6 +180,10 @@
if ($clock == 12) {
$node_field[0]['value'] .= $node_field['meridem'];
}
+ // blank out for all -1s
+ if ($node_field['hour'] == -1 && $node_field['minute'] == -1 && $node_field['meridem'] == -1) {
+ $node_field[0]['value'] = '';
+ }
break;
}