芝麻web文件管理V1.00
编辑当前文件:/home/seolotod/critterchoice.com/wp-content/themes/rehub-theme/functions/el_functions.php
add_category( 'rehub-category', [ 'title' => esc_html__( 'Rehub Woocommerce Modules', 'rehub-theme' ), 'icon' => 'eicon-woocommerce' ] ); $elements_manager->add_category( 'content-modules', [ 'title' => esc_html__( 'Rehub Post Modules', 'rehub-theme' ) ] ); $elements_manager->add_category( 'deal-helper', [ 'title' => esc_html__( 'Rehub Deal/Coupon Modules', 'rehub-theme' ) ] ); $elements_manager->add_category( 'helpler-modules', [ 'title' => esc_html__( 'Rehub Helper Modules', 'rehub-theme' ) ] ); $elements_manager->add_category( 'rhwow-modules', [ 'title' => esc_html__( 'Rehub WOW Animations', 'rehub-theme' ) ] ); }); // Ajax general callback methods and control require_once (locate_template('rehub-elementor/controls/ajax-callbacks.php')); function register_rehub_selectajax_control( $controls_manager ) { require_once (locate_template('rehub-elementor/controls/select2ajax-control.php')); $controls_manager->register( new Select2Ajax_Control ); } add_action( 'elementor/controls/register', 'register_rehub_selectajax_control' ); add_action( 'init', function () { // Abstracts require_once (rh_locate_template('rehub-elementor/abstracts/content-base-widget.php')); // Widgets if(class_exists('Woocommerce')){ // Abstracts require_once (rh_locate_template('rehub-elementor/abstracts/woo-base-widget.php')); require_once (rh_locate_template('rehub-elementor/wpsm-woogrid.php')); require_once (rh_locate_template('rehub-elementor/wpsm-woocolumns.php')); require_once (rh_locate_template('rehub-elementor/wpsm-woorows.php')); require_once (rh_locate_template('rehub-elementor/wpsm-woolist.php')); require_once (rh_locate_template('rehub-elementor/wpsm-woofeatured.php')); require_once (rh_locate_template('rehub-elementor/wpsm-woocarousel.php')); require_once (rh_locate_template('rehub-elementor/wpsm-woocomparebars.php')); require_once (rh_locate_template('rehub-elementor/wpsm-wooday.php')); } require_once (rh_locate_template('rehub-elementor/wpsm_columngrid.php')); require_once (rh_locate_template('rehub-elementor/wpsm-newslist.php')); require_once (rh_locate_template('rehub-elementor/wpsm-regularblog.php')); require_once (rh_locate_template('rehub-elementor/wpsm-masonrygrid.php')); require_once (rh_locate_template('rehub-elementor/wpsm-simplelist.php')); require_once (rh_locate_template('rehub-elementor/wpsm-postfeatured.php')); require_once (rh_locate_template('rehub-elementor/wpsm-news-with-thumbs.php')); require_once (rh_locate_template('rehub-elementor/wpsm-news-ticker.php')); require_once (rh_locate_template('rehub-elementor/wpsm_coloredgrid.php')); require_once (rh_locate_template('rehub-elementor/wpsm-3col-grid.php')); require_once (rh_locate_template('rehub-elementor/wpsm-deallist.php')); require_once (rh_locate_template('rehub-elementor/wpsm-dealgrid.php')); require_once (rh_locate_template('rehub-elementor/wpsm-dealcarousel.php')); require_once (rh_locate_template('rehub-elementor/wpsm-reviewlist.php')); require_once (rh_locate_template('rehub-elementor/wpsm-offerbox.php')); require_once (rh_locate_template('rehub-elementor/wpsm-CEbox.php')); require_once (rh_locate_template('rehub-elementor/wpsm-hover-banner.php')); require_once (rh_locate_template('rehub-elementor/wpsm-theme.php')); require_once (rh_locate_template('rehub-elementor/wpsm-taxarchive.php')); require_once (rh_locate_template('rehub-elementor/wpsm-videolist.php')); require_once (rh_locate_template('rehub-elementor/wpsm-catbox.php')); require_once (rh_locate_template('rehub-elementor/wpsm-searchbox.php')); require_once (rh_locate_template('rehub-elementor/wpsm-cardbox.php')); require_once (rh_locate_template('rehub-elementor/wpsm-getter.php')); require_once (rh_locate_template('rehub-elementor/wpsm-buttonpopup.php')); require_once (rh_locate_template('rehub-elementor/wpsm-versustable.php')); require_once (rh_locate_template('rehub-elementor/wpsm-countdown.php')); require_once (rh_locate_template('rehub-elementor/wpsm-itinerary.php')); require_once (rh_locate_template('rehub-elementor/wpsm-reviewbox.php')); require_once (rh_locate_template('rehub-elementor/wpsm-tabevery.php')); require_once (rh_locate_template('rehub-elementor/wpsm-allcarousel.php')); require_once (rh_locate_template('rehub-elementor/wpsm-svgshape.php')); require_once (rh_locate_template('rehub-elementor/wpsm-canvas.php')); require_once (rh_locate_template('rehub-elementor/wpsm-particle.php')); require_once (rh_locate_template('rehub-elementor/wpsm-3dmodel.php')); require_once (rh_locate_template('rehub-elementor/wpsm-lottie.php')); },11); // Header and footer locations function reh_prefix_register_elementor_locations( $elementor_theme_manager ) { $elementor_theme_manager->register_location( 'header' ); $elementor_theme_manager->register_location( 'footer' ); } add_action( 'elementor/theme/register_locations', 'reh_prefix_register_elementor_locations' ); /*add_action('elementor/widgets/widgets_registered', function($widgets_manager){ $elementor_widget_blacklist = array('star-rating'); foreach($elementor_widget_blacklist as $widget_name){ $widgets_manager->unregister_widget_type($widget_name); } }, 15);*/ // Register icons and styles for Elementor add_action( 'elementor/editor/before_enqueue_scripts', function() { if ( ! defined( 'ELEMENTOR_PRO_VERSION' ) ) { wp_enqueue_style('elprostyle', get_template_directory_uri() . '/css/elpro.css', array(), '1.1'); } wp_enqueue_style( 'rehubicons', get_template_directory_uri() . '/iconstyle.css', array(), RH_MAIN_THEME_VERSION); wp_register_script('elflexslider', get_template_directory_uri() . '/js/jquery.flexslider-min.js', array('jquery'), '2.7.4', true); wp_register_script('elflexinit', get_template_directory_uri() . '/js/flexinit.js', array('jquery', 'flexslider'), '2.2.2', true); wp_register_style('elflexslider', get_template_directory_uri() . '/css/flexslider.css', array('rhstyle'), '2.2'); wp_register_script('elrhvideocanvas', get_template_directory_uri() . '/js/videocanvas.js', array('jquery', 'rhinview'), '1.0.0', true ); wp_register_script('elrhblobcanvas', get_template_directory_uri() . '/js/blobcanvas.js', array('jquery', 'gsap'), '1.0.0', true ); } ); add_filter('elementor/icons_manager/native', 'rh_change_native_fa', 99); function rh_change_native_fa($tabs){ $newicons = [ 'rhicons' => [ 'name' => 'rhicons', 'label' => 'Rehub Icons', 'url' => '', 'enqueue' => '', 'prefix' => 'rhi-', 'displayPrefix' => 'rhicon', 'labelIcon' => 'rhicon rhi-font', 'ver' => '5.9.0', 'fetchJson' => get_template_directory_uri() . '/rehub-elementor/solid.js', 'native' => true, ] ]; $tabs += $newicons; return $tabs; } add_action( 'elementor/frontend/widget/before_render', 'RH_el_elementor_frontend' ); add_action( 'elementor/frontend/section/before_render', 'RH_el_elementor_frontend_section' ); add_action( 'elementor/element/section/section_advanced/after_section_end', 'RH_custom_section_elementor', 10, 2 ); add_action( 'elementor/element/common/_section_responsive/after_section_end', 'RH_parallax_el_elementor', 10, 2 ); add_action( 'elementor/element/html/section_title/after_section_end', 'RH_el_html_add_custom', 10, 2 ); add_action( 'elementor/widget/render_content', 'RH_el_custom_widget_render', 10, 2 ); add_filter('elementor/controls/animations/additional_animations', 'RH_additional_el_annimation'); add_filter( 'elementor/widget/print_template', 'rh_el_custom_print_template', 10, 2 ); add_filter('elementor/image_size/get_attachment_image_html', 'rh_el_add_lazy_load_images',10,4); function RH_custom_section_elementor( $obj, $args ) { $obj->start_controls_section( 'section_rh_stickyel', array( 'label' => esc_html__( 'RH Smart Section and Background', 'rehub-theme' ), 'tab' => Elementor\Controls_Manager::TAB_ADVANCED, ) ); $obj->add_control( 'rh_stickyel_section_sticky', array( 'label' => esc_html__( 'Enable smart scroll', 'rehub-theme' ), 'description' => esc_html__( 'You must have minimum two columns. Smart scroll is visible only on frontend site and not visible in Editor mode of Elementor', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'true', 'prefix_class' => 'rh-elementor-sticky-', ) ); $obj->add_control( 'rh_stickyel_top_spacing', array( 'label' => esc_html__( 'Top Spacing', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 500, 'step' => 1, 'condition' => array( 'rh_stickyel_section_sticky' => 'true', ), ) ); $obj->add_control( 'rh_stickyel_bottom_spacing', array( 'label' => esc_html__( 'Bottom Spacing', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 500, 'step' => 1, 'condition' => array( 'rh_stickyel_section_sticky' => 'true', ), ) ); $obj->add_control( 'rh_parallax_bg', array( 'label' => esc_html__( 'Enable parallax for background image', 'rehub-theme' ), 'description' => esc_html__( 'Add background in Style section', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'true', 'prefix_class' => 'rh-parallax-bg-', ) ); $obj->add_control( 'rh_parallax_bg_speed', array( 'label' => esc_html__( 'Parallax speed', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 1, 'max' => 200, 'step' => 1, 'default' => 10, 'condition' => array( 'rh_parallax_bg' => 'true', ), 'prefix_class' => 'rh-parallax-bg-speed-', ) ); $obj->add_control( 'rh_lazy_bg',[ 'label' => esc_html__( 'Lazy load background', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::MEDIA, 'selectors' => [ '.elementor-editor-active {{WRAPPER}}' => 'background-image: url("{{URL}}");', '{{WRAPPER}}.lazy-bg-loaded' => 'background-image: url("{{URL}}");', ], ] ); $obj->add_control( 'rh_lazy_bg_c',[ 'label' => esc_html__( 'Color', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}}' => 'background-color: {{VALUE}};', ], 'condition' => [ 'rh_lazy_bg[url]!' => '', ], ]); $obj->add_control( 'rh_lazy_bg_pos',[ 'label' => esc_html__( 'Position', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SELECT, 'default' => '', 'options' => [ '' => esc_html__( 'Default', 'rehub-theme' ), 'top left' => esc_html__( 'Top Left', 'rehub-theme' ), 'top center' => esc_html__( 'Top Center', 'rehub-theme' ), 'top right' => esc_html__( 'Top Right', 'rehub-theme' ), 'center left' => esc_html__( 'Center Left', 'rehub-theme' ), 'center center' => esc_html__( 'Center Center', 'rehub-theme' ), 'center right' => esc_html__( 'Center Right', 'rehub-theme' ), 'bottom left' => esc_html__( 'Bottom Left', 'rehub-theme' ), 'bottom center' => esc_html__( 'Bottom Center', 'rehub-theme' ), 'bottom right' => esc_html__( 'Bottom Right', 'rehub-theme' ), ], 'selectors' => [ '{{WRAPPER}}' => 'background-position: {{VALUE}};', ], 'condition' => [ 'rh_lazy_bg[url]!' => '', ], ] ); $obj->add_control( 'rh_lazy_bg_att',[ 'label' => esc_html__( 'Attachment', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SELECT, 'default' => '', 'options' => [ '' => esc_html__( 'Default', 'rehub-theme' ), 'scroll' => esc_html__( 'Scroll', 'rehub-theme' ), 'fixed' => esc_html__( 'Fixed', 'rehub-theme' ), ], 'selectors' => [ '{{WRAPPER}}' => 'background-attachment: {{VALUE}};', ], 'condition' => [ 'rh_lazy_bg[url]!' => '', ], ]); $obj->add_control( 'rh_lazy_bg_repeat',[ 'label' => esc_html__( 'Repeat', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SELECT, 'default' => '', 'options' => [ '' => esc_html__( 'Default', 'rehub-theme' ), 'no-repeat' => esc_html__( 'No-repeat', 'rehub-theme' ), 'repeat' => esc_html__( 'Repeat', 'rehub-theme' ), 'repeat-x' => esc_html__( 'Repeat-x', 'rehub-theme' ), 'repeat-y' => esc_html__( 'Repeat-y', 'rehub-theme' ), ], 'selectors' => [ '{{WRAPPER}}' => 'background-repeat: {{VALUE}};', ], 'condition' => [ 'rh_lazy_bg[url]!' => '', ], ]); $obj->add_control( 'rh_lazy_bg_size',[ 'label' => esc_html__( 'Size', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SELECT, 'default' => '', 'options' => [ '' => esc_html__( 'Default', 'rehub-theme' ), 'auto' => esc_html__( 'Auto', 'rehub-theme' ), 'cover' => esc_html__( 'Cover', 'rehub-theme' ), 'contain' => esc_html__( 'Contain', 'rehub-theme' ), ], 'selectors' => [ '{{WRAPPER}}' => 'background-size: {{VALUE}};', ], 'condition' => [ 'rh_lazy_bg[url]!' => '', ], ]); $obj->end_controls_section(); } function RH_parallax_el_elementor( $obj, $args ) { $obj->start_controls_section( 'rh_parallax_el_section', array( 'label' => esc_html__( 'Re:Hub Quick Effects', 'rehub-theme' ), 'tab' => Elementor\Controls_Manager::TAB_ADVANCED, ) ); $obj->add_control( 'rh_infinite_rotate', array( 'label' => esc_html__( 'Enable Infinite rotating', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'infinite', 'prefix_class' => 'rotate', ) ); $obj->add_control( 'rh_infinite_leftright', array( 'label' => esc_html__( 'Enable Infinite Left to right', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'infinite', 'prefix_class' => 'leftright', ) ); $obj->add_control( 'rh_infinite_updownright', array( 'label' => esc_html__( 'Enable Infinite Up and Down', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'infinite', 'prefix_class' => 'upanddown', ) ); $obj->add_control( 'rh_infinite_fastshake', array( 'label' => esc_html__( 'Enable Infinite Shake', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'Shake', 'prefix_class' => 'fast', ) ); $obj->add_control( 'rh_infinite_speed', [ 'type' => \Elementor\Controls_Manager::SELECT, 'label' => esc_html__( 'Animation Speed', 'rehub-theme' ), 'options' => [ '5' => '5s', '10' => '10s', '15' => '15s', '20' => '20s', '25' => '25s', '50' => '50s', '100' => '100s', '0' => '0s', ], 'prefix_class' => 'animationspeed', ]); $obj->add_control( 'rh_perspective_boxshadow', array( 'label' => esc_html__( 'Enable Perspective Box shadow', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => '1', 'selectors' => [ '{{WRAPPER}} > .elementor-widget-container' => 'box-shadow: 0 1px 0 #ccc, 0 2px 0 #ccc, 0 3px 0 #ccc, 0 4px 0 #ccc, 0 5px 0 #ccc, 0 6px 0 #ccc, 0 7px 0 #ccc, 0 8px 0 #ccc, 0 9px 0 #ccc, 0 50px 30px rgba(0,0,0,.25)', ], ) ); $obj->add_control( 'rh_perspective_textshadow', array( 'label' => esc_html__( 'Enable Perspective Text shadow', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => '1', 'selectors' => [ '{{WRAPPER}} > .elementor-widget-container' => 'text-shadow: 0 1px 0 #ccc, 0 2px 0 #ccc, 0 3px 0 #ccc, 0 4px 0 #ccc, 0 5px 0 #ccc, 0 6px 0 #ccc, 0 7px 0 #ccc, 0 8px 0 #ccc, 0 9px 0 #ccc, 0 50px 30px rgba(0,0,0,.25)', ], ) ); $obj->add_control( 'rh_parallax_circle', array( 'label' => esc_html__( 'Make shape', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 1, 'max' => 3000, 'step' => 1, 'selectors' => [ '{{WRAPPER}} > .elementor-widget-container' => 'width: {{VALUE}}px;height: {{VALUE}}px;display: flex; align-items: center;justify-content: center;', ], ) ); $obj->add_control( 'rh_make_rotate', array( 'label' => esc_html__( 'Rotation (deg)', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 1, 'max' => 360, 'step' => 1, 'selectors' => [ '{{WRAPPER}} > .elementor-widget-container' => 'transform: rotate({{VALUE}}deg);', ], ) ); $obj->end_controls_section(); $obj->start_controls_section( 'rh_gsap_section', array( 'label' => esc_html__( 'Re:Hub WOW Animations', 'rehub-theme' ), 'tab' => Elementor\Controls_Manager::TAB_ADVANCED, ) ); $obj->add_control( 'rh_gsap', array( 'label' => esc_html__( 'Enable Advanced animations', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'true', ) ); $obj->start_controls_tabs( 'gsapintabs', ['condition'=> ['rh_gsap' => 'true' ]] ); $obj->start_controls_tab( 'gsapftab', [ 'label' => esc_html__( 'Init Transform', 'rehub-theme' ), ] ); $obj->add_control( 'rh_gsap_x', array( 'label' => esc_html__( 'Translate X', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -5000, 'max' => 5000, 'step' => 1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_y', array( 'label' => esc_html__( 'Translate Y', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -5000, 'max' => 5000, 'step' => 1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_xo', array( 'label' => esc_html__( 'Translate X (%)', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -1000, 'max' => 1000, 'step' => 1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_yo', array( 'label' => esc_html__( 'Translate Y (%)', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -1000, 'max' => 1000, 'step' => 1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_z', array( 'label' => esc_html__( 'Translate Z', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -5000, 'max' => 5000, 'step' => 1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_r', array( 'label' => esc_html__( 'Rotation', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -3600, 'max' => 3600, 'step' => 1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_rx', array( 'label' => esc_html__( 'Rotation X', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -3600, 'max' => 3600, 'step' => 1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_ry', array( 'label' => esc_html__( 'Rotation Y', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -3600, 'max' => 3600, 'step' => 1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_scale', array( 'label' => esc_html__( 'Scale', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 30, 'step' => 0.1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_scale_x', array( 'label' => esc_html__( 'Scale X', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 30, 'step' => 0.1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_scale_y', array( 'label' => esc_html__( 'Scale Y', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 30, 'step' => 0.1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_width', array( 'label' => esc_html__( 'Width', 'rehub-theme' ), 'description' => 'set with px, %, em', 'type' => Elementor\Controls_Manager::TEXT, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_height', array( 'label' => esc_html__( 'Height', 'rehub-theme' ), 'description' => 'set with px, %, em', 'type' => Elementor\Controls_Manager::TEXT, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_boxshadow', array( 'label' => esc_html__( 'Css Box Shadow value', 'rehub-theme' ), 'description' => 'example: inset 100px 0 0 0 #cc0000', 'type' => Elementor\Controls_Manager::TEXT, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_opacity', array( 'label' => esc_html__( 'Opacity', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 1, 'max' => 100, 'step' => 1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_bg', [ 'label' => __('Background Color', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::COLOR, 'condition' => [ 'rh_gsap' => 'true' ] ] ); $obj->add_control( 'rh_gsap_origin', [ 'label' => esc_html__( 'Transform Origin', 'rehub-theme' ), 'label_block' => true, 'description' => 'left, right, top, bottom...', 'type' => \Elementor\Controls_Manager::TEXT, 'condition' => [ 'rh_gsap' => 'true' ], ]); $obj->end_controls_tab(); $obj->start_controls_tab( 'gsapstab', [ 'label' => esc_html__( 'SVG MotionPath', 'rehub-theme' ), ] ); $obj->add_control( 'rh_gsap_path', [ 'label' => esc_html__( 'Set path', 'rehub-theme' ), 'description' => esc_html__('can be ID (place with #), svg path coordinates. Also, type here word "custom" to enable Path draw helper. Alt click will add new point. Del will delete it. Then, click on Copy Motion Path button in bottom of page and insert path parameter here.', 'rehub-theme'), 'label_block' => true, 'type' => \Elementor\Controls_Manager::TEXT, 'condition'=> ['rh_gsap' => 'true' ], ]); $obj->add_control( 'rh_gsap_path_align', [ 'label' => esc_html__( 'Align ID', 'rehub-theme' ), 'description' => esc_html__('By default, element is alighned by itself, but you can set id of path or another element', 'rehub-theme'), 'label_block' => true, 'type' => \Elementor\Controls_Manager::TEXT, 'condition'=> ['rh_gsap' => 'true', 'rh_gsap_path!' => '' ], ]); $obj->add_control( 'rh_gsap_path_orient', array( 'label' => esc_html__( 'Orient along path', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'condition'=> ['rh_gsap' => 'true', 'rh_gsap_path!' => '' ], ) ); $obj->add_control( 'rh_gsap_path_align_x', [ 'label' => __( 'Align origin point X', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'default' => [ 'size' => 0.5, ], 'label_block' => true, 'range' => [ 'px' => [ 'min' => 0, 'max' => 1, 'step' => 0.1, ], ], 'condition'=> ['rh_gsap' => 'true', 'rh_gsap_path!' => '' ], ] ); $obj->add_control( 'rh_gsap_path_align_y', [ 'label' => __( 'Align origin point Y', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'default' => [ 'size' => 0.5, ], 'label_block' => true, 'range' => [ 'px' => [ 'min' => 0, 'max' => 1, 'step' => 0.1, ], ], 'condition'=> ['rh_gsap' => 'true', 'rh_gsap_path!' => '' ], ] ); $obj->end_controls_tab(); $obj->end_controls_tabs(); $obj->add_control( 'rhhrtabsone', [ 'type' => \Elementor\Controls_Manager::DIVIDER, 'condition'=> [ 'rh_gsap' => 'true'], ] ); $obj->start_controls_tabs( 'gsapopttabs', ['condition'=> ['rh_gsap' => 'true' ]] ); $obj->start_controls_tab( 'gsapttab', [ 'label' => esc_html__( 'Animation Option', 'rehub-theme' ), ] ); $obj->add_control( 'rh_gsap_duration', array( 'label' => esc_html__( 'Duration (s)', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0.1, 'max' => 60, 'step' => 0.1, 'default' => 1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_delay', array( 'label' => esc_html__( 'Delay (s)', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0.1, 'max' => 20, 'step' => 0.1, 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_ease', [ 'type' => \Elementor\Controls_Manager::SELECT, 'label' => esc_html__( 'Ease type', 'rehub-theme' ), 'options' => [ 'power0-none' => esc_html__('Linear', 'rehub-theme'), 'power1-in' => esc_html__('Power 1 in', 'rehub-theme'), 'power1-out' => esc_html__('Power 1 out', 'rehub-theme'), 'power1-inOut' => esc_html__('Power 1 inOut', 'rehub-theme'), 'power2-in' => esc_html__('Power 2 in', 'rehub-theme'), 'power2-out' => esc_html__('Power 2 out', 'rehub-theme'), 'power2-inOut' => esc_html__('Power 2 inOut', 'rehub-theme'), 'power3-in' => esc_html__('Power 3 in', 'rehub-theme'), 'power3-out' => esc_html__('Power 3 out', 'rehub-theme'), 'power3-inOut' => esc_html__('Power 3 inOut', 'rehub-theme'), 'power4-in' => esc_html__('Power 4 in', 'rehub-theme'), 'power4-out' => esc_html__('Power 4 out', 'rehub-theme'), 'power4-inOut' => esc_html__('Power 4 inOut', 'rehub-theme'), 'back-in' => esc_html__('Back in', 'rehub-theme'), 'back-out' => esc_html__('Back out', 'rehub-theme'), 'back-inOut' => esc_html__('Back inOut', 'rehub-theme'), 'elastic-in' => esc_html__('elastic in', 'rehub-theme'), 'elastic-out' => esc_html__('elastic out', 'rehub-theme'), 'elastic-inOut' => esc_html__('elastic inOut', 'rehub-theme'), 'circ-in' => esc_html__('circ in', 'rehub-theme'), 'circ-out' => esc_html__('circ out', 'rehub-theme'), 'circ-inOut' => esc_html__('circ inOut', 'rehub-theme'), 'expo-in' => esc_html__('expo in', 'rehub-theme'), 'expo-out' => esc_html__('expo out', 'rehub-theme'), 'expo-inOut' => esc_html__('expo inOut', 'rehub-theme'), 'cine-in' => esc_html__('cine in', 'rehub-theme'), 'cine-out' => esc_html__('cine out', 'rehub-theme'), 'cine-inOut' => esc_html__('cine inOut', 'rehub-theme'), ], 'condition' => array( 'rh_gsap' => 'true', ), ]); $obj->add_control( 'rh_gsap_infinite', array( 'label' => esc_html__( 'Enable infinite', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_yoyo', array( 'label' => esc_html__( 'Enable Yoyo style', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'default' => 'yes', 'condition'=> [ 'rh_gsap_infinite' => 'yes', 'rh_gsap' => 'true' ], ) ); $obj->add_control( 'rh_gsap_repeatdelay', array( 'label' => esc_html__( 'Enable delay between animations', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'default' => 'yes', 'condition'=> [ 'rh_gsap_infinite' => 'yes', 'rh_gsap' => 'true' ], ) ); $obj->add_control( 'rh_gsap_from', array( 'label' => esc_html__( 'Set direction as FROM', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'default' => 'yes', 'condition' => array( 'rh_gsap' => 'true', ), ) ); $obj->end_controls_tab(); $obj->start_controls_tab( 'gsapfotab', [ 'label' => esc_html__( 'Trigger Option', 'rehub-theme' ), ] ); $obj->add_control( 'rh_gsap_trigger_type', [ 'type' => \Elementor\Controls_Manager::SELECT, 'label' => esc_html__( 'Trigger type', 'rehub-theme' ), 'description' => esc_html__('Check documentation for available values - ', 'rehub-theme').'
ScrollTrigger Docs
', 'options' => [ 'custom' => esc_html__('Scroll trigger', 'rehub-theme'), 'load' => esc_html__('On load', 'rehub-theme'), 'batch' => esc_html__('Batch Scroll', 'rehub-theme'), 'hover' => esc_html__('On Hover', 'rehub-theme'), 'click' => esc_html__('On Click', 'rehub-theme'), ], 'default' => 'custom', 'condition' => array( 'rh_gsap' => 'true', ), ]); $obj->add_control( 'rh_gsap_trigger_field', [ 'label' => esc_html__( 'Css ID of custom trigger or custom class for Batch scroll', 'rehub-theme' ), 'description' => esc_html__('By default, animation will start when you scroll to element. You can place here custom ID for trigger or custom css class if you use Batch Scroll', 'rehub-theme'), 'label_block' => true, 'type' => \Elementor\Controls_Manager::TEXT, 'condition' => array( 'rh_gsap_trigger_type' => ['custom', 'batch', 'hover', 'click'], 'rh_gsap' => 'true', ), ]); $obj->add_control( 'rh_gsap_obj_field', [ 'label' => esc_html__( 'Css ID or class where to add animation', 'rehub-theme' ), 'description' => esc_html__('By default, will be applied to current object but you can apply to custom object', 'rehub-theme'), 'label_block' => true, 'type' => \Elementor\Controls_Manager::TEXT, 'condition' => array( 'rh_gsap_trigger_type' => ['custom', 'load', 'hover', 'click'], 'rh_gsap' => 'true', ), ]); $obj->add_control( 'rh_gsap_sc_start', array( 'label' => esc_html__( 'Trigger start', 'rehub-theme' ), 'description' => esc_html__('By default, trigger is set to top point of element, but you can change this. Example: top center', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::TEXT, 'condition' => array( 'rh_gsap_trigger_type' => ['custom', 'batch'], 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_sc_end', array( 'label' => esc_html__( 'Trigger end', 'rehub-theme' ), 'description' => esc_html__('By default, trigger scroll end is set to bottom point of element, but you can change this. Example: +=300 will set end of trigger as 300px after start', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::TEXT, 'condition' => array( 'rh_gsap_trigger_type' => ['custom', 'batch'], 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_batch_interval', array( 'label' => esc_html__( 'Interval between items', 'rehub-theme' ), 'description' => esc_html__('By default, interval is 0.15, but you can set other. Use float number.', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::TEXT, 'condition' => array( 'rh_gsap_trigger_type' => ['batch'], 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_batchrandom', array( 'label' => esc_html__( 'Enable random order', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'condition' => array( 'rh_gsap_trigger_type' => ['batch'], 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_sc_dur', array( 'label' => esc_html__( 'Interpolate animation by Scroll', 'rehub-theme' ), 'description' => esc_html__('By default, scroll will trigger full animation. If you want to play animation by scrolling, place here number of seconds for feedback. Recommended value is 1.', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::TEXT, 'condition' => array( 'rh_gsap_trigger_type' => 'custom', 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_gsap_pinned', [ 'label' => esc_html__( 'Pin while scroll', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'label_on' => __('Yes', 'rehub-theme'), 'label_off' => __('No', 'rehub-theme'), 'return_value' => 'yes', 'condition' => array( 'rh_gsap_trigger_type' => 'custom', 'rh_gsap' => 'true', ), ]); $obj->add_control( 'rh_gsap_pinspace', [ 'label' => esc_html__( 'Enable overflow on pinned item', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'label_on' => __('Yes', 'rehub-theme'), 'label_off' => __('No', 'rehub-theme'), 'return_value' => 'yes', 'condition' => array( 'rh_gsap_trigger_type' => 'custom', 'rh_gsap' => 'true', ), ]); $obj->add_control( 'rh_gsap_sc_act', [ 'label' => __('Trigger actions', 'rehub-theme'), 'description' => esc_html__('Default is: play pause resume reset', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::TEXT, 'default' => '', 'condition' => array( 'rh_gsap_trigger_type' => 'custom', 'rh_gsap' => 'true', ), // ] ); $obj->add_control( 'rh_gsap_sc_snap', array( 'label' => esc_html__( 'Scroll snap', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0.01, 'max' => 1, 'step' => 0.01, 'condition' => array( 'rh_gsap_trigger_type' => 'custom', 'rh_gsap' => 'true', ), ) ); $obj->add_control( 'rh_videoplay', [ 'label' => __( 'Play video on this trigger', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'condition' => array( 'rh_gsap_trigger_type' => ['custom', 'load', 'hover', 'click'], 'rh_gsap' => 'true', ), ] ); $obj->end_controls_tab(); $obj->end_controls_tabs(); $obj->add_control( 'rhhr2', [ 'label' => __( 'Text, SVG, Stagger', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::HEADING, 'separator' => 'before', 'condition' => array( 'rh_gsap' => 'true', ), ] ); $obj->add_control( 'rh_gsap_st_type', [ 'type' => \Elementor\Controls_Manager::SELECT, 'label' => esc_html__( 'Enable Advanced Animation', 'rehub-theme' ), 'options' => [ 'no' => esc_html__('No', 'rehub-theme'), 'text' => esc_html__('On Text', 'rehub-theme'), 'class' => esc_html__('Stagger', 'rehub-theme'), 'svg' => esc_html__('SVG lines', 'rehub-theme'), ], 'condition' => array( 'rh_gsap' => 'true', ), ]); $obj->add_control( 'rh_gsap_text', [ 'type' => \Elementor\Controls_Manager::SELECT, 'label' => esc_html__( 'Break type for text', 'rehub-theme' ), 'options' => [ 'lines' => esc_html__('Lines', 'rehub-theme'), 'chars' => esc_html__('Chars', 'rehub-theme'), 'words' => esc_html__('Words', 'rehub-theme'), ], 'condition'=> [ 'rh_gsap_st_type' => 'text', 'rh_gsap' => 'true' ], ]); $obj->add_control( 'rh_gsap_stagger', [ 'label' => esc_html__( 'Set stagger class', 'rehub-theme' ), 'description' => esc_html__('this will trigger animation on all elements with this class with some delay between each item', 'rehub-theme'), 'label_block' => true, 'type' => \Elementor\Controls_Manager::TEXT, 'condition'=> [ 'rh_gsap_st_type' => 'class', 'rh_gsap' => 'true' ], ]); $obj->add_control( 'rh_gsap_stdelay', array( 'label' => esc_html__( 'Stagger delay', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 10, 'step' => 0.1, 'condition' => array( 'rh_gsap' => 'true', 'rh_gsap_st_type!' => '' ), ) ); $obj->add_control( 'rh_gsap_strandom', array( 'label' => esc_html__( 'Enable random order', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'condition' => array( 'rh_gsap' => 'true', 'rh_gsap_st_type!' => '' ), ) ); if ( ! defined( 'ELEMENTOR_PRO_VERSION' ) ) { $gsaprepeater = new \Elementor\Repeater(); $gsaprepeater->add_control( 'multi_x', array( 'label' => esc_html__( 'Translate X', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -5000, 'max' => 5000, 'step' => 1, ) ); $gsaprepeater->add_control( 'multi_y', array( 'label' => esc_html__( 'Translate Y', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -5000, 'max' => 5000, 'step' => 1, ) ); $gsaprepeater->add_control( 'multi_xo', array( 'label' => esc_html__( 'Translate X (%)', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -1000, 'max' => 1000, 'step' => 1, ) ); $gsaprepeater->add_control( 'multi_yo', array( 'label' => esc_html__( 'Translate Y (%)', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -1000, 'max' => 1000, 'step' => 1, ) ); $gsaprepeater->add_control( 'multi_r', array( 'label' => esc_html__( 'Rotation', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -3600, 'max' => 3600, 'step' => 1, ) ); $gsaprepeater->add_control( 'multi_rx', array( 'label' => esc_html__( 'Rotation X', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -3600, 'max' => 3600, 'step' => 1, ) ); $gsaprepeater->add_control( 'multi_ry', array( 'label' => esc_html__( 'Rotation Y', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => -3600, 'max' => 3600, 'step' => 1, ) ); $gsaprepeater->add_control( 'multi_scale', array( 'label' => esc_html__( 'Scale', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 30, 'step' => 0.1, ) ); $gsaprepeater->add_control( 'multi_scale_x', array( 'label' => esc_html__( 'Scale X', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 30, 'step' => 0.1, ) ); $gsaprepeater->add_control( 'multi_scale_y', array( 'label' => esc_html__( 'Scale Y', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 30, 'step' => 0.1, ) ); $gsaprepeater->add_control( 'multi_width', array( 'label' => esc_html__( 'Width', 'rehub-theme' ), 'description' => 'set with px, %, em', 'type' => Elementor\Controls_Manager::TEXT, ) ); $gsaprepeater->add_control( 'multi_height', array( 'label' => esc_html__( 'Height', 'rehub-theme' ), 'description' => 'set with px, %, em', 'type' => Elementor\Controls_Manager::TEXT, ) ); $gsaprepeater->add_control( 'multi_opacity', array( 'label' => esc_html__( 'Opacity', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 1, 'max' => 100, 'step' => 1, ) ); $gsaprepeater->add_control( 'multi_bg', [ 'label' => __('Background Color', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::COLOR, ] ); $gsaprepeater->add_control( 'multi_origin', [ 'label' => esc_html__( 'Transform Origin', 'rehub-theme' ), 'label_block' => true, 'description' => 'left, right, top, bottom...', 'type' => \Elementor\Controls_Manager::TEXT, ]); $gsaprepeater->add_control( 'multi_from', array( 'label' => esc_html__( 'Set direction as FROM', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', ) ); $gsaprepeater->add_control( 'multi_duration', array( 'label' => esc_html__( 'Duration (s)', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0.1, 'max' => 60, 'step' => 0.1, 'default' => 1, ) ); $gsaprepeater->add_control( 'multi_delay', array( 'label' => esc_html__( 'Delay (s)', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 0.1, 'max' => 20, 'step' => 0.1, ) ); $gsaprepeater->add_control( 'multi_time', [ 'label' => esc_html__( 'Custom start time', 'rehub-theme' ), 'label_block' => true, 'description' => '
Documentation
', 'type' => \Elementor\Controls_Manager::TEXT, ]); $gsaprepeater->add_control( 'multi_hover', array( 'label' => esc_html__( 'Enable On Hover Action', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', ) ); $gsaprepeater->add_control( 'multi_ease', [ 'type' => \Elementor\Controls_Manager::SELECT, 'label' => esc_html__( 'Ease type', 'rehub-theme' ), 'options' => [ 'power0-none' => esc_html__('Linear', 'rehub-theme'), 'power1-in' => esc_html__('Power 1 in', 'rehub-theme'), 'power1-out' => esc_html__('Power 1 out', 'rehub-theme'), 'power1-inOut' => esc_html__('Power 1 inOut', 'rehub-theme'), 'power2-in' => esc_html__('Power 2 in', 'rehub-theme'), 'power2-out' => esc_html__('Power 2 out', 'rehub-theme'), 'power2-inOut' => esc_html__('Power 2 inOut', 'rehub-theme'), 'power3-in' => esc_html__('Power 3 in', 'rehub-theme'), 'power3-out' => esc_html__('Power 3 out', 'rehub-theme'), 'power3-inOut' => esc_html__('Power 3 inOut', 'rehub-theme'), 'power4-in' => esc_html__('Power 4 in', 'rehub-theme'), 'power4-out' => esc_html__('Power 4 out', 'rehub-theme'), 'power4-inOut' => esc_html__('Power 4 inOut', 'rehub-theme'), 'back-in' => esc_html__('Back in', 'rehub-theme'), 'back-out' => esc_html__('Back out', 'rehub-theme'), 'back-inOut' => esc_html__('Back inOut', 'rehub-theme'), 'elastic-in' => esc_html__('elastic in', 'rehub-theme'), 'elastic-out' => esc_html__('elastic out', 'rehub-theme'), 'elastic-inOut' => esc_html__('elastic inOut', 'rehub-theme'), 'circ-in' => esc_html__('circ in', 'rehub-theme'), 'circ-out' => esc_html__('circ out', 'rehub-theme'), 'circ-inOut' => esc_html__('circ inOut', 'rehub-theme'), 'expo-in' => esc_html__('expo in', 'rehub-theme'), 'expo-out' => esc_html__('expo out', 'rehub-theme'), 'expo-inOut' => esc_html__('expo inOut', 'rehub-theme'), 'cine-in' => esc_html__('cine in', 'rehub-theme'), 'cine-out' => esc_html__('cine out', 'rehub-theme'), 'cine-inOut' => esc_html__('cine inOut', 'rehub-theme'), ], ]); $gsaprepeater->add_control( 'multi_obj', [ 'label' => esc_html__( 'Custom object', 'rehub-theme' ), 'label_block' => true, 'description' => 'By default, animation will be applied to current object, but you can set custom class or id of object', 'type' => \Elementor\Controls_Manager::TEXT, ]); $obj->add_control( 'rh_gsap_multi', [ 'label' => esc_html__( 'Multiple Animations', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::REPEATER, 'fields' => $gsaprepeater->get_controls(), 'title_field' => 'Duration - {{{ multi_duration }}}', 'separator' => 'before', 'prevent_empty' => false, 'condition' => array( 'rh_gsap' => 'true', ), ]); } $obj->add_control( 'rhhr5', [ 'type' => \Elementor\Controls_Manager::DIVIDER, 'condition'=> [ 'rh_gsap' => 'true' ], ] ); $obj->add_control( 'rh_reveal', [ 'label' => __('Enabled Reveal', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::SWITCHER, 'default' => '', 'label_on' => __('Yes', 'rehub-theme'), 'label_off' => __('No', 'rehub-theme'), 'return_value' => 'yes', // ] ); $obj->add_control( 'rh_reveal_dir', [ 'label' => __( 'Direction', 'rehub-theme' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => 'lr', 'options' => [ 'lr' => __( 'Left to Right', 'rehub-theme' ), 'rl' => __( 'Right to Left', 'rehub-theme' ), 'tb' => __( 'Top to Bottom', 'rehub-theme' ), 'bt' => __( 'Bottom to top', 'rehub-theme' ), ], 'condition' => [ 'rh_reveal' => 'yes' ] ] ); $obj->add_control( 'rh_reveal_speed', [ 'label' => __('Speed', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 10, 'step' => 0.1, 'default' => 1, 'condition' => [ 'rh_reveal' => 'yes' ] ] ); $obj->add_control( 'rh_reveal_delay', [ 'label' => __('Delay', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::NUMBER, 'min' => 0, 'max' => 10, 'step' => 0.1, 'condition' => [ 'rh_reveal' => 'yes' ] ] ); $obj->add_control( 'rh_reveal_bgcolor', [ 'label' => __('Color', 'rehub-theme'), 'type' => \Elementor\Controls_Manager::COLOR, 'default' => '#ccc', 'selectors' => [ '{{WRAPPER}} .rh-reveal-block' => 'background-color: {{VALUE}};', ], 'condition' => [ 'rh_reveal' => 'yes' ] ] ); $obj->add_control( 'rhhrrev', [ 'type' => \Elementor\Controls_Manager::DIVIDER, 'condition'=> [ 'rh_reveal' => 'yes' ], ] ); $obj->add_control( 'rh_parallax_el', array( 'label' => esc_html__( 'Enable scroll parallax effect', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'true', ) ); $obj->add_control( 'rh_parallax_el_speed', array( 'label' => esc_html__( 'Time (ms)', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 1, 'max' => 200, 'step' => 1, 'default' => 10, 'condition' => array( 'rh_parallax_el' => 'true', ), ) ); $obj->add_control( 'rh_parallax_el_strength', array( 'label' => esc_html__( 'Strength', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 1, 'max' => 1500, 'step' => 1, 'default' => 100, 'condition' => array( 'rh_parallax_el' => 'true', ), ) ); $obj->add_control( 'rh_parallax_el_dir', array( 'label' => esc_html__( 'Enable reverse direction', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'default' => 'yes', 'condition' => array( 'rh_parallax_el' => 'true', ), ) ); $obj->add_control( 'rhhrelpar', [ 'type' => \Elementor\Controls_Manager::DIVIDER, 'condition'=> [ 'rh_parallax_el' => 'true' ], ] ); $obj->add_control( 'rh_parlx_m_el', array( 'label' => esc_html__( 'Enable mouse move effect', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'true', ) ); $obj->add_control( 'rh_parlx_m_el_cur', array( 'label' => esc_html__( 'Bounds by Object', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'condition' => array( 'rh_parlx_m_el' => 'true', ), ) ); $obj->add_control( 'rh_parlx_restore', array( 'label' => esc_html__( 'Restore on Mouse Leave', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::SWITCHER, 'label_on' => esc_html__( 'Yes', 'rehub-theme' ), 'label_off' => esc_html__( 'No', 'rehub-theme' ), 'return_value' => 'yes', 'condition' => array( 'rh_parlx_m_el' => 'true', 'rh_parlx_m_el_cur' => 'yes' ), ) ); $obj->add_control( 'rh_parlx_m_el_speed', array( 'label' => esc_html__( 'Strength for x and y', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 1, 'max' => 200, 'step' => 1, 'default' => 20, 'condition' => array( 'rh_parlx_m_el' => 'true', ), ) ); $obj->add_control( 'rh_parlx_m_el_tilt', array( 'label' => esc_html__( 'Strength for tilt', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::NUMBER, 'min' => 1, 'max' => 200, 'step' => 1, 'condition' => array( 'rh_parlx_m_el' => 'true', ), ) ); $obj->end_controls_section(); } function RH_el_elementor_frontend( $element) { if ( $element->get_settings( 'rh_gsap' ) == 'true' || $element->get_settings( 'rh_parallax_el' ) == 'true' || $element->get_settings( 'rh_reveal' ) == 'true' ) { wp_enqueue_script('gsap'); wp_enqueue_script('scrolltrigger'); wp_enqueue_script('gsapinit'); if ( $element->get_settings( 'rh_gsap_st_type' ) == 'text' ) { wp_enqueue_script('gsapsplittext'); } if ( $element->get_settings( 'rh_gsap_st_type' ) == 'svg') { wp_enqueue_script('gsapsvgdraw'); } if ( $element->get_settings( 'rh_gsap_path' ) !='') { wp_enqueue_script('gsapsvgpath'); } } if ( $element->get_settings( 'rh_parlx_m_el' ) == 'true') { wp_enqueue_script('gsap');wp_enqueue_script('gsapinit'); } return; } function RH_el_elementor_frontend_section( $element) { if('section' === $element->get_name()){ if ( $element->get_settings( 'rh_stickyel_section_sticky' ) == 'true' ) { wp_enqueue_script('stickysidebar'); $element->add_render_attribute( '_wrapper', array( 'data-sticky-top-offset' => ($element->get_settings('rh_stickyel_top_spacing') != '') ? $element->get_settings('rh_stickyel_top_spacing') : '', 'data-sticky-bottom-offset' => ($element->get_settings('rh_stickyel_bottom_spacing') != '') ? $element->get_settings('rh_stickyel_bottom_spacing') : '', ) ); } if ( $element->get_settings( 'rh_parallax_bg' ) == 'true' ) { wp_enqueue_script('rh_elparallax'); } $lazybg = $element->get_settings('rh_lazy_bg'); if ( !empty($lazybg['url'])) { wp_enqueue_script('rhyall'); $element->add_render_attribute( '_wrapper', 'class', array('lazy-bg') ); } } return; } function RH_el_html_add_custom( $obj, $args ) { $obj->start_controls_section( 'section_rh_custom_html', array( 'label' => esc_html__( 'Custom JS, CSS', 'rehub-theme' ), 'tab' => Elementor\Controls_Manager::TAB_CONTENT, ) ); $obj->add_control( 'rh_js', [ 'label' => __( 'Enter your JS code', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::CODE, 'default' => '', 'language' => 'javascript', ] ); $obj->add_control( 'rh_css', [ 'label' => __( 'Enter your CSS code', 'rehub-theme' ), 'type' => Elementor\Controls_Manager::CODE, 'default' => '', 'language' => 'css', ] ); $obj->end_controls_section(); } function RH_el_custom_widget_render( $content, $widget ) { $settings = $widget->get_settings_for_display(); if ( 'html' === $widget->get_name() ) { if ( ! empty( $settings['rh_js'] ) ) { $customjs = $settings['rh_js']; wp_add_inline_script('elementor-frontend', $customjs); } if ( ! empty( $settings['rh_css'] ) ) { $customcss = $settings['rh_css']; $cssid = 'el_rh_css_html'.uniqid('', true); wp_register_style( $cssid, false ); wp_enqueue_style( $cssid ); wp_add_inline_style($cssid, $customcss); } } if (!empty($settings['rh_gsap'])) { if (\Elementor\Plugin::$instance->editor->is_edit_mode()) { } $hideclass = ''; if ( ! empty( $settings['rh_gsap_from'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-from', $settings['rh_gsap_from'] ); } if ( ! empty( $settings['rh_gsap_trigger_type'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-triggertype', $settings['rh_gsap_trigger_type'] ); if($settings['rh_gsap_trigger_type'] == 'custom'){ if ( ! empty( $settings['rh_gsap_sc_start'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-triggerstart', $settings['rh_gsap_sc_start'] ); } if ( ! empty( $settings['rh_gsap_sc_end'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-triggerend', $settings['rh_gsap_sc_end'] ); } if ( ! empty( $settings['rh_gsap_sc_dur'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-triggerscrub', $settings['rh_gsap_sc_dur'] ); } if ( ! empty( $settings['rh_gsap_pinned'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-pinned', $settings['rh_gsap_pinned'] ); } if ( ! empty( $settings['rh_gsap_pinspace'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-pinspace', $settings['rh_gsap_pinspace'] ); } if ( ! empty( $settings['rh_gsap_sc_act'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-triggeraction', $settings['rh_gsap_sc_act'] ); } if ( ! empty( $settings['rh_gsap_sc_snap'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-triggersnap', $settings['rh_gsap_sc_snap'] ); } } if ( ! empty( $settings['rh_gsap_trigger_field'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-customtrigger', $settings['rh_gsap_trigger_field'] ); } if ( ! empty( $settings['rh_gsap_obj_field'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-customobject', $settings['rh_gsap_obj_field'] ); } if ( ! empty( $settings['rh_gsap_batch_interval'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-batchint', $settings['rh_gsap_batch_interval'] ); } if ( ! empty( $settings['rh_gsap_batchrandom'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-batchrandom', $settings['rh_gsap_batchrandom'] ); } } if ( ! empty( $settings['rh_videoplay'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-videoplay', $settings['rh_videoplay'] ); } if ( ! empty( $settings['rh_gsap_x'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-x', $settings['rh_gsap_x'] ); } if ( ! empty( $settings['rh_gsap_y'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-y', $settings['rh_gsap_y'] ); } if ( ! empty( $settings['rh_gsap_z'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-z', $settings['rh_gsap_z'] ); } if ( ! empty( $settings['rh_gsap_xo'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-xo', $settings['rh_gsap_xo'] ); } if ( ! empty( $settings['rh_gsap_yo'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-yo', $settings['rh_gsap_yo'] ); } if ( ! empty( $settings['rh_gsap_r'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-r', $settings['rh_gsap_r'] ); } if ( ! empty( $settings['rh_gsap_rx'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-rx', $settings['rh_gsap_rx'] ); } if ( ! empty( $settings['rh_gsap_ry'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-ry', $settings['rh_gsap_ry'] ); } if ( ! empty( $settings['rh_gsap_scale'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-s', $settings['rh_gsap_scale'] ); } if ( ! empty( $settings['rh_gsap_scale_x'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-sx', $settings['rh_gsap_scale_x'] ); } if ( ! empty( $settings['rh_gsap_scale_y'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-sy', $settings['rh_gsap_scale_y'] ); } if ( ! empty( $settings['rh_gsap_width'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-width', $settings['rh_gsap_width'] ); } if ( ! empty( $settings['rh_gsap_height'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-height', $settings['rh_gsap_height'] ); } if ( ! empty( $settings['rh_gsap_boxshadow'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-boxshadow', $settings['rh_gsap_boxshadow'] ); } if ( ! empty( $settings['rh_gsap_opacity'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-o', $settings['rh_gsap_opacity'] ); if( ! empty( $settings['rh_gsap_from'] ) && $settings['rh_gsap_from'] == 'yes' ){ if($settings['rh_gsap_opacity'] == 0 || $settings['rh_gsap_opacity'] == 1){ $hideclass = ' prehidden'; } } } if ( ! empty( $settings['rh_gsap_infinite'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-loop', $settings['rh_gsap_infinite'] ); if ( ! empty( $settings['rh_gsap_yoyo'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-yoyo', $settings['rh_gsap_yoyo'] ); } if ( ! empty( $settings['rh_gsap_repeatdelay'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-repeatdelay', $settings['rh_gsap_repeatdelay'] ); } } if ( ! empty( $settings['rh_gsap_delay'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-delay', $settings['rh_gsap_delay'] ); } if ( ! empty( $settings['rh_gsap_ease'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-ease', $settings['rh_gsap_ease'] ); } if ( ! empty( $settings['rh_gsap_stdelay'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-stdelay', $settings['rh_gsap_stdelay'] ); } if ( ! empty( $settings['rh_gsap_strandom'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-strandom', $settings['rh_gsap_strandom'] ); } if ( ! empty( $settings['rh_gsap_bg'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-bg', $settings['rh_gsap_bg'] ); } if ( ! empty( $settings['rh_gsap_stagger'] ) && $settings['rh_gsap_st_type'] == 'class' ) { $widget->add_render_attribute( 'ann-wrapper', 'data-stagger', $settings['rh_gsap_stagger'] ); } if ( ! empty( $settings['rh_gsap_text'] ) && $settings['rh_gsap_st_type'] == 'text' ) { $widget->add_render_attribute( 'ann-wrapper', 'data-text', $settings['rh_gsap_text'] ); } if ($settings['rh_gsap_st_type'] == 'svg' ) { $widget->add_render_attribute( 'ann-wrapper', 'data-svgdraw', 'yes' ); } if ( ! empty( $settings['rh_gsap_origin'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-origin', $settings['rh_gsap_origin'] ); } if ( ! empty( $settings['rh_gsap_path'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-path', $settings['rh_gsap_path'] ); if ( ! empty( $settings['rh_gsap_path_align'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-path-align', $settings['rh_gsap_path_align'] ); } if ( ! empty( $settings['rh_gsap_path_align_x'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-path-alignx', $settings['rh_gsap_path_align_x']['size'] ); } if ( ! empty( $settings['rh_gsap_path_align_y'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-path-aligny', $settings['rh_gsap_path_align_y']['size'] ); } if ( ! empty( $settings['rh_gsap_path_orient'] ) ) { $widget->add_render_attribute( 'ann-wrapper', 'data-path-orient', $settings['rh_gsap_path_orient'] ); } } $settings['multianimations'] = array(); if ( ! empty( $settings['rh_gsap_multi'] )) { foreach ($settings['rh_gsap_multi'] as $index => $item) { foreach ($item as $key => $value) { if(!empty($value)){ if(is_array($value)) $value = $value['size']; if($value) $settings['multianimations'][$index][$key] = $value; } } } $widget->add_render_attribute( 'ann-wrapper', 'data-multianimations', json_encode($settings['multianimations']) ); } $content = '
get_render_attribute_string( 'ann-wrapper' ).' data-duration="'.$settings['rh_gsap_duration'].'" class="rh-gsap-wrap'.$hideclass.'">'.$content. '
'; if(!empty($settings['rh_gsap_z'])) { $content = '
'.$content. '
'; } } if ( ! empty( $settings['rh_reveal'] )) { if ( ! empty( $settings['rh_reveal_dir'] )) { $widget->add_render_attribute( 'reveal-wrapper', 'data-reveal-dir', $settings['rh_reveal_dir'] ); } if ( ! empty( $settings['rh_reveal_speed'] )) { $widget->add_render_attribute( 'reveal-wrapper', 'data-reveal-speed', $settings['rh_reveal_speed'] ); } if ( ! empty( $settings['rh_reveal_delay'] )) { $widget->add_render_attribute( 'reveal-wrapper', 'data-reveal-delay', $settings['rh_reveal_delay'] ); } if ( ! empty( $settings['rh_reveal_bgcolor'] )) { $widget->add_render_attribute( 'reveal-wrapper', 'data-reveal-bg', $settings['rh_reveal_bgcolor'] ); } $content = '
'.$content. '
get_render_attribute_string( 'reveal-wrapper' ).' class="rh-reveal-block abdfullwidth pointernone">
'; } if ( ! empty( $settings['rh_parallax_el'] )) { if ( ! empty( $settings['rh_parallax_el_dir'] )) { $widget->add_render_attribute( 'rhpar-wrapper', 'data-from', $settings['rh_parallax_el_dir'] ); } if ( ! empty( $settings['rh_parallax_el_strength'] )) { $widget->add_render_attribute( 'rhpar-wrapper', 'data-y', $settings['rh_parallax_el_strength'] ); } if ( ! empty( $settings['rh_parallax_el_speed'] )) { $widget->add_render_attribute( 'rhpar-wrapper', 'data-duration', $settings['rh_parallax_el_speed']/10 ); } $content = '
get_render_attribute_string( 'rhpar-wrapper' ).'>'.$content. '
'; } if ( ! empty( $settings['rh_parlx_m_el'] )) { if ( ! empty( $settings['rh_parlx_m_el_speed'] )) { $widget->add_render_attribute( 'rhmprlx-wrapper', 'data-prlx-xy', $settings['rh_parlx_m_el_speed'] ); } if ( ! empty( $settings['rh_parlx_m_el_cur'] )) { $widget->add_render_attribute( 'rhmprlx-wrapper', 'data-prlx-cur', $settings['rh_parlx_m_el_cur'] ); } if ( ! empty( $settings['rh_parlx_restore'] )) { $widget->add_render_attribute( 'rhmprlx-wrapper', 'data-prlx-rest', $settings['rh_parlx_restore'] ); } if ( ! empty( $settings['rh_parlx_m_el_tilt'] )) { $widget->add_render_attribute( 'rhmprlx-wrapper', 'data-prlx-tilt', $settings['rh_parlx_m_el_tilt'] ); } $content = '
get_render_attribute_string( 'rhmprlx-wrapper' ).'>'.$content. '
'; } return $content; } function rh_el_custom_print_template($content, $widget){ if (!$content) return ''; if ( 'html' === $widget->get_name() ) { ob_start(); ?> {{{ settings.html }}} <# if (settings.rh_css ) { #> <# } #>
<# } #>
" . $content . "
<# if ( settings.rh_gsap_z || settings.rh_gsap_rx || settings.rh_gsap_ry ) { #>
<# } } else { #>" . $content . "<# } #>"; //Check reveal $content = "<# if ( settings.rh_reveal ) { if ( settings.rh_reveal_dir ) { view.addRenderAttribute( 'reveal-wrapper', 'data-reveal-dir', settings.rh_reveal_dir ); } if ( settings.rh_reveal_speed ) { view.addRenderAttribute( 'reveal-wrapper', 'data-reveal-speed', settings.rh_reveal_speed ); } if ( settings.rh_reveal_delay ) { view.addRenderAttribute( 'reveal-wrapper', 'data-reveal-delay', settings.rh_reveal_delay ); } if ( settings.rh_reveal_bgcolor ) { view.addRenderAttribute( 'reveal-wrapper', 'data-reveal-bg', settings.rh_reveal_bgcolor ); } #>
" . $content . "
<# } else { #>" . $content . "<# } #>"; //Check parallax $content = "<# if ( settings.rh_parallax_el ) { if ( settings.rh_parallax_el_dir ) { view.addRenderAttribute( 'rhpar-wrapper', 'data-from', settings.rh_parallax_el_dir ); } if ( settings.rh_parallax_el_strength ) { view.addRenderAttribute( 'rhpar-wrapper', 'data-y', settings.rh_parallax_el_strength ); } if ( settings.rh_parallax_el_speed ) { view.addRenderAttribute( 'rhpar-wrapper', 'data-duration', settings.rh_parallax_el_speed/10 ); } #>
" . $content . "
<# } else { #>" . $content . "<# } #>"; //Check parallax mouse $content = "<# if ( settings.rh_parlx_m_el ) { if ( settings.rh_parlx_m_el_speed ) { view.addRenderAttribute( 'rhmprlx-wrapper', 'data-prlx-xy', settings.rh_parlx_m_el_speed ); } if ( settings.rh_parlx_m_el_cur ) { view.addRenderAttribute( 'rhmprlx-wrapper', 'data-prlx-cur', settings.rh_parlx_m_el_cur ); } if ( settings.rh_parlx_restore ) { view.addRenderAttribute( 'rhmprlx-wrapper', 'data-prlx-rest', settings.rh_parlx_restore ); } if ( settings.rh_parlx_m_el_tilt ) { view.addRenderAttribute( 'rhmprlx-wrapper', 'data-prlx-tilt', settings.rh_parlx_m_el_tilt ); } #>
" . $content . "
<# } else { #>" . $content . "<# } #>"; return $content; } function RH_additional_el_annimation($array){ $array['Rehub Effects'] = [ 'stuckMoveUpOpacity' => 'Stuck Up with Fade', 'stuckFlipUpOpacity' => 'Stuck Up with Flip and Fade', 'tracking-in-expand' => 'Text tracking and expand', ]; return $array; } function rh_el_add_lazy_load_images($html, $settings, $image_size_key, $image_key){ if (rehub_option('enable_lazy_images') == '1'){ if($html){ if(stripos($html, 'class=') !== false){ $html = str_replace('class="', 'class="lazyload ', $html); }else{ $html = str_replace('img', 'img class="lazyload"', $html); } $new_src_url = get_template_directory_uri() . '/images/default/blank.gif'; $html = preg_replace('(src="(.*?)")', 'src="'.$new_src_url.'" data-src="$1"', $html); } } return $html; } if ( !class_exists( 'Rehub_Lottie_Class' ) ) { class Rehub_Lottie_Class { public static $animations = array(); function __construct() { add_action( 'wp_footer', array( $this, 'plus_animation_data' ), 5 ); } public static function plus_addAnimation( $animation = array() ) { if ( empty( $animation ) || empty( $animation['id'] ) ) { return false; } self::$animations[$animation['container_id']] = $animation; } public static function plus_getAnimations() { return apply_filters( 'wpbdmv-animations', self::$animations ); } public static function plus_hasAnimations() { $animations = self::plus_getAnimations(); return empty( $animations ) ? false : true; } function plus_animation_data() { if ( !self::plus_hasAnimations() ) { return; } wp_localize_script( 'lottie-init', 'wpbodymovin', array( 'animations' => self::plus_getAnimations() ) ); } } } function rh_get_local_el_templates() { $templates = \Elementor\Plugin::$instance->templates_manager->get_source( 'local' )->get_items(); $types = []; if ( empty( $templates ) ) { $options = [ '0' => esc_html__( 'You Haven’t Saved Templates Yet.', 'rehub-theme' ) ]; } else { $options = [ '0' => esc_html__( 'Select Template', 'rehub-theme' ) ]; foreach ( $templates as $template ) { $options[ $template['template_id'] ] = $template['title'] . ' (' . $template['type'] . ')'; $types[ $template['template_id'] ] = $template['type']; } } return $options; } //add_action( 'elementor/element/parse_css', 'rh_add_post_css', 10, 2 ); /*function rh_add_post_css( $post_css, $element ) { if ( $post_css instanceof Dynamic_CSS ) { return; } $element_settings = $element->get_settings(); if ( empty( $element_settings['rh_css'] ) ) { return; } $css = trim( $element_settings['rh_css'] ); if ( empty( $css ) ) { return; } $post_css->get_stylesheet()->add_raw_css( $css ); }*/