PluginProbe
UiCore Elements – Free widgets and templates for Elementor / 1.3.18
UiCore Elements – Free widgets and templates for Elementor v1.3.18
1.3.18 1.3.17 1.3.16 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.2.0 1.2.1 1.2.2 1.2.3 All 42 releases
← All changes | includes/widgets/logo-carousel.php +179 -184 1.0.0 → 1.3.18 View file →
@@ -1,184 +1,179 @@
1 -<?php
2 -namespace UiCoreElements;
3 -use Elementor\Controls_Manager;
4 -use UiCoreElements\UiCoreWidget;
5 -use UiCoreElements\Utils\Carousel_Trait;
6 -use UiCoreElements\Utils\Logo_Trait;
7 -use UiCoreElements\Utils\Animation_Trait;
8 -
9 -defined('ABSPATH') || exit();
10 -
11 -/**
12 - * Logo Carousel
13 - *
14 - * @author Lucas Marini Falbo <[email protected]>
15 - * @since 1.0.1
16 - */
17 -
18 -class LogoCarousel extends UiCoreWidget
19 -{
20 -
21 - use Carousel_Trait;
22 - use Logo_Trait;
23 - use Animation_Trait;
24 -
25 - public function get_name()
26 - {
27 - return 'uicore-logo-carousel';
28 - }
29 - public function get_title()
30 - {
31 - return esc_html__('Logo Carousel', 'uicore-elements');
32 - }
33 - public function get_icon()
34 - {
35 - return 'eicon-logo ui-e-widget';
36 - }
37 - public function get_categories()
38 - {
39 - return ['uicore'];
40 - }
41 - public function get_keywords()
42 - {
43 - return ['logo', 'client', 'brand', 'showcase', 'carousel', 'slide'];
44 - }
45 - public function get_styles()
46 - {
47 - return [
48 - 'logo-carousel',
49 - 'animation',
50 - 'entrance',
51 - 'e-animations' => [
52 - 'condition' => [
53 - 'animation_assets' => 'false'
54 - ],
55 - 'external' => true,
56 - ]
57 - ];
58 - }
59 - public function get_scripts()
60 - {
61 - return [
62 - 'carousel',
63 - 'entrance' => [
64 - 'condition' => [
65 - 'animate_items' => 'ui-e-grid-animate'
66 - ],
67 - ]
68 - ];
69 - }
70 - protected function register_controls()
71 - {
72 -
73 - $this->register_logo_repeater_controls('Logo Carousel Items'); // Repeater Controls
74 -
75 - $this->start_controls_section(
76 - 'section_carousel_settings',
77 - [
78 - 'label' => __('Carousel Settings', 'uicore-elements'),
79 - ]
80 - );
81 -
82 - $this->TRAIT_register_entrace_asset_helper(); // Animation asset condition
83 - $this->register_carousel_additional_controls(); // Carousel Additionals
84 - $this->register_logo_adittional_controls(false); // Logo Additionals without height control since carousel has it's own
85 - $this->add_control('add_carousel_divider',['type' => Controls_Manager::DIVIDER,]);
86 - $this->register_carousel_settings_controls(); // Carousel settings
87 -
88 - $this->end_controls_section();
89 -
90 - $this->register_navigation_controls(); // Navigation settings
91 -
92 - $this->start_controls_section(
93 - 'section_style_review_items',
94 - [
95 - 'label' => esc_html__( 'Logo Carousel', 'uicore-elements' ),
96 - 'tab' => Controls_Manager::TAB_STYLE,
97 - ]
98 - );
99 -
100 - $this->start_controls_tabs( 'tabs_item_style' );
101 -
102 - $this->start_controls_tab(
103 - 'tab_item_normal',
104 - [
105 - 'label' => esc_html__( 'Normal', 'uicore-elements' ),
106 - ]
107 - );
108 - $this->register_carousel_normal_item_style_controls(false);
109 - $this->register_logos_image_style_controls('normal');
110 - $this->end_controls_tab();
111 -
112 - $this->start_controls_tab(
113 - 'tab_item_hover',
114 - [
115 - 'label' => esc_html__( 'Hover', 'uicore-elements' ),
116 - ]
117 - );
118 - $this->register_carousel_hover_item_style_controls(false);
119 - $this->register_logos_image_style_controls('hover');
120 - $this->end_controls_tab();
121 -
122 - $this->start_controls_tab(
123 - 'tab_item_active',
124 - [
125 - 'label' => esc_html__( 'Active', 'uicore-elements' ),
126 - ]
127 - );
128 - $this->register_carousel_active_item_style_controls(false);
129 - $this->register_logos_image_style_controls('active');
130 - $this->end_controls_tabs();
131 -
132 - $this->end_controls_tabs(); // Necessary because register_testimonial_card_controls() OPENS but DON'T close start_controls_tabs()
133 -
134 - $this->end_controls_section();
135 -
136 - $this->register_navigation_style_controls(); // Carousel Navigation Styles
137 -
138 - $this->start_controls_section(
139 - 'section_style_animations',
140 - [
141 - 'label' => __('Animations', 'uicore-elements'),
142 - 'tab' => Controls_Manager::TAB_STYLE,
143 - ]
144 - );
145 -
146 - $this->TRAIT_register_entrance_animations_controls();
147 - $this->TRAIT_register_hover_animation_control(
148 - 'Item Hover Animation',
149 - [],
150 - ['underline']
151 - );
152 - $this->TRAIT_register_hover_animation_control(
153 - 'Logo Hover Animation',
154 - [],
155 - ['underline']
156 - );
157 -
158 - $this->end_controls_section();
159 - }
160 - public function render()
161 - {
162 - $ID = $this->get_ID();
163 - $settings = $this->get_settings_for_display();
164 -
165 - $this->add_render_attribute('review-carousel', 'class', ['ui-e-carousel', "carousel-$ID"]);
166 - ?>
167 - <div <?php $this->print_render_attribute_string('review-carousel'); ?>>
168 - <?php
169 -
170 - $this->render_logo_item();
171 -
172 - if(in_array('arrows', $settings['navigation'])) {
173 - $this->render_carousel_arrows();
174 - }
175 -
176 - if(in_array('fraction', $settings['navigation'])) {
177 - $this->render_carousel_fraction();
178 - }
179 - ?>
180 - </div>
181 - <?php
182 - }
183 -}
184 -\Elementor\Plugin::instance()->widgets_manager->register(new LogoCarousel());
1 +<?php
2 +
3 +namespace UiCoreElements;
4 +
5 +use Elementor\Controls_Manager;
6 +use UiCoreElements\UiCoreWidget;
7 +use UiCoreElements\Utils\Carousel_Trait;
8 +use UiCoreElements\Utils\Logo_Trait;
9 +use UiCoreElements\Utils\Animation_Trait;
10 +use UicoreElements\Utils\Item_Style_Component;
11 +
12 +defined('ABSPATH') || exit();
13 +
14 +/**
15 + * Logo Carousel
16 + *
17 + * @author Lucas Marini Falbo <[email protected]>
18 + * @since 1.0.1
19 + */
20 +
21 +class LogoCarousel extends UiCoreWidget
22 +{
23 +
24 + use Carousel_Trait;
25 + use Logo_Trait;
26 + use Animation_Trait;
27 + use Item_Style_Component;
28 +
29 + public function get_name()
30 + {
31 + return 'uicore-logo-carousel';
32 + }
33 + public function get_title()
34 + {
35 + return esc_html__('Logo Carousel', 'uicore-elements');
36 + }
37 + public function get_icon()
38 + {
39 + return 'eicon-logo ui-e-widget';
40 + }
41 + public function get_categories()
42 + {
43 + return ['uicore'];
44 + }
45 + public function get_keywords()
46 + {
47 + return ['logo', 'client', 'brand', 'showcase', 'carousel', 'slide'];
48 + }
49 + public function get_styles()
50 + {
51 + $styles = [
52 + 'logo-carousel',
53 + 'carousel',
54 + 'animation', // hover animations
55 + 'entrance', // entrance basic style
56 + ];
57 + if (!class_exists('\UiCore\Core') && !class_exists('\UiCoreAnimate\Base')) {
58 + $styles['e-animations'] = [ // entrance animations
59 + 'external' => true,
60 + ];
61 + }
62 + return $styles;
63 + }
64 + public function get_scripts()
65 + {
66 + return $this->TRAIT_get_carousel_scripts();
67 + }
68 + public function has_widget_inner_wrapper(): bool
69 + {
70 + // TODO: remove after Optmized Markup experiment is merged to the core
71 + return ! \Elementor\Plugin::$instance->experiments->is_feature_active('e_optimized_markup');
72 + }
73 + protected function register_controls()
74 + {
75 +
76 + $this->TRAIT_register_logo_repeater_controls('Logo Carousel Items'); // Repeater Controls
77 +
78 + $this->start_controls_section(
79 + 'section_carousel_settings',
80 + [
81 + 'label' => __('Carousel Settings', 'uicore-elements'),
82 + ]
83 + );
84 +
85 + $this->TRAIT_register_carousel_additional_controls(); // Carousel Additionals
86 + $this->TRAIT_register_logo_adittional_controls();
87 + $this->add_control('add_carousel_divider', ['type' => Controls_Manager::DIVIDER,]);
88 + $this->TRAIT_register_carousel_settings_controls(); // Carousel settings
89 +
90 + $this->end_controls_section();
91 +
92 + $this->TRAIT_register_navigation_controls(); // Navigation settings
93 +
94 + $this->start_controls_section(
95 + 'section_style_review_items',
96 + [
97 + 'label' => esc_html__('Logo Carousel', 'uicore-elements'),
98 + 'tab' => Controls_Manager::TAB_STYLE,
99 + ]
100 + );
101 +
102 + $this->start_controls_tabs('tabs_item_style');
103 +
104 + $this->start_controls_tab(
105 + 'tab_item_normal',
106 + [
107 + 'label' => esc_html__('Normal', 'uicore-elements'),
108 + ]
109 + );
110 + $this->TRAIT_register_normal_item_style_controls(false);
111 + $this->TRAIT_register_logos_image_style_controls('normal');
112 + $this->end_controls_tab();
113 +
114 + $this->start_controls_tab(
115 + 'tab_item_hover',
116 + [
117 + 'label' => esc_html__('Hover', 'uicore-elements'),
118 + ]
119 + );
120 + $this->TRAIT_register_hover_item_style_controls(false);
121 + $this->TRAIT_register_logos_image_style_controls('hover');
122 + $this->end_controls_tab();
123 +
124 + $this->start_controls_tab(
125 + 'tab_item_active',
126 + [
127 + 'label' => esc_html__('Active', 'uicore-elements'),
128 + ]
129 + );
130 + $this->TRAIT_register_active_item_style_controls(false);
131 + $this->TRAIT_register_logos_image_style_controls('active');
132 + $this->end_controls_tabs();
133 +
134 + $this->end_controls_tabs(); // Necessary because register_testimonial_card_controls() OPENS but DON'T close start_controls_tabs()
135 +
136 + $this->end_controls_section();
137 +
138 + $this->TRAIT_register_navigation_style_controls(); // Carousel Navigation Styles
139 +
140 + $this->start_controls_section(
141 + 'section_style_animations',
142 + [
143 + 'label' => __('Animations', 'uicore-elements'),
144 + 'tab' => Controls_Manager::TAB_STYLE,
145 + ]
146 + );
147 +
148 + $this->TRAIT_register_entrance_animations_controls();
149 + $this->TRAIT_register_hover_animation_control(
150 + 'Item Hover Animation',
151 + [],
152 + ['underline']
153 + );
154 + $this->TRAIT_register_hover_animation_control(
155 + 'Logo Hover Animation',
156 + [],
157 + ['underline']
158 + );
159 +
160 + $this->end_controls_section();
161 +
162 + // Remove unused logo control
163 + $this->remove_control('height');
164 + }
165 + public function render()
166 + {
167 + $total_slides = count($this->get_settings_for_display('logo_list'));
168 + $this->TRAIT_render_center_loop_warning($total_slides);
169 +?>
170 + <div class="ui-e-carousel swiper">
171 + <div class='swiper-wrapper'>
172 + <?php $this->TRAIT_render_logo_item(); ?>
173 + </div>
174 + </div>
175 + <?php $this->TRAIT_render_carousel_navigations($total_slides); ?>
176 +<?php
177 + }
178 +}
179 +\Elementor\Plugin::instance()->widgets_manager->register(new LogoCarousel());