Files

244 lines
13 KiB
PHP

<?php
/** no direct access **/
defined('MECEXEC') or die();
/** @var MEC_skin_single $this */
/**
* TODO: Optimize
*/
wp_enqueue_style('mec-lity-style', $this->main->asset('packages/lity/lity.min.css'));
wp_enqueue_script('mec-lity-script', $this->main->asset('packages/lity/lity.min.js'));
$booking_options = get_post_meta(get_the_ID(), 'mec_booking', true);
if(!is_array($booking_options)) $booking_options = array();
//Compatibility with Rank Math
$rank_math_options = '';
include_once(ABSPATH . 'wp-admin/includes/plugin.php');
if(is_plugin_active('schema-markup-rich-snippets/schema-markup-rich-snippets.php')) $rank_math_options = get_post_meta(get_the_ID(), 'rank_math_rich_snippet', true);
$more_info = (isset($event->data->meta['mec_more_info']) and trim($event->data->meta['mec_more_info']) and $event->data->meta['mec_more_info'] != 'http://') ? $event->data->meta['mec_more_info'] : '';
if(isset($event->date) and isset($event->date['start']) and isset($event->date['start']['timestamp'])) $more_info = MEC_feature_occurrences::param($event->ID, $event->date['start']['timestamp'], 'more_info', $more_info);
$more_info_target = MEC_feature_occurrences::param($event->ID, $event->date['start']['timestamp'], 'more_info_target', (isset($event->data->meta['mec_more_info_target']) ? $event->data->meta['mec_more_info_target'] : '_self'));
$more_info_title = MEC_feature_occurrences::param($event->ID, $event->date['start']['timestamp'], 'more_info_title', ((isset($event->data->meta['mec_more_info_title']) and trim($event->data->meta['mec_more_info_title'])) ? $event->data->meta['mec_more_info_title'] : __('Read More', 'modern-events-calendar-lite')));
$location_id = $this->main->get_master_location_id($event);
$location = ($location_id ? $this->main->get_location_data($location_id) : array());
$organizer_id = $this->main->get_master_organizer_id($event);
$organizer = ($organizer_id ? $this->main->get_organizer_data($organizer_id) : array());
$sticky_sidebar = isset($settings['sticky_sidebar']) ? $settings['sticky_sidebar'] : '';
if($sticky_sidebar == 1) $sticky_sidebar = 'mec-sticky';
// Event Cost
$cost = $this->main->get_event_cost($event);
?>
<div class="mec-wrap <?php echo $event_colorskin; ?> clearfix <?php echo $this->html_class; ?>" id="mec_skin_<?php echo $this->uniqueid; ?>">
<?php do_action('mec_top_single_event', get_the_ID()); ?>
<article class="row mec-single-event mec-single-modern <?php echo $sticky_sidebar; ?>">
<!-- start breadcrumbs -->
<?php
$breadcrumbs_settings = isset($settings['breadcrumbs']) ? $settings['breadcrumbs'] : '';
if($breadcrumbs_settings == '1'): $breadcrumbs = new MEC_skin_single(); ?>
<div class="mec-breadcrumbs mec-breadcrumbs-modern">
<?php $breadcrumbs->display_breadcrumb_widget(get_the_ID()); ?>
</div>
<?php endif; ?>
<!-- end breadcrumbs -->
<div class="mec-events-event-image">
<?php echo $event->data->thumbnails['full']; ?>
<?php if(isset($settings['featured_image_caption']) and $settings['featured_image_caption']) echo $this->main->display_featured_image_caption($event); ?>
<?php do_action('mec_custom_dev_image_section', $event); ?>
</div>
<div class="col-md-4<?php if(empty($event->data->thumbnails['full'])) echo ' mec-no-image'; ?>">
<?php do_action('mec_single_virtual_badge', $event->data); ?>
<?php do_action('mec_single_zoom_badge', $event->data); ?>
<?php
$GLOBALS['mec-widget-single'] = $this;
$GLOBALS['mec-widget-event'] = $event;
$GLOBALS['mec-widget-occurrence'] = $occurrence;
$GLOBALS['mec-widget-occurrence_end_date'] = $occurrence_end_date;
$GLOBALS['mec-widget-cost'] = $cost;
$GLOBALS['mec-widget-more_info'] = $more_info;
$GLOBALS['mec-widget-location_id'] = $location_id;
$GLOBALS['mec-widget-location'] = $location;
$GLOBALS['mec-widget-organizer_id'] = $organizer_id;
$GLOBALS['mec-widget-organizer'] = $organizer;
$GLOBALS['mec-widget-more_info_target'] = $more_info_target;
$GLOBALS['mec-widget-more_info_title'] = $more_info_title;
?>
<!-- Widgets -->
<?php dynamic_sidebar('mec-single-sidebar'); ?>
</div>
<div class="col-md-8">
<div class="mec-single-event-bar">
<?php
// Event Date and Time
if(isset($event->data->meta['mec_date']['start']) and !empty($event->data->meta['mec_date']['start']))
{
$midnight_event = $this->main->is_midnight_event($event);
?>
<div class="mec-single-event-date">
<i class="mec-sl-calendar"></i>
<h3 class="mec-date"><?php _e('Date', 'modern-events-calendar-lite'); ?></h3>
<dl>
<?php if($midnight_event): ?>
<dd><abbr class="mec-events-abbr"><?php echo $this->main->dateify($event, $this->date_format1); ?></abbr></dd>
<?php else: ?>
<dd><abbr class="mec-events-abbr"><?php echo $this->main->date_label((trim($occurrence) ? array('date' => $occurrence) : $event->date['start']), (trim($occurrence_end_date) ? array('date' => $occurrence_end_date) : (isset($event->date['end']) ? $event->date['end'] : NULL)), $this->date_format1, ' - ', true, 0, $event); ?></abbr></dd>
<?php endif; ?>
</dl>
<?php echo $this->main->holding_status($event); ?>
</div>
<?php
if(isset($event->data->meta['mec_hide_time']) and $event->data->meta['mec_hide_time'] == '0')
{
$time_comment = isset($event->data->meta['mec_comment']) ? $event->data->meta['mec_comment'] : '';
$allday = isset($event->data->meta['mec_allday']) ? $event->data->meta['mec_allday'] : 0;
?>
<div class="mec-single-event-time">
<i class="mec-sl-clock " style=""></i>
<h3 class="mec-time"><?php _e('Time', 'modern-events-calendar-lite'); ?></h3>
<i class="mec-time-comment"><?php echo (isset($time_comment) ? $time_comment : ''); ?></i>
<dl>
<?php if($allday == '0' and isset($event->data->time) and trim($event->data->time['start'])): ?>
<dd><abbr class="mec-events-abbr"><?php echo $event->data->time['start']; ?><?php echo (trim($event->data->time['end']) ? ' - '.$event->data->time['end'] : ''); ?></abbr></dd>
<?php else: ?>
<dd><abbr class="mec-events-abbr"><?php echo $this->main->m('all_day', __('All Day' , 'modern-events-calendar-lite')); ?></abbr></dd>
<?php endif; ?>
</dl>
</div>
<?php
}
}
?>
<?php
if($cost)
{
?>
<div class="mec-event-cost">
<i class="mec-sl-wallet"></i>
<h3 class="mec-cost"><?php echo $this->main->m('cost', __('Cost', 'modern-events-calendar-lite')); ?></h3>
<dl><dd class="mec-events-event-cost"><?php echo $cost; ?></dd></dl>
</div>
<?php
}
?>
<?php do_action('print_extra_costs', $event); ?>
<?php
// Event labels
if(isset($event->data->labels) && !empty($event->data->labels))
{
$mec_items = count($event->data->labels);
$mec_i = 0; ?>
<div class="mec-single-event-label">
<i class="mec-fa-bookmark-o"></i>
<h3 class="mec-cost"><?php echo $this->main->m('taxonomy_labels', __('Labels', 'modern-events-calendar-lite')); ?></h3>
<?php
foreach($event->data->labels as $labels=>$label)
{
$seperator = (++$mec_i === $mec_items) ? '' : ',';
echo '<dl><dd style="color:' . $label['color'] . '">' . $label["name"] . $seperator . '</dd></dl>';
}
?>
</div>
<?php
}
?>
</div>
<div class="mec-event-content">
<?php echo $this->main->display_cancellation_reason($event, $this->display_cancellation_reason); ?>
<h1 class="mec-single-title"><?php the_title(); ?></h1>
<div class="mec-single-event-description mec-events-content"><?php the_content(); ?><?php do_action('mec_custom_dev_content_section', $event); ?></div>
</div>
<?php do_action('mec_single_after_content', $event); ?>
<!-- Custom Data Fields -->
<?php $this->display_data_fields($event); ?>
<!-- Links Module -->
<?php echo $this->main->module('links.details', array('event' => $event)); ?>
<!-- Google Maps Module -->
<div class="mec-events-meta-group mec-events-meta-group-gmap">
<?php echo $this->main->module('googlemap.details', array('event' => $this->events)); ?>
</div>
<!-- Export Module -->
<?php echo $this->main->module('export.details', array('event' => $event)); ?>
<!-- Countdown module -->
<?php if($this->main->can_show_countdown_module($event)): ?>
<div class="mec-events-meta-group mec-events-meta-group-countdown">
<?php echo $this->main->module('countdown.details', array('event' => $this->events)); ?>
</div>
<?php endif; ?>
<!-- Hourly Schedule -->
<?php $this->display_hourly_schedules_widget($event); ?>
<?php do_action('mec_before_booking_form', get_the_ID()); ?>
<!-- Booking Module -->
<?php if($this->main->is_sold($event) and count($event->dates) <= 1): ?>
<div id="mec-events-meta-group-booking-<?php echo $this->uniqueid; ?>" class="mec-sold-tickets warning-msg"><?php _e('Sold out!', 'modern-events-calendar-lite'); do_action( 'mec_booking_sold_out',$event, null,null,array($event->date) );?> </div>
<?php elseif($this->main->can_show_booking_module($event)): ?>
<?php $data_lity_class = ''; if(isset($settings['single_booking_style']) and $settings['single_booking_style'] == 'modal' ) $data_lity_class = 'lity-hide '; ?>
<div class="mec-single-event <?php echo $data_lity_class; ?>" id="mec-events-meta-group-booking-box-<?php echo $this->uniqueid; ?>">
<div id="mec-events-meta-group-booking-<?php echo $this->uniqueid; ?>" class="mec-events-meta-group mec-events-meta-group-booking">
<?php
if(isset($settings['booking_user_login']) and $settings['booking_user_login'] == '1' and !is_user_logged_in()) echo do_shortcode('[MEC_login]');
elseif(isset($settings['booking_user_login']) and $settings['booking_user_login'] == '0' and !is_user_logged_in() and isset($booking_options['bookings_limit_for_users']) and $booking_options['bookings_limit_for_users'] == '1') echo do_shortcode('[MEC_login]');
else echo $this->main->module('booking.default', array('event' => $this->events));
?>
</div>
</div>
<?php endif ?>
<!-- Tags -->
<div class="mec-events-meta-group mec-events-meta-group-tags">
<?php echo get_the_term_list(get_the_ID(), apply_filters('mec_taxonomy_tag', ''), __('Tags: ', 'modern-events-calendar-lite'), ', ', '<br />'); ?>
</div>
</div>
</article>
<?php $this->display_related_posts_widget($event->ID); ?>
<?php $this->display_next_previous_events($event); ?>
</div>
<?php
// MEC Schema
if($rank_math_options != 'event') do_action('mec_schema', $event);
?>
<script>
jQuery(".mec-speaker-avatar a").on('click', function(e)
{
e.preventDefault();
var id = jQuery(this).attr('href');
lity(id);
});
// Fix modal booking in some themes
jQuery(".mec-booking-button.mec-booking-data-lity").on('click', function(e)
{
e.preventDefault();
var book_id = jQuery(this).attr('href');
lity(book_id);
});
</script>