![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /proc/self/cwd/wp-content/plugins/bdthemes-element-pack/modules/background-overlay/ |
<?php namespace ElementPack\Modules\BackgroundOverlay; use Elementor\Controls_Manager; use Elementor\Group_Control_Background; use Elementor\Group_Control_Css_Filter; use Elementor\Plugin; use ElementPack; use ElementPack\Base\Element_Pack_Module_Base; if (!defined('ABSPATH')) { exit; } // Exit if accessed directly class Module extends Element_Pack_Module_Base { public function __construct() { parent::__construct(); $this->add_actions(); } public function get_name() { return 'bdt-background-overlay'; } // public function get_extension_script_depends() { // return ['ep-background-overlay']; // } public function register_controls($widget, $args) { $widget->start_controls_section( 'ep_section_background_overlay', [ 'label' => BDTEP_CP . esc_html__('Background Over/Underlay', 'bdthemes-element-pack'), 'tab' => Controls_Manager::TAB_ADVANCED, 'condition' => [ '_background_background' => ['classic', 'gradient'], ], ] ); $widget->start_controls_tabs('ep_tabs_background_overlay'); $widget->start_controls_tab( 'ep_tab_background_overlay_normal', [ 'label' => esc_html__('Normal', 'bdthemes-element-pack'), ] ); $widget->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'ep_background_overlay', 'selector' => '{{WRAPPER}}.bdt-background-overlay-yes > .elementor-widget-container:before', ] ); $widget->add_control( 'ep_background_overlay_opacity', [ 'label' => esc_html__('Opacity', 'bdthemes-element-pack'), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => .5, ], 'range' => [ 'px' => [ 'max' => 1, 'step' => 0.01, ], ], 'selectors' => [ '{{WRAPPER}}.bdt-background-overlay-yes > .elementor-widget-container:before' => 'opacity: {{SIZE}};', ], 'condition' => [ 'ep_background_overlay_background' => ['classic', 'gradient'], ], ] ); $widget->add_group_control( Group_Control_Css_Filter::get_type(), [ 'name' => 'ep_css_filters', 'selector' => '{{WRAPPER}}.bdt-background-overlay-yes > .elementor-widget-container:before', ] ); $widget->add_control( 'ep_overlay_blend_mode', [ 'label' => esc_html__('Blend Mode', 'bdthemes-element-pack'), 'type' => Controls_Manager::SELECT, 'options' => [ '' => esc_html__('Normal', 'bdthemes-element-pack'), 'multiply' => 'Multiply', 'screen' => 'Screen', 'overlay' => 'Overlay', 'darken' => 'Darken', 'lighten' => 'Lighten', 'color-dodge' => 'Color Dodge', 'saturation' => 'Saturation', 'color' => 'Color', 'luminosity' => 'Luminosity', ], 'selectors' => [ '{{WRAPPER}}.bdt-background-overlay-yes > .elementor-widget-container:before' => 'mix-blend-mode: {{VALUE}}', ], ] ); $widget->add_responsive_control( 'ep_background_overlay_radius', [ 'label' => esc_html__('Border Radius', 'bdthemes-element-pack'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'separator' => 'before', 'selectors' => [ '{{WRAPPER}}.bdt-background-overlay-yes > .elementor-widget-container:before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $widget->end_controls_tab(); $widget->start_controls_tab( 'ep_tab_background_overlay_hover', [ 'label' => esc_html__('Hover', 'bdthemes-element-pack'), ] ); $widget->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'ep_background_overlay_hover', 'selector' => '{{WRAPPER}}.bdt-background-overlay-yes:hover > .elementor-widget-container:before', ] ); $widget->add_control( 'ep_background_overlay_hover_opacity', [ 'label' => esc_html__('Opacity', 'bdthemes-element-pack'), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => .5, ], 'range' => [ 'px' => [ 'max' => 1, 'step' => 0.01, ], ], 'selectors' => [ '{{WRAPPER}}.bdt-background-overlay-yes:hover > .elementor-widget-container:before' => 'opacity: {{SIZE}};', ], 'condition' => [ 'ep_background_overlay_hover_background' => ['classic', 'gradient'], ], ] ); $widget->add_group_control( Group_Control_Css_Filter::get_type(), [ 'name' => 'ep_css_filters_hover', 'selector' => '{{WRAPPER}}.bdt-background-overlay-yes:hover > .elementor-widget-container:before', ] ); // $widget->add_control( // 'ep_background_overlay_hover_transition', // [ // 'label' => esc_html__( 'Transition', 'bdthemes-element-pack' ), // 'type' => Controls_Manager::SELECT, // 'options' => [ // '' => esc_html__( 'None', 'bdthemes-element-pack' ), // 'zoom' => 'Zoom', // 'rotate' => 'Rotate', // ], // 'prefix_class' => 'bdt-bg-o-t-', // // ] // ); $widget->add_control( 'ep_background_overlay_hover_transition_duration', [ 'label' => esc_html__('Transition Duration', 'bdthemes-element-pack'), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 0.3, ], 'range' => [ 'px' => [ 'max' => 3, 'step' => 0.1, ], ], 'separator' => 'before', 'selectors' => [ '{{WRAPPER}}.bdt-background-overlay-yes > .elementor-widget-container:before' => 'transition: background {{SIZE}}s;', ] ] ); $widget->add_responsive_control( 'ep_background_overlay_hover_radius', [ 'label' => esc_html__('Border Radius', 'bdthemes-element-pack'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'separator' => 'before', 'selectors' => [ '{{WRAPPER}}.bdt-background-overlay-yes > .elementor-widget-container:hover:before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $widget->end_controls_tab(); $widget->end_controls_tabs(); $widget->add_responsive_control( 'ep_background_overlay_margin', [ 'label' => esc_html__('Margin', 'bdthemes-element-pack'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'separator' => 'before', 'selectors' => [ '{{WRAPPER}}' => '--ep-overlay-margin-top: {{TOP}}{{UNIT}}; --ep-overlay-margin-right: {{RIGHT}}{{UNIT}}; --ep-overlay-margin-bottom: {{BOTTOM}}{{UNIT}}; --ep-overlay-margin-left: {{LEFT}}{{UNIT}};', ], ] ); $widget->add_control( 'ep_background_overlay_zindex', [ 'label' => esc_html__('Z-Index', 'bdthemes-element-pack'), 'type' => Controls_Manager::NUMBER, 'dynamic' => [ 'active' => true, ], 'selectors' => [ '{{WRAPPER}}.bdt-background-overlay-yes > .elementor-widget-container:before' => 'z-index: {{VALUE}};', ] ] ); $widget->add_control( 'ep_background_overlay_position_relative', [ 'label' => esc_html__('Position Relative', 'bdthemes-element-pack'), 'type' => Controls_Manager::SWITCHER, 'selectors' => [ '{{WRAPPER}}.bdt-background-overlay-yes > .elementor-widget-container' => 'position: relative;', ] ] ); $widget->add_control( 'ep_background_overlay_widget_zindex', [ 'label' => esc_html__('Widget Z-Index', 'bdthemes-element-pack'), 'type' => Controls_Manager::NUMBER, 'default' => '-1', 'dynamic' => [ 'active' => true, ], 'condition' => ['ep_background_overlay_position_relative' => 'yes'], 'selectors' => [ '{{WRAPPER}}.bdt-background-overlay-yes > .elementor-widget-container' => 'z-index: {{VALUE}};', ] ] ); $widget->end_controls_section(); } public function background_overlay_render($widget) { $settings = $widget->get_settings_for_display(); if (in_array($widget->get_name(), ['column', 'section'])) { return; } if (Plugin::instance()->editor->is_edit_mode()) { return; } $overlay_bg = isset($settings['ep_background_overlay_background']) ? $settings['ep_background_overlay_background'] : ''; $overlay_bg_hover = isset($settings['ep_background_overlay_hover_background']) ? $settings['ep_background_overlay_hover_background'] : ''; $has_background_overlay = (in_array($overlay_bg, ['classic', 'gradient'], true) || in_array($overlay_bg_hover, ['classic', 'gradient'], true)); if ($has_background_overlay) { $widget->add_render_attribute('_wrapper', 'class', 'bdt-background-overlay-yes'); wp_enqueue_script('ep-background-overlay'); } } protected function add_actions() { add_action('elementor/element/common/_section_background/after_section_end', [$this, 'register_controls'], 10, 2); add_action('elementor/element/after_add_attributes', [$this, 'background_overlay_render'], 10, 1); } }