398 lines
12 KiB
PHP
398 lines
12 KiB
PHP
<?php
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly.
|
|
}
|
|
use Elementor\Controls_Manager;
|
|
use Elementor\Scheme_Color;
|
|
use Elementor\Widget_Base;
|
|
use Elementor\Group_Control_Typography;
|
|
use Elementor\Scheme_Typography;
|
|
|
|
class Attesa_Extra_Navigation_Menu extends Widget_Base {
|
|
public function get_name() {
|
|
return 'attesa-extra-navigation-menu';
|
|
}
|
|
public function get_title() {
|
|
return __( 'Navigation Menus', 'attesa-extra' );
|
|
}
|
|
public function get_icon() {
|
|
return 'awp-icon eicon-navigation-horizontal';
|
|
}
|
|
public function get_categories() {
|
|
return [ 'attesa-elements' ];
|
|
}
|
|
|
|
protected function _register_controls() {
|
|
|
|
$this->start_controls_section(
|
|
'section_navigation_menus',
|
|
[
|
|
'label' => __( 'Navigations menus', 'attesa-extra' ),
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'select_menu',
|
|
[
|
|
'label' => __( 'Select Menu', 'attesa-extra' ),
|
|
'type' => Controls_Manager::SELECT,
|
|
'default' => '0',
|
|
'options' => $this->get_available_menus(),
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'mobile_menu',
|
|
[
|
|
'label' => __( 'Menu Mobile Text', 'attesa-extra' ),
|
|
'type' => Controls_Manager::TEXT,
|
|
'default' => __( 'Menu', 'attesa-extra' ),
|
|
'label_block' => true,
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'close_mobile_menu',
|
|
[
|
|
'label' => __( 'Close Menu Mobile Text', 'attesa-extra' ),
|
|
'type' => Controls_Manager::TEXT,
|
|
'default' => __( 'Close Menu', 'attesa-extra' ),
|
|
'label_block' => true,
|
|
]
|
|
);
|
|
|
|
$this->add_responsive_control(
|
|
'menu_align',
|
|
[
|
|
'label' => __( 'Alignment', 'attesa-extra' ),
|
|
'type' => Controls_Manager::CHOOSE,
|
|
'options' => [
|
|
'left' => [
|
|
'title' => __( 'Left', 'attesa-extra' ),
|
|
'icon' => 'fa fa-align-left',
|
|
],
|
|
'center' => [
|
|
'title' => __( 'Center', 'attesa-extra' ),
|
|
'icon' => 'fa fa-align-center',
|
|
],
|
|
'right' => [
|
|
'title' => __( 'Right', 'attesa-extra' ),
|
|
'icon' => 'fa fa-align-right',
|
|
],
|
|
],
|
|
'default' => 'left',
|
|
'toggle' => true,
|
|
'selectors' => [
|
|
'{{WRAPPER}} .attesa-custom-menu' => 'text-align: {{VALUE}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->add_responsive_control(
|
|
'items_padding',
|
|
[
|
|
'label' => __( 'Items Padding', 'attesa-extra' ),
|
|
'type' => Controls_Manager::DIMENSIONS,
|
|
'size_units' => [ 'px', 'em' ],
|
|
'desktop_default' => [
|
|
'top' => 1,
|
|
'right' => 0.6,
|
|
'bottom' => 1,
|
|
'left' => 0.6,
|
|
'unit' => 'em',
|
|
'isLinked' => false,
|
|
],
|
|
'tablet_default' => [
|
|
'top' => 1,
|
|
'right' => 0.6,
|
|
'bottom' => 1,
|
|
'left' => 0.6,
|
|
'unit' => 'em',
|
|
'isLinked' => false,
|
|
],
|
|
'mobile_default' => [
|
|
'top' => 1,
|
|
'right' => 0.6,
|
|
'bottom' => 1,
|
|
'left' => 0.6,
|
|
'unit' => 'em',
|
|
'isLinked' => false,
|
|
],
|
|
'selectors' => [
|
|
'{{WRAPPER}} .mainHead .main-navigation > div > ul > li > a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->add_group_control(
|
|
Group_Control_Typography::get_type(),
|
|
[
|
|
'name' => 'items_typography',
|
|
'selector' => '{{WRAPPER}} .main-navigation li',
|
|
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
|
]
|
|
);
|
|
|
|
$this->end_controls_section();
|
|
|
|
$this->start_controls_section(
|
|
'section_nav_menu_style',
|
|
[
|
|
'label' => __( 'Items Style', 'attesa-extra' ),
|
|
'tab' => Controls_Manager::TAB_STYLE,
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'menu_back_color',
|
|
[
|
|
'label' => __( 'Menu Background Color Mobile', 'attesa-extra' ),
|
|
'type' => Controls_Manager::COLOR,
|
|
'default' => '#ffffff',
|
|
'selectors' => [
|
|
'(tablet){{WRAPPER}} .attesa-main-menu-container' => 'background-color: {{VALUE}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'text_color',
|
|
[
|
|
'label' => __( 'Text Color', 'attesa-extra' ),
|
|
'type' => Controls_Manager::COLOR,
|
|
'default' => '#000000',
|
|
'selectors' => [
|
|
'{{WRAPPER}} .main-navigation >div >ul >li >a' => 'color: {{VALUE}};',
|
|
'(tablet){{WRAPPER}} .main-navigation ul ul a, {{WRAPPER}} .main-navigation ul li .indicator:before' => 'color: {{VALUE}} !important',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'sub_menu_back_color',
|
|
[
|
|
'label' => __( 'Sub Menu Background Color', 'attesa-extra' ),
|
|
'type' => Controls_Manager::COLOR,
|
|
'default' => '#000000',
|
|
'selectors' => [
|
|
'{{WRAPPER}} .main-navigation ul ul a' => 'background-color: {{VALUE}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'sub_menu_text_color',
|
|
[
|
|
'label' => __( 'Sub Menu Text Color', 'attesa-extra' ),
|
|
'type' => Controls_Manager::COLOR,
|
|
'default' => '#ffffff',
|
|
'selectors' => [
|
|
'{{WRAPPER}} .main-navigation ul ul a' => 'color: {{VALUE}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'menu_mobile_border_color',
|
|
[
|
|
'label' => __( 'Menu Mobile Border Color', 'attesa-extra' ),
|
|
'type' => Controls_Manager::COLOR,
|
|
'default' => '#ececec',
|
|
'selectors' => [
|
|
'(tablet){{WRAPPER}} .main-navigation li, {{WRAPPER}} .main-navigation ul li .indicator, {{WRAPPER}} .main-navigation ul li .indicator, {{WRAPPER}} .main-navigation >div >ul >li >ul.sub-menu, {{WRAPPER}} .attesa-main-menu-container' => 'border-color: {{VALUE}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->end_controls_section();
|
|
|
|
$this->start_controls_section(
|
|
'section_nav_menu_style_featured',
|
|
[
|
|
'label' => __( 'Featured button Style (if used)', 'attesa-extra' ),
|
|
'tab' => Controls_Manager::TAB_STYLE,
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'feat_button_text_color',
|
|
[
|
|
'label' => __( 'Featured Button Text Color', 'attesa-extra' ),
|
|
'type' => Controls_Manager::COLOR,
|
|
'default' => '#ffffff',
|
|
'selectors' => [
|
|
'{{WRAPPER}} .main-navigation >div >ul >li.attesaMenuButton >a' => 'color: {{VALUE}};',
|
|
'(tablet){{WRAPPER}} .main-navigation >div ul li.attesaMenuButton a, {{WRAPPER}} .main-navigation >div ul li.attesaMenuButton a:hover, {{WRAPPER}} .main-navigation >div ul li.attesaMenuButton a:focus, {{WRAPPER}} .main-navigation >div ul li.attesaMenuButton a:active, {{WRAPPER}} .main-navigation ul li.attesaMenuButton .indicator:before' => 'color: {{VALUE}} !important',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'feat_button_back_color',
|
|
[
|
|
'label' => __( 'Featured Button Background Color', 'attesa-extra' ),
|
|
'type' => Controls_Manager::COLOR,
|
|
'default' => '#000000',
|
|
'selectors' => [
|
|
'{{WRAPPER}} .attesaMenuButton' => 'background-color: {{VALUE}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->end_controls_section();
|
|
|
|
$this->start_controls_section(
|
|
'section_nav_menu_close_menu_button',
|
|
[
|
|
'label' => __( 'Close menu mobile button Style', 'attesa-extra' ),
|
|
'tab' => Controls_Manager::TAB_STYLE,
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'close_button_text_color',
|
|
[
|
|
'label' => __( 'Close Menu Button Text Color', 'attesa-extra' ),
|
|
'type' => Controls_Manager::COLOR,
|
|
'default' => '#000000',
|
|
'selectors' => [
|
|
'{{WRAPPER}} .attesa-main-menu-container.open_pushmenu .attesa-close-pushmenu' => 'color: {{VALUE}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'close_button_back_color',
|
|
[
|
|
'label' => __( 'Close Menu Button Background Color', 'attesa-extra' ),
|
|
'type' => Controls_Manager::COLOR,
|
|
'default' => '#fbfbfb',
|
|
'selectors' => [
|
|
'{{WRAPPER}} .attesa-main-menu-container.open_pushmenu .attesa-close-pushmenu' => 'background-color: {{VALUE}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'close_button_align',
|
|
[
|
|
'label' => __( 'Alignment', 'attesa-extra' ),
|
|
'type' => Controls_Manager::CHOOSE,
|
|
'options' => [
|
|
'left' => [
|
|
'title' => __( 'Left', 'attesa-extra' ),
|
|
'icon' => 'fa fa-align-left',
|
|
],
|
|
'center' => [
|
|
'title' => __( 'Center', 'attesa-extra' ),
|
|
'icon' => 'fa fa-align-center',
|
|
],
|
|
'right' => [
|
|
'title' => __( 'Right', 'attesa-extra' ),
|
|
'icon' => 'fa fa-align-right',
|
|
],
|
|
],
|
|
'default' => 'left',
|
|
'toggle' => true,
|
|
'selectors' => [
|
|
'{{WRAPPER}} .attesa-main-menu-container.open_pushmenu .attesa-close-pushmenu' => 'text-align: {{VALUE}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->end_controls_section();
|
|
|
|
$this->start_controls_section(
|
|
'section_hamburger_menu',
|
|
[
|
|
'label' => __( 'Hamburger Menu button Style (if used)', 'attesa-extra' ),
|
|
'tab' => Controls_Manager::TAB_STYLE,
|
|
]
|
|
);
|
|
|
|
$this->add_control(
|
|
'hamburger_menu_color',
|
|
[
|
|
'label' => __( 'Hamburger Menu Color', 'attesa-extra' ),
|
|
'type' => Controls_Manager::COLOR,
|
|
'default' => '#000000',
|
|
'selectors' => [
|
|
'{{WRAPPER}} .hamburger-menu .menu__line' => 'background-color: {{VALUE}};',
|
|
],
|
|
]
|
|
);
|
|
|
|
$this->end_controls_section();
|
|
}
|
|
|
|
private function get_available_menus() {
|
|
$menus = wp_get_nav_menus();
|
|
|
|
$options = array (__( '-- Select --', 'attesa-extra' ));
|
|
|
|
foreach ( $menus as $menu ) {
|
|
$options[ $menu->slug ] = $menu->name;
|
|
}
|
|
|
|
return $options;
|
|
}
|
|
|
|
protected function render() {
|
|
$settings = $this->get_settings();
|
|
$menu_selected = $settings['select_menu'];
|
|
$menu = $settings['mobile_menu'];
|
|
$close_menu = $settings['close_mobile_menu'];
|
|
$menuLinksStyle = attesa_options('_menu_links_style', 'minimal');
|
|
$mobileMenuIcon = attesa_options('_mobile_menu_icon', 'fas fa fa-bars');
|
|
?>
|
|
<?php if ($menu_selected != '0'):?>
|
|
<div class="attesa-custom-menu">
|
|
<div class="mainHead">
|
|
<div class="subHead attesa-elementor-menu">
|
|
<button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false" aria-label="<?php echo esc_attr($menu); ?>"><?php echo esc_html($menu); ?><i class="spaceLeft <?php echo esc_attr($mobileMenuIcon); ?>" aria-hidden="true"></i></button>
|
|
<div class="attesa-main-menu-container open_pushmenu">
|
|
<div class="attesa-close-pushmenu"><i class="fa fa-times-circle-o spaceRight" aria-hidden="true"></i><?php echo esc_html($close_menu); ?></div>
|
|
<nav id="site-navigation" class="main-navigation menustyle_<?php echo esc_attr($menuLinksStyle); ?>" <?php attesa_schema_markup('site-navigation'); ?>>
|
|
<?php
|
|
wp_nav_menu( array(
|
|
'menu' => $menu_selected,
|
|
'theme_location' => 'main',
|
|
'menu_id' => 'primary-menu',
|
|
) );
|
|
?>
|
|
</nav><!-- #site-navigation -->
|
|
</div>
|
|
</div>
|
|
</div><!-- .mainHead -->
|
|
<?php if ( is_active_sidebar( attesa_get_push_sidebar() ) && attesa_check_bar('push') ) : ?>
|
|
<div class="mainFunc">
|
|
<div class="subFunc attesa-elementor-menu">
|
|
<?php if(attesa_options('_pushsidebar_icon','three_lines_icon') == 'three_lines_icon') : ?>
|
|
<div class="hamburger-menu">
|
|
<div class="menu__line menu_line1"></div>
|
|
<div class="menu__line menu_line2"></div>
|
|
<div class="menu__line menu_line3"></div>
|
|
<div class="menu__line menu_line4"></div>
|
|
<div class="menu__line menu_line5"></div>
|
|
</div>
|
|
<?php elseif(attesa_options('_pushsidebar_icon','three_lines_icon') == 'plus_icon'): ?>
|
|
<div class="hamburger-menu noOw">
|
|
<div class="menu__plus menu_plus1"></div>
|
|
<div class="menu__plus menu_plus2"></div>
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="hamburger-menu noOw">
|
|
<div class="menu__circle"></div>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div><!-- .mainFunc -->
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php endif;
|
|
}
|
|
|
|
protected function _content_template() {
|
|
}
|
|
}
|