/home/blackyak/www/wordpress/wp-content/themes/travivu/includes/hook.php
<?php
add_theme_support( 'wp-block-styles' );
add_theme_support( "responsive-embeds" );
add_theme_support( "align-wide" );

function travivu_breadcrumb(){
	$post_id = travivu_id();
	$title = '';
	$title = is_page() ? get_the_title() : $title;
	$title = is_search() ? esc_html__('Search', 'travivu') : $title;
	$title = is_archive() ? get_the_archive_title() : $title;
	$title = is_home() ? esc_html__('Latest posts', 'travivu') : $title;

	$padding_top = travivu_get_option('breadcrumb_padding_top', '');
	$padding_bottom = travivu_get_option('breadcrumb_padding_bottom', '');
	$show_title = travivu_get_option('breadcrumb_show_title', '1');
	$bg_color = travivu_get_option('breadcrumb_bg_color', '1');;
	$bg_color_opacity = travivu_get_option('breadcrumb_bg_opacity', '1');
	$breadcrumb_image = travivu_get_option('breadcrumb_bg_image', array('id'=> 0));
	$text_style = travivu_get_option('breadcrumb_text_stype', 'text-light');
	if(get_post_meta($post_id, 'travivu_breadcrumb_layout', true) == 'page_options'){
      //Breacrumb Image Color
      $bg_color = get_post_meta($post_id, 'travivu_breacrumb_bg_color', true);
      $bg_color_opacity = get_post_meta($post_id, 'travivu_breacrumb_bg_opacity', true);
      // Breadcrumb Image
      $post_breadcrumb_img = get_post_meta($post_id, 'travivu_breacrumb_image', true);
      if(is_numeric($post_breadcrumb_img)){
         $post_breadcrumb_img_url = wp_get_attachment_image_src( $post_breadcrumb_img, 'full');
      }
      if(isset($post_breadcrumb_img_url[0]) && $post_breadcrumb_img_url[0]){
         $breadcrumb_image['url'] = $post_breadcrumb_img_url[0];
      }
   }

   if(get_post_type() == 'at_biz_dir'){
   	$show_title = true;
   	$title = get_the_title();
   }

	$styles = $styles_inner = $classes = array();
	$styles_overlay = '';

	$classes[] = $text_style;

	if($bg_color){
		$rgba_color = travivu_convert_hextorgb($bg_color);
		$styles_overlay = 'background-color: rgba(' . esc_attr($rgba_color['r']) . ',' . esc_attr($rgba_color['g']) . ',' . esc_attr($rgba_color['b']) . ', ' . ($bg_color_opacity/100) . ')';
	}

	if(isset($breadcrumb_image['url'])){
		$styles[] = 'background-image: url(\'' . $breadcrumb_image['url'] . '\')';
	}

	if($padding_top > -1){
		$styles_inner[] = "padding-top:{$padding_top}px";
	}
	if($padding_bottom > -1){
		$styles_inner[] = "padding-bottom:{$padding_bottom}px";
	}

	$css = count($styles) ? 'style="' . implode(';', $styles) . '"' : '';
	$css_inner = count($styles_inner) > 0 ? 'style="' . implode(';', $styles_inner) . '"' : '';
?>

	<div class="custom-breadcrumb breadcrumb-default <?php echo implode(' ', $classes); ?>" <?php echo trim($css) ?>>
		<?php if($styles_overlay){ ?>
			<div class="breadcrumb-overlay" style="<?php echo esc_attr($styles_overlay); ?>"></div>
		<?php } ?>
		<div class="breadcrumb-main">
		  	<div class="container">
			 	<div class="breadcrumb-container-inner" <?php echo trim($css_inner) ?>>
			 		<?php 
			 			if($title && $show_title){ 
							echo '<h2 class="heading-title">' . html_entity_decode($title) . '</h2>';
						} 
					 	travivu_general_breadcrumbs();
					?>
			 	</div>  
		  	</div>   
		</div>  
	</div>

<?php }

add_action( 'travivu_page_breacrumb', 'travivu_breadcrumb', '10' );
add_action( 'wp_travel_engine_breadcrumb_holder', 'travivu_breadcrumb', '10' );

/**
 * Hook to select footer of page
 */
function travivu_get_footer_layout(){
	
	if(!class_exists('GVA_Layout_Frontend')){
		return false;
	}

	$post_id = false;
	if(class_exists('WooCommerce') && is_shop()){
		$post_id = wc_get_page_id('shop');
	}else{
		$post = get_post();
		if( $post && isset($post->ID) && $post->ID ){
			$post_id = $post->ID;
		}
	}

	$frontend = new GVA_Layout_Frontend();
	if(get_post_type($post_id) == 'page'){
		$footer_id = get_post_meta($post_id, 'travivu_footer_layout', true);
		if(empty($footer_id) || $footer_id == '_default_active'){
			$footer_id = $frontend->get_template_default('footer_layout');
		}
		return $footer_id;
	}

	$frontend = new GVA_Layout_Frontend();
	$template_id = $frontend->template_default_active_id();

	$post_meta_template = get_post_meta($post_id, 'travivu_template_layout', true);
	if( !empty($post_meta_template) && $post_meta_template != '_default_active' && $post_meta_template != '_without_layout' && is_numeric($post_meta_template) ){
		$template_id = $post_meta_template;
	}

	$footer_id = 0;
	if($template_id){
		$footer_id = get_post_meta($template_id, 'footer_layout', true);
	}

	if(!$footer_id){
		$footer_id = $frontend->template_default_active_id('footer_layout');
	}

	return $footer_id;
} 
add_filter( 'travivu_get_footer_layout', 'travivu_get_footer_layout' );
 
/**
 * Hook to select header of page
 */
function travivu_get_header_layout(){
	if(!class_exists('GVA_Layout_Frontend')){
		return false;
	}
	$post_id = false;

	if(class_exists('WooCommerce') && is_shop()){
		$post_id = wc_get_page_id('shop');
	}else{
		$post = get_post();
		if( $post && isset($post->ID) && $post->ID ){
			$post_id = $post->ID;
		}
	}

	$frontend = new GVA_Layout_Frontend();
	if(get_post_type($post_id) == 'page'){
		$header_id = get_post_meta($post_id, 'travivu_header_layout', true);
		if(empty($header_id) || $header_id == '_default_active'){
			$header_id = $frontend->get_template_default('header_layout');
		}
		return $header_id;
	}
	
	$template_id = $frontend->template_default_active_id();
	$post_meta_template = get_post_meta($post_id, 'travivu_template_layout', true);
	
	if(empty($header_id) || $header_id == '_default_active' || get_post_status( $header_id ) != 'publish' || get_post_type($header_id) != 'gva__template'){
		$template_id = $post_meta_template;
	}

	$header_id = 0;
	if($template_id){
		$header_id = get_post_meta($template_id, 'header_layout', true);
	}

	if(!$header_id){
		$header_id = $frontend->template_default_active_id('header_layout');
	}
	
	return $header_id;
} 
add_filter( 'travivu_get_header_layout', 'travivu_get_header_layout' );

function travivu_main_menu(){
	if(has_nav_menu( 'primary' )){
		$travivu_menu = array(
			'theme_location'    => 'primary',
			'container'         => 'div',
			'container_class'   => 'navbar-collapse',
			'container_id'      => 'gva-main-menu',
			'menu_class'        => ' gva-nav-menu gva-main-menu',
			'walker'            => new Travivu_Walker()
		);
		wp_nav_menu($travivu_menu);
	}  
}
add_action( 'travivu_main_menu', 'travivu_main_menu', 10 );
 
function travivu_mobile_menu(){
	if(has_nav_menu( 'primary' )){
		$travivu_menu = array(
			'theme_location'    => 'primary',
			'container'         => 'div',
			'container_class'   => 'navbar-collapse',
			'container_id'      => 'gva-mobile-menu',
			'menu_class'        => 'gva-nav-menu gva-mobile-menu',
			'walker'            => new Travivu_Walker()
		);
		wp_nav_menu($travivu_menu);
	}  
}
add_action( 'travivu_mobile_menu', 'travivu_mobile_menu', 10 );

function travivu_header_mobile(){
	get_template_part('templates/parts/header', 'mobile');
}
add_action('travivu_header_mobile', 'travivu_header_mobile', 10);

function travivu_canvas_mobile(){
	get_template_part('templates/parts/canvas', 'mobile');
}
add_action('travivu_canvas_mobile', 'travivu_canvas_mobile', 10);

add_filter('gavias-elements/map-api', 'travivu_googlemap_api');
function travivu_googlemap_api( $key = '' ){
   return travivu_get_option('map_api_key', '');
}

add_filter('gavias-post-type/slug-portfolio', 'travivu_slug_portfolio');
function travivu_slug_portfolio( $key = '' ){
	return travivu_get_option('slug_portfolio', '');
}

function travivu_setup_admin_setting(){
  	global $pagenow; 
  	if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' ) {
	 	update_option( 'thumbnail_size_w', 175 );  
	 	update_option( 'thumbnail_size_h', 175 );  
	 	update_option( 'thumbnail_crop', 1 );  
	 	update_option( 'medium_size_w', 600 );  
	 	update_option( 'medium_size_h', 540 ); 
	 	update_option( 'medium_crop', 1 );  
  }
}
add_action( 'init', 'travivu_setup_admin_setting'  );

function travivu_page_class_names($classes) {
	$post_id = travivu_id();
 	$class_el = get_post_meta($post_id, 'travivu_extra_page_class', true);
 	if($class_el) $classes[] = $class_el;
 	$classes[] = 'travivu-body-loading';
 	return $classes;
}
add_filter( 'body_class', 'travivu_page_class_names' );

function travivu_admin_body_class( $str_classes ) {
   global $post;
   $template_slug = get_page_template_slug( $post );
   $classes   = explode(' ', $str_classes);
   $classes[] = 'template-' . str_replace('.php', '', $template_slug);
  	$new_classes = join(' ', $classes);
   return $new_classes;
}
add_filter( 'admin_body_class', 'travivu_admin_body_class' );

function travivu_post_classes($classes, $class, $post_id){
   if(is_single($post_id)){
    	$classes[] = 'post-single-content';
   }
   return $classes;
}
add_filter( 'post_class', 'travivu_post_classes', 10, 3 );

function travivu_nav_items( $items, $menu, $args ) {
  	if( is_admin() ){
    	return $items;
  	}
  	$settings     = get_option( 'wp_travel_engine_settings', array() );
  	$dashboard_id = 0;
  	if(isset($settings['pages']['wp_travel_engine_dashboard_page']) && $settings['pages']['wp_travel_engine_dashboard_page']){
  		$dashboard_id = $settings['pages']['wp_travel_engine_dashboard_page'];
  	}
  	foreach($items as $item){
  		if($dashboard_id == $item->object_id){
  			if($item->attr_title){
         	$item->url .= '?tab=' . $item->attr_title;
         }
      }
    	if( $item->attr_title == 'logout' ){
      	$item->url = wp_logout_url( home_url('/') );
    	}
    	if( $item->attr_title == 'view-mode-list' ){
      	$item->url = add_query_arg( array(
				'view_mode' => 'list',
			),  $item->url);
    	}

	   if ('megamenu-explore' === $item->classes[0]) { 
	      $item->megamenu = true;
	      $item->megaalign = 'fullwidth';
	      $item->submegamenu = '306';
	   }
  	}
   return $items;
}
add_filter( 'wp_get_nav_menu_items', 'travivu_nav_items', 11, 3 );