"; //defaults $ufg_filters = array(); $ufg_gallery = array(); // Get plugin version $ufg_last_version = get_option('ufg_current_version'); //get gallery id if (is_array($atts) && isset($atts['id'])) { $ufg_gallery_id = $atts['id']; $ufg_selected_filter_btn_id = ""; //get dynamic select filter button id via shortcode parameter if (is_array($atts) && array_key_exists('selected-filter', $atts)) { $ufg_selected_filter_btn_id = sanitize_text_field($atts['selected-filter']); } //get dynamic select filter button id via URL parameter // phpcs:ignore WordPress.Security.NonceVerification.Recommended if (isset($_GET['selected-filter'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $ufg_selected_filter_btn_id = sanitize_text_field(wp_unslash($_GET['selected-filter'])); } $ufg_details = get_option("ufg_details_".$ufg_gallery_id); $ufg_filters = get_option("ufg_filters_".$ufg_gallery_id); $ufg_gallery = get_option("ufg_gallery_".$ufg_gallery_id); $ufg_setting = get_option("ufg_settings_".$ufg_gallery_id); if (!is_array($ufg_details)) $ufg_details = array(); if (!is_array($ufg_filters)) $ufg_filters = array(); if (!is_array($ufg_gallery)) $ufg_gallery = array(); if (!is_array($ufg_setting)) $ufg_setting = array(); // Normalize filters if (function_exists('ufg_normalize_filters_recursive')) { ufg_normalize_filters_recursive($ufg_filters); } if (function_exists('ufg_remove_blank_filters_recursive')) { ufg_remove_blank_filters_recursive($ufg_filters); } // Merge settings with default settings to prevent undefined key notices $default_settings = array( 'show_filters' => 1, 'show_filters_icon' => 1, 'enable_deep_linking' => 0, 'show_filters_count' => 1, 'show_search_box' => 0, 'search_box_placeholder' => 'Type here to search images', 'show_all_button' => 1, 'all_button_text' => 'All', 'all_button_icon' => 'fas fa-filter', 'all_button_color' => '#ffffff', 'all_button_bg_color' => '#0A85ED', 'parent_button_color' => '#4F46E5', 'parent_button_bg_color' => '#EEF2FF', 'parent_button_hover_color' => '#000000', 'parent_active_button_color' => '#FFFFFF', 'parent_active_button_bg_color' => '#4F46E5', 'parent_filters_heading' => '', 'l1_filters_heading' => '', 'l1_button_color' => '#4F46E5', 'l1_button_bg_color' => '#EEF2FF', 'child_filter_effect' => 'show_hide', 'active_button_color' => '#FFFFFF', 'active_button_bg_color' => '#4F46E5', 'l2_button_color' => '#4F46E5', 'l2_button_bg_color' => '#EEF2FF', 'l3_button_color' => '#4F46E5', 'l3_button_bg_color' => '#EEF2FF', 'l4_button_color' => '#4F46E5', 'l4_button_bg_color' => '#EEF2FF', 'columns_desktop' => 4, 'columns_tab' => 3, 'columns_mobile_landscape' => 3, 'columns_mobile_portrait' => 2, 'thumbnail_image' => 1, 'thumbnail_image_size' => 'full', 'thumbnail_border' => 1, 'thumbnail_border_thickness' => 1, 'thumbnail_border_color' => '#ffffff', 'thumbnail_bg_color' => '#222a33', 'image_title' => 1, 'image_title_font_size' => 18, 'image_title_color' => '#FFFFFF', 'image_description' => 1, 'image_description_font_size' => 14, 'image_description_color' => '#FFFFFF', 'image_description_text_limit' => 60, 'image_hover_effect' => 'border_overlay', 'read_more_link_sh' => 0, 'read_more_link' => 1, 'read_more_button_text' => 'Read More Link', 'read_more_button_icon' => 'fas fa-link', 'read_more_button_color' => '#ffffff', 'read_more_button_bg_color' => '#0080ff', 'read_more_button_target' => '_self', 'image_sorting' => 5, 'image_search' => 1, 'lightbox' => 1, 'lightbox_title' => 1, 'lightbox_description' => 0, 'lightbox_numbering' => 0, 'custom_css' => '', 'load_more' => 'off', 'load_limit' => 10, 'load_color' => '#0080ff', 'load_txt_color' => '#FFFFFF', 'load_btn_txt' => 'Load More', 'filter_style' => 'buttons', 'combine_filter_search' => '0', 'filter_padding' => '8px 16px', 'filter_margin' => '5px', 'filter_padding_type' => 'small', 'filter_padding_v' => '8', 'filter_padding_h' => '16', 'filter_margin_val' => '5', 'l1_button_hover_color' => '#059669', 'l1_active_button_color' => '#FFFFFF', 'l1_active_button_bg_color' => '#059669', 'l2_button_hover_color' => '#4F46E5', 'l2_active_button_color' => '#FFFFFF', 'l2_active_button_bg_color' => '#4F46E5', 'l3_button_hover_color' => '#D97706', 'l3_active_button_color' => '#FFFFFF', 'l3_active_button_bg_color' => '#D97706', 'l4_button_hover_color' => '#E11D48', 'l4_active_button_color' => '#FFFFFF', 'l4_active_button_bg_color' => '#E11D48' ); $ufg_setting = array_merge($default_settings, $ufg_setting); if(empty($ufg_selected_filter_btn_id)) { if(isset($ufg_setting['default_filter']) && $ufg_setting['default_filter'] != '') { if($ufg_setting['default_filter'] == 'none') { $ufg_selected_filter_btn_id = 'none'; } elseif($ufg_setting['default_filter'] == 'all') { $ufg_selected_filter_btn_id = '1evel1-all'; } else { $target_class = $ufg_setting['default_filter']; if (!function_exists('ufg_find_filter_level_id')) { function ufg_find_filter_level_id($filters, $target, $level = 1) { if(is_array($filters) || is_object($filters)) { foreach($filters as $f) { if(!isset($f->filterkey)) continue; $f_class = str_replace(" ", "-", strtolower($f->filterkey)); if ($f_class === $target) { $prefix = $level == 1 ? "1evel1-" : "level" . $level . "-"; return $prefix . $f_class; } if (!empty($f->children)) { $res = ufg_find_filter_level_id($f->children, $target, $level + 1); if ($res) return $res; } } } return ""; } } $found_id = ufg_find_filter_level_id($ufg_filters, $target_class); if($found_id) { $ufg_selected_filter_btn_id = $found_id; } else { $ufg_selected_filter_btn_id = '1evel1-all'; } } } else { $ufg_selected_filter_btn_id = '1evel1-all'; // Default to all if not set } } //if(isset($ufg_gallery['ufg-filter-image'])) $filter_image = $ufg_gallery['ufg-filter-image']; else $filter_image = array(); if(isset($ufg_gallery['ufg-attachment-id'])) $ufg_total_images = count($ufg_gallery['ufg-attachment-id']); else $ufg_total_images = ''; //$ufg_total_images = count($ufg_gallery['ufg-attachment-id']); // loading saved settings and shortcode supported settings include_once('setting.php'); // modifiing fiters array for load more $ufg_modified_array = array(); //$ufg_selected_array = $ufg_gallery['ufg-image-filters']; $ufg_selected_array = array(); foreach($ufg_selected_array as $key1 => $value1){ if(is_array($value1) == true){ foreach($value1 as $key2 => $value2) { $value2; if(array_key_exists($value2, $ufg_modified_array)){ // do nothing } else { $ufg_modified_array[$value2] = array(); } } } } foreach($ufg_selected_array as $key1 => $value1){ if(is_array($value1) == true){ foreach($value1 as $key2 => $value2) { $value2; //check filter key exist in modified array if(array_key_exists($value2, $ufg_modified_array)){ array_push( $ufg_modified_array[$value2], $key1 ); } else { // do nothing } } } } $filter_image = $ufg_modified_array; // print filters include_once('filters.php'); $ufg_setting_f = get_option("ufg_settings_".$ufg_gallery_id); // separate load for filters scope $j = 0; $new_array = array(); $new_array_final = array(); if (is_array($ufg_gallery) && array_key_exists('ufg-image-filters', $ufg_gallery)) { foreach($ufg_gallery['ufg-image-filters'] as $key => $array) { if (is_array($array)) { foreach($array as $key2 => $val) { //array_push($new_array[], $val); $new_array[$val][$j] = $key; } } $j++; } foreach($new_array as $new_key => $new_val) { $new_re_in = array_values($new_val); $new_array_final[$new_key] = $new_re_in; } $filter_image = $new_array_final; if (!function_exists('ufg_expand_filter_images_hierarchy')) { function ufg_expand_filter_images_hierarchy($filters, &$filter_images) { $all_images = array(); if (is_array($filters)) { foreach ($filters as $f) { if (!isset($f->filterkey)) continue; $key = str_replace(" ", "-", strtolower(trim($f->filterkey))); $my_images = isset($filter_images[$key]) ? $filter_images[$key] : array(); if (isset($f->children) && is_array($f->children)) { ufg_expand_filter_images_hierarchy($f->children, $filter_images); } $my_images = array_values(array_unique($my_images)); if (!empty($my_images)) { $filter_images[$key] = $my_images; } $all_images = array_merge($all_images, $my_images); } } return array_unique($all_images); } } if (!empty($ufg_filters)) { ufg_expand_filter_images_hierarchy($ufg_filters, $filter_image); } } include_once('gallery.php'); if($ufg_lightbox_numbering) $ufg_lightbox_numbering = "true"; else $ufg_lightbox_numbering = "false"; // load required resource //CSS and JS wp_enqueue_script( 'imagesloaded' ); wp_enqueue_script( 'ufg-isotope-js', plugins_url( '/admin/assets/js/isotope.pkgd.min.js' , __FILE__ ), array( 'jquery', 'imagesloaded' ), '1.0', true ); wp_enqueue_style( 'ufg-frontend-css', plugins_url( '/admin/assets/css/ufg-frontend.css' , __FILE__ ), array(), UFG_VERSION ); wp_enqueue_style( 'ufg-lightbox-css', plugins_url( '/admin/assets/lightbox/lokesh/css/lightbox.css' , __FILE__ ), array(), '1.0' ); wp_enqueue_style( 'ufg-fontawesome-css', plugins_url( '/admin/assets/fontawesome-free-6.5.2-web/css/all.min.css' , __FILE__ ), array(), '6.5.2' ); wp_enqueue_script( 'ufg-custom-js', plugins_url( '/admin/assets/js/ufg-custom.js' , __FILE__ ), array( 'jquery', 'imagesloaded', 'ufg-isotope-js' ), UFG_VERSION, true ); wp_enqueue_script( 'ufg-lightbox-js', plugins_url( '/admin/assets/lightbox/lokesh/js/lightbox.js' , __FILE__ ), array( 'jquery' ), '1.0', true ); wp_add_inline_script( 'ufg-custom-js', 'const UFGJS = ' . wp_json_encode( array( 'ajaxUrl' => admin_url( 'admin-ajax.php' ), 'LoadMoreNonce' => wp_create_nonce( 'ufg_load_more_nonce' ), 'GalleryId' => $ufg_gallery_id, 'FiterImage' => $filter_image, 'TotalImages' => $ufg_total_images, 'LoadBtnText' => $load_btn_txt, 'LoadMore' => 'off', 'LoadLimit' => $load_limit, 'ChildFilterEffect' => $ufg_child_filter_effect, 'Lightbox' => ($ufg_lightbox === 'on' || $ufg_lightbox == 1 || $ufg_lightbox === '1' || $ufg_lightbox === true), 'LightboxNumbering' => false, 'LightboxTitle' => ($ufg_lightbox_title === "on" || $ufg_lightbox_title === "1" || $ufg_lightbox_title == 1 || $ufg_lightbox_title === true), 'LightboxDescription' => false, 'SelectedFltrBtnId' => $ufg_selected_filter_btn_id, 'EnableDeepLinking' => false, )), 'before' ); ?>