Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/elementor/includes/controls/select2.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
namespace Elementor;
3
+
4
+
if ( ! defined( 'ABSPATH' ) ) {
5
+
exit; // Exit if accessed directly.
6
+
}
7
+
8
+
/**
9
+
* Elementor select2 control.
10
+
*
11
+
* A base control for creating select2 control. Displays a select box control
12
+
* based on select2 jQuery plugin @see https://select2.github.io/ .
13
+
* It accepts an array in which the `key` is the value and the `value` is the
14
+
* option name. Set `multiple` to `true` to allow multiple value selection.
15
+
*
16
+
* @since 1.0.0
17
+
*/
18
+
class Control_Select2 extends Base_Data_Control {
19
+
20
+
/**
21
+
* Get select2 control type.
22
+
*
23
+
* Retrieve the control type, in this case `select2`.
24
+
*
25
+
* @since 1.0.0
26
+
* @access public
27
+
*
28
+
* @return string Control type.
29
+
*/
30
+
public function get_type() {
31
+
return 'select2';
32
+
}
33
+
34
+
/**
35
+
* Get select2 control default settings.
36
+
*
37
+
* Retrieve the default settings of the select2 control. Used to return the
38
+
* default settings while initializing the select2 control.
39
+
*
40
+
* @since 1.8.0
41
+
* @access protected
42
+
*
43
+
* @return array Control default settings.
44
+
*/
45
+
protected function get_default_settings() {
46
+
return [
47
+
'options' => [],
48
+
'multiple' => false,
49
+
// Select2 library options
50
+
'select2options' => [],
51
+
// the lockedOptions array can be passed option keys. The passed option keys will be non-deletable.
52
+
'lockedOptions' => [],
53
+
];
54
+
}
55
+
56
+
/**
57
+
* Render select2 control output in the editor.
58
+
*
59
+
* Used to generate the control HTML in the editor using Underscore JS
60
+
* template. The variables for the class are available using `data` JS
61
+
* object.
62
+
*
63
+
* @since 1.0.0
64
+
* @access public
65
+
*/
66
+
public function content_template() {
67
+
?>
68
+
<div class="elementor-control-field">
69
+
<# if ( data.label ) {#>
70
+
<label for="<?php $this->print_control_uid(); ?>" class="elementor-control-title">{{{ data.label }}}</label>
71
+
<# } #>
72
+
<div class="elementor-control-input-wrapper elementor-control-unit-5">
73
+
<# var multiple = ( data.multiple ) ? 'multiple' : ''; #>
74
+
<select id="<?php $this->print_control_uid(); ?>" class="elementor-select2" type="select2" {{ multiple }} data-setting="{{ data.name }}">
75
+
<# _.each( data.options, function( option_title, option_value ) {
76
+
var value = data.controlValue;
77
+
if ( typeof value == 'string' ) {
78
+
var selected = ( option_value === value ) ? 'selected' : '';
79
+
} else if ( null !== value ) {
80
+
var value = _.values( value );
81
+
var selected = ( -1 !== value.indexOf( option_value ) ) ? 'selected' : '';
82
+
}
83
+
#>
84
+
<option {{ selected }} value="{{ _.escape( option_value ) }}">{{{ _.escape( option_title ) }}}</option>
85
+
<# } ); #>
86
+
</select>
87
+
</div>
88
+
</div>
89
+
<# if ( data.description ) { #>
90
+
<div class="elementor-control-field-description">{{{ data.description }}}</div>
91
+
<# } #>
92
+
<?php
93
+
}
94
+
}
95
+