/** GENERATE individual event data */ public function generate_event_data($event_list_array, $focus_month_beg_range = '', $FOCUS_month_int = '', $FOCUS_year_int = '') { $months_event_array = ''; // Initial variables $wp_time_format = get_option('time_format'); $default_event_color = !empty($this->evopt1['evcal_hexcode']) ? '#' . $this->evopt1['evcal_hexcode'] : '#206177'; $__shortC_arg = $this->shortcode_args; // user interavtion for the calendar $calendar_ux_val = !empty($__shortC_arg['ux_val']) ? $__shortC_arg['ux_val'] : '0'; $__count = 0; // EVENT CARD open by default variables $_is_eventCardOpen = !empty($__shortC_arg['evc_open']) && $__shortC_arg['evc_open'] == 'yes' ? true : ($this->is_eventcard_open ? true : false); $eventcard_script_class = $_is_eventCardOpen ? "gmaponload" : null; $this->is_eventcard_open = false; // check featured events are prioritized $__feature_events = !empty($__shortC_arg['ft_event_priority']) && $__shortC_arg['ft_event_priority'] != 'no' ? true : false; // GET EventTop fields - v2.1.17 $eventop_fields = !empty($this->evopt1['evcal_top_fields']) ? $this->evopt1['evcal_top_fields'] : null; // Number of activated taxnomonies v 2.2.15 $_active_tax = evo_get_ett_count($this->evopt1); // eventCARD HTML require_once AJDE_EVCAL_PATH . '/includes/eventon_eventCard.php'; require_once AJDE_EVCAL_PATH . '/includes/eventon-eventTop.php'; // check if single event exist $_sin_ev_ex = in_array('eventon-single-event/eventon-single-event.php', get_option('active_plugins')) ? true : false; // EACH EVENT if (is_array($event_list_array)) { foreach ($event_list_array as $event_) { // Intials $html_event_detail_card = ''; $_eventClasses = $_eventInClasses = array(); $_eventAttr = $_eventInAttr = array(); $__count++; $event_id = $event_['event_id']; $event_start_unix = $event_['event_start_unix']; $event_end_unix = $event_['event_end_unix']; $event_type = $event_['event_type']; $ev_vals = $event_['event_pmv']; $event = get_post($event_id); $_eventInClasses[] = $eventcard_script_class; // set how a single event would interact $event_ux_val = !empty($ev_vals['_evcal_exlink_option']) ? $ev_vals['_evcal_exlink_option'][0] : 1; $event_permalink = get_permalink($event_id); $event_ux_val = $calendar_ux_val != '1' ? $calendar_ux_val : $event_ux_val; // whether eventcard elements need to be included or not $_event_card_on = $calendar_ux_val == '4' || $calendar_ux_val == 'X' || $event_ux_val == '4' || $event_ux_val == '2' ? false : true; $_event_card_on = $_is_eventCardOpen ? true : $_event_card_on; // if event card is forced to open then $html_tag = $event_ux_val == '1' ? 'div' : 'a'; $html_tag = $_event_card_on ? 'a' : $html_tag; //echo ($_is_eventCardOpen?3:4). ' '.($_event_card_on?3:4). ' '.$calendar_ux_val.' '.$event_ux_val; // year long or not $__year_long_event = !empty($ev_vals['evo_year_long']) && $ev_vals['evo_year_long'][0] == 'yes' ? true : 0; // define variables $ev_other_data = $ev_other_data_top = $html_event_type_info = $_event_date_HTML = $_eventcard = $html_event_type_2_info = ''; $_is_end_date = true; // UNIX date values $DATE_start_val = eventon_get_formatted_time($event_start_unix); if (empty($event_end_unix)) { $_is_end_date = false; $DATE_end_val = $DATE_start_val; } else { $DATE_end_val = eventon_get_formatted_time($event_end_unix); } // if this event featured $_eventInClasses['__featured'] = $this->helper->evo_meta('_featured', $ev_vals, 'tf'); $_eventInClasses['_cancel'] = $this->helper->evo_meta('_cancel', $ev_vals, 'tf'); // GET: repeat interval for this event $__repeatInterval = !empty($event_['event_repeat_interval']) ? $event_['event_repeat_interval'] : (!empty($_GET['ri']) ? $_GET['ri'] : 0); // Unique ID generation $unique_varied_id = 'evc' . $event_start_unix . uniqid() . $event_id; $unique_id = 'evc_' . $event_start_unix . $event_id; // All day event variables $_is_allday = $this->helper->evo_meta('evcal_allday', $ev_vals, 'tf'); $_hide_endtime = $this->helper->evo_meta('evo_hide_endtime', $ev_vals, 'tf'); $evcal_lang_allday = $this->lang('evcal_lang_allday', 'All Day'); /* evo_hide_endtime NOTE: if its set to hide end time, meaning end time and date would be empty on wp-admin, which will fall into same start end month category. */ $_event_date_HTML = $this->generate_time_($DATE_start_val, $DATE_end_val, $ev_vals, $evcal_lang_allday, $focus_month_beg_range, $FOCUS_month_int, $event_start_unix, $event_end_unix); // (---) hook for addons $_event_date_HTML = apply_filters('eventon_eventcard_date_html', $_event_date_HTML, $event_id); // EACH DATA FIELD // EVENT FEATURES IMAGE $img_id = get_post_thumbnail_id($event_id); $img_med_src = $img_thumb_src = ''; if ($img_id != '') { $img_src = wp_get_attachment_image_src($img_id, 'full'); $img_med_src = wp_get_attachment_image_src($img_id, 'medium'); $img_thumb_src = wp_get_attachment_image_src($img_id, 'thumbnail'); // append to eventcard array $_eventcard['ftimage'] = array('img' => $img_src, 'hovereffect' => !empty($this->evopt1['evo_ftimghover']) ? $this->evopt1['evo_ftimghover'] : null, 'clickeffect' => !empty($this->evopt1['evo_ftimgclick']) ? $this->evopt1['evo_ftimgclick'] : null, 'min_height' => !empty($this->evopt1['evo_ftimgheight']) ? $this->evopt1['evo_ftimgheight'] : 400, 'ftimg_sty' => !empty($this->evopt1['evo_ftimg_height_sty']) ? $this->evopt1['evo_ftimg_height_sty'] : 'minimized'); } // EVENT DESCRIPTION $evcal_event_content = $event->post_content; if (!empty($evcal_event_content)) { $event_full_description = $evcal_event_content; } else { // event description compatibility from older versions. $event_full_description = !empty($ev_vals['evcal_description']) ? $ev_vals['evcal_description'][0] : null; } if (!empty($event_full_description)) { $except = $event->post_excerpt; $event_excerpt = eventon_get_event_excerpt($event_full_description, 30, $except); $_eventcard['eventdetails'] = array('fulltext' => $event_full_description, 'excerpt' => $event_excerpt); } // EVENT LOCATION $lonlat = !empty($ev_vals['evcal_lat']) && !empty($ev_vals['evcal_lon']) ? 'data-latlng="' . $ev_vals['evcal_lat'][0] . ',' . $ev_vals['evcal_lon'][0] . '" ' : null; $__location = $this->helper->evo_meta('evcal_location', $ev_vals, 'null'); // location name $__location_name = stripslashes(evo_meta($ev_vals, 'evcal_location_name')); $_eventcard['timelocation'] = array('timetext' => $_event_date_HTML['html_prettytime'], 'location' => $__location, 'location_name' => $__location_name, 'timezone' => !empty($ev_vals['evo_event_timezone']) ? $ev_vals['evo_event_timezone'][0] : null); // Location Image $loc_img_id = $this->helper->evo_meta('evo_loc_img', $ev_vals, 'null'); if (!empty($loc_img_id)) { $_eventcard['locImg'] = array('id' => $loc_img_id, 'fullheight' => !empty($this->evopt1['evo_locimgheight']) ? $this->evopt1['evo_locimgheight'] : 400); // location name and address if (evo_check_yn($ev_vals, 'evcal_name_over_img') && !empty($__location_name)) { $_eventcard['locImg']['locName'] = $__location_name; if (!empty($__location)) { $_eventcard['locImg']['locAdd'] = $__location; } } } // GOOGLE maps if ($this->google_maps_load && ($__location || !empty($lonlat)) && (!empty($ev_vals['evcal_gmap_gen']) && $ev_vals['evcal_gmap_gen'][0] == 'yes')) { $_eventcard['gmap'] = array('id' => $unique_varied_id); // GET directions if ($this->evopt1['evo_getdir'] == 'yes' && !empty($ev_vals['evcal_location'])) { $_eventcard['getdirection'] = array('fromaddress' => $ev_vals['evcal_location'][0]); } } else { $_eventInAttr['data-gmap_status'] = 'null'; } // EVENT BRITE // check if eventbrite actually used in this event if ($_event_card_on && !empty($ev_vals['evcal_eventb_data_set']) && $ev_vals['evcal_eventb_data_set'][0] == 'yes') { // Event brite capacity if (!empty($ev_vals['evcal_eventb_tprice']) && !empty($ev_vals['evcal_eventb_url'])) { $_eventcard['eventbrite'] = array('capacity' => !empty($ev_vals['evcal_eventb_capacity']) ? $ev_vals['evcal_eventb_capacity'][0] : null, 'tix_price' => $ev_vals['evcal_eventb_tprice'][0], 'url' => $ev_vals['evcal_eventb_url'][0]); } } // PAYPAL Code if (!empty($ev_vals['evcal_paypal_item_price'][0]) && $this->evopt1['evcal_paypal_pay'] == 'yes') { $_eventcard['paypal'] = array('title' => $event->post_title, 'price' => $ev_vals['evcal_paypal_item_price'][0], 'text' => !empty($ev_vals['evcal_paypal_text']) ? $ev_vals['evcal_paypal_text'][0] : null); } // Event Organizer if (!empty($ev_vals['evcal_organizer']) && (!empty($ev_vals['evo_evcrd_field_org']) && $ev_vals['evo_evcrd_field_org'][0] != 'yes')) { $_eventcard['organizer'] = array('value' => $ev_vals['evcal_organizer'][0], 'contact' => !empty($ev_vals['evcal_org_contact']) ? $ev_vals['evcal_org_contact'][0] : null, 'imgid' => !empty($ev_vals['evo_org_img']) ? $ev_vals['evo_org_img'][0] : null); } // Custom fields $_cmf_count = evo_retrieve_cmd_count($this->evopt1); for ($x = 1; $x < $_cmf_count + 1; $x++) { if (!empty($this->evopt1['evcal_ec_f' . $x . 'a1']) && !empty($this->evopt1['evcal__fai_00c' . $x]) && !empty($ev_vals["_evcal_ec_f" . $x . "a1_cus"])) { // check if hide this from eventCard set to yes if (empty($this->evopt1['evcal_ec_f' . $x . 'a3']) || $this->evopt1['evcal_ec_f' . $x . 'a3'] == 'no') { $faicon = $this->evopt1['evcal__fai_00c' . $x]; $_eventcard['customfield' . $x] = array('imgurl' => $faicon, 'x' => $x, 'value' => $ev_vals["_evcal_ec_f" . $x . "a1_cus"][0], 'valueL' => !empty($ev_vals["_evcal_ec_f" . $x . "a1_cusL"]) ? $ev_vals["_evcal_ec_f" . $x . "a1_cusL"][0] : null, '_target' => !empty($ev_vals["_evcal_ec_f" . $x . "_onw"]) ? $ev_vals["_evcal_ec_f" . $x . "_onw"][0] : null, 'type' => $this->evopt1['evcal_ec_f' . $x . 'a2']); } } } // LEARN MORE and ICS if (!empty($ev_vals['evcal_lmlink']) || !empty($this->evopt1['evo_ics']) && $this->evopt1['evo_ics'] == 'yes') { $_eventcard['learnmoreICS'] = array('event_id' => $event_id, 'learnmorelink' => !empty($ev_vals['evcal_lmlink']) ? $ev_vals['evcal_lmlink'][0] : null, 'learnmore_target' => !empty($ev_vals['evcal_lmlink_target']) && $ev_vals['evcal_lmlink_target'][0] == 'yes' ? 'target="_blank"' : null, 'estart' => $event_start_unix, 'eend' => $event_end_unix, 'etitle' => $event->post_title, 'evals' => $ev_vals); } // ======================= /** CONSTRUCT the EVENT CARD **/ if ($_event_card_on && !empty($_eventcard) && count($_eventcard) > 0) { // filter hook for eventcard content array - updated 2.2.20 $_eventcard = apply_filters('eventon_eventcard_array', $_eventcard, $ev_vals, $event_id, $__repeatInterval); // if an order is set reorder things if (!empty($this->evopt1['evoCard_order'])) { $_eventcard = $this->helper->eventcard_sort($_eventcard, $this->evopt1); } ob_start(); echo "<div class='event_description evcal_eventcard " . ($_is_eventCardOpen ? 'open' : null) . "' " . ($_is_eventCardOpen ? 'style="display:block"' : 'style="display:none"') . ">"; echo eventon_eventcard_print($_eventcard, $this->evopt1, $this->evopt2); // (---) hook for addons do_action('eventon_eventcard_additions', $event_id, $this->__calendar_type, $event->post_title, $event_full_description, $img_thumb_src, $__repeatInterval); echo "</div>"; $html_event_detail_card = ob_get_clean(); } /** Trigger attributes **/ $event_description_trigger = "desc_trig"; $_eventInAttr['data-gmtrig'] = !empty($ev_vals['evcal_gmap_gen']) && $ev_vals['evcal_gmap_gen'][0] == 'yes' ? '1' : '0'; // Generate tax terms for event top $html_event_type_tax_ar = array(); $_tax_names_array = evo_get_localized_ettNames('', $this->evopt1, $this->evopt2); //$_tax_names_array = evo_get_ettNames($this->evopt1); //print_r($_tax_names_array); $evcal_terms_ = ''; if (!empty($eventop_fields)) { // foreach active tax for ($b = 1; $b <= $_active_tax; $b++) { $__tx_content = ''; $__tax_slug = 'event_type' . ($b == 1 ? '' : '_' . $b); $__tax_fields = 'eventtype' . ($b == 1 ? '' : $b); // for override evc colors if ($b == 1) { $evcal_terms_ = wp_get_post_terms($event_id, $__tax_slug); } if (in_array($__tax_fields, $eventop_fields)) { $evcal_terms = !empty($evcal_terms_) && $b == 1 ? $evcal_terms_ : wp_get_post_terms($event_id, $__tax_slug); if ($evcal_terms) { $__tax_name = $_tax_names_array[$b]; $__tx_content .= "<span class='evcal_event_types ett{$b}'><em><i>" . $__tax_name . ":</i></em>"; $i = 1; foreach ($evcal_terms as $termA) { // get translated tax term name $term_name = $this->lang('evolang_' . $__tax_slug . '_' . $termA->term_id, $termA->name); // tax term slug as class name $_eventInClasses[] = 'evo_' . $termA->slug; $__tx_content .= "<em data-filter='{$__tax_slug}'>" . $term_name . (count($evcal_terms) != $i ? ',' : '') . "</em>"; $i++; } $__tx_content .= "<i class='clear'></i></span>"; $html_event_type_tax_ar[$b] = $__tx_content; } } } } $_html_tax_content = count($html_event_type_tax_ar) > 0 ? implode('', $html_event_type_tax_ar) : null; // event color $event_color = eventon_get_hex_color($ev_vals, $default_event_color); // override event colors if (!empty($__shortC_arg['etc_override']) && $__shortC_arg['etc_override'] == 'yes' && !empty($evcal_terms_)) { $ev_id = $evcal_terms_[0]->term_id; $ev_color = get_option("evo_et_taxonomy_{$ev_id}"); $event_color = !empty($ev_color['et_color']) ? $ev_color['et_color'] : $event_color; // remove additional '#' in the hex code $event_color = '#' . str_replace('#', '', $event_color); } // if UX to be open in new window then use link to single event or that link $link_append = array(); $_link_text = ''; if (!empty($__shortC_arg['lang']) && $__shortC_arg['lang'] != 'L1') { $link_append['l'] = $__shortC_arg['lang']; } // append repeat interval value to event link $link_append['ri'] = $__repeatInterval; if (!empty($link_append)) { foreach ($link_append as $lp => $lpk) { if ($lp == 'ri' && $lpk == '0') { continue; } $_link_text .= $lp . '=' . $lpk . '&'; } } // passing URL variables values $_link_text_append = strpos($event_permalink, '?') === false ? '?' : '&'; $_link_text = !empty($_link_text) ? $_link_text_append . $_link_text : null; $_eventInAttr['rest'][] = !empty($ev_vals['evcal_exlink']) && $event_ux_val != '1' ? 'data-exlk="1" href="' . $ev_vals['evcal_exlink'][0] . $_link_text . '"' : 'data-exlk="0"'; // target $_eventInAttr['rest'][] = !empty($ev_vals['_evcal_exlink_target']) && $ev_vals['_evcal_exlink_target'][0] == 'yes' ? 'target="_blank"' : null; // EVENT LOCATION if (evo_location_exists($ev_vals)) { $location_address = !empty($ev_vals['evcal_location']) ? $ev_vals['evcal_location'][0] : null; // location as LON LAT $event_location_variables = (!empty($lonlat) ? $lonlat : null) . ' data-location_address="' . $location_address . '" '; // conditional schema data for event if (!empty($this->evopt1['evo_schema']) && $this->evopt1['evo_schema'] == 'yes') { $__scheme_data_location = ''; } else { $__scheme_data_location = ' <item style="display:none" itemprop="location" itemscope itemtype="http://schema.org/Place"> ' . (!empty($__location_name) ? '<span itemprop="name">' . $__location_name . '</span>' : '') . ' <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> <item itemprop="streetAddress">' . $location_address . '</item> </span> </item>'; } $ev_location = !empty($location_address) ? '<em class="evcal_location" ' . (!empty($lonlat) ? $lonlat : null) . ' data-add_str="' . $location_address . '">' . $location_address . '</em>' : null; // location type $event_location_variables .= !empty($lonlat) ? 'data-location_type="lonlat"' : 'data-location_type="address"'; // location name $event_location_variables .= !empty($ev_vals['evcal_location_name']) ? ' data-location_name="' . $ev_vals['evcal_location_name'][0] . '"' : null; // location status $event_location_variables .= ' data-location_status="true"'; } else { // location status $ev_location = $event_location_variables = $__scheme_data_location = null; $event_location_variables .= ' data-location_status="false"'; } // EVENT tags $_event_tags = wp_get_post_tags($event_id); // EVENT TOP $eventtop_html = $eventop_fields_ = $__eventtop = ''; // CHECK for event top fields array $eventop_fields_ = is_array($eventop_fields) ? true : false; // featured image if (!empty($img_thumb_src) && !empty($__shortC_arg['show_et_ft_img']) && $__shortC_arg['show_et_ft_img'] == 'yes') { $__eventtop['ft_img'] = array('url' => $img_thumb_src[0], 'url_med' => !empty($img_med_src[0]) ? $img_med_src[0] : ''); } // date block if (!$__year_long_event) { // date number $___day_name = $eventop_fields_ && in_array('dayname', $eventop_fields) ? "<em class='evo_day' >" . $DATE_start_val['D'] . "</em>" : null; $__eventtop['day_block'] = array('start' => $DATE_start_val, 'color' => $event_color, 'day_name' => $___day_name, 'html' => $_event_date_HTML); } // event titles $__eventtop['titles'] = array('yearlong' => $__year_long_event, 'loc_vars' => $event_location_variables, 'title' => isset($event->post_title) ? $event->post_title : '', 'cancel' => $_eventInClasses['_cancel'], 'cancel_reason' => $this->helper->evo_meta('_cancel_reason', $ev_vals, 'null'), 'subtitle' => !empty($ev_vals['evcal_subtitle']) ? $ev_vals['evcal_subtitle'][0] : null); // below title $__eventtop['belowtitle'] = array('fields_' => $eventop_fields_, 'fields' => $eventop_fields, 'evvals' => $ev_vals, 'html' => $_event_date_HTML, 'location' => $ev_location, 'locationname' => !empty($ev_vals['evcal_location_name']) ? $ev_vals['evcal_location_name'][0] : null, 'tax' => $_html_tax_content, 'tags' => $_event_tags, 'cmdcount' => $_cmf_count, 'timezone' => !empty($ev_vals['evo_event_timezone']) ? $ev_vals['evo_event_timezone'][0] : null); // close eventtop $_passVal = array('eventid' => $event_id, 'ri' => $__repeatInterval, 'fields_' => $eventop_fields_, 'fields' => $eventop_fields); $__eventtop = apply_filters('eventon_eventtop_one', $__eventtop, $ev_vals, $_passVal); $__eventtop['close1'] = array(); $__eventtop = apply_filters('eventon_eventtop_two', $__eventtop, $ev_vals, $_passVal); $__eventtop['close2'] = array(); // CONSTRUCT event top html if (!empty($__eventtop) && count($__eventtop) > 0) { ob_start(); echo eventon_get_eventtop_print($__eventtop, $this->evopt1, $this->evopt2); $eventtop_html = ob_get_clean(); $eventtop_html = apply_filters('eventon_eventtop_html', $eventtop_html); } else { $eventtop_html = null; } // (---) hook for addons $html_info_line = apply_filters('eventon_event_cal_short_info_line', $eventtop_html); // SCHEME SEO // conditional schema data if (!empty($this->evopt1['evo_schema']) && $this->evopt1['evo_schema'] == 'yes') { $__scheme_data = '<div class="evo_event_schema" style="display:none" > <a href="' . $event_permalink . '"></a></div>'; $__scheme_attributes = ''; } else { $event_permalink = $_sin_ev_ex ? $event_permalink . $_link_text : "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $__scheme_data = '<div class="evo_event_schema" style="display:none" > <a href="' . $event_permalink . '" itemprop="url"></a> <time itemprop="startDate" datetime="' . $DATE_start_val['Y'] . '-' . $DATE_start_val['n'] . '-' . $DATE_start_val['j'] . '"></time> <time itemprop="endDate" datetime="' . $DATE_end_val['Y'] . '-' . $DATE_end_val['n'] . '-' . $DATE_end_val['j'] . '"></time>' . $__scheme_data_location . '</div>'; $__scheme_attributes = "itemscope itemtype='http://schema.org/Event'"; } // CLASES - attribute $_eventClasses[] = 'eventon_list_event'; $_eventClasses[] = 'event'; $_eventInClasses[] = $_event_date_HTML['class_daylength']; $_eventInClasses[] = 'evcal_list_a'; $_eventInClasses_ = $this->helper->get_eventinclasses(array('existing_classes' => $_eventInClasses, 'show_et_ft_img' => !empty($__shortC_arg['show_et_ft_img']) ? $__shortC_arg['show_et_ft_img'] : 'no', 'img_thumb_src' => $img_thumb_src, 'event_type' => $event_type, 'event_description_trigger' => $event_description_trigger)); // show limit styles if (!empty($__shortC_arg['show_limit']) && $__shortC_arg['show_limit'] == 'yes' && !empty($__shortC_arg['event_count']) && $__shortC_arg['event_count'] > 0 && $__count > $__shortC_arg['event_count']) { $_eventAttr['style'][] = "display:none"; $_eventClasses[] = 'evSL'; } $eventbefore = ''; // TILES STYLE if (!empty($__shortC_arg['tiles']) && $__shortC_arg['tiles'] == 'yes') { // boxy event colors // if featured image exists for an event if (!empty($img_med_src) && $__shortC_arg['tile_bg'] == 1) { $_this_style = 'background-image: url(' . $img_med_src[0] . '); background-color:' . $event_color . ';'; $_eventClasses[] = 'hasbgimg'; } else { $_this_style = 'background-color: ' . $event_color . ';'; } // support different tile style if (!empty($__shortC_arg['tile_style']) && $__shortC_arg['tile_style'] != '0') { $eventbefore = '<div class="evo_topbar" style="' . $_this_style . '"></div>'; } else { $_eventAttr['style'][] = $_this_style; } // tile height if ($__shortC_arg['tile_height'] != 0) { $_eventAttr['style'][] = 'height: ' . $__shortC_arg['tile_height'] . 'px;'; } // tile count if ($__shortC_arg['tile_count'] != 2) { //$perct = (int)(100/$__shortC_arg['tile_count']); //$_eventAttr['style'][] = 'width: '.$perct.'%;'; } } else { $_eventInAttr['style'][] = 'border-color: ' . $event_color . ';'; } $_eventAttr['id'] = 'event_' . $event_id; $_eventAttr['class'] = $this->helper->implode($_eventClasses); $_eventAttr['data-event_id'] = $event_id; $_eventAttr['data-ri'] = $__repeatInterval; $_eventAttr['data-colr'] = $event_color; $_eventAttr['rest'][] = $__scheme_attributes; $atts = $this->helper->get_attrs($_eventAttr); $_eventInAttr['id'] = $unique_id; $_eventInAttr['class'] = $_eventInClasses_; $_eventInAttr['data-ux_val'] = $event_ux_val; $attsIn = $this->helper->get_attrs($_eventInAttr); // build the event HTML $event_html_code = "<div {$atts}>{$eventbefore}{$__scheme_data}\r\n\t\t\t\t<{$html_tag} {$attsIn}>{$html_info_line}</{$html_tag}>" . $html_event_detail_card . "<div class='clear end'></div></div>"; // prepare output $months_event_array[] = array('event_id' => $event_id, 'srow' => $event_start_unix, 'erow' => $event_end_unix, 'content' => $event_html_code); } } else { $months_event_array; } return $months_event_array; }
/** GENERATE individual event data */ public function generate_event_data($event_list_array, $focus_month_beg_range = '', $FOCUS_month_int = '', $FOCUS_year_int = '') { $months_event_array = ''; // Initial variables $wp_time_format = get_option('time_format'); $default_event_color = !empty($this->evopt1['evcal_hexcode']) ? '#' . $this->evopt1['evcal_hexcode'] : '#206177'; $__shortC_arg = $this->shortcode_args; $__count = 0; // EVENT CARD open by default variables $_is_eventCardOpen = !empty($__shortC_arg['evc_open']) && $__shortC_arg['evc_open'] == 'yes' ? true : ($this->is_eventcard_open ? true : false); $eventcard_script_class = $_is_eventCardOpen ? "gmaponload" : null; $this->is_eventcard_open = false; // check featured events are prioritized $__feature_events = !empty($__shortC_arg['ft_event_priority']) && $__shortC_arg['ft_event_priority'] != 'no' ? true : false; // GET EventTop fields - v2.1.17 $eventop_fields = !empty($this->evopt1['evcal_top_fields']) ? $this->evopt1['evcal_top_fields'] : null; // Number of activated taxnomonies v 2.2.15 $_active_tax = evo_get_ett_count($this->evopt1); // eventCARD HTML require_once AJDE_EVCAL_PATH . '/includes/eventon_eventCard.php'; // check if single event exist $_sin_ev_ex = in_array('eventon-single-event/eventon-single-event.php', get_option('active_plugins')) ? true : false; // EACH EVENT if (is_array($event_list_array)) { foreach ($event_list_array as $event_) { $__count++; //print_r($event); $event_id = $event_['event_id']; $event_start_unix = $event_['event_start_unix']; $event_end_unix = $event_['event_end_unix']; $event_type = $event_['event_type']; $ev_vals = $event_['event_pmv']; $event = get_post($event_id); // year long or not $__year_long_event = !empty($ev_vals['evo_year_long']) && $ev_vals['evo_year_long'][0] == 'yes' ? true : 0; // define variables $ev_other_data = $ev_other_data_top = $html_event_type_info = $_event_date_HTML = $_eventcard = $html_event_type_2_info = ''; $_is_end_date = true; $DATE_start_val = eventon_get_formatted_time($event_start_unix); if (empty($event_end_unix)) { $_is_end_date = false; $DATE_end_val = $DATE_start_val; } else { $DATE_end_val = eventon_get_formatted_time($event_end_unix); } // if this event featured $__featured = !empty($ev_vals['_featured']) && $ev_vals['_featured'][0] == 'yes' ? true : false; // GET: repeat interval for this event $__repeatInterval = !empty($event_['event_repeat_interval']) ? $event_['event_repeat_interval'] : (!empty($_GET['ri']) ? $_GET['ri'] : 0); // Unique ID generation $unique_varied_id = 'evc' . $event_start_unix . uniqid() . $event_id; $unique_id = 'evc_' . $event_start_unix . $event_id; // All day event variables $_is_allday = !empty($ev_vals['evcal_allday']) && $ev_vals['evcal_allday'][0] == 'yes' ? true : false; $_hide_endtime = !empty($ev_vals['evo_hide_endtime']) && $ev_vals['evo_hide_endtime'][0] == 'yes' ? true : false; $evcal_lang_allday = eventon_get_custom_language($this->evopt2, 'evcal_lang_allday', 'All Day'); /* evo_hide_endtime NOTE: if its set to hide end time, meaning end time and date would be empty on wp-admin, which will fall into same start end month category. */ $_event_date_HTML = $this->generate_time_($DATE_start_val, $DATE_end_val, $ev_vals, $evcal_lang_allday, $focus_month_beg_range, $FOCUS_month_int, $event_start_unix, $event_end_unix); // (---) hook for addons if (has_filter('eventon_eventcard_date_html')) { $_event_date_HTML = apply_filters('eventon_eventcard_date_html', $_event_date_HTML, $event_id); } // EACH DATA FIELD // EVENT FEATURES IMAGE $img_id = get_post_thumbnail_id($event_id); $img_med_src = ''; if ($img_id != '') { $img_src = wp_get_attachment_image_src($img_id, 'full'); $img_med_src = wp_get_attachment_image_src($img_id, 'medium'); $img_thumb_src = wp_get_attachment_image_src($img_id, 'thumbnail'); // append to eventcard array $_eventcard['ftimage'] = array('img' => $img_src, 'hovereffect' => !empty($this->evopt1['evo_ftimghover']) ? $this->evopt1['evo_ftimghover'] : null, 'clickeffect' => !empty($this->evopt1['evo_ftimgclick']) ? $this->evopt1['evo_ftimgclick'] : null, 'min_height' => !empty($this->evopt1['evo_ftimgheight']) ? $this->evopt1['evo_ftimgheight'] : 400, 'ftimg_sty' => !empty($this->evopt1['evo_ftimg_height_sty']) ? $this->evopt1['evo_ftimg_height_sty'] : 'minimized'); } else { $img_thumb_src = ''; } // EVENT DESCRIPTION $evcal_event_content = $event->post_content; if (!empty($evcal_event_content)) { $event_full_description = $evcal_event_content; } else { // event description compatibility from older versions. $event_full_description = !empty($ev_vals['evcal_description']) ? $ev_vals['evcal_description'][0] : null; } if (!empty($event_full_description)) { $except = $event->post_excerpt; $event_excerpt = eventon_get_event_excerpt($event_full_description, 30, $except); $_eventcard['eventdetails'] = array('fulltext' => $event_full_description, 'excerpt' => $event_excerpt); } // EVENT LOCATION $lonlat = !empty($ev_vals['evcal_lat']) && !empty($ev_vals['evcal_lon']) ? 'data-latlng="' . $ev_vals['evcal_lat'][0] . ',' . $ev_vals['evcal_lon'][0] . '" ' : null; $__location = evo_meta($ev_vals, 'evcal_location'); // location name $__location_name = evo_meta($ev_vals, 'evcal_location_name'); $_eventcard['timelocation'] = array('timetext' => $_event_date_HTML['html_prettytime'], 'location' => $__location, 'location_name' => $__location_name); // Location Image $loc_img_id = !empty($ev_vals['evo_loc_img']) ? $ev_vals['evo_loc_img'][0] : null; if (!empty($loc_img_id)) { $_eventcard['locImg'] = array('id' => $loc_img_id, 'fullheight' => !empty($this->evopt1['evo_locimgheight']) ? $this->evopt1['evo_locimgheight'] : 400); // location name and address if (evo_check_yn($ev_vals, 'evcal_name_over_img') && !empty($__location_name)) { $_eventcard['locImg']['locName'] = $__location_name; if (!empty($__location)) { $_eventcard['locImg']['locAdd'] = $__location; } } } // GOOGLE maps if ($this->google_maps_load && !empty($ev_vals['evcal_location']) && (!empty($ev_vals['evcal_gmap_gen']) && $ev_vals['evcal_gmap_gen'][0] == 'yes')) { $gmap_api_status = ''; $_eventcard['gmap'] = array('id' => $unique_varied_id); // GET directions if ($this->evopt1['evo_getdir'] == 'yes') { $_eventcard['getdirection'] = array('fromaddress' => $ev_vals['evcal_location'][0]); } } else { $gmap_api_status = 'data-gmap_status="null"'; } // EVENT BRITE // check if eventbrite actually used in this event if (!empty($ev_vals['evcal_eventb_data_set']) && $ev_vals['evcal_eventb_data_set'][0] == 'yes') { // Event brite capacity if (!empty($ev_vals['evcal_eventb_tprice']) && !empty($ev_vals['evcal_eventb_url'])) { $_eventcard['eventbrite'] = array('capacity' => !empty($ev_vals['evcal_eventb_capacity']) ? $ev_vals['evcal_eventb_capacity'][0] : null, 'tix_price' => $ev_vals['evcal_eventb_tprice'][0], 'url' => $ev_vals['evcal_eventb_url'][0]); } } // PAYPAL Code if (!empty($ev_vals['evcal_paypal_item_price'][0]) && $this->evopt1['evcal_paypal_pay'] == 'yes') { $_eventcard['paypal'] = array('title' => $event->post_title, 'price' => $ev_vals['evcal_paypal_item_price'][0], 'text' => !empty($ev_vals['evcal_paypal_text']) ? $ev_vals['evcal_paypal_text'][0] : null); } // Event Organizer if (!empty($ev_vals['evcal_organizer']) && (!empty($ev_vals['evo_evcrd_field_org']) && $ev_vals['evo_evcrd_field_org'][0] != 'yes')) { $_eventcard['organizer'] = array('value' => $ev_vals['evcal_organizer'][0], 'contact' => !empty($ev_vals['evcal_org_contact']) ? $ev_vals['evcal_org_contact'][0] : null, 'img' => !empty($ev_vals['evcal_org_img']) ? $ev_vals['evcal_org_img'][0] : null); } // Custom fields $_cmf_count = evo_retrieve_cmd_count($this->evopt1); for ($x = 1; $x < $_cmf_count + 1; $x++) { if (!empty($this->evopt1['evcal_ec_f' . $x . 'a1']) && !empty($this->evopt1['evcal__fai_00c' . $x]) && !empty($ev_vals["_evcal_ec_f" . $x . "a1_cus"])) { // check if hide this from eventCard set to yes if (empty($this->evopt1['evcal_ec_f' . $x . 'a3']) || $this->evopt1['evcal_ec_f' . $x . 'a3'] == 'no') { $faicon = $this->evopt1['evcal__fai_00c' . $x]; $_eventcard['customfield' . $x] = array('imgurl' => $faicon, 'x' => $x, 'value' => $ev_vals["_evcal_ec_f" . $x . "a1_cus"][0], 'valueL' => !empty($ev_vals["_evcal_ec_f" . $x . "a1_cusL"]) ? $ev_vals["_evcal_ec_f" . $x . "a1_cusL"][0] : null, '_target' => !empty($ev_vals["_evcal_ec_f" . $x . "_onw"]) ? $ev_vals["_evcal_ec_f" . $x . "_onw"][0] : null, 'type' => $this->evopt1['evcal_ec_f' . $x . 'a2']); } } } // LEARN MORE and ICS if (!empty($ev_vals['evcal_lmlink']) || !empty($this->evopt1['evo_ics']) && $this->evopt1['evo_ics'] == 'yes') { $_eventcard['learnmoreICS'] = array('event_id' => $event_id, 'learnmorelink' => !empty($ev_vals['evcal_lmlink']) ? $ev_vals['evcal_lmlink'][0] : null, 'learnmore_target' => !empty($ev_vals['evcal_lmlink_target']) && $ev_vals['evcal_lmlink_target'][0] == 'yes' ? 'target="_blank"' : null, 'estart' => $event_start_unix, 'eend' => $event_end_unix, 'etitle' => $event->post_title, 'evals' => $ev_vals); } // ======================= /** CONSTRUCT the EVENT CARD **/ if (!empty($_eventcard) && count($_eventcard) > 0) { // filter hook for eventcard content array - updated 2.2.20 $_eventcard = apply_filters('eventon_eventcard_array', $_eventcard, $ev_vals, $event_id, $__repeatInterval); // if an order is set reorder things $_eventcard = eventon_EVC_sort($_eventcard, $this->evopt1['evoCard_order']); ob_start(); echo "<div class='event_description evcal_eventcard " . ($_is_eventCardOpen ? 'open' : null) . "' " . ($_is_eventCardOpen ? 'style="display:block"' : 'style="display:none"') . ">"; echo eventon_eventcard_print($_eventcard, $this->evopt1, $this->evopt2); // (---) hook for addons if (has_action('eventon_eventcard_additions')) { do_action('eventon_eventcard_additions', $event_id, $this->__calendar_type, $event->post_title, $event_full_description, $img_thumb_src); } echo "</div>"; $html_event_detail_card = ob_get_clean(); } else { $html_event_detail_card = null; } /** Trigger attributes **/ $event_description_trigger = !empty($html_event_detail_card) ? "desc_trig" : null; $gmap_trigger = !empty($ev_vals['evcal_gmap_gen']) && $ev_vals['evcal_gmap_gen'][0] == 'yes' ? 'data-gmtrig="1"' : 'data-gmtrig="0"'; // Generate tax terms for event top $html_event_type_tax_ar = array(); $_tax_names_array = evo_get_ettNames($this->evopt1); $term_class = $evcal_terms_ = ''; if (!empty($eventop_fields)) { // foreach active tax for ($b = 1; $b <= $_active_tax; $b++) { $__tx_content = ''; $__tax_slug = 'event_type' . ($b == 1 ? '' : '_' . $b); $__tax_fields = 'eventtype' . ($b == 1 ? '' : $b); // for override evc colors if ($b == 1) { $evcal_terms_ = wp_get_post_terms($event_id, $__tax_slug); } if (in_array($__tax_fields, $eventop_fields)) { $evcal_terms = !empty($evcal_terms_) && $b == 1 ? $evcal_terms_ : wp_get_post_terms($event_id, $__tax_slug); if ($evcal_terms) { $__tax_name = $_tax_names_array[$b]; $__tx_content .= "<span class='evcal_event_types ett{$b}'><em><i>" . $__tax_name . ":</i></em>"; foreach ($evcal_terms as $termA) { // add tax term slug to event element class names $term_class .= ' evo_' . $termA->slug; $__tx_content .= "<em data-filter='{$__tax_slug}'>" . $termA->name . "</em>"; } $__tx_content .= "<i class='clear'></i></span>"; $html_event_type_tax_ar[$b] = $__tx_content; } } } } $_html_tax_content = count($html_event_type_tax_ar) > 0 ? implode('', $html_event_type_tax_ar) : null; //event color $event_color = eventon_get_hex_color($ev_vals, $default_event_color); // override event colors if (!empty($__shortC_arg['etc_override']) && $__shortC_arg['etc_override'] == 'yes' && !empty($evcal_terms_)) { $ev_id = $evcal_terms_[0]->term_id; $ev_color = get_option("evo_et_taxonomy_{$ev_id}"); $event_color = !empty($ev_color['et_color']) ? '#' . $ev_color['et_color'] : $event_color; } // event ex link $exlink_option = !empty($ev_vals['_evcal_exlink_option']) ? $ev_vals['_evcal_exlink_option'][0] : 1; $event_permalink = get_permalink($event_id); // if UX to be open in new window then use link to single event or that link $link_append = array(); $_link_text = ''; if (!empty($__shortC_arg['lang']) && $__shortC_arg['lang'] != 'L1') { $link_append['l'] = $__shortC_arg['lang']; } $link_append['ri'] = $__repeatInterval; if (!empty($link_append)) { foreach ($link_append as $lp => $lpk) { if ($lp == 'ri' && $lpk == '0') { continue; } $_link_text .= $lp . '=' . $lpk . '&'; } } $_link_text = !empty($_link_text) ? '?' . $_link_text : null; $href = !empty($ev_vals['evcal_exlink']) && $exlink_option != '1' ? 'data-exlk="1" href="' . $ev_vals['evcal_exlink'][0] . $_link_text . '"' : 'data-exlk="0"'; // target $target_ex = !empty($ev_vals['_evcal_exlink_target']) && $ev_vals['_evcal_exlink_target'][0] == 'yes' ? 'target="_blank"' : null; // EVENT LOCATION if (evo_location_exists($ev_vals)) { $location_address = !empty($ev_vals['evcal_location']) ? $ev_vals['evcal_location'][0] : null; // location as LON LAT $event_location_variables = (!empty($lonlat) ? $lonlat : null) . ' data-location_address="' . $location_address . '" '; // conditional schema data for event if (!empty($this->evopt1['evo_schema']) && $this->evopt1['evo_schema'] == 'yes') { $__scheme_data_location = ''; } else { $__scheme_data_location = ' <item style="display:none" itemprop="location" itemscope itemtype="http://schema.org/Place"> <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> <item itemprop="streetAddress">' . $location_address . '</item> </span> </item>'; } $ev_location = '<em class="evcal_location" ' . (!empty($lonlat) ? $lonlat : null) . ' data-add_str="' . $location_address . '">' . $location_address . '</em>'; // location type $event_location_variables .= !empty($lonlat) ? 'data-location_type="lonlat"' : 'data-location_type="address"'; // location name $event_location_variables .= !empty($ev_vals['evcal_location_name']) ? ' data-location_name="' . $ev_vals['evcal_location_name'][0] . '"' : null; // location status $event_location_variables .= ' data-location_status="true"'; } else { // location status $ev_location = $event_location_variables = $__scheme_data_location = null; $event_location_variables .= ' data-location_status="false"'; } /* ------------------- // HTML // EventTop - building of the eventTop section -------------*/ $eventtop_html = $eventop_fields_ = ''; // featured image $eventtop_html[] = !empty($img_thumb_src) && !empty($__shortC_arg['show_et_ft_img']) && $__shortC_arg['show_et_ft_img'] == 'yes' ? "<span class='ev_ftImg' style='background-image:url(" . $img_thumb_src[0] . ")'></span>" : null; // CHECK for event top fields array $eventop_fields_ = is_array($eventop_fields) ? true : false; // date number $___day_name = $eventop_fields_ && in_array('dayname', $eventop_fields) ? "<em class='evo_day' >" . $DATE_start_val['D'] . "</em>" : null; if (!$__year_long_event) { $eventtop_html[] = "<span class='evcal_cblock' data-bgcolor='" . $event_color . "' data-smon='" . $DATE_start_val['F'] . "' data-syr='" . $DATE_start_val['Y'] . "'><em class='evo_date' >" . $___day_name . $_event_date_HTML['html_date'] . '</em>'; } // time for events $eventtop_html[] = "<em class='evo_time'>" . $_event_date_HTML['html_time'] . "</em>"; $eventtop_html[] = "<em class='clear'></em></span>"; // event title $eventtop_html[] = "<span class='evcal_desc evo_info " . ($__year_long_event ? 'yrl' : null) . "' {$event_location_variables} ><span class='evcal_desc2 evcal_event_title' itemprop='name'>" . $event->post_title . "</span>"; // subtitle if (!empty($ev_vals['evcal_subtitle'])) { $eventtop_html[] = "<span class='evcal_event_subtitle' >" . $ev_vals['evcal_subtitle'][0] . "</span>"; } $eventtop_html[] = "<span class='evcal_desc_info' >"; // time if ($eventop_fields_ && in_array('time', $eventop_fields)) { $eventtop_html[] = "<em class='evcal_time'>" . $_event_date_HTML['html_fromto'] . "</em> "; } // location if ($eventop_fields_ && in_array('location', $eventop_fields)) { $eventtop_html[] = $ev_location; } // location Name if ($eventop_fields_ && in_array('locationame', $eventop_fields)) { $__location_name = !empty($ev_vals['evcal_location_name']) ? $ev_vals['evcal_location_name'][0] : null; $eventtop_html[] = !empty($__location_name) ? '<em class="evcal_location event_location_name">' . $__location_name . '</em>' : null; } $eventtop_html[] = "</span><span class='evcal_desc3'>"; // organizer if ($eventop_fields_ && in_array('organizer', $eventop_fields) && !empty($ev_vals['evcal_organizer'])) { $eventtop_html[] = "<em class='evcal_oganizer'><i>" . eventon_get_custom_language($this->evopt2, 'evcal_evcard_org', 'Event Organized By') . ':</i> ' . $ev_vals['evcal_organizer'][0] . "</em>"; } // event type if (!empty($_html_tax_content)) { $eventtop_html[] = $_html_tax_content; } // custom meta fields for ($x = 1; $x < $_cmf_count + 1; $x++) { if ($eventop_fields_ && in_array('cmd' . $x, $eventop_fields) && !empty($ev_vals['_evcal_ec_f' . $x . 'a1_cus'])) { $def = $this->evopt1['evcal_ec_f' . $x . 'a1']; // default custom meta field name $i18n_nam = eventon_get_custom_language($this->evopt2, 'evcal_cmd_' . $x, $def); $eventtop_html[] = ($x == 1 ? "<b class='clear'></b>" : null) . "<em class='evcal_cmd'><i>" . $i18n_nam . ':</i> ' . $ev_vals['_evcal_ec_f' . $x . 'a1_cus'][0] . "</em> "; } } $eventtop_html[] = "</span>"; $eventtop_html[] = "</span><em class='clear'></em>"; $eventtop_html = apply_filters('eventon_eventtop_html', $eventtop_html); // -- // Combine the event top individual sections $html_info_line = implode('', $eventtop_html); // (---) hook for addons if (has_filter('eventon_event_cal_short_info_line')) { $html_info_line = apply_filters('eventon_event_cal_short_info_line', $html_info_line); } // SCHEME SEO // conditional schema data if (!empty($this->evopt1['evo_schema']) && $this->evopt1['evo_schema'] == 'yes') { $__scheme_data = '<div class="evo_event_schema" style="display:none" > <a href="' . $event_permalink . '"></a></div>'; $__scheme_attributes = ''; } else { $event_permalink = $_sin_ev_ex ? $event_permalink : "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $__scheme_data = '<div class="evo_event_schema" style="display:none" > <a href="' . $event_permalink . '" itemprop="url"></a> <time itemprop="startDate" datetime="' . $DATE_start_val['Y'] . '-' . $DATE_start_val['n'] . '-' . $DATE_start_val['j'] . '"></time> <time itemprop="endDate" datetime="' . $DATE_end_val['Y'] . '-' . $DATE_end_val['n'] . '-' . $DATE_end_val['j'] . '"></time>' . $__scheme_data_location . '</div>'; $__scheme_attributes = "itemscope itemtype='http://schema.org/Event'"; } // ## Eventon Calendar events list -- single event // CLASES - attribute $_eventClasses = array(); $_eventAttr = array(); $_eventClasses[] = 'eventon_list_event'; $_eventClasses[] = 'event'; $_ft_imgClass = !empty($img_thumb_src) && !empty($__shortC_arg['show_et_ft_img']) && $__shortC_arg['show_et_ft_img'] == 'yes' ? 'hasFtIMG' : null; $__attr_class = "evcal_list_a " . $event_description_trigger . " " . $_event_date_HTML['class_daylength'] . " " . ($event_type != 'nr' ? 'event_repeat ' : null) . $eventcard_script_class . $_ft_imgClass; $_ft_event = $__feature_events && !empty($ev_vals['_featured']) && $ev_vals['_featured'][0] == 'yes' ? ' ft_event ' : null; // class attribute for event $__a_class = $__attr_class . $_ft_event . $term_class . ($__featured ? ' featured_event' : null); // show limit styles if (!empty($__shortC_arg['show_limit']) && $__shortC_arg['show_limit'] == 'yes' && !empty($__shortC_arg['event_count']) && $__shortC_arg['event_count'] > 0 && $__count > $__shortC_arg['event_count']) { $show_limit_styles = 'style="display:none"'; $_eventClasses[] = 'evSL'; } else { $show_limit_styles = ''; } // event color for the row/box $___styles_a = $___styles = ''; // TILES STYLE if (!empty($__shortC_arg['tiles']) && $__shortC_arg['tiles'] == 'yes') { // boxy event colors // if featured image exists for an event if (!empty($img_med_src) && $__shortC_arg['tile_bg'] == 1) { $___styles_a[] = 'background-image: url(' . $img_med_src[0] . '); background-color:' . $event_color . ';'; $_eventClasses[] = 'hasbgimg'; } else { $___styles_a[] = 'background-color: ' . $event_color . ';'; } // tile height if ($__shortC_arg['tile_height'] != 0) { $___styles_a[] = 'height: ' . $__shortC_arg['tile_height'] . 'px;'; } // tile count if ($__shortC_arg['tile_count'] != 2) { $perct = (int) (100 / $__shortC_arg['tile_count']); $___styles_a[] = 'width: ' . $perct . '%;'; } $___styles = ''; } else { $___styles[] = 'border-color: ' . $event_color . ';'; $___styles_a[] = ''; } // div or an e tag $html_tag = $exlink_option == '1' ? 'div' : 'a'; // process passed on array if (!empty($___styles_a)) { $___styles_a = 'style="' . implode(' ', $___styles_a) . '"'; } if (!empty($___styles)) { $___styles = 'style="' . implode(' ', $___styles) . '"'; } $event_html_code = "<div id='event_{$event_id}' class='" . implode(' ', $_eventClasses) . "' data-event_id='{$event_id}' data-ri='{$__repeatInterval}' {$__scheme_attributes} {$show_limit_styles} {$___styles_a} data-colr='{$event_color}'>{$__scheme_data}\n\t\t\t\t<{$html_tag} id='" . $unique_id . "' class='" . $__a_class . "' " . $href . " " . $target_ex . " " . $___styles . " " . $gmap_trigger . " " . (!empty($gmap_api_status) ? $gmap_api_status : null) . " data-ux_val='{$exlink_option}'>{$html_info_line}</{$html_tag}>" . $html_event_detail_card . "<div class='clear end'></div></div>"; //evc_open // prepare output $months_event_array[] = array('event_id' => $event_id, 'srow' => $event_start_unix, 'erow' => $event_end_unix, 'content' => $event_html_code); } } else { $months_event_array; } return $months_event_array; }