HEX
Server: Apache/2.4.25
System: Linux ion14 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64
User: (10087)
PHP: 7.4.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,system, exec, shell_exec, passthru, popen, proc_open
Upload Files
File: /home/www/web115/wordpress/wp-content/themes/osmosis/includes/grve-feature-functions.php
<?php

/*
*	Feature Helper functions
*
* 	@version	1.0
* 	@author		Greatives Team
* 	@URI		http://greatives.eu
*/


/**
 * Get Header Feature Section Data
 */

function grve_get_feature_data() {
	global $post;

	$feature_data_fullscreen = 'no';
	$feature_data_overlap = 'no';
	$feature_data_header_position = 'above-feature';
	$feature_header_style = 'default';

	$grve_woo_shop = false;
	$feature_size = '';

	if ( grve_woocommerce_enabled() && is_shop() && !is_search() ) {
		$grve_woo_shop = true;
	}

	if ( is_singular() || $grve_woo_shop  ) {

		if ( $grve_woo_shop ) {
			$post_id = wc_get_page_id( 'shop' );
		} else {
			$post_id = $post->ID;
		}
		$post_type = get_post_type( $post_id );

		if (( $post_type == 'page' && is_singular( 'page' ) ) ||
			( $post_type == 'portfolio' && is_singular( 'portfolio' ) ) ||
			( $post_type == 'post' && is_singular( 'post' ) ) ||
			$grve_woo_shop ) {

			$feature_element = get_post_meta( $post_id, 'grve_page_feature_element', true );
			if ( !empty( $feature_element ) ) {
				$feature_size = get_post_meta( $post_id, 'grve_page_feature_size', true );
				$feature_header_position = get_post_meta( $post_id, 'grve_page_feature_header_position', true );
				if ( 'below' == $feature_header_position ) {
					$feature_data_header_position = 'bellow-feature';
				}
				$feature_header_integration = get_post_meta( $post_id, 'grve_page_feature_header_integration', true );
				if ( empty($feature_size) ) {
					$feature_data_fullscreen = 'yes';
				}
				$feature_data_overlap = !empty( $feature_header_integration ) ? $feature_header_integration : 'no';
				if ( 'slider' == $feature_element ) {
					$slider_items = get_post_meta( $post_id, 'grve_page_slider_items', true );
					if ( !empty( $slider_items ) ) {
						$feature_header_style = isset( $slider_items[0]['header_style'] ) && 'yes' == $feature_data_overlap ? $slider_items[0]['header_style'] : 'default';
					}
				} else {
					$feature_header_style = get_post_meta( $post_id, 'grve_page_feature_header_style', true );
					if ( empty( $feature_header_style ) ) {
						$feature_header_style = 'default';
					}
				}
			}
		}
	}

	$header_styles = array( 'default', 'dark', 'light' );
	if ( !in_array( $feature_header_style, $header_styles ) ) {
		$feature_header_style = 'default';
	}

	return array(
		'data_fullscreen' => $feature_data_fullscreen,
		'data_overlap' => $feature_data_overlap,
		'data_header_position' => $feature_data_header_position,
		'header_style' => 'grve-' . $feature_header_style,
	);

}

/**
 * Prints Header Feature Section Page/Post/Portfolio
 */
function grve_print_header_feature() {
	global $post;

	$grve_woo_shop = false;
	if ( grve_woocommerce_enabled() && is_shop() && !is_search() ) {
		$grve_woo_shop = true;
	}

	if ( is_singular() || $grve_woo_shop  ) {

		if ( $grve_woo_shop ) {
			$post_id = wc_get_page_id( 'shop' );
		} else {
			$post_id = $post->ID;
		}

		$post_type = get_post_type( $post_id );

		if (( $post_type == 'page' && is_singular( 'page' ) ) ||
			( $post_type == 'portfolio' && is_singular( 'portfolio' ) ) ||
			( $post_type == 'post' && is_singular( 'post' ) ) ||
			$grve_woo_shop ) {

			$feature_element = get_post_meta( $post_id, 'grve_page_feature_element', true );
			if ( !empty( $feature_element ) ) {

				switch( $feature_element ) {

					case 'image':
						$image_item = get_post_meta( $post_id, 'grve_page_image_item', true );
						if ( !empty( $image_item ) ) {
							grve_print_header_feature_image( $post_id, $image_item );
						}
						break;
					case 'video':
						$video_item = get_post_meta( $post_id, 'grve_page_video_item', true );
						if ( !empty( $video_item ) ) {
							grve_print_header_feature_video( $post_id, $video_item );
						}
						break;
					case 'slider':
						$slider_items = get_post_meta( $post_id, 'grve_page_slider_items', true );
						if ( !empty( $slider_items ) ) {
							grve_print_header_feature_slider( $post_id, $slider_items );
						}
						break;
					case 'revslider':
						$revslider_alias = get_post_meta( $post_id, 'grve_page_feature_revslider', true );
						if ( !empty( $revslider_alias ) ) {
							grve_print_header_feature_revslider( $post_id, $revslider_alias );
						}
						break;
					case 'title':
						$title_item = get_post_meta( $post_id, 'grve_page_title_item', true );
						if ( !empty( $title_item ) ) {
							grve_print_header_feature_title( $post_id, $title_item );
						}
						break;
					case 'map':
						$map_items = get_post_meta( $post_id, 'grve_page_map_items', true );
						if ( !empty( $map_items ) ) {
							grve_print_header_feature_map( $post_id, $map_items );
						}
						break;
					default:
						break;

				}
			}
		}
	}
}

/**
 * Prints Overlay Container
 */
function grve_print_overlay_container( $item ) {

	$pattern_overlay = grve_array_value( $item, 'pattern_overlay' );
	$color_overlay = grve_array_value( $item, 'color_overlay' );
	$opacity_overlay = grve_array_value( $item, 'opacity_overlay', '10' );

	$overlay_classes = array();

	if ( !empty ( $pattern_overlay ) ) {
		array_push( $overlay_classes, 'grve-pattern');
	}
	if ( !empty ( $color_overlay ) ) {
		array_push( $overlay_classes, 'grve-' . $color_overlay . '-overlay');
	}
	if ( !empty ( $opacity_overlay ) ) {
		array_push( $overlay_classes, 'grve-overlay-' . $opacity_overlay );
	}

	$overlay_string = implode( ' ', $overlay_classes );
	if ( !empty ( $overlay_string ) ) {
		echo '<div class="' . esc_attr( $overlay_string ) . '"></div>';
	}
}

/**
 * Prints Background Image Container
 */
function grve_print_bg_image_container( $media_id, $bg_position = 'center-center', $bg_tablet_sm_position = '', $bg_image_size = 'grve-image-fullscreen' ) {

	if( empty( $bg_image_size ) ) {
		$bg_image_size = 'grve-image-fullscreen';
	}
	$full_src = wp_get_attachment_image_src( $media_id, $bg_image_size );
	if ( $full_src ) {
		$image_url = esc_url( $full_src[0] );
		if( !empty( $image_url ) ) {

			$bg_image_classes = array( 'grve-bg-image' );
			$bg_image_classes[] = 'grve-bg-position-' . $bg_position;
			if ( !empty( $bg_tablet_sm_position ) ) {
				$bg_image_classes[] = 'grve-bg-tablet-sm-' . $bg_tablet_sm_position;
			}
			$bg_image_classes_string = implode( ' ', $bg_image_classes );

			echo '<div class="' . esc_attr( $bg_image_classes_string ) . '" style="background-image: url(' . $image_url . ');"></div>';
		}
	}

}

function grve_print_bg_image_url_container( $image_url, $bg_position = 'center-center' ) {

	if( !empty( $image_url ) ) {

		$bg_image_classes = array( 'grve-bg-image' );
		$bg_image_classes[] = 'grve-bg-position-' . $bg_position;
		$bg_image_classes_string = implode( ' ', $bg_image_classes );

		echo '<div class="' . esc_attr( $bg_image_classes_string ) . '" style="background-image: url(' . $image_url . ');"></div>';
	}

}


/**
 * Prints Background Video Container
 */
function grve_print_bg_video_container( $video_item ) {


	$bg_video_webm = grve_array_value( $video_item, 'video_webm' );
	$bg_video_mp4 = grve_array_value( $video_item, 'video_mp4' );
	$bg_video_ogv = grve_array_value( $video_item, 'video_ogv' );
	$image_url = grve_array_value( $video_item, 'video_bg_image' );
	$bg_video_device = grve_array_value( $video_item, 'video_device', 'no' );
	$loop = grve_array_value( $video_item, 'video_loop', 'yes' );
	$muted = grve_array_value( $video_item, 'video_muted', 'yes' );

	$out_video_bg  = '';

	if ( !empty( $image_url ) ) {
		echo grve_print_bg_image_url_container( $image_url );
	}

	$video_poster = $playsinline = '';

	if ( wp_is_mobile() ) {
		if ( 'yes' == $bg_video_device ) {
			if( !empty( $image_url ) ) {
				$video_poster = $image_url;
			}
			$muted = 'yes';
			$playsinline = 'yes';
		} else {
			return;
		}
	}

	if ( osmosis_grve_browser_webkit_check() ) {
		$muted = 'yes';
	}

	$video_settings = array(
		'preload' => 'auto',
		'autoplay' => 'yes',
		'loop' => $loop,
		'muted' => $muted,
		'poster' => $video_poster,
		'playsinline' => $playsinline,
	);
	$video_settings = apply_filters( 'grve_feature_video_settings', $video_settings );

	if ( !empty ( $bg_video_webm ) || !empty ( $bg_video_mp4 ) || !empty ( $bg_video_ogv ) ) {
		echo '<div class="grve-bg-video grve-html5-bg-video" data-video-device="' . esc_attr( $bg_video_device ) . '">';
		echo '<video ' . grve_print_media_video_settings( $video_settings ) . '>';
		if ( !empty ( $bg_video_webm ) ) {
			echo '<source src="' . esc_url( $bg_video_webm ) . '" type="video/webm">';
		}
		if ( !empty ( $bg_video_mp4 ) ) {
			echo '<source src="' . esc_url( $bg_video_mp4 ) . '" type="video/mp4">';
		}
		if ( !empty ( $bg_video_ogv ) ) {
			echo '<source src="' . esc_url( $bg_video_ogv ) . '" type="video/ogg">';
		}
		echo '</video>';
		echo '</div>';
	}

}


/**
 * Get Feature Section position data
 */

function osmosis_grve_get_feature_position_data( $feature_size, $feature_height , $bg_color = '' ) {

	$feature_data = array();

	if ( !empty($feature_size) ) {
		if ( empty( $feature_height ) ) {
			$feature_height = "550";
		}
		if ( !empty($bg_color) ) {
			$feature_data[] = 'data-height="' . esc_attr( $feature_height ) . '"';
			$feature_data[] = 'style="height:' . esc_attr( $feature_height ) . 'px;background-color: ' . esc_attr( $bg_color ) . ';"';
		} else {
			$feature_data[] = 'data-height="' . esc_attr( $feature_height ) . '"';
			$feature_data[] = 'style="height:' . esc_attr( $feature_height ) . 'px;"';
		}
	} else {
		if ( !empty($bg_color) ) {
			$feature_data[] = 'style="background-color: ' . esc_attr( $bg_color ) . ';"';
		}
	}
	return $feature_data;
}

function osmosis_grve_get_feature_style_height( $feature_size, $feature_height ) {

	$feature_data = array();

	if ( !empty($feature_size) ) {
		if ( empty( $feature_height ) ) {
			$feature_height = "550";
		}
		$feature_data[] = 'style="height:' . esc_attr( $feature_height ) . 'px;"';
	}
	return $feature_data;
}

/**
 * Prints Simple Header Feature Revolution Slider ( Post/Portfolio )
 */
function grve_print_header_feature_revslider( $post_id, $revslider_alias ) {

	$feature_header_style = get_post_meta( $post_id, 'grve_page_feature_header_style', true );
?>
	<div id="grve-feature-section" class="grve-with-revslider">
		<div class="grve-feature-section-inner" data-item="revslider">
			<div class="grve-feature-element grve-revslider">
				<?php echo do_shortcode( '[rev_slider ' . $revslider_alias . ']' ); ?>
				<?php grve_print_feature_go_to_section( $post_id, $feature_header_style, 'revslider' ); ?>
			</div>
		</div>
	</div>
<?php

}

/**
 * Prints Header Section Feature content
 */
function grve_print_header_feature_content( $item  ) {

	$title = grve_array_value( $item, 'title' );
	$caption = grve_array_value( $item, 'caption' );
	$title_color = grve_array_value( $item, 'title_color', 'dark' );
	$caption_color = grve_array_value( $item, 'caption_color', 'dark' );
	$title_tag = grve_array_value( $item, 'title_tag', 'h1' );
	$caption_tag = grve_array_value( $item, 'caption_tag', 'div' );
?>
	<?php if ( !empty( $title ) ) { ?>
	<<?php echo esc_attr( $title_tag ); ?> class="grve-title grve-<?php echo esc_attr( $title_color ); ?>"><span><?php echo wp_kses_post( $title ); ?></span></<?php echo esc_attr( $title_tag ); ?>>
	<?php } ?>
	<?php if ( !empty( $caption ) ) { ?>
	<<?php echo esc_attr( $caption_tag ); ?> class="grve-description grve-<?php echo esc_attr( $caption_color ); ?>"><?php echo wp_kses_post( $caption ); ?></<?php echo esc_attr( $caption_tag ); ?>>
	<?php } ?>
<?php
}


/**
 * Prints Header Section Feature Title
 */
function grve_print_header_feature_title( $post_id, $title_item  ) {

	$feature_size = get_post_meta( $post_id, 'grve_page_feature_size', true );
	$feature_height = get_post_meta( $post_id, 'grve_page_feature_height', true );
	$text_align = grve_array_value( $title_item, 'text_align', 'left' );
	$text_animation = grve_array_value( $title_item, 'text_animation', 'fade-in' );
	$title = grve_array_value( $title_item, 'title' );
	$caption = grve_array_value( $title_item, 'caption' );
	$title_color = grve_array_value( $title_item, 'title_color', '#ffffff' );
	$caption_color = grve_array_value( $title_item, 'caption_color', '#ffffff' );
	$title_tag = grve_array_value( $title_item, 'title_tag', 'h1' );
	$caption_tag = grve_array_value( $title_item, 'caption_tag', 'div' );
	$bg_color = grve_array_value( $title_item, 'bg_color', '#303030' );

	$style = grve_array_value( $title_item, 'style', 'default' );
	$el_class = grve_array_value( $title_item, 'el_class' );

	$feature_height_data = osmosis_grve_get_feature_style_height( $feature_size, $feature_height );
	$feature_position_data = osmosis_grve_get_feature_position_data( $feature_size, $feature_height, $bg_color );

	$feature_effect = get_post_meta( $post_id, 'grve_page_feature_effect', true );
	if ( empty( $feature_effect ) ) {
		$feature_effect = "none";
	}
?>
	<div id="grve-feature-section" class="grve-with-title <?php echo esc_attr( $el_class ); ?>" data-effect="<?php echo esc_attr( $feature_effect ); ?>" <?php echo implode( ' ', $feature_height_data ); ?>>

		<div class="grve-feature-section-inner" data-item="title" <?php echo implode( ' ', $feature_position_data ); ?>>

			<!-- Custom Title -->
			<div id="grve-feature-title" class="grve-feature-content grve-align-<?php echo esc_attr( $text_align ); ?> grve-style-<?php echo esc_attr( $style ); ?> grve-<?php echo esc_attr( $text_animation ); ?>">
				<div class="grve-container">
					<?php if ( !empty( $title ) ) { ?>
					<<?php echo esc_attr( $title_tag ); ?> class="grve-title" style="color:<?php echo esc_attr( $title_color ); ?>"><span><?php echo wp_kses_post( $title ); ?></span></<?php echo esc_attr( $title_tag ); ?>>
					<?php } ?>
					<?php if ( !empty( $caption ) ) { ?>
					<<?php echo esc_attr( $caption_tag ); ?> class="grve-description" style="color:<?php echo esc_attr( $caption_color ); ?>"><?php echo wp_kses_post( $caption ); ?></<?php echo esc_attr( $caption_tag ); ?>>
					<?php } ?>
				</div>
			</div>
			<!-- End Custom Title -->
			<?php grve_print_feature_go_to_section( $post_id, $title_color, 'title' ); ?>
		</div>

	</div>
<?php
}

/**
 * Prints Header Section Feature Video
 */
function grve_print_header_feature_video( $post_id, $video_item  ) {

	$feature_size = get_post_meta( $post_id, 'grve_page_feature_size', true );
	$feature_height = get_post_meta( $post_id, 'grve_page_feature_height', true );

	$text_align = grve_array_value( $video_item, 'text_align', 'left' );
	$text_animation = grve_array_value( $video_item, 'text_animation', 'fade-in' );
	$title_color = grve_array_value( $video_item, 'title_color', 'dark' );

	$style = grve_array_value( $video_item, 'style', 'default' );
	$el_class = grve_array_value( $video_item, 'el_class' );

	$feature_height_data = osmosis_grve_get_feature_style_height( $feature_size, $feature_height );
	$feature_position_data = osmosis_grve_get_feature_position_data( $feature_size, $feature_height );
	$feature_effect = get_post_meta( $post_id, 'grve_page_feature_effect', true );
	if ( empty( $feature_effect ) ) {
		$feature_effect = "none";
	}
?>
	<div id="grve-feature-section" class="grve-with-video <?php echo esc_attr( $el_class ); ?>" data-effect="<?php echo esc_attr( $feature_effect ); ?>" <?php echo implode( ' ', $feature_height_data ); ?>>

		<div class="grve-feature-section-inner" data-item="video" <?php echo implode( ' ', $feature_position_data ); ?>>
			<!-- Custom Title -->
			<div id="grve-feature-title" class="grve-feature-content grve-align-<?php echo esc_attr( $text_align ); ?> grve-style-<?php echo esc_attr( $style ); ?> grve-<?php echo esc_attr( $text_animation ); ?>">
				<div class="grve-container">
					<?php grve_print_header_feature_content( $video_item  ); ?>
					<?php grve_print_feature_buttons( $video_item ); ?>
				</div>
			</div>
			<?php
				grve_print_overlay_container( $video_item );
				grve_print_bg_video_container( $video_item );
				grve_print_feature_go_to_section( $post_id, $title_color, 'video' );
			?>
		</div>

	</div>
<?php
}

/**
 * Prints Header Section Feature Image ( Page / Portfolio )
 */
function grve_print_header_feature_image( $post_id, $image_item ) {

	$feature_size = get_post_meta( $post_id, 'grve_page_feature_size', true );
	$feature_height = get_post_meta( $post_id, 'grve_page_feature_height', true );

	$media_id = $image_item['id'];

	$text_align = grve_array_value( $image_item, 'text_align', 'left' );
	$text_animation = grve_array_value( $image_item, 'text_animation', 'fade-in' );
	$title_color = grve_array_value( $image_item, 'title_color', 'dark' );

	$bg_image_size = grve_array_value( $image_item, 'bg_image_size' );
	$bg_position = grve_array_value( $image_item, 'bg_position', 'center-center' );
	$bg_tablet_sm_position = grve_array_value( $image_item, 'bg_tablet_sm_position', '' );
	$bg_effect = grve_array_value( $image_item, 'bg_effect', 'none' );
	$style = grve_array_value( $image_item, 'style', 'default' );
	$el_class = grve_array_value( $image_item, 'el_class' );

	$feature_height_data = osmosis_grve_get_feature_style_height( $feature_size, $feature_height );
	$feature_position_data = osmosis_grve_get_feature_position_data( $feature_size, $feature_height );

	$feature_effect = get_post_meta( $post_id, 'grve_page_feature_effect', true );
	if ( empty( $feature_effect ) ) {
		$feature_effect = "none";
	}
?>
	<div id="grve-feature-section" class="grve-with-image <?php echo esc_attr( $el_class ); ?>" data-effect="<?php echo esc_attr( $feature_effect ); ?>" <?php echo implode( ' ', $feature_height_data ); ?>>

		<div class="grve-feature-section-inner" data-bg-effect="<?php echo esc_attr( $bg_effect ); ?>"  data-item="image" <?php echo implode( ' ', $feature_position_data ); ?>>
			<!-- Custom Title -->
			<div id="grve-feature-title" class="grve-feature-content grve-align-<?php echo esc_attr( $text_align ); ?> grve-style-<?php echo esc_attr( $style ); ?> grve-<?php echo esc_attr( $text_animation ); ?>">
				<div class="grve-container">
					<?php grve_print_header_feature_content( $image_item  ); ?>
					<?php grve_print_feature_buttons( $image_item ); ?>
				</div>
			</div>
			<!-- End Custom Title -->
			<?php
				grve_print_overlay_container( $image_item );
				grve_print_bg_image_container( $media_id, $bg_position, $bg_tablet_sm_position, $bg_image_size );
			?>
			<?php grve_print_feature_go_to_section( $post_id, $title_color, 'image' ); ?>
		</div>

	</div>
<?php
}

/**
 * Get slider settings data ( Page / Portfolio )
 */
function grve_get_slider_settings_data( $slider_settings ) {
	$slider_data = '';

	if ( !empty( $slider_settings ) ) {

		$slider_speed = grve_array_value( $slider_settings, 'slideshow_speed', '3500' );
		$slider_pause = grve_array_value( $slider_settings, 'slider_pause', 'no' );
		$slider_transition = grve_array_value( $slider_settings, 'transition', 'slide' );

		$slider_data .= ' data-slider-speed="' . esc_attr( $slider_speed ) . '"';
		$slider_data .= ' data-slider-pause="' . esc_attr( $slider_pause ) . '"';
		$slider_data .= ' data-slider-transition="' . esc_attr( $slider_transition ) . '"';

	}
	return $slider_data;
}

/**
 * Prints Advanced Header Feature Slider ( Page / Portfolio / Post )
 */
function grve_print_header_feature_slider( $post_id, $slider_items ) {

	$feature_size = get_post_meta( $post_id, 'grve_page_feature_size', true );
	$feature_height = get_post_meta( $post_id, 'grve_page_feature_height', true );
	$slider_settings = get_post_meta( $post_id, 'grve_page_slider_settings', true );

	$feature_height_data = osmosis_grve_get_feature_style_height( $feature_size, $feature_height );
	$feature_position_data = osmosis_grve_get_feature_position_data( $feature_size, $feature_height );

	$slider_dir_nav = grve_array_value( $slider_settings, 'direction_nav', '1' );
	$slider_dir_nav_color = grve_array_value( $slider_settings, 'direction_nav_color', 'light' );
	$slider_nav_advanced = grve_array_value( $slider_settings, 'nav_advanced' );


	$feature_effect = get_post_meta( $post_id, 'grve_page_feature_effect', true );
	if ( empty( $feature_effect ) ) {
		$feature_effect = "none";
	}

?>
	<div id="grve-feature-section" class="grve-with-slider" data-effect="<?php echo esc_attr( $feature_effect ); ?>" <?php echo implode( ' ', $feature_height_data ); ?>>
		<div class="grve-feature-section-inner grve-carousel-wrapper" data-item="slider" <?php echo implode( ' ', $feature_position_data ); ?>>

<?php
		if ( 0 != $slider_dir_nav ) {
?>
			<div class="grve-carousel-navigation grve-<?php echo esc_attr( $slider_dir_nav_color ); ?>" data-navigation-type="<?php echo esc_attr( $slider_dir_nav ); ?>">
				<div class="grve-carousel-buttons">
					<div class="grve-carousel-prev grve-icon-nav-left"></div>
					<div class="grve-carousel-next grve-icon-nav-right"></div>
				</div>
			</div>
<?php
		}
?>
			<div id="grve-feature-slider" class="grve-slider" <?php echo grve_get_slider_settings_data( $slider_settings ); ?>>

<?php
			foreach ( $slider_items as $slider_item ) {
				$media_id = $slider_item['id'];

				$text_align = grve_array_value( $slider_item, 'text_align', 'left' );
				$text_animation = grve_array_value( $slider_item, 'text_animation', 'fade-in' );
				$title_color = grve_array_value( $slider_item, 'title_color', 'dark' );

				$bg_image_size = grve_array_value( $slider_item, 'bg_image_size' );
				$bg_position = grve_array_value( $slider_item, 'bg_position', 'center-center' );
				$bg_tablet_sm_position = grve_array_value( $slider_item, 'bg_tablet_sm_position', '' );
				$style = grve_array_value( $slider_item, 'style', 'default' );
				$header_style = grve_array_value( $slider_item, 'header_style', 'default' );
				$el_class = grve_array_value( $slider_item, 'el_class' );

				$header_styles = array( 'default', 'dark', 'light' );
				if ( !in_array( $header_style, $header_styles ) ) {
					$header_style = 'default';
				}

?>
				<div class="grve-slider-item <?php echo esc_attr( $el_class ); ?>" data-style="<?php echo esc_attr( $header_style ); ?>" data-title-color="<?php echo esc_attr( $title_color ); ?>">
					<div class="grve-feature-content grve-align-<?php echo esc_attr( $text_align ); ?> grve-style-<?php echo esc_attr( $style ); ?> grve-<?php echo esc_attr( $text_animation ); ?>">
						<div class="grve-container">
							<?php grve_print_header_feature_content( $slider_item  ); ?>
							<?php grve_print_feature_buttons( $slider_item ); ?>
						</div>
					</div>
					<?php
						grve_print_overlay_container( $slider_item );
						grve_print_bg_image_container( $media_id, $bg_position, $bg_tablet_sm_position, $bg_image_size );
					?>
				</div>
<?php
			}
?>

			</div>

		</div>
		<?php grve_print_feature_go_to_section( $post_id, $title_color, 'slider' ); ?>
	</div>
<?php

}

/**
 * Prints Header Feature Map ( Page / Portfolio )
 */
function grve_print_header_feature_map( $post_id, $map_items ) {

	wp_enqueue_script( 'grve-googleapi-script');
	wp_enqueue_script( 'grve-markerclusterer-script');
	wp_enqueue_script( 'grve-maps-script');

	$feature_size = get_post_meta( $post_id, 'grve_page_feature_size', true );
	$feature_height = get_post_meta( $post_id, 'grve_page_feature_height', true );

	$map_settings = get_post_meta( $post_id, 'grve_page_map_settings', true );
	$map_marker = grve_array_value( $map_settings, 'marker', get_template_directory_uri() . '/images/markers/markers.png' );
	$map_zoom = grve_array_value( $map_settings, 'zoom', 14 );
	$map_single_popup = grve_array_value( $map_settings, 'single_popup', 'no' );
	$map_clustering = grve_array_value( $map_settings, 'clustering', 'no' );

	$map_lat = grve_array_value( $map_items[0], 'lat', '51.516221' );
	$map_lng = grve_array_value( $map_items[0], 'lng', '-0.136986' );

	$feature_height_data = osmosis_grve_get_feature_style_height( $feature_size, $feature_height );
	$feature_position_data = osmosis_grve_get_feature_position_data( $feature_size, $feature_height );

?>
	<div id="grve-feature-section" class="grve-with-map" <?php echo implode( ' ', $feature_height_data ); ?>>
		<div class="grve-feature-section-inner" data-item="map" <?php echo implode( ' ', $feature_position_data ); ?>>
			<div class="grve-map" <?php echo implode( ' ', $feature_height_data ); ?> data-lat="<?php echo esc_attr( $map_lat ); ?>" data-lng="<?php echo esc_attr( $map_lng ); ?>" data-zoom="<?php echo esc_attr( $map_zoom ); ?>" data-single-popup="<?php echo esc_attr( $map_single_popup ); ?>" data-clustering="<?php echo esc_attr( $map_clustering ); ?>"><?php echo apply_filters( 'grve_privacy_gmap_fallback', '', $map_lat, $map_lng ); ?></div>
			<?php
				foreach ( $map_items as $map_item ) {
					grve_print_feature_map_point( $map_item, $map_marker );
				}
			?>
			</div>
	</div>
<?php
}

function grve_print_feature_map_point( $map_item, $default_marker ) {

	$map_lat = grve_array_value( $map_item, 'lat', '51.516221' );
	$map_lng = grve_array_value( $map_item, 'lng', '-0.136986' );
	$map_marker = grve_array_value( $map_item, 'marker', $default_marker );

	$map_title = grve_array_value( $map_item, 'title' );
	$map_infotext = grve_array_value( $map_item, 'info_text', '' );
	$map_infotext_open = grve_array_value( $map_item, 'info_text_open', 'no' );

	$button_text = grve_array_value( $map_item, 'button_text' );
	$button_url = grve_array_value( $map_item, 'button_url' );
	$button_url = esc_url( $button_url );
	$button_type = grve_array_value( $map_item, 'button_type', '' );
	$button_size = grve_array_value( $map_item, 'button_size', 'extrasmall' );
	$button_color = grve_array_value( $map_item, 'button_color', 'primary-1' );
	$button_shape = grve_array_value( $map_item, 'button_shape', 'square' );
	$button_target = grve_array_value( $map_item, 'button_target', '_self' );
	$button_target = esc_attr( $button_target );
	$button_class = grve_array_value( $map_item, 'button_class' );

?>
	<div style="display:none" class="grve-map-point" data-point-lat="<?php echo esc_attr( $map_lat ); ?>" data-point-lng="<?php echo esc_attr( $map_lng ); ?>" data-point-marker="<?php echo esc_attr( $map_marker ); ?>" data-point-title="<?php echo esc_attr( $map_title ); ?>" data-point-open="<?php echo esc_attr( $map_infotext_open ); ?>">
		<?php if ( !empty( $map_title ) || !empty( $map_infotext ) || !empty( $button_text ) ) { ?>
		<div class="grve-map-infotext">
			<?php if ( !empty( $map_title ) ) { ?>
			<h6 class="grve-infotext-title"><?php echo esc_html( $map_title ); ?></h6>
			<?php } ?>
			<?php if ( !empty( $map_infotext ) ) { ?>
			<p class="grve-infotext-description"><?php echo wp_kses_post( $map_infotext ); ?></p>
			<?php } ?>
			<?php if ( !empty( $button_text ) ) { ?>
			<a class="grve-infotext-link <?php echo esc_attr( $button_class ); ?>" href="<?php echo esc_url( $button_url ); ?>" target="<?php echo esc_attr( $button_target ); ?>"><?php echo esc_html( $button_text ); ?></a>
			<?php } ?>
		</div>
		<?php } ?>
	</div>
<?php

}

/**
 * Prints Header Feature Go to Section ( Bottom Arrow )
 */
function grve_print_feature_go_to_section( $post_id, $title_color, $item_type = 'default' ) {

	$feature_go_to_section = grve_admin_post_meta( $post_id, 'grve_page_feature_go_to_section' );

	if( !empty( $feature_go_to_section ) ) {

		$feature_go_to_section_size = grve_admin_post_meta( $post_id, 'grve_page_feature_go_to_section_size', 'medium' );
		$feature_go_to_section_shape = grve_admin_post_meta( $post_id, 'grve_page_feature_go_to_section_shape', 'none' );
		$feature_go_to_section_animation = grve_admin_post_meta( $post_id, 'grve_page_feature_go_to_section_animation', 'bounce' );

		$go_to_section_classes = array( 'grve-goto-section', 'grve-icon-nav-down ');
		$go_to_section_classes[] = 'grve-' . $feature_go_to_section_size;

		if ( 'none' != $feature_go_to_section_shape ) {
			$go_to_section_classes[] = 'grve-' . $feature_go_to_section_shape;
		} else {
			$go_to_section_classes[] = 'grve-no-shape';
		}

		if (  'none' != $feature_go_to_section_animation  ) {
			$go_to_section_classes[] = 'grve-goto-' . $feature_go_to_section_animation;
		} else {
			$go_to_section_classes[] = 'grve-goto-no-animation';
		}

		if ( 'title' == $item_type ) {
			$go_to_section_classes[] = 'grve-custom-color';
		} else {
			$go_to_section_classes[] = 'grve-' . $title_color ;
		}

		$go_to_section_class_string = implode( ' ', $go_to_section_classes );


		if ( 'title' == $item_type ) {
?>
		<div id="grve-feature-goto" class="<?php echo esc_attr( $go_to_section_class_string ); ?>" data-custom-color="<?php echo esc_attr( $title_color ); ?>"></div>

<?php
		} else {
?>
		<div id="grve-feature-goto" class="<?php echo esc_attr( $go_to_section_class_string ); ?>"></div>
<?php
		}
	}

}

/**
 * Prints Header Feature Button
 */

function grve_print_feature_buttons( $item ) {

	$button_text = grve_array_value( $item, 'button_text' );
	$button_url = grve_array_value( $item, 'button_url' );
	$button_type = grve_array_value( $item, 'button_type', '' );
	$button_size = grve_array_value( $item, 'button_size', 'medium' );
	$button_color = grve_array_value( $item, 'button_color', 'primary-1' );
	$button_shape = grve_array_value( $item, 'button_shape', 'square' );
	$button_target = grve_array_value( $item, 'button_target', '_self' );
	$button_class = grve_array_value( $item, 'button_class' );

	$button_text2 = grve_array_value( $item, 'button_text2' );
	$button_url2 = grve_array_value( $item, 'button_url2' );
	$button_type2 = grve_array_value( $item, 'button_type2', '' );
	$button_size2 = grve_array_value( $item, 'button_size2', 'medium' );
	$button_color2 = grve_array_value( $item, 'button_color2', 'primary-1' );
	$button_shape2 = grve_array_value( $item, 'button_shape2', 'square' );
	$button_target2 = grve_array_value( $item, 'button_target2', '_self' );
	$button_class2 = grve_array_value( $item, 'button_class2' );

	if( !empty( $button_text ) || !empty( $button_text2 ) ) {
		echo '<div class="grve-button-wrapper">';
		grve_print_feature_button( $button_text, $button_url, $button_type, $button_size, $button_color, $button_shape, $button_target, $button_class );
		grve_print_feature_button( $button_text2, $button_url2, $button_type2, $button_size2, $button_color2, $button_shape2, $button_target2, $button_class2 );
		echo '</div>';
	}

}

function grve_print_feature_button( $button_text, $button_url, $button_type, $button_size, $button_color, $button_shape, $button_target, $button_class ) {

	if ( !empty( $button_text ) ) {
		$button_classes = array( 'grve-btn' );

		array_push( $button_classes, 'grve-btn-' . $button_size );
		array_push( $button_classes, 'grve-' . $button_shape );

		if ( grve_starts_with( $button_color, 'primary' ) ) {
			array_push( $button_classes, 'grve-bg-' . $button_color );
		} else {
			array_push( $button_classes, 'grve-' . $button_color . '-color' );
		}

		if ( 'outline' == $button_type ) {
			array_push( $button_classes, 'grve-btn-line' );
		}
		if ( !empty( $button_class ) ) {
			array_push( $button_classes, $button_class );
		}

		$button_class_string = implode( ' ', $button_classes );

		if ( !empty( $button_url ) ) {
			$url = $button_url;
			$target = $button_target;
		} else {
			$url = "#";
			$target= "_self";
		}

		echo '<a class="' . esc_attr( $button_class_string ) . '" href="' . esc_url( $url ) . '"  target="' . esc_attr( $target ) . '">';
		echo '<span>' . esc_html( $button_text ) . '</span>';
		echo '</a>';
	}

}

//Omit closing PHP tag to avoid accidental whitespace output errors.