?AlkantarClanX12
| Current Path : /home/rankinh/saintgilleslesbains/wp-content/themes/pressville/inc/lsvr-events/ |
| Current File : /home/rankinh/saintgilleslesbains/wp-content/themes/pressville/inc/lsvr-events/lsvr-events.php |
<?php
// Include additional files
require_once(get_template_directory() . '/inc/lsvr-events/actions.php');
require_once(get_template_directory() . '/inc/lsvr-events/customizer-config.php');
require_once(get_template_directory() . '/inc/lsvr-events/deprecated.php');
require_once(get_template_directory() . '/inc/lsvr-events/frontend-functions.php');
// Is event page
if (!function_exists('lsvr_pressville_is_event')) {
function lsvr_pressville_is_event()
{
if (
is_post_type_archive('lsvr_event') || is_tax('lsvr_event_cat') || is_tax('lsvr_event_tag') ||
is_tax('lsvr_event_location') || is_singular('lsvr_event')
) {
return true;
} else {
return false;
}
}
}
// Get event archive title
if (!function_exists('lsvr_pressville_get_event_archive_title')) {
function lsvr_pressville_get_event_archive_title()
{
return get_theme_mod('lsvr_event_archive_title', esc_html__('Evénements', 'pressville'));
}
}
// Get event archive
if (!function_exists('lsvr_pressville_get_event_archive')) {
function lsvr_pressville_get_event_archive()
{
if (function_exists('lsvr_events_get')) {
// Pagination offset
$posts_per_page = get_theme_mod('lsvr_event_archive_posts_per_page', 12);
$current_page = !empty($_GET['page']) ? (int) $_GET['page'] : 1;
$current_page = $current_page > 0 ? $current_page - 1 : $current_page;
$pagination_offset = $posts_per_page * $current_page;
// Main args
$event_occurrences_args = array(
'limit' => $posts_per_page,
'orderby' => 'start',
// 'orderby' => 'end',
'offset' => $pagination_offset,
'to_return' => 'occurrences',
);
$event_occurrences_args = array(
'limit' => 999,
'orderby' => 'start',
'to_return' => 'occurrences',
);
// If category tax
if (is_tax('lsvr_event_cat')) {
$event_occurrences_args['category'] = get_queried_object_id();
}
// If location tax
else if (is_tax('lsvr_event_location')) {
$event_occurrences_args['location'] = get_queried_object_id();
}
// If tag tax
else if (is_tax('lsvr_event_tag')) {
$event_occurrences_args['tag'] = get_queried_object_id();
}
// Date from arg
if (!empty($_GET['date_from'])) {
$event_occurrences_args['date_from'] = date('Y-m-d 00:00:00', strtotime($_GET['date_from']));
}
// Date to arg
if (!empty($_GET['date_to'])) {
$event_occurrences_args['date_to'] = date('Y-m-d 23:59:59', strtotime($_GET['date_to']));
}
// Order arg
// if (!empty($_GET['order'])) {
// $event_occurrences_args['order'] = 'asc' === strtolower($_GET['order']) ? 'ASC' : 'DESC';
// }
$event_occurrences_args['order'] = 'desc';
// If no date from and date to are defined, display upcoming events
if (empty($_GET['date_from']) && empty($_GET['date_to']) && empty($_GET['period'])) {
// $event_occurrences_args['period'] = 'future';
// $event_occurrences_args['period'] = 'past';
} else if (!empty($_GET['period'])) {
$event_occurrences_args['period'] = 'past' === $_GET['period'] ? 'past' : 'future';
}
// Get occurrences
$occurences = lsvr_events_get($event_occurrences_args);
return !empty($occurences['occurrences']) ? $occurences['occurrences'] : array();
}
}
}
// Has events
if (!function_exists('lsvr_pressville_has_events')) {
function lsvr_pressville_has_events()
{
$events = lsvr_pressville_get_event_archive();
return !empty($events) ? true : false;
}
}
// Get events pagination
if (!function_exists('lsvr_pressville_get_event_archive_pagination')) {
function lsvr_pressville_get_event_archive_pagination()
{
if (function_exists('lsvr_events_get_event_archive_pagination')) {
$args = array();
// Pass "date from" attribute
if (!empty($_GET['date_from'])) {
$args['date_from'] = date('Y-m-d 00:00:00', strtotime($_GET['date_from']));
}
// Pass "date to" attribute
if (!empty($_GET['date_to'])) {
$args['date_to'] = date('Y-m-d 23:59:59', strtotime($_GET['date_to']));
}
// Pass "keyword" attribute
if (!empty($_GET['keyword'])) {
$args['keyword'] = wp_strip_all_tags($_GET['keyword']);
}
// Pass "period" attribute
if (!empty($_GET['period'])) {
$args['period'] = 'past' === strtolower($_GET['period']) ? 'past' : 'future';
}
// Pass "order" attribute
if (!empty($_GET['order'])) {
$args['order'] = 'asc' === strtolower($_GET['order']) ? 'asc' : 'desc';
}
// If "date from" and "date to" are not defined, show upcoming events
if (empty($_GET['period']) && empty($_GET['date_from']) && empty($_GET['date_to'])) {
$args['period'] = 'future';
}
// Return pagination data
return lsvr_events_get_event_archive_pagination(
$args,
get_theme_mod('lsvr_event_archive_posts_per_page', 12), // Number of posts per page
2 // Range of displayed page numbers relative to current page number
);
}
}
}
// Get event archive grid class
if (!function_exists('lsvr_pressville_get_event_post_archive_grid_class')) {
function lsvr_pressville_get_event_post_archive_grid_class()
{
$number_of_columns = !empty(get_theme_mod('lsvr_event_archive_grid_columns', 3)) ? (int) get_theme_mod('lsvr_event_archive_grid_columns', 3) : 3;
$span = 12 / $number_of_columns;
$md_cols = $span > 2 ? 2 : $span;
$sm_cols = $span > 2 ? 2 : $span;
$masonry = true === get_theme_mod('lsvr_event_archive_masonry_enable', false) ? ' lsvr-grid--masonry' : '';
return 'lsvr-grid lsvr-grid--' . esc_attr($number_of_columns) . '-cols lsvr-grid--md-' . esc_attr($md_cols) . '-cols lsvr-grid--sm-' . esc_attr($sm_cols) . '-cols' . esc_attr($masonry);
}
}
// Get event archive filter form action
if (!function_exists('lsvr_pressville_get_event_archive_filter_form_action')) {
function lsvr_pressville_get_event_archive_filter_form_action()
{
if (is_post_type_archive('lsvr_event')) {
return get_post_type_archive_link('lsvr_event');
} else if (is_tax('lsvr_event_cat') || is_tax('lsvr_event_tag') || is_tax('lsvr_event_location')) {
$taxonomy = get_query_var('taxonomy');
return get_term_link(get_queried_object_id(), $taxonomy);
}
}
}
// Is recurring event
if (!function_exists('lsvr_pressville_is_recurring_event')) {
function lsvr_pressville_is_recurring_event($post_id)
{
$repeat_meta = get_post_meta($post_id, 'lsvr_event_repeat', true);
return empty($repeat_meta) || 'false' === $repeat_meta ? false : true;
}
}
// Get next event occurrences
if (!function_exists('lsvr_pressville_get_next_event_occurrences')) {
function lsvr_pressville_get_next_event_occurrences($post_id, $limit = 100, $offset = 0)
{
if (function_exists('lsvr_events_get_next_occurrences')) {
return lsvr_events_get_next_occurrences($post_id, $limit, $offset);
}
}
}
// Has next event occurrences
if (!function_exists('lsvr_pressville_has_next_event_occurrences')) {
function lsvr_pressville_has_next_event_occurrences($post_id)
{
$next_occurrences = lsvr_pressville_get_next_event_occurrences($post_id, 1);
return !empty($next_occurrences) ? true : false;
}
}
// Get next event occurrence start date
if (!function_exists('lsvr_pressville_get_next_event_occurrence_start')) {
function lsvr_pressville_get_next_event_occurrence_start($post_id, $format = 'c', $offset = 0)
{
$next_occurrence = lsvr_pressville_get_next_event_occurrences(get_the_ID(), 1, $offset);
$next_occurrence = !empty($next_occurrence[0]['start']) ? new DateTime($next_occurrence[0]['start']) : false;
return !empty($next_occurrence) ? $next_occurrence->format($format) : false;
}
}
// Get next event occurrence end date
if (!function_exists('lsvr_pressville_get_next_event_occurrence_end')) {
function lsvr_pressville_get_next_event_occurrence_end($post_id, $format = 'c', $offset = 0)
{
$next_occurrence = lsvr_pressville_get_next_event_occurrences(get_the_ID(), 1, $offset);
$next_occurrence = !empty($next_occurrence[0]['end']) ? new DateTime($next_occurrence[0]['end']) : false;
return !empty($next_occurrence) ? $next_occurrence->format($format) : false;
}
}
// Get recent event occurrences
if (!function_exists('lsvr_pressville_get_recent_event_occurrences')) {
function lsvr_pressville_get_recent_event_occurrences($post_id, $limit = 1, $offset = 0)
{
if (function_exists('lsvr_events_get_recent_occurrences')) {
return lsvr_events_get_recent_occurrences($post_id, $limit, $offset);
}
}
}
// Get event occurence pattern text
if (!function_exists('lsvr_pressville_get_event_recurrence_pattern_text')) {
function lsvr_pressville_get_event_recurrence_pattern_text($post_id, $template = '%s')
{
if (lsvr_pressville_is_recurring_event($post_id)) {
$pattern = get_post_meta($post_id, 'lsvr_event_repeat', true);
$pattern_xth = get_post_meta($post_id, 'lsvr_event_repeat_xth', true);
if ('day' === $pattern) {
$pattern_day = get_post_meta($post_id, 'lsvr_event_repeat_day', true);
if (empty($pattern_day)) {
$pattern = esc_html__('day', 'pressville');
} else {
$days = explode(',', $pattern_day);
$pattern = implode(', ', array_map('lsvr_pressville_get_day_name', $days));
}
} elseif ('first' === $pattern || 'second' === $pattern || 'third' === $pattern || 'fourth' === $pattern || 'last' === $pattern) {
$pattern_labels = array(
'first' => esc_html__('1st', 'pressville'),
'second' => esc_html__('2nd', 'pressville'),
'third' => esc_html__('3rd', 'pressville'),
'fourth' => esc_html__('4th', 'pressville'),
'last' => esc_html__('last', 'pressville'),
);
$day_labels = array(
'mon' => esc_html__('Monday', 'pressville'),
'tue' => esc_html__('Tuesday', 'pressville'),
'wed' => esc_html__('Wednesday', 'pressville'),
'thu' => esc_html__('Thursday', 'pressville'),
'fri' => esc_html__('Friday', 'pressville'),
'sat' => esc_html__('Saturday', 'pressville'),
'sun' => esc_html__('Sunday', 'pressville'),
);
$pattern_label = !empty($pattern_labels[$pattern]) ? $pattern_labels[$pattern] : $pattern;
$day_label = !empty($day_labels[$pattern_xth]) ? $day_labels[$pattern_xth] : $pattern_xth;
$pattern = sprintf(esc_html__('%s %s', 'pressville'), $pattern_label, $day_label);
} elseif ('weekday' === $pattern) {
$pattern = esc_html__('weekday', 'pressville');
} elseif ('week' === $pattern) {
$pattern = esc_html__('week', 'pressville');
} elseif ('biweek' === $pattern) {
$pattern = esc_html__('two weeks', 'pressville');
} elseif ('month' === $pattern) {
$pattern = esc_html__('month', 'pressville');
} elseif ('bimonth' === $pattern) {
$pattern = esc_html__('two months', 'pressville');
} elseif ('year' === $pattern) {
$pattern = esc_html__('year', 'pressville');
}
return sprintf($template, $pattern);
}
}
}
// Is all-day event
if (!function_exists('lsvr_pressville_is_allday_event')) {
function lsvr_pressville_is_allday_event($post_id)
{
$allday_meta = get_post_meta($post_id, 'lsvr_event_allday', true);
return empty($allday_meta) || 'false' === $allday_meta ? false : true;
}
}
// Is multi-day event
if (!function_exists('lsvr_pressville_is_multiday_event')) {
function lsvr_pressville_is_multiday_event($post_id)
{
$start_date = get_post_meta($post_id, 'lsvr_event_start_date_utc', true);
$end_date = get_post_meta($post_id, 'lsvr_event_end_date_utc', true);
if (!empty($start_date) && !empty($end_date)) {
$start_date_local = get_date_from_gmt($start_date, 'Y-m-d ');
$end_date_local = get_date_from_gmt($end_date, 'Y-m-d');
return strtotime($start_date_local) < strtotime($end_date_local) ? true : false;
} else {
return false;
}
}
}
// Has event end time
if (!function_exists('lsvr_pressville_has_event_end_time')) {
function lsvr_pressville_has_event_end_time($post_id)
{
$endtime_enable = get_post_meta($post_id, 'lsvr_event_end_time_enable', true);
return 'true' === $endtime_enable ? true : false;
}
}
// Has location
if (!function_exists('lsvr_pressville_has_event_location')) {
function lsvr_pressville_has_event_location($post_id)
{
if (function_exists('lsvr_events_get_event_location_meta')) {
$location_meta = lsvr_events_get_event_location_meta($post_id);
return !empty($location_meta) ? true : false;
}
}
}
// Get event location meta
if (!function_exists('lsvr_pressville_get_event_location_meta')) {
function lsvr_pressville_get_event_location_meta($post_id)
{
if (function_exists('lsvr_events_get_event_location_meta')) {
return lsvr_events_get_event_location_meta($post_id);
}
}
}
// Get event location name
if (!function_exists('lsvr_pressville_get_event_location_name')) {
function lsvr_pressville_get_event_location_name($post_id)
{
$event_location_term = wp_get_post_terms($post_id, 'lsvr_event_location');
if (!empty($event_location_term[0]->term_id)) {
// Get location term ID
$location_term_id = $event_location_term[0]->term_id;
// Get term data
$location_data = get_term($location_term_id, 'lsvr_event_location');
$location_permalink = get_term_link($location_term_id, 'lsvr_event_location');
if (!empty($location_data->name)) {
return $location_data->name;
}
}
}
}
// Has event location map
if (!function_exists('lsvr_pressville_has_event_location_map')) {
function lsvr_pressville_has_event_location_map($post_id)
{
if (function_exists('lsvr_events_get_event_location_meta')) {
$event_location_meta = lsvr_events_get_event_location_meta($post_id);
if (
!empty($event_location_meta['accurate_address']) ||
(!empty($event_location_meta['latitude']) && !empty($event_location_meta['longitude']))
) {
return true;
} else {
return false;
}
}
}
}
// Get event location address
if (!function_exists('lsvr_pressville_get_event_location_address')) {
function lsvr_pressville_get_event_location_address($post_id)
{
if (function_exists('lsvr_events_get_event_location_meta')) {
$location_meta = lsvr_events_get_event_location_meta($post_id);
return !empty($location_meta['address']) ? $location_meta['address'] : false;
}
}
}
// Has event location address
if (!function_exists('lsvr_pressville_has_event_location_address')) {
function lsvr_pressville_has_event_location_address($post_id)
{
$location_address = lsvr_pressville_get_event_location_address($post_id);
return !empty($location_address) ? true : false;
}
}
// Get event location accurate address
if (!function_exists('lsvr_pressville_get_event_location_accurate_address')) {
function lsvr_pressville_get_event_location_accurate_address($post_id)
{
if (function_exists('lsvr_events_get_event_location_meta')) {
$location_meta = lsvr_events_get_event_location_meta($post_id);
if (!empty($location_meta['accurate_address'])) {
return $location_meta['accurate_address'];
}
}
}
}
// Has event location accurate address
if (!function_exists('lsvr_pressville_has_event_location_acurrate_address')) {
function lsvr_pressville_has_event_location_acurrate_address($post_id)
{
$location_address = lsvr_pressville_get_event_location_accurate_address($post_id);
return !empty($location_address) ? $location_address : false;
}
}
// Get map link
if (!function_exists('lsvr_pressville_get_event_map_link')) {
function lsvr_pressville_get_event_map_link($post_id)
{
$event_location_meta = lsvr_events_get_event_location_meta($post_id);
if (!empty($event_location_meta['latitude']) && !empty($event_location_meta['longitude'])) {
return 'https://maps.google.com/maps?ll=' . $event_location_meta['latitude'] . ',' . $event_location_meta['longitude'];
} elseif (!empty($event_location_meta['accurate_address'])) {
return 'https://maps.google.com/maps?q=' . $event_location_meta['accurate_address'];
} else {
return false;
}
}
}
// Has map link
if (!function_exists('lsvr_pressville_has_event_map_link')) {
function lsvr_pressville_has_event_map_link($post_id)
{
$map_link = lsvr_pressville_get_event_map_link($post_id);
return !empty($map_link) ? true : false;
}
}