PluginProbe
UiCore Elements – Free widgets and templates for Elementor / 1.0.3
UiCore Elements – Free widgets and templates for Elementor v1.0.3
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 1.2.4 All 41 releases
uicore-elements / includes / widgets / logo-carousel.php

logo-carousel.php in UiCore Elements – Free widgets and templates for Elementor 1.0.3, at includes/widgets/logo-carousel.php

184 lines 5.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 <lucas@uicore.co>
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());