PluginProbe
Depicter — Popup & Slider Builder / 1.3.3
Depicter — Popup & Slider Builder v1.3.3
4.8.1 trunk 1.0.0 1.1.0 1.1.2 1.1.4 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.5 1.3.8 1.5.0 1.5.1 1.5.2 1.5.5 1.6.0 1.6.1 1.6.2 1.7.0 All 76 releases
depicter / app / src / Modules / Elementor / SliderWidget.php

SliderWidget.php in Depicter — Popup & Slider Builder 1.3.3, at app/src/Modules/Elementor/SliderWidget.php

186 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Depicter\Modules\Elementor;
3
4 use Elementor\Plugin;
5 use Depicter\Document\CSS\Selector;
6 use Elementor\Controls_Manager;
7 use Elementor\Widget_Base;
8
9
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit; // Exit if accessed directly.
12 }
13
14 /**
15 * Elementor 'Slider' widget.
16 *
17 * Elementor widget that displays an 'Slider' with lightbox.
18 *
19 * @since 1.0.0
20 */
21 class SliderWidget extends Widget_Base {
22
23 /**
24 * Get widget name.
25 *
26 * Retrieve 'Slider' widget name.
27 *
28 * @since 1.0.0
29 * @access public
30 *
31 * @return string Widget name.
32 */
33 public function get_name() {
34 return 'depicter_slider';
35 }
36
37 /**
38 * Get widget title.
39 *
40 * Retrieve 'Slider' widget title.
41 *
42 * @since 1.0.0
43 * @access public
44 *
45 * @return string Widget title.
46 */
47 public function get_title() {
48 return __('Depicter Slider', 'depicter' );
49 }
50
51 /**
52 * Get widget icon.
53 *
54 * Retrieve Slider widget icon.
55 *
56 * @since 1.0.0
57 * @access public
58 *
59 * @return string Widget icon.
60 */
61 public function get_icon() {
62 return 'eicon-post-slider depicter-badge';
63 }
64
65 /**
66 * Get widget categories.
67 *
68 * @since 1.0.0
69 * @access public
70 *
71 * @return string Widget icon.
72 */
73 public function get_categories() {
74 return ['basic'];
75 }
76
77 /**
78 * load dependent styles
79 *
80 * @return array
81 */
82 public function get_style_depends() {
83 $styles = \Depicter::front()->assets()->enqueueStyles();
84 return array_keys( $styles );
85 }
86
87 /**
88 * load dependent scripts
89 *
90 * @return array
91 */
92 public function get_script_depends() {
93 $scripts = \Depicter::front()->assets()->enqueueScripts();
94 return array_keys( $scripts );
95 }
96
97
98 public function getSlidersList() {
99 $list = [
100 0 => __( 'Select Slider', 'depicter' )
101 ];
102 $documents = \Depicter::documentRepository()->getList();
103 foreach( $documents as $document ) {
104 $list[ $document['id'] ] = "[#{$document['id']}]: " . $document['name'];
105 }
106 return $list;
107 }
108
109 /**
110 * Register 'Slider' widget controls.
111 *
112 * Adds different input fields to allow the user to change and customize the widget settings.
113 *
114 * @since 1.0.0
115 * @access protected
116 */
117 protected function register_controls() {
118
119 /*-----------------------------------------------------------------------------------*/
120 /* slider_section
121 /*-----------------------------------------------------------------------------------*/
122
123 $this->start_controls_section(
124 'slider_section',
125 array(
126 'label' => __('Slider', 'depicter' ),
127 )
128 );
129
130 $this->add_control(
131 'slider_id',
132 [
133 'label' => __('Select a Depicter slider','depicter' ),
134 'type' => Controls_Manager::SELECT,
135 'label_block' => 'true',
136 'options' => $this->getSlidersList(),
137 'default' => 0
138 ]
139 );
140
141 $documents = \Depicter::documentRepository()->getList();
142 foreach( $documents as $key => $document ) {
143
144 $args = [
145 'isNotPublished' => \Depicter::documentRepository()->isNotPublished( $document['id'], [ 'status' => 'publish' ] ),
146 'documentStatus' => $document['status']
147 ];
148
149 $markup = \Depicter::view('admin/notices/builders-draft-notice')->with('view_args', $args)->toString();
150
151 $this->add_control(
152 'slider_control_buttons_' . $key,
153 [
154 'type' => Controls_Manager::RAW_HTML,
155 'raw' => $markup,
156 'condition' => [
157 'slider_id' => $document['id']
158 ]
159 ]
160 );
161 }
162
163 $this->end_controls_section();
164 }
165
166 /**
167 * Render image box widget output on the frontend.
168 *
169 * Written in PHP and used to generate the final HTML.
170 *
171 * @since 1.0.0
172 * @access protected
173 */
174 protected function render() {
175
176 $settings = $this->get_settings_for_display();
177
178 if ( $settings['slider_id'] ) {
179 echo \Depicter::front()->render()->document( $settings['slider_id'] );
180 } else {
181 echo esc_html__('Please select a Depicter slider','depicter' );
182 }
183
184 }
185 }
186