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; }