File "module.php"
Full Path: /home/fmpomerode/public_html/wp-content/plugins/bdthemes-element-pack/modules/ripple-effects/module.php
File size: 5.52 KB
MIME-type: text/x-c++; charset=us-ascii
Charset: utf-8
<?php
namespace ElementPack\Modules\RippleEffects;
use Elementor\Controls_Manager;
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-ripple-effects';
}
public function register_section($element) {
$element->start_controls_section(
'ep_ripple_effects',
[
'label' => BDTEP_CP . esc_html__('Ripple Effects', 'bdthemes-element-pack') . BDTEP_NC,
'tab' => Controls_Manager::TAB_ADVANCED,
]
);
$element->end_controls_section();
}
public function register_controls($widget, $args) {
$widget->add_control(
'ep_ripple_enable',
[
'label' => esc_html__('Enable Ripple Effects', 'bdthemes-element-pack'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'frontend_available' => true,
'render_type' => 'template',
]
);
$widget->add_control(
'ep_ripple_selector',
[
'label' => esc_html__('Ripple Effects For', 'bdthemes-element-pack'),
'type' => Controls_Manager::SELECT,
'options' => [
'widgets' => 'Widgets',
'buttons' => 'Widgets > Buttons',
'images' => 'Widgets > Images',
'both' => 'Widgets > Image/Button',
'custom' => 'Custom',
],
'default' => 'buttons',
'frontend_available' => true,
'render_type' => 'template',
'condition' => [
'ep_ripple_enable' => 'yes',
],
]
);
$widget->add_control(
'ep_ripple_custom_selector',
[
'label' => esc_html__('Custom Selector', 'bdthemes-element-pack'),
'type' => Controls_Manager::TEXT,
'placeholder' => '#my-header',
'default' => '#my-header',
'description' => esc_html__('Please use ID or Class to select your element/elements. ( Example - #select-id, .select-class)', 'bdthemes-element-pack'),
'frontend_available' => true,
'condition' => [
'ep_ripple_enable' => 'yes',
'ep_ripple_selector' => 'custom',
],
]
);
$widget->add_control(
'ep_ripple_on',
[
'label' => __('On', 'bdthemes-element-pack'),
'type' => Controls_Manager::SELECT,
'options' => [
'click' => __('Click', 'bdthemes-element-pack'),
'mouseenter' => __('Mouse Enter', 'bdthemes-element-pack'),
'mouseleave' => __('Mouse Leave', 'bdthemes-element-pack'),
],
'default' => 'mouseenter',
'frontend_available' => true,
'render_type' => 'template',
'condition' => [
'ep_ripple_enable' => 'yes',
],
]
);
$widget->add_control(
'ep_ripple_easing',
[
'label' => __('Easing', 'bdthemes-element-pack'),
'type' => Controls_Manager::SELECT,
'options' => [
'linear' => __('linear', 'bdthemes-element-pack'),
'ease' => __('ease', 'bdthemes-element-pack'),
'ease-in' => __('ease-in', 'bdthemes-element-pack'),
'ease-in-out' => __('ease-in-out', 'bdthemes-element-pack'),
'ease-out' => __('ease-out', 'bdthemes-element-pack'),
],
'default' => 'linear',
'frontend_available' => true,
'render_type' => 'template',
'condition' => [
'ep_ripple_enable' => 'yes',
],
]
);
$widget->add_control(
'ep_ripple_duration',
[
'label' => __('Duration', 'bdthemes-element-pack'),
'type' => Controls_Manager::SLIDER,
'frontend_available' => true,
'render_type' => 'template',
'default' => [
'size' => 0.7,
],
'range' => [
'px' => [
'max' => 10,
'min' => 0.1,
'step' => 0.1,
],
],
'condition' => [
'ep_ripple_enable' => 'yes',
],
]
);
$widget->add_control(
'ep_ripple_opacity',
[
'label' => __('Opacity', 'bdthemes-element-pack'),
'type' => Controls_Manager::SLIDER,
'frontend_available' => true,
'render_type' => 'template',
'default' => [
'size' => 0.4,
],
'range' => [
'px' => [
'max' => 1,
'min' => 0.1,
'step' => 0.1,
],
],
'condition' => [
'ep_ripple_enable' => 'yes',
],
]
);
$widget->add_control(
'ep_ripple_color',
[
'label' => __('Color', 'bdthemes-element-pack'),
'type' => Controls_Manager::COLOR,
'frontend_available' => true,
'render_type' => 'template',
'default' => '#c5c5c5',
'condition' => [
'ep_ripple_enable' => 'yes',
],
]
);
}
public function enqueue_scripts() {
wp_enqueue_script('ep-ripple-effects-vendor', BDTEP_ASSETS_URL . 'vendor/js/ripple.min.js', [], '', true);
}
public function should_script_enqueue($widget) {
if ('yes' === $widget->get_settings_for_display('ep_ripple_enable')) {
$this->enqueue_scripts();
wp_enqueue_script('ep-ripple-effects');
wp_enqueue_style('ep-ripple-effects');
}
}
protected function add_actions() {
add_action('elementor/element/common/_section_style/after_section_end', [$this, 'register_section']);
add_action('elementor/element/common/ep_ripple_effects/before_section_end', [$this, 'register_controls'], 10, 2);
// render scripts
add_action('elementor/frontend/widget/before_render', [$this, 'should_script_enqueue']);
add_action('elementor/preview/enqueue_scripts', [$this, 'enqueue_scripts']);
}
}