PluginProbe
Depicter — Popup & Slider Builder / 1.2.0
Depicter — Popup & Slider Builder v1.2.0
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.2.0, at app/src/Modules/Elementor/SliderWidget.php

183 lines 3.7 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()->registerStyles();
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()->registerScripts();
94 return array_keys( $scripts );
95 }
96
97 public function getSlidersList() {
98 $list = [
99 0 => __( 'Select Slider', 'depicter' )
100 ];
101 $documents = \Depicter::documentRepository()->getList();
102 foreach( $documents as $document ) {
103 $list[ $document['id'] ] = "[#{$document['id']}]: " . $document['name'];
104 }
105 return $list;
106 }
107
108 /**
109 * Register 'Slider' widget controls.
110 *
111 * Adds different input fields to allow the user to change and customize the widget settings.
112 *
113 * @since 1.0.0
114 * @access protected
115 */
116 protected function register_controls() {
117
118 /*-----------------------------------------------------------------------------------*/
119 /* slider_section
120 /*-----------------------------------------------------------------------------------*/
121
122 $this->start_controls_section(
123 'slider_section',
124 array(
125 'label' => __('Slider', 'depicter' ),
126 )
127 );
128
129 $this->add_control(
130 'slider_id',
131 [
132 'label' => __('Select a Depicter slider','depicter' ),
133 'type' => Controls_Manager::SELECT,
134 'label_block' => 'true',
135 'options' => $this->getSlidersList(),
136 'default' => 0
137 ]
138 );
139
140 $documents = \Depicter::documentRepository()->getList();
141 foreach( $documents as $key => $document ) {
142
143 $args = [
144 'isNotPublished' => \Depicter::documentRepository()->isNotPublished( $document['id'], [ 'status' => 'publish' ] ),
145 'documentStatus' => $document['status']
146 ];
147
148 $markup = \Depicter::view('admin/notices/builders-draft-notice')->with('view_args', $args)->toString();
149
150 $this->add_control(
151 'slider_control_buttons_' . $key,
152 [
153 'type' => Controls_Manager::RAW_HTML,
154 'raw' => $markup,
155 'condition' => [
156 'slider_id' => $document['id']
157 ]
158 ]
159 );
160 }
161
162 $this->end_controls_section();
163 }
164
165 /**
166 * Render image box widget output on the frontend.
167 *
168 * Written in PHP and used to generate the final HTML.
169 *
170 * @since 1.0.0
171 * @access protected
172 */
173 protected function render() {
174
175 $settings = $this->get_settings_for_display();
176
177 if ( $settings['slider_id'] ) {
178 echo \Depicter::front()->render()->document( $settings['slider_id'] );
179 }
180
181 }
182 }
183