function settings_page() { if ($_POST) { $this->set_options(); } $v = $this->get_options(); $data['epl_fields'] = $this->fields; $data['tabs'] = array('general' => epl__('General'), 'registrations' => epl__('Registrations'), 'event-management' => epl__('Event Management'), 'fullcalendar-settings' => epl__('Calendar'), 'api-settings' => epl__('Advanced')); $_field_args = array('section' => $this->fields['epl_general_options'], 'fields_to_display' => array_keys($this->fields['epl_general_options']), 'meta' => array('_view' => 3, 'value' => $v['epl_general_options'])); $data['epl_general_option_fields'] = $this->epl_util->render_fields($_field_args); $data['settings_updated'] = ''; $_field_args = array('section' => $this->fields['epl_registration_options'], 'fields_to_display' => array_keys($this->fields['epl_registration_options']), 'meta' => array('_view' => 3, 'value' => $v['epl_registration_options'])); $data['epl_registration_options'] = $this->epl_util->render_fields($_field_args); $_field_args = array('section' => $this->fields['epl_event_options'], 'fields_to_display' => array_keys($this->fields['epl_event_options']), 'meta' => array('_view' => 3, 'value' => $v['epl_event_options'])); $data['epl_event_options'] = $this->epl_util->render_fields($_field_args); if (apply_filters('epl_enable_feature_override', false)) { $data['tabs']['feature-override'] = epl__('Override'); } if (epl_is_addon_active('ETDFGWETSDFGR')) { $data['tabs']['shopping-cart'] = epl__('Event Cart'); epl_sort_array_by_array($this->fields['epl_sc_options']['epl_sc_primary_regis_forms']['options'], $v['epl_sc_options']['epl_sc_primary_regis_forms']); epl_sort_array_by_array($this->fields['epl_sc_options']['epl_sc_addit_regis_forms']['options'], $v['epl_sc_options']['epl_sc_addit_regis_forms']); epl_sort_array_by_array($this->fields['epl_sc_options']['epl_sc_payment_choices']['options'], $v['epl_sc_options']['epl_sc_payment_choices']); $_field_args = array('section' => $this->fields['epl_sc_options'], 'fields_to_display' => array_keys($this->fields['epl_sc_options']), 'meta' => array('_view' => 3, 'value' => $v['epl_sc_options'])); $data['epl_sc_options'] = $this->epl_util->render_fields($_field_args); } unset($this->fields['epl_fullcalendar_options']['epl_fullcalendar_tax_bcg_color']); unset($this->fields['epl_fullcalendar_options']['epl_fullcalendar_tax_font_color']); $terms = epl_object_to_array(get_terms('epl_event_categories', array('hide_empty' => false))); if (!epl_is_empty_array($terms)) { $vals = epl_get_element('epl_fullcalendar_options', $v, array()); foreach ($terms as $k => $_v) { $_bcg_val = epl_get_element($_v['slug'], epl_get_element('epl_fullcalendar_tax_bcg_color', $vals), '#ffffff'); $_font_val = epl_get_element($_v['slug'], epl_get_element('epl_fullcalendar_tax_font_color', $vals), 'blue'); $_d = array('input_type' => 'text', 'label' => $_v['name'], 'class' => 'epl_w80'); $f = $_d + array('input_name' => 'epl_fullcalendar_tax_bcg_color[' . $_v['slug'] . ']', 'value' => $_bcg_val, 'style' => 'background-color:' . $_bcg_val); $data['_tax_color'][$_v['slug']] = $this->epl_util->create_element($f, 0); $f = $_d + array('input_name' => 'epl_fullcalendar_tax_font_color[' . $_v['slug'] . ']', 'value' => $_font_val, 'style' => 'background-color:' . $_font_val); $data['_font_color'][$_v['slug']] = $this->epl_util->create_element($f, 0); } } $_field_args = array('section' => $this->fields['epl_fullcalendar_options'], 'fields_to_display' => array_keys($this->fields['epl_fullcalendar_options']), 'meta' => array('_view' => 3, 'value' => $v['epl_fullcalendar_options'])); $data['epl_fullcalendar_options'] = $this->epl_util->render_fields($_field_args); if (epl_check_for_it()) { $_field_args = array('section' => $this->fields['epl_api_option_fields'], 'fields_to_display' => array_keys($this->fields['epl_api_option_fields']), 'meta' => array('_view' => 3, 'value' => $v['epl_api_option_fields'])); $data['epl_api_options'] = $this->epl_util->render_fields($_field_args); } $this->epl->load_view('admin/settings/settings-page', $data); }
function epl_term_list($raw = false) { $terms = epl_object_to_array(get_terms('epl_event_categories')); if ($raw) { return $terms; } $_o = array(); $f = array(); foreach ($terms as $k => $v) { $_o[$v['slug']] = $v['name']; } return $_o; }
<?php $legend_location = epl_nz(epl_get_setting('epl_fullcalendar_options', 'epl_fullcalendar_show_legend'), 0); $legend = array(); if ($legend_location != 0) { $legend[$legend_location] = ''; $terms = epl_object_to_array(get_terms('epl_event_categories')); $event_bcg_color = epl_get_setting('epl_fullcalendar_options', 'epl_fullcalendar_tax_bcg_color'); $event_font_color = epl_get_setting('epl_fullcalendar_options', 'epl_fullcalendar_tax_font_color'); foreach ($terms as $term) { $bc = epl_get_element($term['slug'], $event_bcg_color, '#ffffff'); $tc = epl_get_element($term['slug'], $event_font_color, 'blue'); $legend[$legend_location] .= "<span class='epl_fc_legend_cat' style='background-color:{$bc};color:{$tc}'>{$term['name']}</span>"; } $legend[$legend_location] = '<div class="epl_fc_legend">' . $legend[$legend_location] . '</div>'; } ?> <?php echo epl_get_element(1, $legend); ?> <div id='calendar'></div> <?php echo epl_get_element(10, $legend); ?> <script type='text/javascript'>
function the_list_of_active_events($show_date = false) { global $wpdb, $event_details; static $events = array(); if (!empty($events)) { return $events; } $_events = $wpdb->get_results("\n\t\t\tSELECT id, post_title\n\t\t\tFROM {$wpdb->posts} WHERE post_type = 'epl_event' and post_status = 'publish'\n\t\t\tORDER BY post_title ASC\n\t\t", OBJECT_K); $_events = epl_object_to_array($_events); foreach ($_events as $k => $v) { setup_event_details($k); //if(!epl_event_fully_expired()){ $events[$k] = $v['post_title'] . epl_wrap($v['id'], ' (', ') ') . ' - ' . epl_formatted_date(current((array) $event_details['_epl_start_date']), 'D, M d '); //} } return $events; }
function get_discount_used_count($discount_id, $discount_code = null) { global $wpdb; $all_used_from_event = wp_cache_get('get_discount_used_count_all_used_from_event'); $all_used_global = wp_cache_get('get_discount_used_count_all_used_global'); if ($all_used_from_event === false) { $all_used_from_event = $wpdb->get_results("SELECT re.event_id, count(r.ID) as discount_used_count,r.discount_code_id, r.discount_source_id\n FROM {$wpdb->epl_registration} as r\n INNER JOIN {$wpdb->epl_regis_events} re ON r.regis_id = re.regis_id\n WHERE (r.status = 2 OR r.status = 5) \n AND NOT r.discount_code_id = '' \n GROUP BY r.discount_code_id, re.event_id", OBJECT_K); $all_used_global = $wpdb->get_results("SELECT CONCAT_WS('_',r.discount_code_id,r.discount_source_id) as discount_code_id, count(r.ID) as discount_used_count, r.discount_source_id\n FROM {$wpdb->epl_registration} as r\n INNER JOIN {$wpdb->epl_regis_events} re ON r.regis_id = re.regis_id\n WHERE (r.status = 2 OR r.status = 5) \n AND NOT r.discount_code_id = '' \n GROUP BY r.discount_code_id, r.discount_source_id", OBJECT_K); wp_cache_add('get_discount_used_count_all_used_from_event', $all_used_from_event); wp_cache_add('get_discount_used_count_all_used_global', $all_used_global); } $r = 0; if ($all_used_from_event || $all_used_global) { $all_used_from_event = epl_object_to_array($all_used_from_event); if ($this->discount_source == 'e') { if (isset($all_used_from_event[$this->discount_source_id]) && $all_used_from_event[$this->discount_source_id]['discount_code_id'] == $discount_id) { $r = epl_get_element_m('discount_used_count', $this->discount_source_id, $all_used_from_event, 0); } } else { //Using combination $discount_id . '_' . $this->discount_source_id for key to //take care of instances when users duplicate discounts with duplicate post plugin $all_used_global = epl_object_to_array($all_used_global); $r = epl_get_element_m('discount_used_count', $discount_id . '_' . $this->discount_source_id, $all_used_global, 0); } } return $r; }
function get_days_for_widget($for = 0, $args = array()) { //echo "<pre class='prettyprint'>" . __LINE__ . "> " . print_r($args, true). "</pre>"; //$for = 3 = fullcalendar global $wpdb; $defined_widgets = array(0 => 'widget_epl_upcoming_events_widget', 1 => 'widget_epl_advanced_cal_widget'); $defined_widgets = apply_filters('epl_defined_widgets', $defined_widgets); $widget_options = !epl_is_empty_array($args) ? $args : $this->get_widget_options(epl_get_element($for, $defined_widgets)); $c_year = isset($_REQUEST['c_year']) ? (int) $_REQUEST['c_year'] : date_i18n("Y"); $c_month = isset($_REQUEST['c_month']) ? (int) $_REQUEST['c_month'] : date_i18n("m"); $l_d = $this->epl->epl_calendar->get_total_days($c_month, $c_year); $day = 1; $from = "{$c_year}-{$c_month}-01"; $to = "{$c_year}-{$c_month}-{$l_d}"; $exclude_past_events = false; $content_to_show = epl_get_element('content_to_show', $args, 'content'); $num_words_to_show = epl_get_element('num_words_to_show', $args, 60); switch ($for) { case 0: $from = EPL_DATE; $days_to_show = epl_get_element('days_to_show', $widget_options, 60); $content_to_show = epl_get_element('content_to_show', $widget_options, 'content'); $num_words_to_show = epl_get_element('num_words_to_show', $widget_options, 60); $taxonomy = epl_get_element('tax_filter', $widget_options, array()); if (!epl_is_empty_array($taxonomy)) { $args['taxonomy'] = $taxonomy; } //$to = $from . " + $days_to_show days"; $to = $from + $days_to_show * 60 * 60 * 24; break; case 1: $exclude_past_events = epl_get_element('exclude_past_events', $widget_options) == 'on'; break; case 0: case 3: //these will work with ajax method of event retrieval //$from = intval( epl_get_element( 'start', $_REQUEST, null ) ); //$to = intval( epl_get_element( 'end', $_REQUEST, null ) ); $to = "2100-01-01"; //TODO - Urgent, why has this been like this all this time? $exclude_past_events = true; break; } $from = epl_get_date_timestamp($from); $to = epl_get_date_timestamp($to); $qry_args = array('post_type' => 'epl_event', 'post_status' => 'publish', 'posts_per_page' => -1, 'orderby' => 'meta_value_num', 'order' => 'ASC', 'meta_key' => '_q__epl_start_date'); //for the ongoing events if (epl_get_element('show_past', $args) == 1) { //unset( $qry_args['post__in'] ); //unset( $qry_args['p'] ); unset($qry_args['meta_key']); $exclude_past_events = false; } if ($event_id = epl_get_element('event_id', $args, null)) { if (strpos($event_id, ',') !== false) { $qry_args['post__in'] = explode(',', $event_id); } else { $qry_args['p'] = intval(epl_get_element('event_id', $args)); } } else { $WHERE = "AND pm2.meta_key = '_q__epl_start_date' AND CAST(pm2.meta_value AS SIGNED) >= " . $from . "\n AND pm2.meta_key = '_q__epl_start_date' AND CAST(pm2.meta_value AS SIGNED) <= " . $to . ""; if ($exclude_past_events == false && $for > 0) { $WHERE = ''; } $post_ids = $wpdb->get_col("\n SELECT pm.post_id\n FROM {$wpdb->postmeta} pm\n INNER JOIN {$wpdb->postmeta} pm2 ON (pm.post_id = pm2.post_id)\n WHERE\n ((pm.meta_key = '_epl_event_status' AND CAST(pm.meta_value AS SIGNED) = '1' {$WHERE})\n OR\n (pm.meta_key = '_epl_event_status' AND CAST(pm.meta_value AS SIGNED) = '3'))\n GROUP BY pm.post_id\n\n "); $post_ids = $post_ids; $qry_args['post__in'] = $post_ids; } if (epl_get_element('location', $args) != '') { $_l = $args['location']; $qry_args['meta_query'][] = array('key' => '_epl_event_location', 'value' => $_l, 'type' => 'NUMERIC', 'compare' => '='); } if (epl_get_element('org', $args) != '') { $_l = $args['org']; $qry_args['meta_query'][] = array('key' => '_epl_event_organization', 'value' => $_l, 'type' => 'NUMERIC', 'compare' => '='); } $qry_args['tax_query'] = array(); if (($_t = epl_get_element_m('taxonomy', 'shortcode_atts', $args)) == '') { $_t = epl_get_element('taxonomy', $args, ''); } if ($_t != '') { if (!is_array($_t) && strpos($_t, ',') !== false) { $_t = array(); $_t = explode(',', $args['taxonomy']); } $qry_args['tax_query'] = array(array('taxonomy' => 'epl_event_categories', 'field' => 'slug', 'terms' => $_t)); } if (($_te = epl_get_element_m('taxonomy_exclude', 'shortcode_atts', $args, '')) == '') { $_te = epl_get_element('taxonomy_exclude', $args, ''); } if ($_te != '') { if (!is_array($_te) && strpos($_te, ',') !== false) { $_t = array(); $_te = explode(',', $_te); } $qry_args['tax_query'] += array(array('taxonomy' => 'epl_event_categories', 'terms' => $_te, 'field' => 'slug', 'operator' => 'NOT IN')); } /* if ( epl_get_element( 'show_past', $args ) == 1 ) { //unset( $qry_args['post__in'] ); //unset( $qry_args['p'] ); $exclude_past_events = false; } /* elseif ( epl_is_empty_array( $qry_args['post__in'] ) ) { //$meta_query['relation'] = 'AND'; $qry_args['meta_query'][] = array( 'key' => '_epl_event_status', 'value' => 1, 'type' => 'NUMERIC', 'compare' => '=' ); } */ $exclude_event_ids = explode(',', epl_get_element('exclude_event_ids', $args)); global $event_details; $d = array(); $q = new WP_Query($qry_args); $new = true; while ($q->have_posts()) { $q->the_post(); $s = array(); $t = get_the_title(); setup_event_details(get_the_ID()); $e = $event_details['_epl_end_date']; $alt_regis_url = $event_details['_epl_alt_regis_url'] != '' ? 1 : 0; $event_status = $event_details['_epl_event_status']; $event_type = $event_details['_epl_event_type']; $event_rec_frequency = $event_details['_epl_recurrence_frequency']; //if class and upcoming widget or fullcalendar if ($event_type == 10 && ($for == 0 || $for == 3)) { //if there is recurrence formula if ($event_rec_frequency != '0') { $this->rm->hide_past = $exclude_past_events; $s = $this->rm->recurrence_dates_from_db($event_details); $s = $this->rm->construct_table_array($s, true); $e = $s['_epl_end_date']; $s = $s['_epl_start_date']; } elseif (!epl_is_empty_array($event_details['_epl_class_session_date'])) { $s = $event_details['_epl_class_session_date']; } } if (empty($s) || epl_get_element('class_display_type', $widget_options, 2) == 1 && epl_get_element('class_display_type', $args, 0) == 1) { $s = $event_details['_epl_start_date']; } if (epl_is_empty_array($s) || in_array(get_the_ID(), $exclude_event_ids) || $event_status == 2) { continue; } $d = $this->make_cal_day_array(array('event_id' => get_the_ID(), 'event_status' => $event_status, 'event_type' => epl_get_element('_epl_event_type', $event_details), 'start_dates' => $s, 'end_dates' => $e, 'event_times' => array('start' => $event_details['_epl_start_time'], 'end' => $event_details['_epl_end_time']), 'description' => epl_trunc($content_to_show == 'content' ? do_shortcode(get_the_content()) : get_the_excerpt(), $num_words_to_show), 'register_link_type' => $alt_regis_url == 1 ? $alt_regis_url : epl_get_element('_epl_cal_link_destination', $event_details, 0), 'register_link' => epl_get_element('_epl_cal_link_destination', $event_details, 0) == 0 ? $this->get_the_register_button(get_the_ID(), true, array('for' => $for)) : get_permalink(), 'title' => $t, 'current_month' => $c_month, 'from' => $from, 'to' => $to, 'to' => $to, 'exclude_past_events' => $exclude_past_events, 'term_list' => substr(array_reduce((array) epl_object_to_array(get_the_terms(get_the_ID(), 'epl_event_categories')), create_function('$t,$_terms', '$t .= "{$_terms["slug"]},"; return $t;')), 0, -1)), $for, $d); $new = false; //echo "<pre class='prettyprint'>" . __LINE__ . "> " . print_r($d, true). "</pre>"; } wp_reset_query(); ksort($d); $num_events_to_show = epl_get_element('num_events_to_show', $args, ''); if ($num_events_to_show != '' && $for == 0) { $d = array_slice($d, 0, $num_events_to_show); } return $d; }