Example #1
0
/**
 * Get location data
 *
 * @since 0.9
 * @param int $post_id Post ID to get data for; null for current post
 * @return array Location data
 */
function ctc_location_data($post_id = null)
{
    // Get meta values
    $data = ctc_get_meta_data(array('address', 'show_directions_link', 'phone', 'times', 'map_lat', 'map_lng', 'map_type', 'map_zoom'), $post_id);
    // Add directions URL (empty if show_directions_link not set)
    $data['directions_url'] = $data['show_directions_link'] ? ctc_directions_url($data['address']) : '';
    // Return filtered
    return apply_filters('ctc_location_data', $data, $post_id);
}
Example #2
0
/**
 * Get event data
 *
 * @since 0.9
 * @param int $post_id Post ID to get data for; null for current post
 * @return array Event data
 */
function ctc_event_data($post_id = null)
{
    // Get meta values
    $meta = ctc_get_meta_data(array('start_date', 'end_date', 'time', 'start_time', 'end_time', 'hide_time_range', 'venue', 'address', 'show_directions_link', 'map_lat', 'map_lng', 'map_type', 'map_zoom'), $post_id);
    // Timestamps
    $start_date_timestamp = strtotime($meta['start_date']);
    $end_date_timestamp = strtotime($meta['end_date']);
    // Add friendly date
    $date_format = get_option('date_format');
    if ($meta['end_date'] != $meta['start_date']) {
        // date range
        // Date formats
        // Make compact range of "June 1 - June 5, 2013 if using "F j, Y" format (year removed from start date as not to be redundant)
        if ('F j, Y' == $date_format && date_i18n('Y', $start_date_timestamp) == date_i18n('Y', $end_date_timestamp)) {
            // Year on both dates must be same
            $start_date_format = 'F j';
            // remove year
        } else {
            $start_date_format = $date_format;
        }
        $end_date_format = $date_format;
        // Format dates
        $start_date_formatted = date_i18n($start_date_format, $start_date_timestamp);
        $end_date_formatted = date_i18n($end_date_format, $end_date_timestamp);
        // Build range
        /* translators: date range */
        $meta['date'] = sprintf(_x('%1$s – %2$s', 'dates', 'church-theme-framework'), $start_date_formatted, $end_date_formatted);
    } else {
        // start date only
        $meta['date'] = date_i18n($date_format, $start_date_timestamp);
    }
    // Format Start and End Time
    $time_format = get_option('time_format');
    $meta['start_time_formatted'] = $meta['start_time'] ? date($time_format, strtotime($meta['start_time'])) : '';
    $meta['end_time_formatted'] = $meta['end_time'] ? date($time_format, strtotime($meta['end_time'])) : '';
    // Time Range
    // Show Start/End Time range (or only Start Time)
    $meta['time_range'] = '';
    if ($meta['start_time_formatted']) {
        // Start Time Only
        $meta['time_range'] = $meta['start_time_formatted'];
        // Start and End Time (Range)
        if ($meta['end_time_formatted']) {
            // Time Range
            /* translators: time range */
            $meta['time_range'] = sprintf(_x('%1$s – %2$s', 'times', 'church-theme-framework'), $meta['start_time_formatted'], $meta['end_time_formatted']);
        }
    }
    // Time and/or Description
    // Show Start/End Time (if given) and maybe Time Description (if given) in parenthesis
    // If no Start/End Time (or it is set to hide), show Time Description by itself
    // This is useful for event post header
    $meta['time_range_and_description'] = '';
    $meta['time_range_or_description'] = '';
    if ($meta['time_range'] && !$meta['hide_time_range']) {
        // Show Time Range and maybe Description after it
        // Definitely show time range
        $meta['time_range_and_description'] = $meta['time_range'];
        $meta['time_range_or_description'] = $meta['time_range'];
        // Maybe show description after time range
        if ($meta['time']) {
            // Time and Description
            /* translators: time range and description */
            $meta['time_range_and_description'] = sprintf(__('%1$s <span>(%2$s)</span>', 'church-theme-framework'), $meta['time_range'], $meta['time']);
        }
    } else {
        // Show description only
        $meta['time_range_and_description'] = $meta['time'];
        $meta['time_range_or_description'] = $meta['time'];
    }
    // Add directions URL (empty if show_directions_link not set)
    $meta['directions_url'] = $meta['show_directions_link'] ? ctc_directions_url($meta['address']) : '';
    // Return filtered
    return apply_filters('ctc_event_data', $meta, $post_id);
}