function date_ap_style_field_formatter_view in AP Style Date 7
Implements hook_field_formatter_view().
File
- ./
date_ap_style.module, line 107 - Formats dates and times to use "AP" Style.
Code
function date_ap_style_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
$settings = $display['settings']['date_ap_style_output'];
switch ($display['type']) {
case 'date_ap_style':
foreach ($items as $delta => $item) {
$timezone = date_get_timezone($field['settings']['tz_handling'], isset($item['timezone']) ? $item['timezone'] : date_default_timezone());
$value = date_local_date($item, $timezone, $field, $instance, $part = 'value');
$value_local = date_format_date($value, $type = 'custom', $format = 'Y-m-d H:i:s');
$value_all_day = $value;
$value_all_day_end = $value;
$value = date_ap_style_ap_date_string($value_local, $settings);
$element[$delta] = array(
'#markup' => $value,
);
if ($settings['show_time']) {
$value_time = date_ap_style_time_string($value_local, $settings);
if ($settings['date_time']) {
$element[$delta] = array(
'#markup' => $value . ' ' . $value_time,
);
}
else {
$element[$delta] = array(
'#markup' => $value_time . ' ' . $value,
);
}
}
if (isset($item['value2'])) {
$value2 = date_local_date($item, $timezone, $field, $instance, $part = 'value2');
$value_all_day_end = $value2;
$value2_local = date_format_date($value2, $type = 'custom', $format = 'Y-m-d H:i:s');
$value2 = date_ap_style_ap_date_string($value2_local, $settings);
$value2_time = date_ap_style_time_string($value2_local, $settings);
if ($settings['show_time']) {
if ($value == $value2) {
if ($settings['date_time']) {
// If the start and end time are the same time when the date is
// the same, no need to show the same time twice. This
// condition shows the time AFTER the date.
if ($value_time == $value2_time) {
$element[$delta] = array(
'#markup' => $value . ' ' . $value_time,
);
}
else {
$element[$delta] = array(
'#markup' => $value . ' ' . $value_time . ' to ' . $value2_time,
);
}
}
elseif ($value_time == $value2_time) {
$element[$delta] = array(
'#markup' => $value_time . ' ' . $value,
);
}
else {
$element[$delta] = array(
'#markup' => $value_time . ' to ' . $value2_time . ' ' . $value,
);
}
}
elseif ($settings['date_time']) {
$element[$delta] = array(
'#markup' => $value . ' ' . $value_time . ' to ' . $value2 . ' ' . $value2_time,
);
}
else {
$element[$delta] = array(
'#markup' => $value_time . ' ' . $value . ' to ' . $value2_time . ' ' . $value2,
);
}
}
}
if ($settings['use_all_day']) {
// Use Date API to recognize All Day items.
$all_day = date_field_all_day($field, $instance, $value_all_day, $value_all_day_end);
if ($all_day) {
if ($settings['date_time']) {
$element[$delta] = array(
'#markup' => t('@value All Day', array(
'@value' => $value,
)),
);
}
else {
$element[$delta] = array(
'#markup' => t('All Day @value', array(
'@value' => $value,
)),
);
}
}
}
}
break;
}
return $element;
}