function compose_slide($column_spans, $tiles)
{
    global $TRACE_ENABLED;
    global $TILES_PER_COLUMN;
    echo var_trace('compose_slide|tiles: ' . var_export($tiles, true), $TRACE_PREFIX, $TRACE_ENABLED);
    $slide_content = array('columns' => array());
    $tile_index = 0;
    $total_tiles = count($tiles);
    echo var_trace('column_spans: ' . var_export($column_spans, true), $TRACE_PREFIX, $TRACE_ENABLED);
    foreach ($column_spans as $column_span) {
        $tile_count = $column_span * $TILES_PER_COLUMN;
        $slide_column = array('layout' => 'col' . $column_span, 'tiles' => array());
        while ($tile_count > 0 and $tile_index <= $total_tiles) {
            echo var_trace('tile[slug]: ' . var_export($tiles[$tile_index]['slug'], true), $TRACE_PREFIX, $TRACE_ENABLED);
            $tile = new Pod('tile', $tiles[$tile_index++]['slug']);
            $tile_layout = $tile->get_field('tile_layout.name');
            echo var_trace('tile[layout]: ' . var_export($tile_layout, true), $TRACE_PREFIX, $TRACE_ENABLED);
            $this_tile_count = preg_replace('/x/', '*', $tile_layout);
            echo var_trace('this_tile_count: ' . var_export($this_tile_count, true), $TRACE_PREFIX, $TRACE_ENABLED);
            eval('$this_tile_count = ' . $this_tile_count . ';');
            $tile_count -= $this_tile_count;
            echo var_trace('tile_countdown: ' . var_export($tile_count, true), $TRACE_PREFIX, $TRACE_ENABLED);
            unset($target_event_month, $target_event_day, $target_uri);
            if ($tile->get_field('target_event.date_start')) {
                $target_event_date = new DateTime($tile->get_field('target_event.date_start'));
                var_trace('target_event_date: ' . var_export($target_event_date, true), $TRACE_PREFIX, $TRACE_ENABLED);
                $target_event_month = $target_event_date->format('M');
                $target_event_day = $target_event_date->format('j');
                $target_event_slug = $tile->get_field('target_event.slug');
            }
            if ($tile->get_field('target_event.slug')) {
                $target_uri = PODS_BASEURI_EVENTS . '/' . $tile->get_field('target_event.slug');
            } elseif ($tile->get_field('target_research_project')) {
                $target_uri = PODS_BASEURI_RESEARCH_PROJECTS . '/' . $tile->get_field('target_research_project.slug');
            } elseif ($tile->get_field('target_uri')) {
                $target_uri = $tile->get_field('target_uri');
            } elseif ($tile->get_field('target_page.guid')) {
                $target_uri = honor_ssl_for_attachments($tile->get_field('target_page.guid'));
            } elseif ($tile->get_field('target_post.guid')) {
                $target_uri = honor_ssl_for_attachments($tile->get_field('target_post.guid'));
            }
            array_push($slide_column['tiles'], array('id' => $tile->get_field('slug'), 'element_class' => rtrim(get_tile_classes($tile_layout) . ' ' . $tile->get_field('class'), ' '), 'title' => $tile->get_field('name'), 'display_title' => $tile->get_field('display_title'), 'subtitle' => $tile->get_field('tagline'), 'blurb' => $tile->get_field('blurb'), 'plain_content' => $tile->get_field('plain_content'), 'posts_category' => $tile->get_field('posts_category.term_id'), 'target_uri' => $target_uri, 'image' => honor_ssl_for_attachments($tile->get_field('image.guid')), 'target_event' => array('month' => $target_event_month, 'day' => $target_event_day)));
            push_media_attribution($tile->get_field('image.ID'));
        }
        array_push($slide_content['columns'], $slide_column);
    }
    return $slide_content;
}
$moderators_output = people_list($event_moderators, "Moderator", "Moderators");
$people_with_blurb = $speakers_output['with_blurb'] + $respondents_output['with_blurb'] + $chairs_output['with_blurb'] + $moderators_output['with_blurb'];
$event_blurb = honor_ssl_for_attachments(do_shortcode($pod->get_field('blurb')));
$event_blurb_after_event = honor_ssl_for_attachments(do_shortcode($pod->get_field('blurb_after_event')));
echo var_trace($event_blurb_after_event, $TRACE_PREFIX . 'blurb_after_event', $TRACE_ENABLED);
$event_contact_info = do_shortcode($pod->get_field('contact_info'));
$event_media = $pod->get_field('media_attachments');
$slider = $pod->get_field('slider');
if (!$slider) {
    $featured_image_uri = get_the_post_thumbnail(get_the_ID(), array(960, 367));
}
// if this is an event, grab the image URI from the Pod
if (!$is_conference) {
    $featured_image_uri = honor_ssl_for_attachments($pod->get_field('heading_image.guid'));
    $attachment_ID = $pod->get_field('heading_image.ID');
    push_media_attribution($attachment_ID);
}
$event_date_start = new DateTime($pod->get_field('date_start'));
$event_date_end = new DateTime($pod->get_field('date_end'));
$event_dtstart = $event_date_start->format(DATE_ISO8601);
$event_dtend = $event_date_end->format(DATE_ISO8601);
// $event_date_string = $pod->get_field('date_freeform');
$event_date_string = $event_date_start->format("l j F Y | ");
$event_date_string .= '<time class="dt-start dtstart" itemprop="startDate" datetime="' . $event_dtstart . '">' . $event_date_start->format("H:i") . '</time>';
$event_date_string .= '-' . '<time class="dt-end dtend" itemprop="endDate" datetime="' . $event_dtend . '">' . $event_date_end->format("H:i") . '</time>';
$datetime_now = new DateTime('now');
$is_future_event = $event_date_start > $datetime_now ? true : false;
$event_location = $pod->get_field('venue.name');
$eventseries = $pod->get_field('eventseries');
$event_type = $pod->get_field('event_type.name');
$event_series = $pod->get_field('event_series.name');