| 36 |
* The $fields array is in $form['#field_info'][$element['#field_name']]. |
* The $fields array is in $form['#field_info'][$element['#field_name']]. |
| 37 |
*/ |
*/ |
| 38 |
function office_hours_field_process($element, $edit, $form_state, $form) { |
function office_hours_field_process($element, $edit, $form_state, $form) { |
| 39 |
$iteration = $element['#weight']; |
$day = $element['#weight']; |
| 40 |
$field = $form['#field_info'][$element['#field_name']]; |
$field = $form['#field_info'][$element['#field_name']]; |
| 41 |
if ($field['multiple'] > 7) { |
$day = ($day == 0) ? 0 :(($day & 1) ? ($day-1)/2 : $day/2); |
|
$day = ($iteration == 0) ? 0 :(($iteration & 1) ? ($iteration-1)/2 : $iteration/2); |
|
|
} |
|
|
else { |
|
|
$day = $iteration; |
|
|
} |
|
| 42 |
$field_day = $element['#columns'][0]; |
$field_day = $element['#columns'][0]; |
| 43 |
$field_strhrs = $element['#columns'][1]; |
$field_strhrs = $element['#columns'][1]; |
| 44 |
$field_endhrs = $element['#columns'][2]; |
$field_endhrs = $element['#columns'][2]; |
| 45 |
$optionshr = _office_hours_create_hours_arr($field, TRUE); |
$days = date_week_days_untranslated(); |
| 46 |
$optionday = array(0 => t('Sunday'), 1 => t('Monday'), 2 => t('Tuesday'),3 => t('Wednesday'), 4 => t('Thursday'), 5 => t('Friday'), 6 => t('Saturday'), 7=> t('None')); |
$element['#prefix'] = '<div class="office-hours-block" style="display:inline">'; |
| 47 |
$element['#prefix'] = '<div class="office-hours-block" style="display:inline">'; |
$element['#prefix'] .= (!($element['#weight'] & 1 )) ? t($days[$day]) : t('Additional hours:'); |
| 48 |
|
|
| 49 |
if ( $field['multiple'] == '7' || ($field['multiple'] == '14' && !($iteration & 1 )) ) { |
/*$element['#suffix'] = (!($element['#weight'] & 1 )) ? l(t('Add more hours'),'office-hours-add',array('attributes' => array('id'=>'oh-add-more-link'))).'</div>' : '';*/ |
|
$element['#prefix'] .= t($optionday[$day]); |
|
|
} |
|
|
else { |
|
|
$element['#prefix'] .= t('Additional hours:'); |
|
|
} |
|
|
$element['#suffix'] = '</div>'; |
|
| 50 |
|
|
| 51 |
$element[$field_day] = array( |
$element[$field_day] = array( |
| 52 |
'#type' => 'value', |
'#type' => 'value', |
| 53 |
'#value' => $day, |
'#value' => $day, |
| 54 |
); |
); |
| 55 |
|
|
| 56 |
$element[$field_strhrs] = array( |
$element[$field_strhrs] = array( |
| 57 |
'#type' => 'office_hours_select', |
'#type' => 'office_hours_select', |
| 58 |
'#title' => t('From'), |
'#title' => t('From'), |
| 59 |
'#default_hours' => isset($element['#value'][$field_strhrs]) ? $element['#value'][$field_strhrs] : '' , |
'#default_hours' => isset($element['#value'][$field_strhrs]) ? $element['#value'][$field_strhrs] : '' , |
| 62 |
|
|
| 63 |
); |
); |
| 64 |
|
|
| 65 |
$element[$field_endhrs] = array( |
$element[$field_endhrs] = array( |
| 66 |
'#type' => 'office_hours_select', |
'#type' => 'office_hours_select', |
| 67 |
'#title' => t('Until'), |
'#title' => t('Until'), |
| 68 |
'#default_hours' => isset($element['#value'][$field_endhrs]) ? $element['#value'][$field_endhrs] : '', |
'#default_hours' => isset($element['#value'][$field_endhrs]) ? $element['#value'][$field_endhrs] : '', |
| 70 |
'#hoursformat' => $field['hoursformat'], |
'#hoursformat' => $field['hoursformat'], |
| 71 |
); |
); |
| 72 |
|
|
|
|
|
| 73 |
$form_state['#field_info'][$field['field_name']] = $field; |
$form_state['#field_info'][$field['field_name']] = $field; |
|
|
|
| 74 |
return $element; |
return $element; |
| 75 |
} |
} |
| 76 |
|
|
| 77 |
/** |
/** |
| 78 |
* Process the hours selector element. |
* Process the hours selector element. |
| 79 |
*/ |
*/ |
| 80 |
function office_hours_select_process($element) { |
function office_hours_select_process($element, $edit, $form_state, $form) { |
| 81 |
$ampm = 'am'; |
$ampm = 'am'; |
| 82 |
$defhr = ''; |
$defhr = ''; |
| 83 |
$defmin = ''; |
$defmin = ''; |
|
$hours = ($element['#hoursformat'] == 1) ? date_hours('g') : date_hours('H'); |
|
|
$minutes = date_minutes('i', FALSE, $element['#granularity']); |
|
| 84 |
if (!empty($element['#default_hours'])) { |
if (!empty($element['#default_hours'])) { |
| 85 |
$hour = _office_hours_mil_to_tf($element['#default_hours']); |
$hour = _office_hours_mil_to_tf($element['#default_hours']); |
| 86 |
list($defhr, $defmin) = explode(":",$hour); |
list($defhr, $defmin) = explode(":",$hour); |
| 87 |
if ($element['#hoursformat']) { |
if ($element['#hoursformat']) { |
| 88 |
if ($defhr > 12) { |
if ($defhr >= 12) { |
| 89 |
$defhr -= 12; |
$defhr -= ($defhr != 12) ? 12 : 0; |
| 90 |
$ampm = 'pm'; |
$ampm = 'pm'; |
| 91 |
} |
} |
| 92 |
elseif ($defhr == 0) { |
elseif ($defhr == 0) { |
| 93 |
$defhr +=12; |
$defhr +=12; |
| 94 |
} |
} |
| 95 |
} |
} |
| 96 |
|
else { |
| 97 |
|
$defhr = str_pad($defhr, 2, '0', STR_PAD_LEFT); |
| 98 |
|
} |
| 99 |
} |
} |
| 100 |
|
|
| 101 |
|
$hours = ($element['#hoursformat'] == 1) ? date_hours('g') : date_hours('H'); |
| 102 |
|
$minutes = date_minutes('i', FALSE, $element['#granularity']); |
| 103 |
|
|
| 104 |
$element['hours'] = array( |
$element['hours'] = array( |
| 105 |
'#type' => 'select', |
'#type' => 'select', |
| 106 |
'#options' => drupal_map_assoc($hours), |
'#options' => drupal_map_assoc($hours), |
| 120 |
); |
); |
| 121 |
} |
} |
| 122 |
return $element; |
return $element; |
| 123 |
|
|
| 124 |
} |
} |
| 125 |
|
|
| 126 |
/** |
/** |
| 127 |
* Validate the hours selector element. |
* Validate the hours selector element. |
| 128 |
*/ |
*/ |
| 129 |
function office_hours_select_validate($element, &$form_state) { |
function office_hours_select_validate($element, &$form_state) { |
| 130 |
$hour = $element['#value']['hours']; |
//$hour = $element['#value']['hours']; |
| 131 |
$minutes = ($element['#value']['minutes'] == 0) ? '00' : $element['#value']['minutes']; |
$hour = $element['hours']['#value']; |
| 132 |
|
$minutes = ($element['minutes']['#value'] == 0) ? '00' : $element['minutes']['#value']; |
| 133 |
|
//$minutes = ($element['#value']['minutes'] == 0) ? '00' : $element['#value']['minutes']; |
| 134 |
if ($element['#hoursformat']) { |
if ($element['#hoursformat']) { |
| 135 |
if ($element['ampm']['#value'] == 'pm' && $hour < 12) $hour += 12; |
if ($element['ampm']['#value'] == 'pm' && $hour < 12) $hour += 12; |
| 136 |
if ($element['ampm']['#value'] == 'am' && $hour == 12) $hour -= 12; |
if ($element['ampm']['#value'] == 'am' && $hour == 12) $hour -= 12; |