PluginProbe
Leaflet Map / 3.4.5
Leaflet Map v3.4.5
3.4.7 3.4.6 trunk 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.11.5 2.12.0 2.13.0 2.14.0 2.15.0 2.16.0 2.16.1 2.16.2 2.17.0 2.17.1 2.17.2 2.17.3 2.18.0 2.19.0 2.19.1 All 49 releases
← All changes | class.plugin-option.php +48 -18 2.16.23.4.5 View file →
@@ -48,8 +48,17 @@
48 48 */
49 49 public $helptext = '';
50 50
51 51 /**
52 + * All properties that we will be setting
53 + */
54 + public $display_name = '';
55 + public $min = 0;
56 + public $max = 0;
57 + public $step = 0;
58 + public $placeholder = '';
59 +
60 + /**
52 61 * Instantiate class
53 62 *
54 63 * @param array $details A list of options
55 64 */
@@ -61,16 +70,20 @@
61 70 return;
62 71 }
63 72
64 73 $option_filter = array(
65 - 'display_name' => FILTER_SANITIZE_STRING,
66 - 'default' => null,
67 - 'type' => FILTER_SANITIZE_STRING,
74 + 'display_name' => FILTER_SANITIZE_FULL_SPECIAL_CHARS,
75 + 'default' => FILTER_DEFAULT,
76 + 'type' => FILTER_SANITIZE_FULL_SPECIAL_CHARS,
77 + 'min' => FILTER_DEFAULT,
78 + 'max' => FILTER_DEFAULT,
79 + 'step' => FILTER_DEFAULT,
80 + 'placeholder' => FILTER_SANITIZE_FULL_SPECIAL_CHARS,
68 81 'options' => array(
69 - 'filter' => FILTER_SANITIZE_STRING,
82 + 'filter' => FILTER_SANITIZE_FULL_SPECIAL_CHARS,
70 83 'flags' => FILTER_FORCE_ARRAY
71 84 ),
72 - 'helptext' => null
85 + 'helptext' => FILTER_DEFAULT
73 86 );
74 87
75 88 // get matching keys only
76 89 $details = array_intersect_key($details, $option_filter);
@@ -97,23 +110,40 @@
97 110 case 'text':
98 111 ?>
99 112 <input
100 113 class="full-width"
101 - name="<?php echo $name; ?>"
102 - type="text"
103 - id="<?php echo $name; ?>"
104 - value="<?php echo htmlspecialchars($value); ?>"
114 + name="<?php echo esc_attr( $name ); ?>"
115 + type="<?php echo esc_attr( $this->type ); ?>"
116 + id="<?php echo esc_attr( $name ); ?>"
117 + placeholder="<?php echo esc_attr( $this->placeholder ); ?>"
118 + value="<?php echo esc_attr( $value ); ?>"
105 119 />
106 120 <?php
107 121 break;
122 +
123 +
124 + case 'number':
125 + ?>
126 + <input
127 + class="full-width"
128 + min="<?php echo isset($this->min) ? esc_attr( $this->min ) : ""; ?>"
129 + max="<?php echo isset($this->max) ? esc_attr( $this->max ) : ""; ?>"
130 + step="<?php echo isset($this->step) ? esc_attr( $this->step ) : "any"; ?>"
131 + name="<?php echo esc_attr( $name ); ?>"
132 + type="<?php echo esc_attr( $this->type ); ?>"
133 + id="<?php echo esc_attr( $name ); ?>"
134 + value="<?php echo esc_attr( $value ); ?>"
135 + />
136 + <?php
137 + break;
108 138
109 139 case 'textarea':
110 140 ?>
111 141
112 142 <textarea
113 - id="<?php echo $name; ?>"
143 + id="<?php echo esc_attr( $name ); ?>"
114 144 class="full-width"
115 - name="<?php echo $name; ?>"><?php echo htmlspecialchars($value); ?></textarea>
145 + name="<?php echo esc_attr( $name ); ?>"><?php echo esc_attr( $value ); ?></textarea>
116 146
117 147 <?php
118 148 break;
119 149
@@ -121,11 +151,11 @@
121 151 ?>
122 152
123 153 <input
124 154 class="checkbox"
125 - name="<?php echo $name; ?>"
155 + name="<?php echo esc_attr( $name ); ?>"
126 156 type="checkbox"
127 - id="<?php echo $name; ?>"
157 + id="<?php echo esc_attr( $name ); ?>"
128 158 <?php if ($value) echo ' checked="checked"' ?>
129 159 />
130 160 <?php
131 161 break;
@@ -131,15 +161,15 @@
131 161 break;
132 162
133 163 case 'select':
134 164 ?>
135 - <select id="<?php echo $name; ?>"
136 - name="<?php echo $name; ?>"
165 + <select id="<?php echo esc_attr( $name ); ?>"
166 + name="<?php echo esc_attr( $name ); ?>"
137 167 class="full-width">
138 168 <?php
139 169 foreach ($this->options as $o => $n) {
140 170 ?>
141 - <option value="<?php echo $o; ?>"<?php if ($value == $o) echo ' selected' ?>>
171 + <option value="<?php echo esc_attr( $o ); ?>"<?php if ($value == $o) echo ' selected' ?>>
142 172 <?php echo $n; ?>
143 173 </option>
144 174 <?php
145 175 }
@@ -148,10 +178,10 @@
148 178 <?php
149 179 break;
150 180 default:
151 181 ?>
152 - <div>No option type chosen for <?php echo $name; ?> with value <?php echo htmlspecialchars($value); ?></div>
182 + <div>No option type chosen for <?php echo esc_html( $name ); ?> with value <?php echo esc_html($value); ?></div>
153 183 <?php
154 184 break;
155 185 }
156 186 }
157 -}
187 +}