/** * Add ajax callbacks. * * @since 3.0.0 */ public function add_callbacks() { $calendars = simcal_get_calendar_types(); foreach ($calendars as $calendar => $views) { foreach ($views as $view) { $the_view = simcal_get_calendar_view(0, $calendar . '-' . $view); if ($the_view instanceof Calendar_View) { $the_view->add_ajax_actions(); } } } do_action('simcal_add_ajax_callbacks'); }
/** * Constructor. * * @since 3.0.0 */ public function __construct() { $this->id = 'calendars'; $this->option_group = 'settings'; $this->label = __('Calendars', 'google-calendar-events'); //$this->description = __( 'Manage calendar preferences and calendar types settings and options.', 'google-calendar-events' ); $calendars = simcal_get_calendar_types(); $calendar_settings = array(); if (!empty($calendars) && is_array($calendars)) { foreach ($calendars as $calendar => $views) { $calendar_type = simcal_get_calendar($calendar); if ($calendar_type instanceof Calendar) { $settings = $calendar_type->settings_fields(); if (!empty($settings)) { $calendar_settings[$calendar] = $settings; } } } } $this->calendar_types = $calendar_settings; $this->sections = $this->add_sections(); $this->fields = $this->add_fields(); }
/** * Print the meta box settings handle. * * @since 3.0.0 * @access private * * @param \WP_Post $post */ private static function settings_handle($post) { $feed_options = $calendar_options = $calendar_views = array(); $feed_types = simcal_get_feed_types(); foreach ($feed_types as $feed_type) { $feed = simcal_get_feed($feed_type); if ($feed instanceof Feed) { $feed_options[$feed_type] = $feed->name; } } $calendar_types = simcal_get_calendar_types(); foreach ($calendar_types as $calendar_type => $views) { $calendar = simcal_get_calendar($calendar_type); if ($calendar instanceof Calendar) { $calendar_options[$calendar_type] = $calendar->name; $calendar_views[$calendar_type] = $calendar->views; } } if ($feed_options) { if ($feed_types = wp_get_object_terms($post->ID, 'calendar_feed')) { $feed_type = sanitize_title(current($feed_types)->name); } else { $feed_type = apply_filters('simcal_default_feed_type', 'google'); } ?> <label for="_feed_type"><span><?php _e('Event Source', 'google-calendar-events'); ?> </span> <select name="_feed_type" id="_feed_type"> <optgroup label="<?php _ex('Get events from', 'From which calendar source to load events from', 'google-calendar-events'); ?> "> <?php foreach ($feed_options as $feed => $name) { ?> <option value="<?php echo $feed; ?> " <?php selected($feed, $feed_type, true); ?> ><?php echo $name; ?> </option> <?php } ?> </optgroup> </select> </label> <?php } if ($calendar_options) { if ($calendar_types = wp_get_object_terms($post->ID, 'calendar_type')) { $calendar_type = sanitize_title(current($calendar_types)->name); } else { $calendar_type = apply_filters('simcal_default_calendar_type', 'default-calendar'); } ?> <label for="_calendar_type"><span><?php _e('Calendar', 'google-calendar-events'); ?> </span> <select name="_calendar_type" id="_calendar_type"> <optgroup label="<?php _e('Calendar to use', 'google-calendar-events'); ?> "> <?php foreach ($calendar_options as $calendar => $name) { ?> <option value="<?php echo $calendar; ?> " <?php selected($calendar, $calendar_type, true); ?> ><?php echo $name; ?> </option> <?php } ?> </optgroup> </select> </label> <?php if ($calendar_views) { $calendar_view = get_post_meta($post->ID, '_calendar_view', true); foreach ($calendar_views as $calendar => $views) { $calendar_type_view = isset($calendar_view[$calendar]) ? $calendar_view[$calendar] : ''; ?> <label for="_calendar_view_<?php echo $calendar; ?> "><span><?php _e('View', 'google-calendar-events'); ?> </span> <select name="_calendar_view[<?php echo $calendar; ?> ]" id="_calendar_view_<?php echo $calendar; ?> "> <optgroup label="<?php _e('View to display', 'google-calendar-events'); ?> "> <?php foreach ($views as $view => $name) { ?> <option value="<?php echo $view; ?> " <?php selected($view, $calendar_type_view, true); ?> ><?php echo $name; ?> </option> <?php } ?> </optgroup> </select> </label> <?php } } } }
/** * Load scripts and styles. * * @since 3.0.0 */ public function load() { $types = simcal_get_calendar_types(); foreach ($types as $calendar => $views) { foreach ($views as $key => $view) { $view = simcal_get_calendar_view(0, $calendar . '-' . $view); $scripts[] = $view->scripts($this->min); $styles[] = $view->styles($this->min); } } $this->get_widgets_assets(); $this->scripts = apply_filters('simcal_front_end_scripts', $scripts, $this->min); // First check if there is a multi-dimensional array of scripts if (isset($this->scripts[0])) { foreach ($this->scripts as $script) { $this->load_scripts($script); } } else { $this->load_scripts($this->scripts); } $this->styles = apply_filters('simcal_front_end_styles', $styles, $this->min); // First check if there is a multi-dimensional array of styles if (isset($this->styles[0])) { foreach ($this->styles as $style) { $this->load_styles($style); } } else { $this->load_styles($this->styles); } }