documents->get($id)->is_built_with_elementor(); } else { return \Elementor\Plugin::$instance->documents->get($post->ID)->is_built_with_elementor(); } } function stratum_generate_swiper_options($settings = []){ if (empty($settings)) return; extract( shortcode_atts( array( //Swiper 'columns_count' => '1', 'slides_in_columns' => '1', 'slides_to_scroll' => '1', 'slider_direction' => 'horizontal', 'auto_height' => '', 'navigation' => 'both', 'pagination_style' => 'bullets', 'dynamic_bullets' => '', 'keyboard_control' => '', 'mousewheel_control' => '', 'item_center' => '', 'spacing_slides' => '', 'free_mode' => '', 'slide_effects' => 'slide', 'autoplay' => '', 'autoplay_speed' => '', 'pause_on_hover' => 'yes', 'loop' => '', 'animation_speed' => '', 'simulate_touch' => '', //--Swiper //Extra options 'slide_text_animation_delay' => 500, 'coverflow_visible' => '', //Responsive 'columns_count_tablet' => '', 'columns_count_mobile' => '', 'slides_in_columns_tablet' => '', 'slides_in_columns_mobile' => '', 'slides_to_scroll_tablet' => '', 'slides_to_scroll_mobile' => '', 'spacing_slides_tablet' => '', 'spacing_slides_mobile' => '' ), $settings ) ); $spaceBetween = ( is_array( $spacing_slides ) && array_key_exists( 'size', $spacing_slides ) ) ? absint( $spacing_slides['size'] ) : 0; $spaceBetween_tablet = ( is_array( $spacing_slides_tablet ) && array_key_exists( 'size', $spacing_slides_tablet ) ) ? absint( $spacing_slides_tablet['size'] ) : $spaceBetween; $spaceBetween_mobile = ( is_array( $spacing_slides_mobile ) && array_key_exists( 'size', $spacing_slides_mobile ) ) ? absint( $spacing_slides_mobile['size'] ) : $spaceBetween; $options = array( 'slidesPerView' => ($columns_count != 'auto') ? ( ($slide_effects == 'cube') ? 1 : (int)$columns_count ) : $columns_count, 'slidesPerColumn' => (int)$slides_in_columns, 'slidesPerColumnFill' => 'row', //column 'slidesPerGroup' => (int)$slides_to_scroll, 'direction' => $slider_direction, 'autoHeight' => (($free_mode == 'yes' || (int)$slides_in_columns != 1) ? false : ($auto_height == 'yes')), 'keyboard' => $keyboard_control == 'yes', 'mousewheel' => $mousewheel_control == 'yes', 'centeredSlides' => $item_center == 'yes', 'spaceBetween' => $spaceBetween, 'freeMode' => $free_mode == 'yes', 'effect' => (($slider_direction == 'vertical' && $slide_effects == 'cube') ? 'slide' : $slide_effects), 'autoplay' => ($autoplay == 'yes') ? array('delay' => $autoplay_speed) : false, 'autoplayPause' => ($autoplay == 'yes' && $pause_on_hover == 'yes'), 'loop' => $loop == 'yes', 'speed' => $animation_speed, 'allowTouchMove' => $simulate_touch == 'yes', 'textAnimationDelay' => (int) $slide_text_animation_delay, 'coverflow_visible' => ($coverflow_visible == 'visible'), //Responsive 'responsive' => array( 'slidesPerView_tablet' => ( $columns_count_tablet != 'auto') ? (int)$columns_count_tablet : $columns_count_tablet, 'slidesPerView_mobile' => ( $columns_count_mobile != 'auto') ? (int)$columns_count_mobile : $columns_count_mobile, 'slidesPerColumn_tablet' => (int)$slides_in_columns_tablet, 'slidesPerColumn_mobile' => (int)$slides_in_columns_mobile, 'slidesPerGroup_tablet' => (int)$slides_to_scroll_tablet, 'slidesPerGroup_mobile' => (int)$slides_to_scroll_mobile, 'spaceBetween_tablet' => $spaceBetween_tablet, 'spaceBetween_mobile' => $spaceBetween_mobile, ) ); if ($navigation != 'none'){ //Arrows $navigation_arrows = true; //Bullets $navigation_pagination = array( 'el' => '.swiper-pagination', 'type' => $pagination_style, 'clickable' => true, 'dynamicBullets' => ($dynamic_bullets == 'yes'), ); //Scrollbar $navigation_scrollbar = array( 'el' => '.swiper-scrollbar', 'draggable' => true ); if ($navigation == 'both'){ $options['navigation'] = $navigation_arrows; if ($pagination_style == 'scrollbar'){ $options['scrollbar'] = $navigation_scrollbar; } else { $options['pagination'] = $navigation_pagination; } } else if ($navigation == 'arrows') { $options['navigation'] = $navigation_arrows; } else if ($navigation == 'pagination') { if ($pagination_style == 'scrollbar'){ $options['scrollbar'] = $navigation_scrollbar; } else { $options['pagination'] = $navigation_pagination; } } } return $options; } function stratum_get_taxonomies($post_type){ $taxonomies = get_object_taxonomies( $post_type, 'objects' ); $return = []; if (!empty($taxonomies)){ foreach ($taxonomies as $key => $taxonomy_name) { $return[$key] = $taxonomy_name->labels->name; } } return $return; } function stratum_get_terms($taxonomy){ $return = []; $terms = get_terms(array( 'taxonomy' => $taxonomy, 'hide_empty' => true, )); if (!empty($terms)){ foreach ($terms as $key => $term_name) { $taxonomy_obj = get_taxonomy( $term_name->taxonomy ); $return[$term_name->slug] = $term_name->name; } } return $return; } function stratum_build_custom_query(&$query_args = [], $settings = []){ if ((isset($settings['include_ids']) && $settings['include_ids'] != '') || isset($settings['post_type'])){ $query_args = array( 'posts_per_page' => $settings['posts_per_page'], 'ignore_sticky_posts' => 1, 'post_status' => 'publish', 'order' => $settings['order'], 'orderby' => $settings['orderby'], ); if ( isset($settings['ignore_sticky_posts']) ){ $query_args['ignore_sticky_posts'] = $settings['ignore_sticky_posts']; } if (isset($settings['page'])){ $paged = $settings['page']; } else { $paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1; } if ( isset($settings['pagination']) && $settings['pagination'] == 'yes' ){ $query_args['paged'] = $paged; } } //Exclude by IDs && Current Post ID if ((isset($settings['exclude_ids']) && $settings['exclude_ids'] != '') || $settings['exclude_current']){ $ids_arr = []; if ((isset($settings['exclude_ids']) && $settings['exclude_ids'] != '')){ $ids_arr = array_map( 'intval', explode(',', $settings['exclude_ids']) ); } if ($settings['exclude_current']){ $ids_arr[] = get_the_ID(); } $query_args['post__not_in'] = $ids_arr; } //Filter by IDs if (isset($settings['include_ids']) && $settings['include_ids'] != ''){ $ids_arr = array_map( 'intval', explode(',', $settings['include_ids']) ); $query_args['post__in'] = $ids_arr; } //Set post_type if ( isset($settings['post_type'])){ $query_args['post_type'] = $settings['post_type']; if ( !empty($settings['taxonomies'])){ $query_args['tax_query'] = array( 'relation' => $settings['terms_relation'], ); $taxonomy_arr = []; //Get terms from taxonomy (Make arr) foreach ($settings['taxonomies'] as $taxonomy_key => $taxonomy_name) { if (isset($settings[$taxonomy_name.'_terms'])){ foreach ($settings[$taxonomy_name.'_terms'] as $term_key => $term_value) { $taxonomy_arr[$taxonomy_name][] = $term_value; } } } //Add array to query if (!empty($taxonomy_arr)){ foreach ($taxonomy_arr as $taxonomy_name => $terms_arr) { foreach ($terms_arr as $term_index => $term_name) { $query_args['tax_query'][] = array( 'taxonomy' => $taxonomy_name, 'field' => 'slug', 'terms' => $term_name ); } } } } } } function stratum_css_class($class_array){ return implode(' ', array_filter($class_array)); } /** * Recursive sanitation for an array * * @param $array * * @return mixed */ function stratum_recursive_sanitize_array( $array ) { foreach ( $array as $key => &$value ) { if ( is_array( $value ) ) { $value = stratum_recursive_sanitize_array($value); } else { $value = sanitize_text_field( $value ); } } return $array; } /** * Validate an HTML tag against a safe allowed list. * * @param string $tag * * @return string Valid HTML tag allowed for headings */ function stratum_validate_heading_html_tag( $tag ) { $allowed_tags = array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p', ); return in_array( strtolower( $tag ), $allowed_tags ) ? $tag : 'div'; }