Version Description
- Fixed: WordPress 5.3.1 compatibility. Also added the new @redux account to the plugin.
Download this release
Release Info
Developer | dovyp |
Plugin | Redux Framework |
Version | 3.6.16 |
Comparing to | |
See all releases |
Code changes from version 3.6.15 to 3.6.16
- .gitattributes +13 -0
- .jshintrc +1 -1
- CODE_OF_CONDUCT.md +46 -0
- README.md +13 -1
- ReduxCore/framework.php +1 -1
- ReduxCore/inc/fields/spinner/vendor/spinner_custom.js +362 -379
- class.redux-plugin.php +1 -1
- composer.json +1 -1
- package.json +2 -2
- readme.txt +26 -23
- redux-framework.php +1 -1
- sample/sample-config.php +1 -1
.gitattributes
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Directories
|
2 |
+
/.wordpress-org export-ignore
|
3 |
+
/.github export-ignore
|
4 |
+
/.tx export-ignore
|
5 |
+
/bin export-ignore
|
6 |
+
/codestyles export-ignore
|
7 |
+
|
8 |
+
# Files
|
9 |
+
/.gitattributes export-ignore
|
10 |
+
/.gitignore export-ignore
|
11 |
+
/.travis.yml export-ignore
|
12 |
+
/ISSUE_TEMPLATE export-ignore
|
13 |
+
/CONTRIBUTING.md export-ignore
|
.jshintrc
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
"immed": true,
|
4 |
"noarg": true,
|
5 |
"onevar": true,
|
6 |
-
|
7 |
"browser": true,
|
8 |
|
9 |
"globals": {
|
3 |
"immed": true,
|
4 |
"noarg": true,
|
5 |
"onevar": true,
|
6 |
+
"validthis": true,
|
7 |
"browser": true,
|
8 |
|
9 |
"globals": {
|
CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Contributor Covenant Code of Conduct
|
2 |
+
|
3 |
+
## Our Pledge
|
4 |
+
|
5 |
+
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
6 |
+
|
7 |
+
## Our Standards
|
8 |
+
|
9 |
+
Examples of behavior that contributes to creating a positive environment include:
|
10 |
+
|
11 |
+
* Using welcoming and inclusive language
|
12 |
+
* Being respectful of differing viewpoints and experiences
|
13 |
+
* Gracefully accepting constructive criticism
|
14 |
+
* Focusing on what is best for the community
|
15 |
+
* Showing empathy towards other community members
|
16 |
+
|
17 |
+
Examples of unacceptable behavior by participants include:
|
18 |
+
|
19 |
+
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
20 |
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
21 |
+
* Public or private harassment
|
22 |
+
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
23 |
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
24 |
+
|
25 |
+
## Our Responsibilities
|
26 |
+
|
27 |
+
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
28 |
+
|
29 |
+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
30 |
+
|
31 |
+
## Scope
|
32 |
+
|
33 |
+
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
34 |
+
|
35 |
+
## Enforcement
|
36 |
+
|
37 |
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at support@redux.io. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
38 |
+
|
39 |
+
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
40 |
+
|
41 |
+
## Attribution
|
42 |
+
|
43 |
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
|
44 |
+
|
45 |
+
[homepage]: http://contributor-covenant.org
|
46 |
+
[version]: http://contributor-covenant.org/version/1/4/
|
README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
## Redux Options Framework [![WordPress plugin](https://img.shields.io/wordpress/plugin/v/redux-framework.svg?maxAge=
|
2 |
|
3 |
[Get it in the WordPress plugin repo](https://wordpress.org/plugins/redux-framework/)
|
4 |
|
@@ -8,6 +8,18 @@
|
|
8 |
|
9 |
WordPress options framework which uses the [WordPress Settings API](http://codex.wordpress.org/Settings_API "WordPress Settings API"), Custom Error/Validation Handling, Custom Field/Validation Types, and import/export functionality.
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
## Posting Guidelines for issues and questions ##
|
12 |
When using our Issue Tracker, you may ask questions where you may be a bit lost or need help understanding the documentation. If, however, you find a bug we require you to read and provide the information contained in our [Contributing Guidelines](https://github.com/ReduxFramework/redux-framework/blob/master/CONTRIBUTING.md). If you do not provide this information, we will request it before we can support you.
|
13 |
|
1 |
+
## Redux Options Framework [![WordPress plugin](https://img.shields.io/wordpress/plugin/v/redux-framework.svg?maxAge=3600)](https://wordpress.org/plugins/redux-framework) [![WordPress](https://img.shields.io/wordpress/v/redux-framework.svg?maxAge=3600)](https://wordpress.org/download/) [![Build Status](https://travis-ci.org/reduxframework/redux-framework.png?branch=master)](https://travis-ci.org/reduxframework/redux-framework) [![Slack](https://redux-slackin.herokuapp.com/badge.svg)](https://redux-slackin.herokuapp.com)
|
2 |
|
3 |
[Get it in the WordPress plugin repo](https://wordpress.org/plugins/redux-framework/)
|
4 |
|
8 |
|
9 |
WordPress options framework which uses the [WordPress Settings API](http://codex.wordpress.org/Settings_API "WordPress Settings API"), Custom Error/Validation Handling, Custom Field/Validation Types, and import/export functionality.
|
10 |
|
11 |
+
## REDUX v4 BETA NOW PUBLIC AND READY FOR TESTING!
|
12 |
+
|
13 |
+
The public beta for Redux v4 is now available! You can find it here: https://github.com/reduxframework/redux-framework-4
|
14 |
+
|
15 |
+
A couple of things.
|
16 |
+
|
17 |
+
1. Please review carefully the READ ME text posted on the repository. That information is very important and may answer many questions ahead of time.
|
18 |
+
|
19 |
+
2. Please do NOT post issues about Redux v4 in THIS repo. Please use the issue tracker via the link above.
|
20 |
+
|
21 |
+
Have fun!
|
22 |
+
|
23 |
## Posting Guidelines for issues and questions ##
|
24 |
When using our Issue Tracker, you may ask questions where you may be a bit lost or need help understanding the documentation. If, however, you find a bug we require you to read and provide the information contained in our [Contributing Guidelines](https://github.com/ReduxFramework/redux-framework/blob/master/CONTRIBUTING.md). If you do not provide this information, we will request it before we can support you.
|
25 |
|
ReduxCore/framework.php
CHANGED
@@ -69,7 +69,7 @@
|
|
69 |
// Please update the build number with each push, no matter how small.
|
70 |
// This will make for easier support when we ask users what version they are using.
|
71 |
|
72 |
-
public static $_version = '3.6.
|
73 |
public static $_dir;
|
74 |
public static $_url;
|
75 |
public static $_upload_dir;
|
69 |
// Please update the build number with each push, no matter how small.
|
70 |
// This will make for easier support when we ask users what version they are using.
|
71 |
|
72 |
+
public static $_version = '3.6.16';
|
73 |
public static $_dir;
|
74 |
public static $_url;
|
75 |
public static $_upload_dir;
|
ReduxCore/inc/fields/spinner/vendor/spinner_custom.js
CHANGED
@@ -1,389 +1,372 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
(function( a, b ) {
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
case l:
|
216 |
-
E.removeClass( c );
|
217 |
-
p._stopSpin();
|
218 |
-
J = false;
|
219 |
-
return false
|
220 |
-
}
|
221 |
-
}
|
222 |
-
).bind(
|
223 |
-
"keypress" + q, function( a ) {
|
224 |
-
if ( O( a.keyCode, a.charCode ) )return false
|
225 |
-
}
|
226 |
-
).bind(
|
227 |
-
"change" + q, function() {
|
228 |
-
p._change()
|
229 |
-
}
|
230 |
-
).bind(
|
231 |
-
"focus" + q, function() {
|
232 |
-
function a() {
|
233 |
-
p.element.select()
|
234 |
-
}
|
235 |
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
if ( !c.options.disabled && c.focused && s === c ) {
|
293 |
-
c._change();
|
294 |
-
c._doSpin( ((b.wheelDelta || -b.detail) > 0 ? 1 : -1) * c.options.step );
|
295 |
-
return false
|
296 |
-
}
|
297 |
-
}, _setTimer: function( a, b, c ) {
|
298 |
-
function e() {
|
299 |
-
d._spin( b, c )
|
300 |
-
}
|
301 |
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
})( jQuery )
|
1 |
+
jQuery.uaMatch = function( ua ) {
|
2 |
+
ua = ua.toLowerCase();
|
3 |
+
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
|
4 |
+
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
|
5 |
+
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
|
6 |
+
/(msie) ([\w.]+)/.exec( ua ) ||
|
7 |
+
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || [];
|
8 |
+
return {
|
9 |
+
browser: match[ 1 ] || "",
|
10 |
+
version: match[ 2 ] || "0"
|
11 |
+
};
|
12 |
+
};
|
13 |
+
|
14 |
(function( a, b ) {
|
15 |
+
var c = 'ui-state-active', d = 'ui-state-hover', e = 'ui-state-disabled', f = a.ui.keyCode, g = f.UP, h = f.DOWN,
|
16 |
+
i = f.RIGHT, j = f.LEFT, k = f.PAGE_UP, l = f.PAGE_DOWN, m = f.HOME, n = f.END, o = a.uaMatch.msie,
|
17 |
+
p = a.uaMatch.mozilla ? 'DOMMouseScroll' : 'mousewheel', q = '.uispinner',
|
18 |
+
r = [g, h, i, j, k, l, m, n, f.BACKSPACE, f.DELETE, f.TAB], s;
|
19 |
+
a.widget( 'ui.spinner', {
|
20 |
+
options: {
|
21 |
+
min: null,
|
22 |
+
max: null,
|
23 |
+
allowNull: false,
|
24 |
+
group: '',
|
25 |
+
point: '.',
|
26 |
+
prefix: '',
|
27 |
+
suffix: '',
|
28 |
+
places: null,
|
29 |
+
defaultStep: 1,
|
30 |
+
largeStep: 10,
|
31 |
+
mouseWheel: true,
|
32 |
+
increment: 'slow',
|
33 |
+
className: null,
|
34 |
+
showOn: 'always',
|
35 |
+
width: 95,
|
36 |
+
upIconClass: 'ui-icon-triangle-1-n',
|
37 |
+
downIconClass: 'ui-icon-triangle-1-s',
|
38 |
+
format: function( a, b ) {
|
39 |
+
var c = this, d = /(\d+)(\d{3})/, e = (isNaN( a ) ? 0 : Math.abs( a )).toFixed( b ) + '';
|
40 |
+
for ( e = e.replace( '.', c.point ); d.test( e ) && c.group; e = e.replace( d, '$1' + c.group + '$2' ) ) {
|
41 |
+
}
|
42 |
+
return (a < 0 ? '-' : '') + c.prefix + e + c.suffix;
|
43 |
+
},
|
44 |
+
parse: function( a ) {
|
45 |
+
var b = this;
|
46 |
+
if ( b.group == '.' ) a = a.replace( '.', '' );
|
47 |
+
if ( b.point != '.' ) a = a.replace( b.point, '.' );
|
48 |
+
return parseFloat( a.replace( /[^0-9\-\.]/g, '' ) );
|
49 |
+
}
|
50 |
+
}, _create: function() {
|
51 |
+
var a = this, b = a.element, c = b.attr( 'type' );
|
52 |
+
if ( ! b.is( 'input' ) || c != 'text' && c != 'number' ) {
|
53 |
+
console.error( 'Invalid target for ui.spinner' );
|
54 |
+
return;
|
55 |
+
}
|
56 |
+
a._procOptions( true );
|
57 |
+
a._createButtons( b );
|
58 |
+
if ( ! b.is( ':enabled' ) ) a.disable();
|
59 |
+
}, _createButtons: function( b ) {
|
60 |
+
function R() {
|
61 |
+
if ( L ) {
|
62 |
+
a( this ).removeClass( c );
|
63 |
+
p._stopSpin();
|
64 |
+
L = false;
|
65 |
+
}
|
66 |
+
return false;
|
67 |
+
}
|
68 |
|
69 |
+
function Q() {
|
70 |
+
if ( ! t.disabled ) {
|
71 |
+
var b = p.element[0], d = this === C ? 1 : - 1;
|
72 |
+
b.focus();
|
73 |
+
b.select();
|
74 |
+
a( this ).addClass( c );
|
75 |
+
L = true;
|
76 |
+
p._startSpin( d );
|
77 |
+
}
|
78 |
+
return false;
|
79 |
+
}
|
80 |
|
81 |
+
function P( a ) {
|
82 |
+
function b() {
|
83 |
+
G = 0;
|
84 |
+
a();
|
85 |
+
}
|
86 |
|
87 |
+
if ( G ) {
|
88 |
+
if ( a === H ) return;
|
89 |
+
clearTimeout( G );
|
90 |
+
}
|
91 |
+
H = a;
|
92 |
+
G = setTimeout( b, 100 );
|
93 |
+
}
|
94 |
|
95 |
+
function O( a, b ) {
|
96 |
+
if ( K ) return false;
|
97 |
+
var c = String.fromCharCode( b || a ), d = p.options;
|
98 |
+
if ( c >= '0' && c <= '9' || c == '-' ) return false;
|
99 |
+
if ( p.places > 0 && c == d.point || c == d.group ) return false;
|
100 |
+
return true;
|
101 |
+
}
|
102 |
|
103 |
+
function N( a ) {
|
104 |
+
for ( var b = 0; b < r.length; b ++ ) if ( r[b] == a ) return true;
|
105 |
+
return false;
|
106 |
+
}
|
107 |
|
108 |
+
function e( a ) {
|
109 |
+
return a == 'auto' ? 0 : parseInt( a );
|
110 |
+
}
|
111 |
|
112 |
+
var p = this,
|
113 |
+
t = p.options,
|
114 |
+
u = t.className,
|
115 |
+
v = t.width,
|
116 |
+
w = t.showOn,
|
117 |
+
y = b.outerHeight(),
|
118 |
+
z = p.oMargin = e( b.css( 'margin-right' ) ),
|
119 |
+
A = p.wrapper = b.wrap( '<span class="spinner-wrpr" />' ).css( {
|
120 |
+
width: (p.oWidth = b.outerWidth()) - v,
|
121 |
+
marginRight: '30px',
|
122 |
+
marginLeft: '30px',
|
123 |
+
textAlign: 'center',
|
124 |
+
'float': 'none',
|
125 |
+
marginTop: 0
|
126 |
+
} ).after( '<span class="ui-spinner ui-widget"></span>' ).next(),
|
127 |
+
B = p.btnContainer = a( '<div class="ui-spinner-buttons">' + '<div class="ui-spinner-up ui-spinner-button ui-state-default ui-corner-tr"><span class="ui-icon ' + t.upIconClass + '"> </span></div>' + '<div class="ui-spinner-down ui-spinner-button ui-state-default ui-corner-br"><span class="ui-icon ' + t.downIconClass + '"> </span></div>' + '</div>' ),
|
128 |
+
C, D, E, F, G, H, I, J, K, L, M = b[0].dir == 'rtl';
|
129 |
+
if ( u ) A.addClass( u );
|
130 |
+
A.append( B.css( {height: y, left: 0, top: 0} ) );
|
131 |
+
E = p.buttons = B.find( '.ui-spinner-button' );
|
132 |
+
E.css( {width: '30px', height: y - (0)} );
|
133 |
+
E.eq( 0 ).css( {right: '0'} );
|
134 |
+
E.eq( 1 ).css( {left: '0'} );
|
135 |
+
C = E[0];
|
136 |
+
D = E[1];
|
137 |
+
F = E.find( '.ui-icon' );
|
138 |
+
B.width( '105px' );
|
139 |
+
if ( w != 'always' ) B.css( 'opacity', 0 );
|
140 |
+
if ( w == 'hover' || w == 'both' ) E.add( b ).bind( 'mouseenter' + q, function() {
|
141 |
+
P( function() {
|
142 |
+
I = true;
|
143 |
+
if ( ! p.focused || w == 'hover' ) p.showButtons();
|
144 |
+
} );
|
145 |
+
} ).bind( 'mouseleave' + q, function S() {
|
146 |
+
P( function() {
|
147 |
+
I = false;
|
148 |
+
if ( ! p.focused || w == 'hover' ) p.hideButtons();
|
149 |
+
} );
|
150 |
+
} );
|
151 |
+
E.hover( function() {
|
152 |
+
p.buttons.removeClass( d );
|
153 |
+
if ( ! t.disabled ) a( this ).addClass( d );
|
154 |
+
}, function() {
|
155 |
+
a( this ).removeClass( d );
|
156 |
+
} ).mousedown( Q ).mouseup( R ).mouseout( R );
|
157 |
+
if ( o ) E.dblclick( function() {
|
158 |
+
if ( ! t.disabled ) {
|
159 |
+
p._change();
|
160 |
+
p._doSpin( (this === C ? 1 : - 1) * t.step );
|
161 |
+
}
|
162 |
+
return false;
|
163 |
+
} ).bind( 'selectstart', function() {
|
164 |
+
return false;
|
165 |
+
} );
|
166 |
+
b.bind( 'keydown' + q, function( b ) {
|
167 |
+
var d, e, f, o = b.keyCode;
|
168 |
+
if ( b.ctrl || b.alt ) return true;
|
169 |
+
if ( N( o ) ) K = true;
|
170 |
+
if ( J ) return false;
|
171 |
+
switch ( o ) {
|
172 |
+
case g:
|
173 |
+
case k:
|
174 |
+
d = 1;
|
175 |
+
e = o == k;
|
176 |
+
break;
|
177 |
+
case h:
|
178 |
+
case l:
|
179 |
+
d = - 1;
|
180 |
+
e = o == l;
|
181 |
+
break;
|
182 |
+
case i:
|
183 |
+
case j:
|
184 |
+
d = o == i ^ M ? 1 : - 1;
|
185 |
+
break;
|
186 |
+
case m:
|
187 |
+
f = p.options.min;
|
188 |
+
if ( f != null ) p._setValue( f );
|
189 |
+
return false;
|
190 |
+
case n:
|
191 |
+
f = p.options.max;
|
192 |
+
f = p.options.max;
|
193 |
+
if ( f != null ) p._setValue( f );
|
194 |
+
return false;
|
195 |
+
}
|
196 |
+
if ( d ) {
|
197 |
+
if ( ! J && ! t.disabled ) {
|
198 |
+
keyDir = d;
|
199 |
+
a( d > 0 ? C : D ).addClass( c );
|
200 |
+
J = true;
|
201 |
+
p._startSpin( d, e );
|
202 |
+
}
|
203 |
+
return false;
|
204 |
+
}
|
205 |
+
} ).bind( 'keyup' + q, function( a ) {
|
206 |
+
if ( a.ctrl || a.alt ) return true;
|
207 |
+
if ( N( f ) ) K = false;
|
208 |
+
switch ( a.keyCode ) {
|
209 |
+
case g:
|
210 |
+
case i:
|
211 |
+
case k:
|
212 |
+
case h:
|
213 |
+
case j:
|
214 |
+
case l:
|
215 |
+
E.removeClass( c );
|
216 |
+
p._stopSpin();
|
217 |
+
J = false;
|
218 |
+
return false;
|
219 |
+
}
|
220 |
+
} ).bind( 'keypress' + q, function( a ) {
|
221 |
+
if ( O( a.keyCode, a.charCode ) ) return false;
|
222 |
+
} ).bind( 'change' + q, function() {
|
223 |
+
p._change();
|
224 |
+
} ).bind( 'focus' + q, function() {
|
225 |
+
function a() {
|
226 |
+
p.element.select();
|
227 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
|
229 |
+
o ? a() : setTimeout( a, 0 );
|
230 |
+
p.focused = true;
|
231 |
+
s = p;
|
232 |
+
if ( ! I && (w == 'focus' || w == 'both') ) p.showButtons();
|
233 |
+
} ).bind( 'blur' + q, function() {
|
234 |
+
p.focused = false;
|
235 |
+
if ( ! I && (w == 'focus' || w == 'both') ) p.hideButtons();
|
236 |
+
} );
|
237 |
+
}, _procOptions: function( a ) {
|
238 |
+
var b = this, c = b.element, d = b.options, e = d.min, f = d.max, g = d.step, h = d.places, i = - 1, j;
|
239 |
+
if ( d.increment == 'slow' ) d.increment = [{count: 1, mult: 1, delay: 250}, {
|
240 |
+
count: 3, mult: 1, delay: 100
|
241 |
+
}, {count: 0, mult: 1, delay: 50}]; else if ( d.increment == 'fast' ) d.increment = [{
|
242 |
+
count: 1, mult: 1, delay: 250
|
243 |
+
}, {count: 19, mult: 1, delay: 100}, {count: 80, mult: 1, delay: 20}, {
|
244 |
+
count: 100, mult: 10, delay: 20
|
245 |
+
}, {count: 0, mult: 100, delay: 20}];
|
246 |
+
if ( e == null && (j = c.attr( 'min' )) != null ) e = parseFloat( j );
|
247 |
+
if ( f == null && (j = c.attr( 'max' )) != null ) f = parseFloat( j );
|
248 |
+
if ( ! g && (j = c.attr( 'step' )) != null ) if ( j != 'any' ) {
|
249 |
+
g = parseFloat( j );
|
250 |
+
d.largeStep *= g;
|
251 |
+
}
|
252 |
+
d.step = g = g || d.defaultStep;
|
253 |
+
if ( h == null && (j = g + '').indexOf( '.' ) != - 1 ) h = j.length - j.indexOf( '.' ) - 1;
|
254 |
+
b.places = h;
|
255 |
+
if ( f != null && e != null ) {
|
256 |
+
if ( e > f ) e = f;
|
257 |
+
i = Math.max( Math.max( i, d.format( f, h, c ).length ), d.format( e, h, c ).length );
|
258 |
+
}
|
259 |
+
if ( a ) b.inputMaxLength = c[0].maxLength;
|
260 |
+
j = b.inputMaxLength;
|
261 |
+
if ( j > 0 ) {
|
262 |
+
i = i > 0 ? Math.min( j, i ) : j;
|
263 |
+
j = Math.pow( 10, i ) - 1;
|
264 |
+
if ( f == null || f > j ) f = j;
|
265 |
+
j = - (j + 1) / 10 + 1;
|
266 |
+
if ( e == null || e < j ) e = j;
|
267 |
+
}
|
268 |
+
if ( i > 0 ) c.attr( 'maxlength', i );
|
269 |
+
d.min = e;
|
270 |
+
d.max = f;
|
271 |
+
b._change();
|
272 |
+
c.unbind( p + q );
|
273 |
+
if ( d.mouseWheel ) c.bind( p + q, b._mouseWheel );
|
274 |
+
}, _mouseWheel: function( b ) {
|
275 |
+
var c = a.data( this, 'spinner' );
|
276 |
+
if ( ! c.options.disabled && c.focused && s === c ) {
|
277 |
+
c._change();
|
278 |
+
c._doSpin( ((b.wheelDelta || - b.detail) > 0 ? 1 : - 1) * c.options.step );
|
279 |
+
return false;
|
280 |
+
}
|
281 |
+
}, _setTimer: function( a, b, c ) {
|
282 |
+
function e() {
|
283 |
+
d._spin( b, c );
|
284 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
|
286 |
+
var d = this;
|
287 |
+
d._stopSpin();
|
288 |
+
d.timer = setInterval( e, a );
|
289 |
+
}, _stopSpin: function() {
|
290 |
+
if ( this.timer ) {
|
291 |
+
clearInterval( this.timer );
|
292 |
+
this.timer = 0;
|
293 |
+
}
|
294 |
+
}, _startSpin: function( a, b ) {
|
295 |
+
var c = this, d = c.options, e = d.increment;
|
296 |
+
c._change();
|
297 |
+
c._doSpin( a * (b ? c.options.largeStep : c.options.step) );
|
298 |
+
if ( e && e.length > 0 ) {
|
299 |
+
c.counter = 0;
|
300 |
+
c.incCounter = 0;
|
301 |
+
c._setTimer( e[0].delay, a, b );
|
302 |
+
}
|
303 |
+
}, _spin: function( a, b ) {
|
304 |
+
var c = this, d = c.options.increment, e = d[c.incCounter];
|
305 |
+
c._doSpin( a * e.mult * (b ? c.options.largeStep : c.options.step) );
|
306 |
+
c.counter ++;
|
307 |
+
if ( c.counter > e.count && c.incCounter < d.length - 1 ) {
|
308 |
+
c.counter = 0;
|
309 |
+
e = d[++ c.incCounter];
|
310 |
+
c._setTimer( e.delay, a, b );
|
311 |
+
}
|
312 |
+
}, _doSpin: function( a ) {
|
313 |
+
var b = this, c = b.curvalue;
|
314 |
+
if ( c == null ) c = (a > 0 ? b.options.min : b.options.max) || 0;
|
315 |
+
b._setValue( c + a );
|
316 |
+
}, _parseValue: function() {
|
317 |
+
var a = this.element.val();
|
318 |
+
return a ? this.options.parse( a, this.element ) : null;
|
319 |
+
}, _validate: function( a ) {
|
320 |
+
var b = this.options, c = b.min, d = b.max;
|
321 |
+
if ( a == null && ! b.allowNull ) a = this.curvalue != null ? this.curvalue : c || d || 0;
|
322 |
+
if ( d != null && a > d ) return d; else if ( c != null && a < c ) return c; else return a;
|
323 |
+
}, _change: function() {
|
324 |
+
var a = this, b = a._parseValue(), c = a.options.min, d = a.options.max;
|
325 |
+
if ( ! a.selfChange ) {
|
326 |
+
if ( isNaN( b ) ) b = a.curvalue;
|
327 |
+
a._setValue( b, true );
|
328 |
+
}
|
329 |
+
}, _setOption: function( b, c ) {
|
330 |
+
a.Widget.prototype._setOption.call( this, b, c );
|
331 |
+
this._procOptions();
|
332 |
+
}, increment: function() {
|
333 |
+
this._doSpin( this.options.step );
|
334 |
+
}, decrement: function() {
|
335 |
+
this._doSpin( - this.options.step );
|
336 |
+
}, showButtons: function( a ) {
|
337 |
+
var b = this.btnContainer.stop();
|
338 |
+
if ( a ) b.css( 'opacity', 1 ); else b.fadeTo( 'fast', 1 );
|
339 |
+
}, hideButtons: function( a ) {
|
340 |
+
var b = this.btnContainer.stop();
|
341 |
+
if ( a ) b.css( 'opacity', 0 ); else b.fadeTo( 'fast', 0 );
|
342 |
+
this.buttons.removeClass( d );
|
343 |
+
}, _setValue: function( a, b ) {
|
344 |
+
var c = this;
|
345 |
+
c.curvalue = a = c._validate( a );
|
346 |
+
c.element.val( a != null ? c.options.format( a, c.places, c.element ) : '' );
|
347 |
+
if ( ! b ) {
|
348 |
+
c.selfChange = true;
|
349 |
+
c.element.change();
|
350 |
+
c.selfChange = false;
|
351 |
+
}
|
352 |
+
}, value: function( a ) {
|
353 |
+
if ( arguments.length ) {
|
354 |
+
this._setValue( a );
|
355 |
+
return this.element;
|
356 |
+
}
|
357 |
+
return this.curvalue;
|
358 |
+
}, enable: function() {
|
359 |
+
this.buttons.removeClass( e );
|
360 |
+
this.element[0].disabled = false;
|
361 |
+
a.Widget.prototype.enable.call( this );
|
362 |
+
}, disable: function() {
|
363 |
+
this.buttons.addClass( e ).removeClass( d );
|
364 |
+
this.element[0].disabled = true;
|
365 |
+
a.Widget.prototype.disable.call( this );
|
366 |
+
}, destroy: function( b ) {
|
367 |
+
this.wrapper.remove();
|
368 |
+
this.element.unbind( q ).css( {width: this.oWidth, marginRight: this.oMargin} );
|
369 |
+
a.Widget.prototype.destroy.call( this );
|
370 |
+
}
|
371 |
+
} );
|
372 |
+
})( jQuery );
|
|
class.redux-plugin.php
CHANGED
@@ -26,7 +26,7 @@
|
|
26 |
* @since 3.0.0
|
27 |
*/
|
28 |
|
29 |
-
const VERSION = '3.6.
|
30 |
|
31 |
/**
|
32 |
* @access protected
|
26 |
* @since 3.0.0
|
27 |
*/
|
28 |
|
29 |
+
const VERSION = '3.6.16';
|
30 |
|
31 |
/**
|
32 |
* @access protected
|
composer.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
"name": "redux-framework/redux-framework",
|
3 |
-
"version": "3.6.
|
4 |
"authors": [
|
5 |
{
|
6 |
"name": "Team Redux"
|
1 |
{
|
2 |
"name": "redux-framework/redux-framework",
|
3 |
+
"version": "3.6.16",
|
4 |
"authors": [
|
5 |
{
|
6 |
"name": "Team Redux"
|
package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
"name": "redux-framework",
|
3 |
-
"version": "3.6.
|
4 |
"title": "ReduxFramework",
|
5 |
"description": "Redux is a simple, truly extensible options framework for WordPress themes and plugins.",
|
6 |
"main": "Gruntfile.js",
|
@@ -36,7 +36,7 @@
|
|
36 |
"grunt-scss-lint": "^0.5.0",
|
37 |
"grunt-shell": "^2.1.0",
|
38 |
"grunt-wp-i18n": "^1.0.2",
|
39 |
-
"lodash": "^4.17.
|
40 |
"minimatch": "^3.0.4",
|
41 |
"recess": "^1.1.9",
|
42 |
"shelljs": "^0.8.2"
|
1 |
{
|
2 |
"name": "redux-framework",
|
3 |
+
"version": "3.6.16",
|
4 |
"title": "ReduxFramework",
|
5 |
"description": "Redux is a simple, truly extensible options framework for WordPress themes and plugins.",
|
6 |
"main": "Gruntfile.js",
|
36 |
"grunt-scss-lint": "^0.5.0",
|
37 |
"grunt-shell": "^2.1.0",
|
38 |
"grunt-wp-i18n": "^1.0.2",
|
39 |
+
"lodash": "^4.17.13",
|
40 |
"minimatch": "^3.0.4",
|
41 |
"recess": "^1.1.9",
|
42 |
"shelljs": "^0.8.2"
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Redux Framework ===
|
2 |
-
Contributors: dovyp,
|
3 |
-
Donate link:
|
4 |
Tags: admin, admin interface, options, theme options, plugin options, options framework, settings, web fonts, google fonts
|
5 |
Requires at least: 3.5.1
|
6 |
-
Tested up to: 5.
|
7 |
-
Stable tag: 3.6.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -114,29 +114,32 @@ That's because the real FAQ section is on our site! Please visit [http://docs.re
|
|
114 |
1. This is the demo mode of Redux Framework. Activate it and you will find a fully-functional admin panel that you can play with. On the Plugins page, beneath the description and an activated Redux Framework, you will find a Demo Mode link. Click that link to activate or deactivate the sample-config file Redux ships with. Don't take our word for it, check out our online demo and try Redux without installing a thing! [**http://demo.reduxframework.com/wp-admin/**](http://demo.reduxframework.com/wp-admin/)
|
115 |
|
116 |
== Changelog ==
|
117 |
-
|
|
|
|
|
|
|
118 |
* Fixed: Redux API setSections would hang up when several sections with no ID share the same title.
|
119 |
|
120 |
-
|
121 |
* Fixed: #3583: Import failing when max_input_vars exceeded. Function moved to ajax_save to avoid this issue.
|
122 |
|
123 |
-
|
124 |
* Skipping. I'm superstitious! - kp
|
125 |
|
126 |
-
|
127 |
* Fixed: #3586: Database not saving properly in 'network' mode. Thanks @Tofandel.
|
128 |
* Fixed: #3584: Improved fox for #3580. Thanks @Enchiridion.
|
129 |
|
130 |
-
|
131 |
* Fixed: #3580 - 'tax_query' array in args for WordPress data arg throwing a string conversation error.
|
132 |
|
133 |
-
|
134 |
* Fixed: #3577 - Added isset to REMOTE_ADDR check to prevent error.
|
135 |
|
136 |
-
|
137 |
* Fixed: #3561, #3562 - Not all selectors in async typography were properly formed, causing them not to render properly on screen.
|
138 |
|
139 |
-
|
140 |
* Updated Google font update.
|
141 |
* Updated: #3447 - Updated RTL CSS. Thanks @Abolfazlrt.
|
142 |
* Fixed: Duplicate ID warnings.
|
@@ -149,11 +152,11 @@ That's because the real FAQ section is on our site! Please visit [http://docs.re
|
|
149 |
add_filter ("redux/extension/customizer/dir", $dir)
|
150 |
add_filter ("redux/extension/customizer/url", $url)
|
151 |
|
152 |
-
|
153 |
* Fixed: Bypassing a WP bug where the gallery field would show a spinner on first open with no selected images.
|
154 |
* Fixed: #3512 - Image select in tile mode not highlighting default.
|
155 |
|
156 |
-
|
157 |
* Fixed: Error in AJAX save due to incorrect object reference in redux.js.
|
158 |
* Fixed: Removed unused set_transient in welcome routine. It was causing slow queries.
|
159 |
* Updated: Google Font update.
|
@@ -162,7 +165,7 @@ That's because the real FAQ section is on our site! Please visit [http://docs.re
|
|
162 |
* Fixed: #3429 - Select2 Sortable needed jQuery Sortable dependency.
|
163 |
* Fixed: Admin noticies when multiple instances of Redux running not displaying per panel.
|
164 |
|
165 |
-
|
166 |
* Fixed: Filesystem path correction.
|
167 |
* Fixed: #3414: Incorrect classname causing an error on load, via the filesystem API.
|
168 |
* Fixed: #3413 - Restored old code allowing non array value for mode. This is for backward compatibility
|
@@ -175,7 +178,7 @@ That's because the real FAQ section is on our site! Please visit [http://docs.re
|
|
175 |
full path to default image.
|
176 |
* Updated: Google Fonts.
|
177 |
|
178 |
-
|
179 |
* Misspelled class name is system info compiler causing System Status to fail.
|
180 |
* #3359 - Responsive issue on option panel. Too much blank space on panel in smartphone mode.
|
181 |
* #2914, #3356 - Default image_select preset image not selected. This was originally by design. Now it's a thing.
|
@@ -185,7 +188,7 @@ That's because the real FAQ section is on our site! Please visit [http://docs.re
|
|
185 |
* Modified: #3321 - Font subset in typography not rendering on IE and Edge (Seriously? People still use those?)
|
186 |
* Modified: PHP7 compatibility.
|
187 |
|
188 |
-
|
189 |
* Modified: #3321 - Font subset in typography not rendering on IE and Edge (Seriously? People still use those?)
|
190 |
* Fixed: #3293 - Required not liking/hiding fields with switch default of 'false'.
|
191 |
* Fixed: Remove leftover var_dump from the core.
|
@@ -201,7 +204,7 @@ That's because the real FAQ section is on our site! Please visit [http://docs.re
|
|
201 |
* Fixed: Default data not saving correctly in sorter field.
|
202 |
|
203 |
|
204 |
-
|
205 |
* Modified: Changed gitignore file to exclude sublime text files.
|
206 |
* Fixed: #2966 - Translation bug. Identified and fixed by @iiandrade. Thanks!
|
207 |
* Modified: Generated all CSS map files to get rid of Chrome warnings.
|
@@ -217,19 +220,19 @@ That's because the real FAQ section is on our site! Please visit [http://docs.re
|
|
217 |
* Fixed: #3186 - Multi text field not removing single field when clicking "Remove".
|
218 |
* Fixed: #3180, #2641 - Button set multi mode saving incorrectly. Please check your code for a possible backward compatibility issue when using this mode. The foreach() function with an empty() check must now be used, versus individual array keys as only selected options are saved to the database.
|
219 |
|
220 |
-
|
221 |
* Modified: Change customizer hover styles to match WP 4.7.
|
222 |
* Modified: #3169 - print_r of wpdb queries in dev_mode removed.
|
223 |
* Fixed: #3159 - Support for SVG in gallery media selection.
|
224 |
* Fixed: #3158 - PHP warning for _validate_values function when extensions installed on PHP7.
|
225 |
|
226 |
-
|
227 |
* Fixed: #3105 - link_color output failing due to PHP error.
|
228 |
* Fixed: #3103 - WP 4.6 forces new default date format, breaking date validation.
|
229 |
* Fixed: Typography subsets error due to typo.
|
230 |
* Fixed: Extra dead files on WP.org repo. Bah SVN.
|
231 |
|
232 |
-
|
233 |
* Removed Empty PHP file from editor field.
|
234 |
* Modified: Replaced class primary function name in browser.php to __construct for PHP7 compatibility.
|
235 |
* Fixed: #3051 - Color_RBGA field RGBA value outputting zeros when color is left blank.
|
@@ -247,10 +250,10 @@ That's because the real FAQ section is on our site! Please visit [http://docs.re
|
|
247 |
* Fixed: Deleted old deleted files stuck in our WP.org SVN repo.
|
248 |
|
249 |
|
250 |
-
|
251 |
* Fixed Outdated customizer.min.js on wp.org causing customizer failure.
|
252 |
|
253 |
-
|
254 |
* Fixed Outdated redux.min.js on wp.org causing option panel failure.
|
255 |
* Fixed: #2936 - Border field outputting px with blank value.
|
256 |
* Fixed: Resolved Theme-Check php shortcode false notice.
|
1 |
=== Redux Framework ===
|
2 |
+
Contributors: dovyp, redux
|
3 |
+
Donate link: http://paypal.me/reduxframework
|
4 |
Tags: admin, admin interface, options, theme options, plugin options, options framework, settings, web fonts, google fonts
|
5 |
Requires at least: 3.5.1
|
6 |
+
Tested up to: 5.3.1
|
7 |
+
Stable tag: 3.6.16
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
114 |
1. This is the demo mode of Redux Framework. Activate it and you will find a fully-functional admin panel that you can play with. On the Plugins page, beneath the description and an activated Redux Framework, you will find a Demo Mode link. Click that link to activate or deactivate the sample-config file Redux ships with. Don't take our word for it, check out our online demo and try Redux without installing a thing! [**http://demo.reduxframework.com/wp-admin/**](http://demo.reduxframework.com/wp-admin/)
|
115 |
|
116 |
== Changelog ==
|
117 |
+
= 3.6.16 =
|
118 |
+
* Fixed: WordPress 5.3.1 compatibility. Also added the new @redux account to the plugin.
|
119 |
+
|
120 |
+
= 3.6.15 =
|
121 |
* Fixed: Redux API setSections would hang up when several sections with no ID share the same title.
|
122 |
|
123 |
+
= 3.6.14 =
|
124 |
* Fixed: #3583: Import failing when max_input_vars exceeded. Function moved to ajax_save to avoid this issue.
|
125 |
|
126 |
+
= 3.6.13 =
|
127 |
* Skipping. I'm superstitious! - kp
|
128 |
|
129 |
+
= 3.6.12.2 =
|
130 |
* Fixed: #3586: Database not saving properly in 'network' mode. Thanks @Tofandel.
|
131 |
* Fixed: #3584: Improved fox for #3580. Thanks @Enchiridion.
|
132 |
|
133 |
+
= 3.6.12.1 =
|
134 |
* Fixed: #3580 - 'tax_query' array in args for WordPress data arg throwing a string conversation error.
|
135 |
|
136 |
+
= 3.6.12 =
|
137 |
* Fixed: #3577 - Added isset to REMOTE_ADDR check to prevent error.
|
138 |
|
139 |
+
= 3.6.11 =
|
140 |
* Fixed: #3561, #3562 - Not all selectors in async typography were properly formed, causing them not to render properly on screen.
|
141 |
|
142 |
+
= 3.6.10 =
|
143 |
* Updated Google font update.
|
144 |
* Updated: #3447 - Updated RTL CSS. Thanks @Abolfazlrt.
|
145 |
* Fixed: Duplicate ID warnings.
|
152 |
add_filter ("redux/extension/customizer/dir", $dir)
|
153 |
add_filter ("redux/extension/customizer/url", $url)
|
154 |
|
155 |
+
= 3.6.9 =
|
156 |
* Fixed: Bypassing a WP bug where the gallery field would show a spinner on first open with no selected images.
|
157 |
* Fixed: #3512 - Image select in tile mode not highlighting default.
|
158 |
|
159 |
+
= 3.6.8 =
|
160 |
* Fixed: Error in AJAX save due to incorrect object reference in redux.js.
|
161 |
* Fixed: Removed unused set_transient in welcome routine. It was causing slow queries.
|
162 |
* Updated: Google Font update.
|
165 |
* Fixed: #3429 - Select2 Sortable needed jQuery Sortable dependency.
|
166 |
* Fixed: Admin noticies when multiple instances of Redux running not displaying per panel.
|
167 |
|
168 |
+
= 3.6.7.7 =
|
169 |
* Fixed: Filesystem path correction.
|
170 |
* Fixed: #3414: Incorrect classname causing an error on load, via the filesystem API.
|
171 |
* Fixed: #3413 - Restored old code allowing non array value for mode. This is for backward compatibility
|
178 |
full path to default image.
|
179 |
* Updated: Google Fonts.
|
180 |
|
181 |
+
= 3.6.6 =
|
182 |
* Misspelled class name is system info compiler causing System Status to fail.
|
183 |
* #3359 - Responsive issue on option panel. Too much blank space on panel in smartphone mode.
|
184 |
* #2914, #3356 - Default image_select preset image not selected. This was originally by design. Now it's a thing.
|
188 |
* Modified: #3321 - Font subset in typography not rendering on IE and Edge (Seriously? People still use those?)
|
189 |
* Modified: PHP7 compatibility.
|
190 |
|
191 |
+
= 3.6.5 =
|
192 |
* Modified: #3321 - Font subset in typography not rendering on IE and Edge (Seriously? People still use those?)
|
193 |
* Fixed: #3293 - Required not liking/hiding fields with switch default of 'false'.
|
194 |
* Fixed: Remove leftover var_dump from the core.
|
204 |
* Fixed: Default data not saving correctly in sorter field.
|
205 |
|
206 |
|
207 |
+
= 3.6.4 =
|
208 |
* Modified: Changed gitignore file to exclude sublime text files.
|
209 |
* Fixed: #2966 - Translation bug. Identified and fixed by @iiandrade. Thanks!
|
210 |
* Modified: Generated all CSS map files to get rid of Chrome warnings.
|
220 |
* Fixed: #3186 - Multi text field not removing single field when clicking "Remove".
|
221 |
* Fixed: #3180, #2641 - Button set multi mode saving incorrectly. Please check your code for a possible backward compatibility issue when using this mode. The foreach() function with an empty() check must now be used, versus individual array keys as only selected options are saved to the database.
|
222 |
|
223 |
+
= 3.6.3 =
|
224 |
* Modified: Change customizer hover styles to match WP 4.7.
|
225 |
* Modified: #3169 - print_r of wpdb queries in dev_mode removed.
|
226 |
* Fixed: #3159 - Support for SVG in gallery media selection.
|
227 |
* Fixed: #3158 - PHP warning for _validate_values function when extensions installed on PHP7.
|
228 |
|
229 |
+
= 3.6.2 =
|
230 |
* Fixed: #3105 - link_color output failing due to PHP error.
|
231 |
* Fixed: #3103 - WP 4.6 forces new default date format, breaking date validation.
|
232 |
* Fixed: Typography subsets error due to typo.
|
233 |
* Fixed: Extra dead files on WP.org repo. Bah SVN.
|
234 |
|
235 |
+
= 3.6.1 =
|
236 |
* Removed Empty PHP file from editor field.
|
237 |
* Modified: Replaced class primary function name in browser.php to __construct for PHP7 compatibility.
|
238 |
* Fixed: #3051 - Color_RBGA field RGBA value outputting zeros when color is left blank.
|
250 |
* Fixed: Deleted old deleted files stuck in our WP.org SVN repo.
|
251 |
|
252 |
|
253 |
+
= 3.6.0.2 =
|
254 |
* Fixed Outdated customizer.min.js on wp.org causing customizer failure.
|
255 |
|
256 |
+
= 3.6.0.1 =
|
257 |
* Fixed Outdated redux.min.js on wp.org causing option panel failure.
|
258 |
* Fixed: #2936 - Border field outputting px with blank value.
|
259 |
* Fixed: Resolved Theme-Check php shortcode false notice.
|
redux-framework.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
* Description: Redux is a simple, truly extensible options framework for WordPress themes and plugins.
|
13 |
* Author: Team Redux
|
14 |
* Author URI: http://reduxframework.com
|
15 |
-
* Version: 3.6.
|
16 |
* Text Domain: redux-framework
|
17 |
* License: GPL2+
|
18 |
* License URI: http://www.gnu.org/licenses/gpl-3.0.txt
|
12 |
* Description: Redux is a simple, truly extensible options framework for WordPress themes and plugins.
|
13 |
* Author: Team Redux
|
14 |
* Author URI: http://reduxframework.com
|
15 |
+
* Version: 3.6.16
|
16 |
* Text Domain: redux-framework
|
17 |
* License: GPL2+
|
18 |
* License URI: http://www.gnu.org/licenses/gpl-3.0.txt
|
sample/sample-config.php
CHANGED
@@ -115,7 +115,7 @@
|
|
115 |
// Force your panel to always open to a specific tab (by id)
|
116 |
'page_icon' => 'icon-themes',
|
117 |
// Icon displayed in the admin panel next to your menu_title
|
118 |
-
'page_slug' => '',
|
119 |
// Page slug used to denote the panel, will be based off page title then menu title then opt_name if not provided
|
120 |
'save_defaults' => true,
|
121 |
// On load save the defaults to DB before user clicks save or not
|
115 |
// Force your panel to always open to a specific tab (by id)
|
116 |
'page_icon' => 'icon-themes',
|
117 |
// Icon displayed in the admin panel next to your menu_title
|
118 |
+
'page_slug' => 'redux_demo',
|
119 |
// Page slug used to denote the panel, will be based off page title then menu title then opt_name if not provided
|
120 |
'save_defaults' => true,
|
121 |
// On load save the defaults to DB before user clicks save or not
|