Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/elementor/includes/controls/select2.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
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 +