/** * 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); }
/** * 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); }