PluginProbe ʕ •ᴥ•ʔ
Kirki – Freeform Page Builder, Website Builder & Customizer / 6.0.13
Kirki – Freeform Page Builder, Website Builder & Customizer v6.0.13
6.1.1 6.1.0 6.0.14 6.0.13 6.0.12 6.0.11 6.0.10 6.0.9 6.0.8 6.0.7 6.0.6 6.0.5 6.0.4 6.0.3 6.0.2 6.0.1 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 4.0.19 4.0.20 4.0.21 4.0.22 4.0.23 4.0.24 4.1 4.2.0 5.0.0 5.1.0 5.1.1 5.2.0 5.2.1 5.2.2 5.2.3 6.0.0 trunk 3.0.40 3.0.41 3.0.42 3.0.43 3.0.44 3.0.45 3.1.0 3.1.1 3.1.2
kirki / customizer / packages / controls / responsive / src / Field / Responsive.php
kirki / customizer / packages / controls / responsive / src / Field Last commit date
Responsive.php 5 months ago
Responsive.php
121 lines
1 <?php // phpcs:disable PHPCompatibility.FunctionDeclarations.NewClosure
2 /**
3 * Override field methods
4 *
5 * @package kirki-responsive
6 * @since 1.0
7 */
8
9 namespace Kirki\Field;
10
11 use Kirki\Field;
12
13 /**
14 * Field overrides.
15 *
16 * @since 1.0
17 */
18 class Responsive extends Field {
19
20 /**
21 * The field type.
22 *
23 * @since 1.0
24 * @var string
25 */
26 public $type = 'kirki-responsive';
27
28 /**
29 * The control class-name.
30 *
31 * @since 1.0
32 * @var string
33 */
34 protected $control_class = '\Kirki\Control\Responsive';
35
36 /**
37 * Collection of the connected field names.
38 *
39 * @var array
40 */
41 public static $sub_field_names = [];
42
43 /**
44 * Whether we should register the control class for JS-templating or not.
45 *
46 * @access protected
47 * @since 1.0
48 * @var bool
49 */
50 protected $control_has_js_template = true;
51
52 /**
53 * Class constructor.
54 *
55 * @param array $args The field arguments.
56 */
57 public function __construct( $args ) {
58
59 $field_name = str_ireplace( 'kirki_responsive__', '', $args['settings'] );
60
61 if ( isset( $args['choices'] ) && isset( $args['choices']['devices'] ) && ! empty( $args['choices']['devices'] ) ) {
62 foreach ( $args['choices']['devices'] as $device ) {
63 $sub_field_name = $field_name . '[' . $device . ']';
64
65 if ( ! in_array( $sub_field_name, self::$sub_field_names, true ) ) {
66 array_push( self::$sub_field_names, $sub_field_name );
67 }
68 }
69 }
70
71 parent::__construct( $args );
72
73 }
74
75 /**
76 * Filter arguments before creating the setting.
77 *
78 * @since 1.0
79 *
80 * @param array $args The field arguments.
81 * @param WP_Customize_Manager $wp_customize The customizer instance.
82 *
83 * @return array
84 */
85 public function filter_setting_args( $args, $wp_customize ) {
86
87 if ( $args['settings'] === $this->args['settings'] ) {
88 $args = parent::filter_setting_args( $args, $wp_customize );
89
90 // Set the sanitize-callback if none is defined.
91 if ( ! isset( $args['sanitize_callback'] ) || ! $args['sanitize_callback'] ) {
92 $args['sanitize_callback'] = '__return_null';
93 }
94 }
95
96 return $args;
97
98 }
99
100 /**
101 * Filter arguments before creating the control.
102 *
103 * @since 0.1
104 *
105 * @param array $args The field arguments.
106 * @param WP_Customize_Manager $wp_customize The customizer instance.
107 *
108 * @return array
109 */
110 public function filter_control_args( $args, $wp_customize ) {
111
112 if ( $args['settings'] === $this->args['settings'] ) {
113 $args = parent::filter_control_args( $args, $wp_customize );
114 $args['type'] = 'kirki-responsive';
115 }
116
117 return $args;
118
119 }
120 }
121