public function shortcode($args = array(), $content = '') { $original_arguments = $args; $codec = new Eab_Codec_ArgumentsCodec(); $args = $codec->parse_arguments($args, array('format' => 'H:i T l', 'class' => '', 'add' => 0, 'expired' => __('Closed', Eab_EventsHub::TEXT_DOMAIN), 'legacy' => false, 'category' => false, 'categories' => false)); if (!empty($args['legacy'])) { return $this->_legacy_shortcode($original_arguments); } $class = !empty($args['class']) ? 'class="' . sanitize_html_class($args['class']) . '"' : ''; $format = "<div {$class}>%s</div>"; $output = ''; $additional = 0; if (!empty($args['add']) && (int) $args['add']) { $additional = (int) $args['add'] * 60; } $query = $codec->get_query_args($args); $now = eab_current_time() + $additional; $events = Eab_CollectionFactory::get_upcoming_events($now, $query); $ret = array(); foreach ($events as $event) { $ts = $event->get_start_timestamp(); if ($ts < $now) { continue; } $ret[$ts] = $event; } ksort($ret); $next = reset($ret); if ($next) { $output = date_i18n($args['format'], $next->get_start_timestamp()); } else { $output = !empty($args['expired']) ? esc_html($args['expired']) : $content; } return sprintf($format, $output); }
/** * Archive shortcode handler. */ function process_archive_shortcode($args = array(), $content = false) { $args = $this->_preparse_arguments($args, array('network' => false, 'date' => false, 'relative_date' => false, 'lookahead' => false, 'weeks' => false, 'category' => false, 'categories' => false, 'limit' => false, 'order' => false, 'paged' => false, 'page' => 1, 'class' => false, 'template' => 'get_shortcode_archive_output', 'override_styles' => false, 'override_scripts' => false)); if ($args['paged']) { $requested_page = get_query_var('page'); $requested_page = $requested_page ? $requested_page : get_query_var('paged'); $args['page'] = $requested_page ? $requested_page : $args['page']; } $events = array(); if (is_multisite() && $args['network']) { $events = Eab_Network::get_upcoming_events(30); } else { $query = $this->_to_query_args($args); $order_method = $args['order'] ? create_function('', 'return "' . $args['order'] . '";') : false; if ($order_method) { add_filter('eab-collection-date_ordering_direction', $order_method); } // Lookahead - depending on presence, use regular upcoming query, or poll week count if ($args['lookahead']) { $method = $args['weeks'] ? create_function('', 'return ' . $args['weeks'] . ';') : false; if ($method) { add_filter('eab-collection-upcoming_weeks-week_number', $method); } $events = Eab_CollectionFactory::get_upcoming_weeks_events($args['date'], $query); if ($method) { remove_filter('eab-collection-upcoming_weeks-week_number', $method); } } else { // No lookahead, get the full month only $events = Eab_CollectionFactory::get_upcoming_events($args['date'], $query); } if ($order_method) { remove_filter('eab-collection-date_ordering_direction', $order_method); } } $output = Eab_Template::util_apply_shortcode_template($events, $args); if ($output) { if ($args['paged'] && !(is_multisite() && $args['network'])) { if ($method) { add_filter('eab-collection-upcoming_weeks-week_number', $method); } $events_query = $args['lookahead'] ? Eab_CollectionFactory::get_upcoming_weeks($args['date'], $query) : Eab_CollectionFactory::get_upcoming($args['date'], $query); if ($method) { remove_filter('eab-collection-upcoming_weeks-week_number', $method); } $output .= eab_call_template('get_shortcode_paging', $events_query, $args); } } else { $output = $content; } if (!$args['override_styles']) { wp_enqueue_style('eab_front'); } if (!$args['override_scripts']) { wp_enqueue_script('eab_event_js'); do_action('eab-javascript-do_enqueue_api_scripts'); } return $output; }
<?php global $booking, $wpdb, $wp_query; $now = current_time('timestamp'); $year = isset($wp_query->query_vars['event_year']) ? $wp_query->query_vars['event_year'] : date('Y', $now); $year = $year ? $year : date_i18n('Y'); // date_i18n uses current_time when called like this $month = isset($wp_query->query_vars['event_monthnum']) ? $wp_query->query_vars['event_monthnum'] : date('m', $now); $month = $month ? $month : date_i18n('m'); $time = strtotime("{$year}-{$month}-01"); $events = defined('EAB_CALENDAR_ARCHIVE_TEMPLATE_USE_CUSTOM_QUERY') && EAB_CALENDAR_ARCHIVE_TEMPLATE_USE_CUSTOM_QUERY ? Eab_CollectionFactory::get_upcoming_events($time) : $wp_query->posts; get_header('event'); ?> <div id="primary"> <div id="wpmudevevents-wrapper"> <h2><?php echo sprintf(__('Events for %s', Eab_EventsHub::TEXT_DOMAIN), date_i18n("F Y", $time)); ?> </h2> <div class="wpmudevevents-list"> <?php if (!class_exists('Eab_CalendarTable_EventArchiveCalendar')) { require_once EAB_PLUGIN_DIR . 'lib/class_eab_calendar_helper.php'; } $renderer = new Eab_CalendarTable_EventArchiveCalendar($wp_query->posts); echo $renderer->get_month_calendar($time); ?> <div class="event-pagination"> <?php $prev = $time - 28 * 86400;
function show_settings() { $tips = new WpmuDev_HelpTooltips(); $tips->set_icon_url(plugins_url('events-and-bookings/img/information.png')); $from = $this->_data->get_option('eab_rsvps-email-from'); $from = $from ? $from : get_option('admin_email'); $subject = $this->_data->get_option('eab_rsvps-email-subject'); $body = $this->_data->get_option('eab_rsvps-email-body'); $codec = new Eab_Events_RsvpEmail_Codec(); $macros = join('</code>, <code>', $codec->get_macros()); $events = Eab_CollectionFactory::get_upcoming_events(eab_current_time(), array('posts_per_page' => 10)); ?> <div id="eab-settings-eab_rsvps_email" class="eab-metabox postbox"> <h3 class="eab-hndle"><?php _e('RSVP Email settings', Eab_EventsHub::TEXT_DOMAIN); ?> </h3> <div class="eab-inside"> <div class="eab-settings-settings_item"> <label for="eab_event-eab_rsvps-from"><?php _e('From email address', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(__('This is the address the RSVP email will be sent from', Eab_EventsHub::TEXT_DOMAIN)); ?> </span> <input type="text" id="eab_event-eab_rsvps-from" name="eab_rsvps[email-from]" value="<?php esc_attr_e($from); ?> " /> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_rsvps-subject"><?php _e('Email subject', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(sprintf(__('This is your email subject. You can use these macros: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros)); ?> </span> <input type="text" class="widefat" id="eab_event-eab_rsvps-subject" name="eab_rsvps[email-subject]" value="<?php esc_attr_e($subject); ?> " /> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_rsvps-body"><?php _e('Email body', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(sprintf(__('This is your email body. You can use these macros: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros)); ?> </span> <?php wp_editor($body, 'eab_rsvps-email-body', array('name' => 'eab_rsvps-email-body')); ?> </div> <div class="eab-settings-settings_item"><small><?php printf(__('You can use these macros in your subject and body: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros); ?> </small></div> <?php if ($events) { ?> <div class="eab-settings-settings_item"> <input type="button" class="button" id="eab_event-eab_rsvps-preview" value="<?php esc_attr_e(__('Preview', Eab_EventsHub::TEXT_DOMAIN)); ?> " /> <?php _e('using this event data:', Eab_EventsHub::TEXT_DOMAIN); ?> <select id="eab_event-eab_rsvps-events"> <?php foreach ($events as $event) { ?> <option value="<?php esc_attr_e($event->get_id()); ?> "><?php echo $event->get_title(); ?> </option> <?php } ?> </select> <div id="eab_event-eab_rsvp-email_preview_container" style="line-height: 1.2em"></div> </div> <?php } ?> </div> </div> <script type="text/javascript"> (function ($) { $(function () { var $container = $("#eab_event-eab_rsvp-email_preview_container"), $subject = $("#eab_event-eab_rsvps-subject"), $events = $("#eab_event-eab_rsvps-events") ; $("#eab_event-eab_rsvps-preview").on("click", function () { var body_string = (tinyMCE && tinyMCE.activeEditor ? tinyMCE.activeEditor.getContent() : $("#eab_rsvps-email-body").val() ); $container.html('<?php echo esc_js(__("Please, hold on... ", Eab_EventsHub::TEXT_DOMAIN)); ?> '); $.post(ajaxurl, { "action": "eab_rsvp_email-preview_email", "subject": $subject.val(), "body": body_string, "event_id": $events.val() }, function (data) { $container.html(data); }, 'html'); }); }) })(jQuery); </script> <?php }
private function _render_calendar($date, $network = false, $category = array()) { $args = array(); $category_class = false; if (!empty($category)) { $args['tax_query'] = array('relation' => 'OR'); foreach ($category as $cat) { if (!$cat) { continue; } $args['tax_query'][] = array('taxonomy' => 'eab_events_category', 'field' => 'id', 'terms' => $cat); } if (1 === count($category)) { $term = get_term_by('id', $category[0], 'eab_events_category'); $category_class = !empty($term->slug) ? $term->slug : false; } } $events = $network ? Eab_Network::get_upcoming_events(10) : Eab_CollectionFactory::get_upcoming_events($date, $args); if (!class_exists('Eab_CalendarTable_UpcomingCalendarWidget')) { require_once EAB_PLUGIN_DIR . 'lib/class_eab_calendar_helper.php'; } $renderer = new Eab_CalendarTable_UpcomingCalendarWidget($events); $renderer->set_class($category_class); return $renderer->get_month_calendar($date); }
function show_settings() { $tips = new WpmuDev_HelpTooltips(); $tips->set_icon_url(plugins_url('events-and-bookings/img/information.png')); $from = $this->_data->get_option('eab_cancelations-email-from'); $from = $from ? $from : get_option('admin_email'); $subject = trim($this->_data->get_option('eab_cancelations-email-subject')); $subject = !empty($subject) ? $subject : $this->_default_subject; $body = trim($this->_data->get_option('eab_cancelations-email-body')); $body = !empty($body) ? $body : $this->_default_message; $codec = new Eab_Macro_Codec(); $macros = join('</code>, <code>', $codec->get_macros()); $events = Eab_CollectionFactory::get_upcoming_events(eab_current_time(), array('posts_per_page' => 10)); ?> <div id="eab-settings-eab_cancelations" class="eab-metabox postbox"> <h3 class="eab-hndle"><?php _e('Event cancellation settings', Eab_EventsHub::TEXT_DOMAIN); ?> </h3> <div class="eab-inside"> <div class="eab-settings-settings_item"> <label for="eab_cancellations-hide_events"><?php _e('Hide cancelled events', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <input type="hidden" name="eab_cancelations[hide_events]" value="" /> <input type="checkbox" name="eab_cancelations[hide_events]" id="eab_cancellations-hide_events" value="1" <?php checked(true, $this->_data->get_option('eab_cancelations-hide_events')); ?> /> </div> <div class="eab-settings-settings_item"> <label for="eab_cancellations-email_batch_limit"><?php _e('Email batch limit', Eab_EventsHub::TEXT_DOMAIN); ?> :</label> <span><?php echo $tips->add_tip(__('This is the maximum number of emails that will be sent in one go. The rest will be scheduled for sending.', Eab_EventsHub::TEXT_DOMAIN)); ?> </span> <input type="text" name="eab_cancelations[email_batch_limit]" id="eab_cancellations-email_batch_limit" value="<?php echo (int) $this->_get_email_batch_limit(); ?> " /> </div> <div class="eab-note"> <?php _e('This is the email that will be sent to your attendees on event cancellation.', Eab_EventsHub::TEXT_DOMAIN); ?> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_cancelations-from"><?php _e('From email address', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(__('This is the address the cancellation email will be sent from', Eab_EventsHub::TEXT_DOMAIN)); ?> </span> <input type="text" id="eab_event-eab_cancelations-from" name="eab_cancelations[email-from]" value="<?php esc_attr_e($from); ?> " /> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_cancelations-subject"><?php _e('Email subject', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(sprintf(__('This is your email subject. You can use these macros: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros)); ?> </span> <input type="text" class="widefat" id="eab_event-eab_cancelations-subject" name="eab_cancelations[email-subject]" value="<?php esc_attr_e($subject); ?> " /> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_cancelations-body"><?php _e('Email body', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(sprintf(__('This is your email body. You can use these macros: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros)); ?> </span> <?php wp_editor($body, 'eab_cancelations-email-body', array('name' => 'eab_cancelations-email-body')); ?> </div> <div class="eab-settings-settings_item"><small><?php printf(__('You can use these macros in your subject and body: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros); ?> </small></div> <?php if ($events) { ?> <div class="eab-settings-settings_item"> <input type="button" class="button" id="eab_event-eab_cancelations-preview" value="<?php esc_attr_e(__('Preview', Eab_EventsHub::TEXT_DOMAIN)); ?> " /> <?php _e('using this event data:', Eab_EventsHub::TEXT_DOMAIN); ?> <select id="eab_event-eab_cancelations-events"> <?php foreach ($events as $event) { ?> <option value="<?php esc_attr_e($event->get_id()); ?> "><?php echo $event->get_title(); ?> </option> <?php } ?> </select> <div id="eab_event-eab_cancelations-email_preview_container" style="line-height: 1.2em"></div> </div> <?php } ?> </div> </div> <script type="text/javascript"> (function ($) { $(function () { var $container = $("#eab_event-eab_cancelations-email_preview_container"), $subject = $("#eab_event-eab_cancelations-subject"), $events = $("#eab_event-eab_cancelations-events") ; $("#eab_event-eab_cancelations-preview").on("click", function () { var editor = tinyMCE.get("eab_cancelations-email-body") body_string = (tinyMCE && tinyMCE.activeEditor && tinyMCE.activeEditor.editorId == editor.editorId ? tinyMCE.activeEditor.getContent() : $("#eab_cancelations-email-body").val() ); $container.html('<?php echo esc_js(__("Please, hold on... ", Eab_EventsHub::TEXT_DOMAIN)); ?> '); $.post(ajaxurl, { "action": "eab_cancellation_email-preview_email", "subject": $subject.val(), "body": body_string, "event_id": $events.val() }, function (data) { $container.html(data); }, 'html'); }); }) })(jQuery); </script> <?php }
function show_settings() { $tips = new WpmuDev_HelpTooltips(); $tips->set_icon_url(plugins_url('events-and-bookings/img/information.png')); $positive_rsvp = $this->_data->get_option('eab_rsvps-email_me-positive_rsvp') ? 'checked="checked"' : ''; $paid_rsvp = $this->_data->get_option('eab_rsvps-email_me-paid_rsvp') ? 'checked="checked"' : ''; $notify_admin = $this->_data->get_option('eab_rsvps-email_me-notify_admin') ? 'checked="checked"' : ''; $notify_author = $this->_data->get_option('eab_rsvps-email_me-notify_author') ? 'checked="checked"' : ''; $subject = $this->_data->get_option('eab_rsvps-email_me-subject'); $body = $this->_data->get_option('eab_rsvps-email_me-body'); $codec = new Eab_Events_RsvpEmailMe_Codec(); $macros = join('</code>, <code>', $codec->get_macros()); $events = Eab_CollectionFactory::get_upcoming_events(eab_current_time(), array('posts_per_page' => 10)); ?> <div id="eab-settings-eab_rsvps_me" class="eab-metabox postbox"> <h3 class="eab-hndle"><?php _e('RSVP Notification Email settings', Eab_EventsHub::TEXT_DOMAIN); ?> </h3> <div class="eab-inside"> <div class="eab-settings-settings_item"> <label><?php _e('Send an update', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <br /> <label for="eab_event-eab_rsvps-me-positive_rsvp" style="display:block; line-height:1.8em"> <input type="hidden" name="eab_rsvps_me[email-positive_rsvp]" value="" /> <input type="checkbox" id="eab_event-eab_rsvps-me-positive_rsvp" name="eab_rsvps_me[email-positive_rsvp]" value="1" <?php echo $positive_rsvp; ?> /> <?php _e('On all positive RSVPs', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <label for="eab_event-eab_rsvps-me-paid_rsvp" style="display:block; line-height:1.8em"> <input type="hidden" name="eab_rsvps_me[email-paid_rsvp]" value="" /> <input type="checkbox" id="eab_event-eab_rsvps-me-paid_rsvp" name="eab_rsvps_me[email-paid_rsvp]" value="1" <?php echo $paid_rsvp; ?> /> <?php _e('When user pays for a paid event', Eab_EventsHub::TEXT_DOMAIN); ?> </label> </div> <div class="eab-settings-settings_item"> <label><?php _e('Notify', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <br /> <label for="eab_event-eab_rsvps-me-notify_admin" style="display:block; line-height:1.8em"> <input type="hidden" name="eab_rsvps_me[email-notify_admin]" value="" /> <input type="checkbox" id="eab_event-eab_rsvps-me-notify_admin" name="eab_rsvps_me[email-notify_admin]" value="1" <?php echo $notify_admin; ?> /> <?php _e('Site administrator', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <label for="eab_event-eab_rsvps-me-notify_author" style="display:block; line-height:1.8em"> <input type="hidden" name="eab_rsvps_me[email-notify_author]" value="" /> <input type="checkbox" id="eab_event-eab_rsvps-me-notify_author" name="eab_rsvps_me[email-notify_author]" value="1" <?php echo $notify_author; ?> /> <?php _e('Event author', Eab_EventsHub::TEXT_DOMAIN); ?> </label> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_rsvps-me-subject"><?php _e('Email subject', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(sprintf(__('This is your email subject. You can use these macros: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros)); ?> </span> <input type="text" class="widefat" id="eab_event-eab_rsvps-me-subject" name="eab_rsvps_me[email-subject]" value="<?php esc_attr_e($subject); ?> " /> </div> <div class="eab-settings-settings_item"> <label for="eab_event-eab_rsvps-me-body"><?php _e('Email body', Eab_EventsHub::TEXT_DOMAIN); ?> </label> <span><?php echo $tips->add_tip(sprintf(__('This is your email body. You can use these macros: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros)); ?> </span> <?php wp_editor($body, 'eab_rsvps-email_me-body', array('name' => 'eab_rsvps_me-email_me-body')); ?> </div> <div class="eab-settings-settings_item"><small><?php printf(__('You can use these macros in your subject and body: <code>%s</code>', Eab_EventsHub::TEXT_DOMAIN), $macros); ?> </small></div> <?php if ($events) { ?> <div class="eab-settings-settings_item"> <input type="button" class="button" id="eab_event-eab_rsvps-me-preview" value="<?php esc_attr_e(__('Preview', Eab_EventsHub::TEXT_DOMAIN)); ?> " /> <?php _e('using this event data:', Eab_EventsHub::TEXT_DOMAIN); ?> <select id="eab_event-eab_rsvps-me-events"> <?php foreach ($events as $event) { ?> <option value="<?php esc_attr_e($event->get_id()); ?> "><?php echo $event->get_title(); ?> </option> <?php } ?> </select> <div id="eab_event-eab_rsvp_me-email_preview_container" style="line-height: 1.2em"></div> </div> <?php } ?> </div> </div> <script type="text/javascript"> (function ($) { $(function () { var $container = $("#eab_event-eab_rsvp_me-email_preview_container"), $subject = $("#eab_event-eab_rsvps-me-subject"), $events = $("#eab_event-eab_rsvps-me-events") ; $("#eab_event-eab_rsvps-me-preview").on("click", function () { var body_string = (tinyMCE && tinyMCE.activeEditor ? tinyMCE.activeEditor.getContent() : $("#eab_rsvps_me-email_me-body").val() ); $container.html('<?php echo esc_js(__("Please, hold on... ", Eab_EventsHub::TEXT_DOMAIN)); ?> '); $.post(ajaxurl, { "action": "eab_rsvp_email_me-preview_email", "subject": $subject.val(), "body": body_string, "event_id": $events.val() }, function (data) { $container.html(data); }, 'html'); }); }) })(jQuery); </script> <?php }