You are here

function oa_events_field_add_to_calendar_markup in Open Atrium Events 7.2

Create Addthis Event calendar markup.

1 call to oa_events_field_add_to_calendar_markup()
oa_events_field_formatter_view in ./oa_events.module
Implements hook_field_formatter_view().

File

./oa_events.module, line 61
Code for the OA Events feature.

Code

function oa_events_field_add_to_calendar_markup($nid, $items, $title = 'Add to Calendar') {
  static $date_field_info = FALSE;
  static $date_field_instance = FALSE;
  drupal_add_css(drupal_get_path('module', 'oa_events') . '/css/addthisevent.css');
  drupal_add_js(drupal_get_path('module', 'oa_events') . '/js/atemay.js');
  $node = node_load($nid);
  if (false === $date_field_info) {
    $date_field_info = field_info_field('field_event_date');
    $date_field_instance = field_info_instance('node', 'field_event_date', $node->type);
  }
  $event_info = oa_events_find_next_event($items);
  $date = $event_info['event'];
  $date_field_date1 = new DateObject($date['value'], $date['timezone_db'], DATE_FORMAT_UNIX);
  $date_field_date2 = new DateObject($date['value2'], $date['timezone_db'], DATE_FORMAT_UNIX);
  $link_content = $title;
  $event_url = url('node/' . $node->nid, array(
    'absolute' => TRUE,
  ));
  $description_language = field_language('node', $node, 'body');
  $description = !empty($node->body[$description_language][0]['safe_value']) ? strip_tags($node->body[$description_language][0]['safe_value']) : '';
  $location_language = field_language('node', $node, 'body');
  $location = !empty($node->field_oa_address[$location_language][0]['safe_value']) ? strip_tags($node->field_oa_address[$location_language][0]['safe_value']) : '';
  $alldayevent = date_is_all_day(date(DATE_FORMAT_DATETIME, $date['value']), date(DATE_FORMAT_DATETIME, $date['value2'])) ? 'true' : 'false';
  $spans = array(
    '_url' => $event_url,
    '_start' => date_format_date($date_field_date1, 'custom', 'm-d-Y H:i:s'),
    '_end' => date_format_date($date_field_date2, 'custom', 'm-d-Y H:i:s'),
    '_zonecode' => '35',
    // UTC
    '_summary' => check_plain($node->title),
    '_description' => $description,
    '_location' => $location,
    '_all_day_event' => $alldayevent,
    '_date_format' => variable_get('oa_events_date_format', OA_EVENTS_DATE_FORMAT),
  );
  foreach ($spans as $span_class => $span_value) {
    $link_content .= '<span class="' . $span_class . '">' . $span_value . '</span>';
  }
  return l($link_content, $event_url, array(
    'attributes' => array(
      'class' => 'addthisevent',
      'title' => t('Add to Calendar'),
    ),
    'html' => TRUE,
  ));
}