*/ class MEC_single_widget extends WP_Widget { /** * Unique identifier. */ protected $widget_slug = 'MEC_single_widget'; /** * Constructor method * @author Webnus */ public function __construct() { parent::__construct($this->get_widget_slug(), __('MEC Single Sidebar Items', 'modern-events-calendar-lite'), array('classname' => $this->get_widget_slug() . '-class', 'description' => __('To manage event details page elements.', 'modern-events-calendar-lite'))); // Refreshing the widget's cached output with each new post add_action('save_post', array($this, 'flush_widget_cache')); add_action('deleted_post', array($this, 'flush_widget_cache')); add_action('switch_theme', array($this, 'flush_widget_cache')); } /** * @return string */ public function get_widget_slug() { return $this->widget_slug; } /** * How to display the widget on the screen. * @author Webnus * @param array $args * @param array $instance */ public function widget($args, $instance) { /** @var MEC_main $main */ $main = MEC::getInstance('app.libraries.main'); // Not Single Event Page if(!is_singular($main->get_main_post_type())) return; // General Settings $settings = $main->get_settings(); $layout = (isset($settings['single_single_style']) ? $settings['single_single_style'] : 'modern'); echo $this->get_layout_output($layout, $settings); } public function get_layout_output($layout, $settings) { $single = (isset($GLOBALS['mec-widget-single']) ? $GLOBALS['mec-widget-single'] : NULL); $event = (isset($GLOBALS['mec-widget-event']) ? $GLOBALS['mec-widget-event'] : NULL); if(!$single or !$event) return NULL; $occurrence = (isset($GLOBALS['mec-widget-occurrence']) ? $GLOBALS['mec-widget-occurrence'] : NULL); $occurrence_end_date = (isset($GLOBALS['mec-widget-occurrence_end_date']) ? $GLOBALS['mec-widget-occurrence_end_date'] : NULL); $cost = (isset($GLOBALS['mec-widget-cost']) ? $GLOBALS['mec-widget-cost'] : NULL); $more_info = (isset($GLOBALS['mec-widget-more_info']) ? $GLOBALS['mec-widget-more_info'] : NULL); $location_id = (isset($GLOBALS['mec-widget-location_id']) ? $GLOBALS['mec-widget-location_id'] : NULL); $location = (isset($GLOBALS['mec-widget-location']) ? $GLOBALS['mec-widget-location'] : NULL); $organizer_id = (isset($GLOBALS['mec-widget-organizer_id']) ? $GLOBALS['mec-widget-organizer_id'] : NULL); $organizer = (isset($GLOBALS['mec-widget-organizer']) ? $GLOBALS['mec-widget-organizer'] : NULL); $more_info_target = (isset($GLOBALS['mec-widget-more_info_target']) ? $GLOBALS['mec-widget-more_info_target'] : NULL); $more_info_title = (isset($GLOBALS['mec-widget-more_info_title']) ? $GLOBALS['mec-widget-more_info_title'] : NULL); $path = MEC::import('app.widgets.single.'.$layout, true, true); ob_start(); include $path; return $output = ob_get_clean(); } /** * @param array $instance * @return void */ public function form($instance) { $data_time = isset($instance['data_time']) ? esc_attr($instance['data_time']) : ''; $local_time = isset($instance['local_time']) ? esc_attr($instance['local_time']) : ''; $event_cost = isset($instance['event_cost']) ? esc_attr($instance['event_cost']) : ''; $more_info = isset($instance['more_info']) ? esc_attr($instance['more_info']) : ''; $event_label = isset($instance['event_label']) ? esc_attr($instance['event_label']) : ''; $event_location = isset($instance['event_location']) ? esc_attr($instance['event_location']) : ''; $event_categories = isset($instance['event_categories']) ? esc_attr($instance['event_categories']) : ''; $event_orgnizer = isset($instance['event_orgnizer']) ? esc_attr($instance['event_orgnizer']) : ''; $event_speakers = isset($instance['event_speakers']) ? esc_attr($instance['event_speakers']) : ''; $register_btn = isset($instance['register_btn']) ? esc_attr($instance['register_btn']) : ''; $attende_module = isset($instance['attende_module']) ? esc_attr($instance['attende_module']) : ''; $next_module = isset($instance['next_module']) ? esc_attr($instance['next_module']) : ''; $links_module = isset($instance['links_module']) ? esc_attr($instance['links_module']) : ''; $weather = isset($instance['weather_module']) ? esc_attr($instance['weather_module']) : ''; $google_map = isset($instance['google_map']) ? esc_attr($instance['google_map']) : ''; $qrcode = isset($instance['qrcode_module']) ? esc_attr($instance['qrcode_module']) : ''; $public_download = isset($instance['public_download_module']) ? esc_attr($instance['public_download_module']) : ''; $custom_fields = isset($instance['custom_fields_module']) ? esc_attr($instance['custom_fields_module']) : ''; $virtual_events = isset($instance['virtual_events_module']) ? esc_attr($instance['virtual_events_module']) : ''; ?> get_widget_slug(), 'widget'); } /** * Update the widget settings. * @author Webnus * @param array $new_instance * @param array $old_instance * @return array */ public function update($new_instance, $old_instance) { $instance = $old_instance; $instance['data_time'] = isset($new_instance['data_time']) ? strip_tags($new_instance['data_time']) : ''; $instance['local_time'] = isset($new_instance['local_time']) ? strip_tags($new_instance['local_time']) : ''; $instance['event_cost'] = isset($new_instance['event_cost']) ? strip_tags($new_instance['event_cost']) : ''; $instance['more_info'] = isset($new_instance['more_info']) ? strip_tags($new_instance['more_info']) : ''; $instance['event_label'] = isset($new_instance['event_label']) ? strip_tags($new_instance['event_label']) : ''; $instance['event_location'] = isset($new_instance['event_location']) ? strip_tags($new_instance['event_location']) : ''; $instance['event_categories'] = isset($new_instance['event_categories']) ? strip_tags($new_instance['event_categories']) : ''; $instance['event_orgnizer'] = isset($new_instance['event_orgnizer']) ? strip_tags($new_instance['event_orgnizer']) : ''; $instance['event_speakers'] = isset($new_instance['event_speakers']) ? strip_tags($new_instance['event_speakers']) : ''; $instance['register_btn'] = isset($new_instance['register_btn']) ? strip_tags($new_instance['register_btn']) : ''; $instance['attende_module'] = isset($new_instance['attende_module']) ? strip_tags($new_instance['attende_module']) : ''; $instance['next_module'] = isset($new_instance['next_module']) ? strip_tags($new_instance['next_module']) : ''; $instance['links_module'] = isset($new_instance['links_module']) ? strip_tags($new_instance['links_module']) : ''; $instance['weather_module'] = isset($new_instance['weather_module']) ? strip_tags($new_instance['weather_module']) : ''; $instance['google_map'] = isset($new_instance['google_map']) ? strip_tags($new_instance['google_map']) : ''; $instance['qrcode_module'] = isset($new_instance['qrcode_module']) ? strip_tags($new_instance['qrcode_module']) : ''; $instance['public_download_module'] = isset($new_instance['public_download_module']) ? strip_tags($new_instance['public_download_module']) : ''; $instance['custom_fields_module'] = isset($new_instance['custom_fields_module']) ? strip_tags($new_instance['custom_fields_module']) : ''; $instance['virtual_events_module'] = isset($new_instance['virtual_events_module']) ? strip_tags($new_instance['virtual_events_module']) : ''; $this->flush_widget_cache(); $alloptions = wp_cache_get('alloptions', 'options'); if(isset($alloptions['MEC_single_widget'])) delete_option('MEC_single_widget'); return $instance; } }