124 lines
2.6 KiB
PHP
124 lines
2.6 KiB
PHP
<?php
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // disable direct access
|
|
}
|
|
|
|
add_action( 'wp_enqueue_scripts', 'jet_menu_avada_styles', 0 );
|
|
add_filter( 'wp_nav_menu_items', 'jet_menu_avada_fix_header_search', 999, 2 );
|
|
add_filter( 'jet-menu/main-walker/end-el', 'jet_menu_avada_middle_logo', 10, 5 );
|
|
add_filter( 'jet-menu/set-menu-args/', 'jet_menu_avada_mobile_middle_logo' );
|
|
|
|
/**
|
|
* Make header search in avada theme compatible with JetMenu
|
|
* @return [type] [description]
|
|
*/
|
|
function jet_menu_avada_fix_header_search( $items, $args ) {
|
|
if ( ! isset( $args->menu_class ) || 'jet-menu' !== $args->menu_class ) {
|
|
return $items;
|
|
}
|
|
|
|
$items = str_replace(
|
|
array(
|
|
'fusion-custom-menu-item fusion-main-menu-search',
|
|
'fusion-main-menu-icon',
|
|
),
|
|
array(
|
|
'fusion-custom-menu-item fusion-main-menu-search jet-menu-item jet-simple-menu-item jet-regular-item jet-responsive-menu-item',
|
|
'fusion-main-menu-icon top-level-link',
|
|
),
|
|
$items
|
|
);
|
|
|
|
return $items;
|
|
|
|
}
|
|
|
|
/**
|
|
* Enqueue avada compatibility styles
|
|
*
|
|
* @return void
|
|
*/
|
|
function jet_menu_avada_styles() {
|
|
wp_enqueue_style(
|
|
'jet-menu-avada',
|
|
jet_menu()->get_theme_url( 'assets/css/style.css' ),
|
|
array(),
|
|
jet_menu()->get_version()
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Adds middle logo if this layout is selected
|
|
*
|
|
* @return string
|
|
*/
|
|
function jet_menu_avada_middle_logo( $output, $item, $walker, $depth, $args ) {
|
|
|
|
if ( '0' !== $item->menu_item_parent ) {
|
|
return $output;
|
|
}
|
|
|
|
$avada = Avada()->settings;
|
|
|
|
if ( 'v7' !== $avada->get( 'header_layout' ) || 'Top' !== $avada->get( 'header_position' ) ) {
|
|
return $output;
|
|
}
|
|
|
|
if ( ! isset( $walker->items_count ) ) {
|
|
|
|
$items = wp_get_nav_menu_items( $args->menu );
|
|
$count = 0;
|
|
|
|
foreach ( $items as $item ) {
|
|
if ( '0' === $item->menu_item_parent ) {
|
|
$count++;
|
|
}
|
|
}
|
|
|
|
$walker->items_count = $count;
|
|
}
|
|
|
|
if ( ! isset( $walker->item_index ) ) {
|
|
$walker->item_index = 0;
|
|
}
|
|
|
|
$walker->item_index++;
|
|
|
|
if ( absint( $walker->item_index ) === absint( ceil( $walker->items_count / 2 ) ) ) {
|
|
ob_start();
|
|
get_template_part( 'templates/logo' );
|
|
$output .= ob_get_clean();
|
|
}
|
|
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Add mobile fallback for middle logo
|
|
*
|
|
* @param [type] $args [description]
|
|
* @return [type] [description]
|
|
*/
|
|
function jet_menu_avada_mobile_middle_logo( $args ) {
|
|
|
|
$avada = Avada()->settings;
|
|
|
|
if ( 'v7' === $avada->get( 'header_layout' ) && 'Top' === $avada->get( 'header_position' ) ) {
|
|
ob_start();
|
|
get_template_part( 'templates/logo' );
|
|
$logo = ob_get_clean();
|
|
|
|
$logo = str_replace(
|
|
array( '<li', 'li>' ),
|
|
array( '<div', 'div>' ),
|
|
$logo
|
|
);
|
|
|
|
echo $logo;
|
|
|
|
}
|
|
|
|
return $args;
|
|
}
|