Version Description
- Minor fixes #117
Download this release
Release Info
Developer | Unyson |
Plugin | Unyson |
Version | 2.1.8 |
Comparing to | |
See all releases |
Code changes from version 2.1.7 to 2.1.8
- framework/core/components/extensions.php +7 -2
- framework/core/components/extensions/manager/views/extension.php +8 -8
- framework/helpers/database.php +35 -9
- framework/manifest.php +1 -1
- framework/static/js/fw.js +172 -188
- readme.txt +4 -1
- unyson.php +1 -1
framework/core/components/extensions.php
CHANGED
@@ -122,10 +122,15 @@ final class _FW_Component_Extensions
|
|
122 |
foreach ($dirs as $extension_dir) {
|
123 |
$extension_name = basename($extension_dir);
|
124 |
|
125 |
-
if (isset($
|
126 |
if ($all_extensions[$extension_name]->get_parent() !== $parent) {
|
127 |
// extension with the same name exists in another tree
|
128 |
-
trigger_error(
|
|
|
|
|
|
|
|
|
|
|
129 |
}
|
130 |
|
131 |
// this is a directory with customizations for an extension
|
122 |
foreach ($dirs as $extension_dir) {
|
123 |
$extension_name = basename($extension_dir);
|
124 |
|
125 |
+
if (isset($all_extensions[$extension_name])) {
|
126 |
if ($all_extensions[$extension_name]->get_parent() !== $parent) {
|
127 |
// extension with the same name exists in another tree
|
128 |
+
trigger_error(
|
129 |
+
'Extension "'. $extension_name .'" is already defined '.
|
130 |
+
'in "'. $all_extensions[$extension_name]->get_declared_path() .'" '.
|
131 |
+
'found again in "'. $extension_dir .'"',
|
132 |
+
E_USER_ERROR
|
133 |
+
);
|
134 |
}
|
135 |
|
136 |
// this is a directory with customizations for an extension
|
framework/core/components/extensions/manager/views/extension.php
CHANGED
@@ -67,7 +67,11 @@ if (isset($lists['available'][$name])) {
|
|
67 |
}
|
68 |
|
69 |
if ( $is_active && file_exists( $installed_data['path'] . '/readme.md.php' ) ) {
|
70 |
-
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
|
73 |
if ( ! empty( $_links ) ):
|
@@ -80,13 +84,9 @@ if (isset($lists['available'][$name])) {
|
|
80 |
?>
|
81 |
<?php
|
82 |
if (
|
83 |
-
|
84 |
-
|
85 |
-
(
|
86 |
-
isset($lists['supported'][$name]) // is listed in the supported extensions list in theme manifest
|
87 |
-
||
|
88 |
-
($installed_data && $installed_data['source'] !== 'framework') // is located in the theme
|
89 |
-
)
|
90 |
): ?>
|
91 |
<p><em><strong><span class="dashicons dashicons-yes"></span> <?php _e('Compatible', 'fw') ?></strong> <?php _e('with your current theme', 'fw') ?></em></p>
|
92 |
<?php endif; ?>
|
67 |
}
|
68 |
|
69 |
if ( $is_active && file_exists( $installed_data['path'] . '/readme.md.php' ) ) {
|
70 |
+
if ( isset($lists['supported'][$name]) ) {
|
71 |
+
// no sense to teach how to install the extension if theme is already configured and the is extension marked as compatible
|
72 |
+
} else {
|
73 |
+
$_links[] = '<a href="' . esc_attr( $link ) . '&sub-page=extension&extension=' . esc_attr( $name ) . '&tab=docs">' . __( 'Install Instructions', 'fw' ) . '</a>';
|
74 |
+
}
|
75 |
}
|
76 |
|
77 |
if ( ! empty( $_links ) ):
|
84 |
?>
|
85 |
<?php
|
86 |
if (
|
87 |
+
isset($lists['supported'][$name]) // is listed in the supported extensions list in theme manifest
|
88 |
+
||
|
89 |
+
($installed_data && $installed_data['source'] !== 'framework') // is located in the theme
|
|
|
|
|
|
|
|
|
90 |
): ?>
|
91 |
<p><em><strong><span class="dashicons dashicons-yes"></span> <?php _e('Compatible', 'fw') ?></strong> <?php _e('with your current theme', 'fw') ?></em></p>
|
92 |
<?php endif; ?>
|
framework/helpers/database.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
*/
|
16 |
function fw_get_db_settings_option( $option_id = null, $default_value = null, $get_original_value = null ) {
|
17 |
$value = FW_WP_Option::get(
|
18 |
-
'fw_theme_settings_options:'. fw()->theme->manifest->get_id(),
|
19 |
$option_id, $default_value, $get_original_value
|
20 |
);
|
21 |
|
@@ -58,7 +58,7 @@
|
|
58 |
*/
|
59 |
function fw_set_db_settings_option( $option_id = null, $value ) {
|
60 |
FW_WP_Option::set(
|
61 |
-
'fw_theme_settings_options:'. fw()->theme->manifest->get_id(),
|
62 |
$option_id, $value
|
63 |
);
|
64 |
}
|
@@ -69,14 +69,25 @@
|
|
69 |
/**
|
70 |
* Get post option value from the database
|
71 |
*
|
72 |
-
* @param int $post_id
|
73 |
* @param string|null $option_id Specific option id (accepts multikey). null - all options
|
74 |
* @param null|mixed $default_value If no option found in the database, this value will be returned
|
75 |
* @param null|bool $get_original_value Original value is that with no translations and other changes
|
76 |
*
|
77 |
* @return mixed|null
|
78 |
*/
|
79 |
-
function fw_get_db_post_option( $post_id, $option_id = null, $default_value = null, $get_original_value = null ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
$option_id = 'fw_options' . ( $option_id !== null ? '/' . $option_id : '' );
|
81 |
|
82 |
return FW_WP_Meta::get( 'post', $post_id, $option_id, $default_value, $get_original_value );
|
@@ -85,11 +96,22 @@
|
|
85 |
/**
|
86 |
* Set post option value in database
|
87 |
*
|
88 |
-
* @param int $post_id
|
89 |
* @param string|null $option_id Specific option id (accepts multikey). null - all options
|
90 |
* @param $value
|
91 |
*/
|
92 |
-
function fw_set_db_post_option( $post_id, $option_id = null, $value ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
$option_id = 'fw_options' . ( $option_id !== null ? '/' . $option_id : '' );
|
94 |
|
95 |
FW_WP_Meta::set( 'post', $post_id, $option_id, $value );
|
@@ -218,7 +240,7 @@
|
|
218 |
return null;
|
219 |
}
|
220 |
|
221 |
-
$value = FW_WP_Option::get( 'fw_ext_settings_options:'. $extension_name, $option_id, $default_value, $get_original_value );
|
222 |
|
223 |
if ( is_null( $value ) ) {
|
224 |
/**
|
@@ -226,7 +248,7 @@
|
|
226 |
* Extract the default values from the options array and try to find there the option id
|
227 |
*/
|
228 |
|
229 |
-
$cache_key = 'fw_default_options_values/ext_settings:'. $extension_name;
|
230 |
|
231 |
try {
|
232 |
$all_options_values = FW_Cache::get( $cache_key );
|
@@ -265,18 +287,20 @@
|
|
265 |
return;
|
266 |
}
|
267 |
|
268 |
-
FW_WP_Option::set( 'fw_ext_settings_options:'. $extension_name, $option_id, $value );
|
269 |
}
|
270 |
}
|
271 |
|
272 |
{
|
273 |
/**
|
274 |
* Get user meta set by specific extension
|
|
|
275 |
* @param int $user_id
|
276 |
* @param string $extension_name
|
277 |
*
|
278 |
* If the extension doesn't exist or is disabled, or meta key doesn't exist, returns null,
|
279 |
* else returns the meta key value
|
|
|
280 |
* @return mixed|null
|
281 |
*/
|
282 |
function fw_get_db_extension_user_data( $user_id, $extension_name ) {
|
@@ -299,6 +323,7 @@
|
|
299 |
* @param mixed $value
|
300 |
*
|
301 |
* In case the extension doesn't exist or is disabled, or the value is equal to previous, returns false
|
|
|
302 |
* @return bool|int
|
303 |
*/
|
304 |
function fw_set_db_extension_user_data( $user_id, $extension_name, $value ) {
|
@@ -309,6 +334,7 @@
|
|
309 |
}
|
310 |
$data = get_user_meta( $user_id, 'fw_data', true );
|
311 |
$data[ $extension_name ] = $value;
|
|
|
312 |
return fw_update_user_meta( $user_id, 'fw_data', $data );
|
313 |
}
|
314 |
}
|
15 |
*/
|
16 |
function fw_get_db_settings_option( $option_id = null, $default_value = null, $get_original_value = null ) {
|
17 |
$value = FW_WP_Option::get(
|
18 |
+
'fw_theme_settings_options:' . fw()->theme->manifest->get_id(),
|
19 |
$option_id, $default_value, $get_original_value
|
20 |
);
|
21 |
|
58 |
*/
|
59 |
function fw_set_db_settings_option( $option_id = null, $value ) {
|
60 |
FW_WP_Option::set(
|
61 |
+
'fw_theme_settings_options:' . fw()->theme->manifest->get_id(),
|
62 |
$option_id, $value
|
63 |
);
|
64 |
}
|
69 |
/**
|
70 |
* Get post option value from the database
|
71 |
*
|
72 |
+
* @param null|int $post_id
|
73 |
* @param string|null $option_id Specific option id (accepts multikey). null - all options
|
74 |
* @param null|mixed $default_value If no option found in the database, this value will be returned
|
75 |
* @param null|bool $get_original_value Original value is that with no translations and other changes
|
76 |
*
|
77 |
* @return mixed|null
|
78 |
*/
|
79 |
+
function fw_get_db_post_option( $post_id = null, $option_id = null, $default_value = null, $get_original_value = null ) {
|
80 |
+
if ( ! $post_id ) {
|
81 |
+
/** @var WP_Post $post */
|
82 |
+
global $post;
|
83 |
+
|
84 |
+
if ( ! $post ) {
|
85 |
+
return $default_value;
|
86 |
+
} else {
|
87 |
+
$post_id = $post->ID;
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
$option_id = 'fw_options' . ( $option_id !== null ? '/' . $option_id : '' );
|
92 |
|
93 |
return FW_WP_Meta::get( 'post', $post_id, $option_id, $default_value, $get_original_value );
|
96 |
/**
|
97 |
* Set post option value in database
|
98 |
*
|
99 |
+
* @param null|int $post_id
|
100 |
* @param string|null $option_id Specific option id (accepts multikey). null - all options
|
101 |
* @param $value
|
102 |
*/
|
103 |
+
function fw_set_db_post_option( $post_id = null, $option_id = null, $value ) {
|
104 |
+
if ( ! $post_id ) {
|
105 |
+
/** @var WP_Post $post */
|
106 |
+
global $post;
|
107 |
+
|
108 |
+
if ( ! $post ) {
|
109 |
+
return;
|
110 |
+
} else {
|
111 |
+
$post_id = $post->ID;
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
$option_id = 'fw_options' . ( $option_id !== null ? '/' . $option_id : '' );
|
116 |
|
117 |
FW_WP_Meta::set( 'post', $post_id, $option_id, $value );
|
240 |
return null;
|
241 |
}
|
242 |
|
243 |
+
$value = FW_WP_Option::get( 'fw_ext_settings_options:' . $extension_name, $option_id, $default_value, $get_original_value );
|
244 |
|
245 |
if ( is_null( $value ) ) {
|
246 |
/**
|
248 |
* Extract the default values from the options array and try to find there the option id
|
249 |
*/
|
250 |
|
251 |
+
$cache_key = 'fw_default_options_values/ext_settings:' . $extension_name;
|
252 |
|
253 |
try {
|
254 |
$all_options_values = FW_Cache::get( $cache_key );
|
287 |
return;
|
288 |
}
|
289 |
|
290 |
+
FW_WP_Option::set( 'fw_ext_settings_options:' . $extension_name, $option_id, $value );
|
291 |
}
|
292 |
}
|
293 |
|
294 |
{
|
295 |
/**
|
296 |
* Get user meta set by specific extension
|
297 |
+
*
|
298 |
* @param int $user_id
|
299 |
* @param string $extension_name
|
300 |
*
|
301 |
* If the extension doesn't exist or is disabled, or meta key doesn't exist, returns null,
|
302 |
* else returns the meta key value
|
303 |
+
*
|
304 |
* @return mixed|null
|
305 |
*/
|
306 |
function fw_get_db_extension_user_data( $user_id, $extension_name ) {
|
323 |
* @param mixed $value
|
324 |
*
|
325 |
* In case the extension doesn't exist or is disabled, or the value is equal to previous, returns false
|
326 |
+
*
|
327 |
* @return bool|int
|
328 |
*/
|
329 |
function fw_set_db_extension_user_data( $user_id, $extension_name, $value ) {
|
334 |
}
|
335 |
$data = get_user_meta( $user_id, 'fw_data', true );
|
336 |
$data[ $extension_name ] = $value;
|
337 |
+
|
338 |
return fw_update_user_meta( $user_id, 'fw_data', $data );
|
339 |
}
|
340 |
}
|
framework/manifest.php
CHANGED
@@ -4,4 +4,4 @@ $manifest = array();
|
|
4 |
|
5 |
$manifest['name'] = __('Unyson', 'fw');
|
6 |
|
7 |
-
$manifest['version'] = '2.1.
|
4 |
|
5 |
$manifest['name'] = __('Unyson', 'fw');
|
6 |
|
7 |
+
$manifest['version'] = '2.1.8';
|
framework/static/js/fw.js
CHANGED
@@ -38,207 +38,191 @@ fw.intval = function(val)
|
|
38 |
|
39 |
/**
|
40 |
* Calculate md5 hash of the string
|
|
|
41 |
*/
|
42 |
-
fw.md5 = function(
|
43 |
-
|
44 |
-
function RotateLeft(lValue, iShiftBits) {
|
45 |
-
return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
|
46 |
-
}
|
47 |
-
|
48 |
-
function AddUnsigned(lX,lY) {
|
49 |
-
var lX4,lY4,lX8,lY8,lResult;
|
50 |
-
lX8 = (lX & 0x80000000);
|
51 |
-
lY8 = (lY & 0x80000000);
|
52 |
-
lX4 = (lX & 0x40000000);
|
53 |
-
lY4 = (lY & 0x40000000);
|
54 |
-
lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
|
55 |
-
if (lX4 & lY4) {
|
56 |
-
return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
|
57 |
-
}
|
58 |
-
if (lX4 | lY4) {
|
59 |
-
if (lResult & 0x40000000) {
|
60 |
-
return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
|
61 |
-
} else {
|
62 |
-
return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
|
63 |
-
}
|
64 |
-
} else {
|
65 |
-
return (lResult ^ lX8 ^ lY8);
|
66 |
-
}
|
67 |
-
}
|
68 |
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
return AddUnsigned(RotateLeft(a, s), b);
|
77 |
-
};
|
78 |
-
|
79 |
-
function GG(a,b,c,d,x,s,ac) {
|
80 |
-
a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
|
81 |
-
return AddUnsigned(RotateLeft(a, s), b);
|
82 |
-
};
|
83 |
-
|
84 |
-
function HH(a,b,c,d,x,s,ac) {
|
85 |
-
a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
|
86 |
-
return AddUnsigned(RotateLeft(a, s), b);
|
87 |
-
};
|
88 |
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
var
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
lBytePosition = (lByteCount % 4)*8;
|
111 |
-
lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
|
112 |
-
lWordArray[lNumberOfWords-2] = lMessageLength<<3;
|
113 |
-
lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
|
114 |
-
return lWordArray;
|
115 |
-
};
|
116 |
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
|
|
126 |
|
127 |
-
|
128 |
-
|
129 |
-
|
|
|
|
|
|
|
|
|
130 |
|
131 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
|
133 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
|
135 |
-
|
136 |
-
utftext += String.fromCharCode(c);
|
137 |
-
}
|
138 |
-
else if((c > 127) && (c < 2048)) {
|
139 |
-
utftext += String.fromCharCode((c >> 6) | 192);
|
140 |
-
utftext += String.fromCharCode((c & 63) | 128);
|
141 |
-
}
|
142 |
-
else {
|
143 |
-
utftext += String.fromCharCode((c >> 12) | 224);
|
144 |
-
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
|
145 |
-
utftext += String.fromCharCode((c & 63) | 128);
|
146 |
-
}
|
147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
}
|
149 |
-
|
150 |
-
return utftext;
|
151 |
-
};
|
152 |
-
|
153 |
-
var x=Array();
|
154 |
-
var k,AA,BB,CC,DD,a,b,c,d;
|
155 |
-
var S11=7, S12=12, S13=17, S14=22;
|
156 |
-
var S21=5, S22=9 , S23=14, S24=20;
|
157 |
-
var S31=4, S32=11, S33=16, S34=23;
|
158 |
-
var S41=6, S42=10, S43=15, S44=21;
|
159 |
-
|
160 |
-
string = Utf8Encode(string);
|
161 |
-
|
162 |
-
x = ConvertToWordArray(string);
|
163 |
-
|
164 |
-
a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
|
165 |
-
|
166 |
-
for (k=0;k<x.length;k+=16) {
|
167 |
-
AA=a; BB=b; CC=c; DD=d;
|
168 |
-
a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
|
169 |
-
d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
|
170 |
-
c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
|
171 |
-
b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
|
172 |
-
a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
|
173 |
-
d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
|
174 |
-
c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
|
175 |
-
b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
|
176 |
-
a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
|
177 |
-
d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
|
178 |
-
c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
|
179 |
-
b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
|
180 |
-
a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
|
181 |
-
d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
|
182 |
-
c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
|
183 |
-
b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
|
184 |
-
a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
|
185 |
-
d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
|
186 |
-
c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
|
187 |
-
b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
|
188 |
-
a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
|
189 |
-
d=GG(d,a,b,c,x[k+10],S22,0x2441453);
|
190 |
-
c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
|
191 |
-
b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
|
192 |
-
a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
|
193 |
-
d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
|
194 |
-
c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
|
195 |
-
b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
|
196 |
-
a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
|
197 |
-
d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
|
198 |
-
c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
|
199 |
-
b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
|
200 |
-
a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
|
201 |
-
d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
|
202 |
-
c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
|
203 |
-
b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
|
204 |
-
a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
|
205 |
-
d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
|
206 |
-
c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
|
207 |
-
b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
|
208 |
-
a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
|
209 |
-
d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
|
210 |
-
c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
|
211 |
-
b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
|
212 |
-
a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
|
213 |
-
d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
|
214 |
-
c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
|
215 |
-
b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
|
216 |
-
a=II(a,b,c,d,x[k+0], S41,0xF4292244);
|
217 |
-
d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
|
218 |
-
c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
|
219 |
-
b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
|
220 |
-
a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
|
221 |
-
d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
|
222 |
-
c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
|
223 |
-
b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
|
224 |
-
a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
|
225 |
-
d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
|
226 |
-
c=II(c,d,a,b,x[k+6], S43,0xA3014314);
|
227 |
-
b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
|
228 |
-
a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
|
229 |
-
d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
|
230 |
-
c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
|
231 |
-
b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
|
232 |
-
a=AddUnsigned(a,AA);
|
233 |
-
b=AddUnsigned(b,BB);
|
234 |
-
c=AddUnsigned(c,CC);
|
235 |
-
d=AddUnsigned(d,DD);
|
236 |
}
|
237 |
|
238 |
-
|
239 |
-
|
240 |
-
return temp.toLowerCase();
|
241 |
-
};
|
242 |
|
243 |
/**
|
244 |
* Show/Hide loading on page
|
38 |
|
39 |
/**
|
40 |
* Calculate md5 hash of the string
|
41 |
+
* @param {String} string
|
42 |
*/
|
43 |
+
fw.md5 = (function(){
|
44 |
+
"use strict";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
|
46 |
+
/*
|
47 |
+
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
|
48 |
+
* Digest Algorithm, as defined in RFC 1321.
|
49 |
+
* Copyright (C) Paul Johnston 1999 - 2000.
|
50 |
+
* Updated by Greg Holt 2000 - 2001.
|
51 |
+
* See http://pajhome.org.uk/site/legal.html for details.
|
52 |
+
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
+
/*
|
55 |
+
* Convert a 32-bit number to a hex string with ls-byte first
|
56 |
+
*/
|
57 |
+
var hex_chr = "0123456789abcdef";
|
58 |
+
function rhex(num)
|
59 |
+
{
|
60 |
+
var str = "", j;
|
61 |
+
for(j = 0; j <= 3; j++)
|
62 |
+
str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) +
|
63 |
+
hex_chr.charAt((num >> (j * 8)) & 0x0F);
|
64 |
+
return str;
|
65 |
+
}
|
66 |
|
67 |
+
/*
|
68 |
+
* Convert a string to a sequence of 16-word blocks, stored as an array.
|
69 |
+
* Append padding bits and the length, as described in the MD5 standard.
|
70 |
+
*/
|
71 |
+
function str2blks_MD5(str)
|
72 |
+
{
|
73 |
+
var nblk = ((str.length + 8) >> 6) + 1,
|
74 |
+
blks = new Array(nblk * 16),
|
75 |
+
i;
|
76 |
+
for(i = 0; i < nblk * 16; i++) blks[i] = 0;
|
77 |
+
for(i = 0; i < str.length; i++)
|
78 |
+
blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);
|
79 |
+
blks[i >> 2] |= 0x80 << ((i % 4) * 8);
|
80 |
+
blks[nblk * 16 - 2] = str.length * 8;
|
81 |
+
return blks;
|
82 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
|
84 |
+
/*
|
85 |
+
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
|
86 |
+
* to work around bugs in some JS interpreters.
|
87 |
+
*/
|
88 |
+
function add(x, y)
|
89 |
+
{
|
90 |
+
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
|
91 |
+
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
92 |
+
return (msw << 16) | (lsw & 0xFFFF);
|
93 |
+
}
|
94 |
|
95 |
+
/*
|
96 |
+
* Bitwise rotate a 32-bit number to the left
|
97 |
+
*/
|
98 |
+
function rol(num, cnt)
|
99 |
+
{
|
100 |
+
return (num << cnt) | (num >>> (32 - cnt));
|
101 |
+
}
|
102 |
|
103 |
+
/*
|
104 |
+
* These functions implement the basic operation for each round of the
|
105 |
+
* algorithm.
|
106 |
+
*/
|
107 |
+
function cmn(q, a, b, x, s, t)
|
108 |
+
{
|
109 |
+
return add(rol(add(add(a, q), add(x, t)), s), b);
|
110 |
+
}
|
111 |
+
function ff(a, b, c, d, x, s, t)
|
112 |
+
{
|
113 |
+
return cmn((b & c) | ((~b) & d), a, b, x, s, t);
|
114 |
+
}
|
115 |
+
function gg(a, b, c, d, x, s, t)
|
116 |
+
{
|
117 |
+
return cmn((b & d) | (c & (~d)), a, b, x, s, t);
|
118 |
+
}
|
119 |
+
function hh(a, b, c, d, x, s, t)
|
120 |
+
{
|
121 |
+
return cmn(b ^ c ^ d, a, b, x, s, t);
|
122 |
+
}
|
123 |
+
function ii(a, b, c, d, x, s, t)
|
124 |
+
{
|
125 |
+
return cmn(c ^ (b | (~d)), a, b, x, s, t);
|
126 |
+
}
|
127 |
|
128 |
+
/*
|
129 |
+
* Take a string and return the hex representation of its MD5.
|
130 |
+
*/
|
131 |
+
function calcMD5(str)
|
132 |
+
{
|
133 |
+
var x = str2blks_MD5(str);
|
134 |
+
var a = 1732584193;
|
135 |
+
var b = -271733879;
|
136 |
+
var c = -1732584194;
|
137 |
+
var d = 271733878;
|
138 |
|
139 |
+
var i, olda, oldb, oldc, oldd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
|
141 |
+
for(i = 0; i < x.length; i += 16)
|
142 |
+
{
|
143 |
+
olda = a;
|
144 |
+
oldb = b;
|
145 |
+
oldc = c;
|
146 |
+
oldd = d;
|
147 |
+
|
148 |
+
a = ff(a, b, c, d, x[i+ 0], 7 , -680876936);
|
149 |
+
d = ff(d, a, b, c, x[i+ 1], 12, -389564586);
|
150 |
+
c = ff(c, d, a, b, x[i+ 2], 17, 606105819);
|
151 |
+
b = ff(b, c, d, a, x[i+ 3], 22, -1044525330);
|
152 |
+
a = ff(a, b, c, d, x[i+ 4], 7 , -176418897);
|
153 |
+
d = ff(d, a, b, c, x[i+ 5], 12, 1200080426);
|
154 |
+
c = ff(c, d, a, b, x[i+ 6], 17, -1473231341);
|
155 |
+
b = ff(b, c, d, a, x[i+ 7], 22, -45705983);
|
156 |
+
a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
|
157 |
+
d = ff(d, a, b, c, x[i+ 9], 12, -1958414417);
|
158 |
+
c = ff(c, d, a, b, x[i+10], 17, -42063);
|
159 |
+
b = ff(b, c, d, a, x[i+11], 22, -1990404162);
|
160 |
+
a = ff(a, b, c, d, x[i+12], 7 , 1804603682);
|
161 |
+
d = ff(d, a, b, c, x[i+13], 12, -40341101);
|
162 |
+
c = ff(c, d, a, b, x[i+14], 17, -1502002290);
|
163 |
+
b = ff(b, c, d, a, x[i+15], 22, 1236535329);
|
164 |
+
|
165 |
+
a = gg(a, b, c, d, x[i+ 1], 5 , -165796510);
|
166 |
+
d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
|
167 |
+
c = gg(c, d, a, b, x[i+11], 14, 643717713);
|
168 |
+
b = gg(b, c, d, a, x[i+ 0], 20, -373897302);
|
169 |
+
a = gg(a, b, c, d, x[i+ 5], 5 , -701558691);
|
170 |
+
d = gg(d, a, b, c, x[i+10], 9 , 38016083);
|
171 |
+
c = gg(c, d, a, b, x[i+15], 14, -660478335);
|
172 |
+
b = gg(b, c, d, a, x[i+ 4], 20, -405537848);
|
173 |
+
a = gg(a, b, c, d, x[i+ 9], 5 , 568446438);
|
174 |
+
d = gg(d, a, b, c, x[i+14], 9 , -1019803690);
|
175 |
+
c = gg(c, d, a, b, x[i+ 3], 14, -187363961);
|
176 |
+
b = gg(b, c, d, a, x[i+ 8], 20, 1163531501);
|
177 |
+
a = gg(a, b, c, d, x[i+13], 5 , -1444681467);
|
178 |
+
d = gg(d, a, b, c, x[i+ 2], 9 , -51403784);
|
179 |
+
c = gg(c, d, a, b, x[i+ 7], 14, 1735328473);
|
180 |
+
b = gg(b, c, d, a, x[i+12], 20, -1926607734);
|
181 |
+
|
182 |
+
a = hh(a, b, c, d, x[i+ 5], 4 , -378558);
|
183 |
+
d = hh(d, a, b, c, x[i+ 8], 11, -2022574463);
|
184 |
+
c = hh(c, d, a, b, x[i+11], 16, 1839030562);
|
185 |
+
b = hh(b, c, d, a, x[i+14], 23, -35309556);
|
186 |
+
a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
|
187 |
+
d = hh(d, a, b, c, x[i+ 4], 11, 1272893353);
|
188 |
+
c = hh(c, d, a, b, x[i+ 7], 16, -155497632);
|
189 |
+
b = hh(b, c, d, a, x[i+10], 23, -1094730640);
|
190 |
+
a = hh(a, b, c, d, x[i+13], 4 , 681279174);
|
191 |
+
d = hh(d, a, b, c, x[i+ 0], 11, -358537222);
|
192 |
+
c = hh(c, d, a, b, x[i+ 3], 16, -722521979);
|
193 |
+
b = hh(b, c, d, a, x[i+ 6], 23, 76029189);
|
194 |
+
a = hh(a, b, c, d, x[i+ 9], 4 , -640364487);
|
195 |
+
d = hh(d, a, b, c, x[i+12], 11, -421815835);
|
196 |
+
c = hh(c, d, a, b, x[i+15], 16, 530742520);
|
197 |
+
b = hh(b, c, d, a, x[i+ 2], 23, -995338651);
|
198 |
+
|
199 |
+
a = ii(a, b, c, d, x[i+ 0], 6 , -198630844);
|
200 |
+
d = ii(d, a, b, c, x[i+ 7], 10, 1126891415);
|
201 |
+
c = ii(c, d, a, b, x[i+14], 15, -1416354905);
|
202 |
+
b = ii(b, c, d, a, x[i+ 5], 21, -57434055);
|
203 |
+
a = ii(a, b, c, d, x[i+12], 6 , 1700485571);
|
204 |
+
d = ii(d, a, b, c, x[i+ 3], 10, -1894986606);
|
205 |
+
c = ii(c, d, a, b, x[i+10], 15, -1051523);
|
206 |
+
b = ii(b, c, d, a, x[i+ 1], 21, -2054922799);
|
207 |
+
a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
|
208 |
+
d = ii(d, a, b, c, x[i+15], 10, -30611744);
|
209 |
+
c = ii(c, d, a, b, x[i+ 6], 15, -1560198380);
|
210 |
+
b = ii(b, c, d, a, x[i+13], 21, 1309151649);
|
211 |
+
a = ii(a, b, c, d, x[i+ 4], 6 , -145523070);
|
212 |
+
d = ii(d, a, b, c, x[i+11], 10, -1120210379);
|
213 |
+
c = ii(c, d, a, b, x[i+ 2], 15, 718787259);
|
214 |
+
b = ii(b, c, d, a, x[i+ 9], 21, -343485551);
|
215 |
+
|
216 |
+
a = add(a, olda);
|
217 |
+
b = add(b, oldb);
|
218 |
+
c = add(c, oldc);
|
219 |
+
d = add(d, oldd);
|
220 |
}
|
221 |
+
return rhex(a) + rhex(b) + rhex(c) + rhex(d);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
}
|
223 |
|
224 |
+
return calcMD5;
|
225 |
+
})();
|
|
|
|
|
226 |
|
227 |
/**
|
228 |
* Show/Hide loading on page
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: unyson, themefusecom
|
|
3 |
Tags: page builder, cms, grid, layout, responsive, back up, backup, db backup, dump, migrate, schedule, search engine optimization, seo, media, slideshow, shortcode, slide, slideshare, slideshow, google sitemaps, sitemaps, analytics, google analytics, calendar, event, events, google maps, learning, lessons, sidebars, breadcrumbs, review, portfolio
|
4 |
Requires at least: 4.0.0
|
5 |
Tested up to: 4.0.1
|
6 |
-
Stable tag: 2.1.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -84,6 +84,9 @@ Yes; Unyson will work with any theme.
|
|
84 |
|
85 |
== Changelog ==
|
86 |
|
|
|
|
|
|
|
87 |
= 2.1.7 =
|
88 |
* Fixed real_path<->wp_filesystem_path conversion on installations with custom plugins directory (Bedrock WordPress Stack).
|
89 |
|
3 |
Tags: page builder, cms, grid, layout, responsive, back up, backup, db backup, dump, migrate, schedule, search engine optimization, seo, media, slideshow, shortcode, slide, slideshare, slideshow, google sitemaps, sitemaps, analytics, google analytics, calendar, event, events, google maps, learning, lessons, sidebars, breadcrumbs, review, portfolio
|
4 |
Requires at least: 4.0.0
|
5 |
Tested up to: 4.0.1
|
6 |
+
Stable tag: 2.1.8
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
84 |
|
85 |
== Changelog ==
|
86 |
|
87 |
+
= 2.1.8 =
|
88 |
+
* Minor fixes [#117](https://github.com/ThemeFuse/Unyson/issues/117)
|
89 |
+
|
90 |
= 2.1.7 =
|
91 |
* Fixed real_path<->wp_filesystem_path conversion on installations with custom plugins directory (Bedrock WordPress Stack).
|
92 |
|
unyson.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Unyson
|
4 |
* Plugin URI: http://unyson.themefuse.com/
|
5 |
* Description: A free drag & drop framework that comes with a bunch of built in extensions that will help you develop premium themes fast & easy.
|
6 |
-
* Version: 2.1.
|
7 |
* Author: ThemeFuse
|
8 |
* Author URI: http://themefuse.com
|
9 |
* License: GPL2+
|
3 |
* Plugin Name: Unyson
|
4 |
* Plugin URI: http://unyson.themefuse.com/
|
5 |
* Description: A free drag & drop framework that comes with a bunch of built in extensions that will help you develop premium themes fast & easy.
|
6 |
+
* Version: 2.1.8
|
7 |
* Author: ThemeFuse
|
8 |
* Author URI: http://themefuse.com
|
9 |
* License: GPL2+
|