OS : Linux
PHP Version : 7.4.33
Software : Apache/2.4.6 (CentOS) PHP/7.4.33
Information System : Linux apprendre2 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
Disable Function : 'upcoming_events_widget',
'description' => 'Displays upcoming events scrolling list'
);
parent::__construct('timetable_upcoming_events', __('Upcoming Events', 'timetable'), $widget_options);
}
/** @see WP_Widget::widget */
function widget($args, $instance)
{
global $wpdb;
global $wp_locale;
$timetable_events_settings = get_option("timetable_events_settings");
extract($args);
//these are our widget options
$title = (isset($instance['title']) ? $instance['title'] : "");
$title_color = (isset($instance['title_color']) ? $instance['title_color'] : "");
$count = (isset($instance['count']) ? $instance['count'] : "");
$display_settings = (isset($instance['display_settings']) ? $instance['display_settings'] : "");
$within_next = (isset($instance['within_next']) ? $instance['within_next'] : "");
$time_format = (isset($instance['time_format']) ? $instance['time_format'] : "");
$time_format_custom = (isset($instance['time_format_custom']) ? $instance['time_format_custom'] : "");
$time_mode = (isset($instance['time_mode']) ? $instance['time_mode'] : "");
$timezone = (isset($instance['timezone']) ? $instance['timezone'] : "");
$auto_scroll = (isset($instance['auto_scroll']) ? $instance['auto_scroll'] : "");
$event_featured_image = (isset($instance['event_featured_image']) ? $instance['event_featured_image'] : "");
$disable_url = (isset($instance['disable_url']) ? $instance['disable_url'] : false);
$custom_url = (isset($instance['custom_url']) ? $instance['custom_url'] : "");
$categories = (isset($instance['categories']) ? $instance['categories'] : "");
$hour_categories = (isset($instance['hour_categories']) ? $instance['hour_categories'] : "");
$background_color = (isset($instance['background_color']) ? $instance['background_color'] : "");
$hover_background_color = (isset($instance['hover_background_color']) ? $instance['hover_background_color'] : "");
$text_color = (isset($instance['text_color']) ? $instance['text_color'] : "");
$hover_text_color = (isset($instance['hover_text_color']) ? $instance['hover_text_color'] : "");
$item_border_color = (isset($instance['item_border_color']) ? $instance['item_border_color'] : "");
$hover_item_border_color = (isset($instance['hover_item_border_color']) ? $instance['hover_item_border_color'] : "");
echo $before_widget;
if($time_mode=="server")
{
$phpDayNumber = date('w', current_time('timestamp', ($timezone=="utc" ? 1 : 0)));
if($phpDayNumber==0)
$phpDayNumber = 7;
/*else
$phpDayNumber++;*/
}
//get all weekdays order numbers
if($display_settings=="all")
{
$query = "SELECT menu_order FROM {$wpdb->posts}
WHERE
post_status='publish'
AND
menu_order=" . ($time_mode=="server" ? $phpDayNumber : "CASE WHEN DATE_FORMAT(CURDATE(), '%w') = 0 THEN 7 ELSE DATE_FORMAT(CURDATE(), '%w') END");
$current_day_number = $wpdb->get_row($query);
$query = "SELECT menu_order FROM {$wpdb->posts}
WHERE
post_type='timetable_weekdays'
AND
post_status='publish'
ORDER BY menu_order";
$weekdays_orders = $wpdb->get_results($query);
$count_weekdays_orders = count($weekdays_orders);
$weekdays_orders_sql = "";
$weekdays_orders_array = array();
for($i=0; $i<$count_weekdays_orders; $i++)
$weekdays_orders_array[] = $weekdays_orders[$i]->menu_order;
$weekdays_orders_array = array_values(array_unique($weekdays_orders_array));
$current_day_number_index = array_search($current_day_number->menu_order, $weekdays_orders_array);
$weekdays_before_current = array_slice($weekdays_orders_array, 0, $current_day_number_index);
$weekdays_after_current = array_slice($weekdays_orders_array, $current_day_number_index+1, $count_weekdays_orders-$current_day_number_index);
$weekdays_orders_array_sorted = array_merge($weekdays_after_current, $weekdays_before_current);
if((int)$within_next>0)
$weekdays_orders_array_sorted = array_slice($weekdays_orders_array_sorted, 0, (int)$within_next);
$count_weekdays_orders_sorted = count($weekdays_orders_array_sorted);
for($i=0; $i<$count_weekdays_orders_sorted; $i++)
$weekdays_orders_sql .= "'" . $weekdays_orders_array_sorted[$i] . "'" . ($i+1<$count_weekdays_orders_sorted ? "," : "");
}
$query = "SELECT TIME_FORMAT(t1.start, '%H.%i') AS start, TIME_FORMAT(t1.end, '%H.%i') AS end, t1.event_id AS event_id, t1.before_hour_text AS description1, t1.after_hour_text AS description2, t2.post_title, t2.post_name, t3.post_title as weekday FROM ".$wpdb->prefix."event_hours AS t1
LEFT JOIN {$wpdb->posts} AS t2 ON t1.event_id=t2.ID
LEFT JOIN {$wpdb->posts} AS t3 ON t1.weekday_id=t3.ID";
if(!empty($categories) && count($categories))
$query .= "
LEFT JOIN $wpdb->term_relationships ON(t2.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
WHERE $wpdb->terms.slug IN ('" . join("','", (array)$categories) . "')
AND $wpdb->term_taxonomy.taxonomy = 'events_category'
AND";
else
$query .= "
WHERE";
//global $post;
$query .= "
t2.post_type='" . $timetable_events_settings["slug"] . "'
AND t2.post_status='publish'
AND
t3.post_type='timetable_weekdays'
AND
t3.post_status='publish'";
//AND t2.ID='" . $post->ID . "'";
if($hour_categories!=null && $hour_categories!="-")
$query .= "
AND t1.category IN('" . join("','", $hour_categories) . "')";
if($display_settings=="today")
$query .= " AND
t3.menu_order=" . ($time_mode=="server" ? $phpDayNumber : "CASE WHEN DATE_FORMAT(CURDATE(), '%w') = 0 THEN 7 ELSE DATE_FORMAT(CURDATE(), '%w') END") . "
AND
SUBTIME(t1.start, " . ($time_mode=="server" ? "TIME('" . date('H:i:s', current_time('timestamp', ($timezone=="utc" ? 1 : 0))) . "')" : "CURRENT_TIME()") . ")>0";
else if($display_settings=="current")
$query .= " AND
t3.menu_order=" . ($time_mode=="server" ? $phpDayNumber : "CASE WHEN DATE_FORMAT(CURDATE(), '%w') = 0 THEN 7 ELSE DATE_FORMAT(CURDATE(), '%w') END") . "
AND
SUBTIME(t1.end, " . ($time_mode=="server" ? "TIME('" . date('H:i:s', current_time('timestamp', ($timezone=="utc" ? 1 : 0))) . "')" : "CURRENT_TIME()") . ")>0
AND
SUBTIME(t1.end, " . ($time_mode=="server" ? "TIME('" . date('H:i:s', current_time('timestamp', ($timezone=="utc" ? 1 : 0))) . "')" : "CURRENT_TIME()") . ")
;">
;">
;">
;">
;">
;">
;">
" name="get_field_name('time_format_custom'); ?>" id="get_field_id('time_format_custom'); ?>">
9:03 am