PluginProbe ʕ •ᴥ•ʔ
Pods – Custom Content Types and Fields / 3.3.9.1
Pods – Custom Content Types and Fields v3.3.9.1
2.8.23.4 2.9.19.4 3.0.10.4 3.1.4.2 3.2.8.3 3.3.9.1 trunk 1.14.8 2.7.31.3 2.8.23.3 2.9.19.3 3.0.10.3 3.1.4.1 3.2.0 3.2.1 3.2.1.1 3.2.2 3.2.4 3.2.5 3.2.6 3.2.7 3.2.7.1 3.2.8 3.2.8.1 3.2.8.2 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9
pods / ui / fields / select.php
pods / ui / fields Last commit date
_comment.php 2 weeks ago _db.php 2 weeks ago _hidden.php 2 weeks ago _label.php 2 weeks ago _row.php 2 weeks ago attachment.php 2 weeks ago checkbox.php 2 weeks ago cleditor.php 2 weeks ago codemirror.php 2 weeks ago color.php 2 weeks ago currency.php 2 weeks ago date.php 2 weeks ago datetime.php 2 weeks ago email.php 2 weeks ago link.php 2 weeks ago number.php 2 weeks ago oembed.php 2 weeks ago password.php 2 weeks ago phone.php 2 weeks ago radio.php 2 weeks ago select.php 2 weeks ago slider.php 2 weeks ago slug.php 2 weeks ago text.php 2 weeks ago textarea.php 2 weeks ago time.php 2 weeks ago tinymce.php 2 weeks ago website.php 2 weeks ago
select.php
113 lines
1 <?php
2
3 // Don't load directly.
4 if ( ! defined( 'ABSPATH' ) ) {
5 die( '-1' );
6 }
7
8 // phpcs:ignoreFile WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound
9
10 $attributes = array();
11 $attributes['tabindex'] = 2;
12
13 $pick_limit = (int) pods_v( $form_field_type . '_limit', $options, 0 );
14 $multiple = false;
15
16 if ( 'multi' === pods_v( $form_field_type . '_format_type', $options ) && 1 != $pick_limit ) {
17 $name .= '[]';
18 $attributes['multiple'] = 'multiple';
19 $multiple = true;
20 }
21
22 if ( ! is_array( $options['data'] ) && false !== $options['data'] && 0 < strlen( $options['data'] ) ) {
23 $options['data'] = implode( ',', $options['data'] );
24 } else {
25 $options['data'] = (array) pods_v( 'data', $options, [] );
26 }
27
28 $attributes = PodsForm::merge_attributes( $attributes, $name, $form_field_type, $options );
29
30 if ( (bool) pods_v( 'readonly', $options, false ) ) {
31 $attributes['readonly'] = 'READONLY';
32
33 $attributes['class'] .= ' pods-form-ui-read-only';
34 }
35
36 $selection_made = false;
37 ?>
38 <select<?php PodsForm::attributes( $attributes, $name, $form_field_type, $options ); ?>>
39 <?php
40 foreach ( $options['data'] as $option_value => $option_label ) {
41 if ( is_array( $option_label ) && isset( $option_label['label'] ) ) {
42 $option_label = $option_label['label'];
43 }
44
45 if ( is_array( $option_label ) ) {
46 ?>
47 <optgroup label="<?php echo esc_attr( $option_value ); ?>">
48 <?php
49 foreach ( $option_label as $sub_option_value => $sub_option_label ) {
50 if ( is_array( $sub_option_label ) ) {
51 if ( isset( $sub_option_label['label'] ) ) {
52 $sub_option_label = $sub_option_label['label'];
53 } else {
54 $sub_option_label = $sub_option_value;
55 }
56 }
57
58 $sub_option_label = (string) $sub_option_label;
59
60 $is_selected = false;
61 $options['selected'] = '';
62
63 if ( ! $selection_made && ( ( ! is_array( $value ) && (string) $sub_option_value === (string) $value ) || ( is_array( $value ) && ( in_array( $sub_option_value, $value ) || in_array( (string) $sub_option_value, $value ) ) ) ) ) {
64 $is_selected = true;
65 $options['selected'] = 'selected';
66
67 if ( ! $multiple ) {
68 $selection_made = true;
69 }
70 }
71
72 if ( is_array( $sub_option_value ) ) {
73 ?>
74 <option<?php PodsForm::attributes( $sub_option_value, $name, $form_field_type . '_option', $options ); ?>><?php echo esc_html( $sub_option_label ); ?></option>
75 <?php
76 } else {
77 ?>
78 <option value="<?php echo esc_attr( $sub_option_value ); ?>"<?php selected( $is_selected ); ?>><?php echo esc_html( $sub_option_label ); ?></option>
79 <?php
80 }
81 }//end foreach
82 ?>
83 </optgroup>
84 <?php
85 } else {
86 $option_label = (string) $option_label;
87
88 $is_selected = false;
89 $options['selected'] = '';
90
91 if ( ! $selection_made && ( ( ! is_array( $value ) && (string) $option_value === (string) $value ) || ( is_array( $value ) && ( in_array( $option_value, $value ) || in_array( (string) $option_value, $value ) ) ) ) ) {
92 $is_selected = true;
93 $options['selected'] = 'selected';
94
95 if ( ! $multiple ) {
96 $selection_made = true;
97 }
98 }
99
100 if ( is_array( $option_value ) ) {
101 ?>
102 <option<?php PodsForm::attributes( $option_value, $name, $form_field_type . '_option', $options ); ?>><?php echo esc_html( $option_label ); ?></option>
103 <?php
104 } else {
105 ?>
106 <option value="<?php echo esc_attr( $option_value ); ?>"<?php selected( $is_selected ); ?>><?php echo esc_html( $option_label ); ?></option>
107 <?php
108 }
109 }//end if
110 }//end foreach
111 ?>
112 </select>
113