Version Description
- Added warning on Theme Settings reset ^
-
FW_Form
: Form attributes can be changed in the render method - Option type
slider
andrange-slider
fixes #210 - Option type
typography
: Added filter on standard fonts #212 - Option type
radio
andcheckboxes
: Addedinline
parameter #216 - Minor internal fixes
Download this release
Release Info
Developer | Unyson |
Plugin | Unyson |
Version | 2.1.20 |
Comparing to | |
See all releases |
Code changes from version 2.1.19 to 2.1.20
- README.md +27 -0
- framework/core/class-fw-manifest.php +11 -4
- framework/core/components/backend.php +15 -2
- framework/helpers/class-fw-flash-messages.php +14 -1
- framework/helpers/class-fw-form.php +54 -35
- framework/helpers/database.php +1 -1
- framework/includes/option-types.php +10 -0
- framework/includes/option-types/range-slider/class-fw-option-type-range-slider.php +3 -3
- framework/includes/option-types/range-slider/static/js/scripts.js +2 -2
- framework/includes/option-types/slider/class-fw-option-type-slider.php +3 -3
- framework/includes/option-types/slider/static/js/scripts.js +2 -2
- framework/includes/option-types/typography/class-fw-option-type-typography.php +3 -3
- framework/manifest.php +1 -1
- framework/static/css/option-types.css +14 -0
- framework/static/js/backend-options.js +1 -1
- framework/views/backend-option-design-default.php +5 -3
- framework/views/backend-option-design-taxonomy.php +5 -3
- readme.txt +9 -1
- unyson.php +1 -1
README.md
CHANGED
@@ -15,6 +15,7 @@ If you are not a developer, please use the [Unyson plugin page](https://wordpres
|
|
15 |
* [Documentation](#documentation)
|
16 |
* [Copyright and license](#copyright-and-license)
|
17 |
* [Contributing to Unyson](#contributing)
|
|
|
18 |
|
19 |
## Installation
|
20 |
|
@@ -58,3 +59,29 @@ Translators can contribute new languages to Unyson through [Transifex](https://w
|
|
58 |
If you have an idea for Unyson, see the [Trello board](https://trello.com/b/Xm9TxasH/unyson-development).
|
59 |
|
60 |
Theme developers can test the compatibility of their themes with new extensions updates before they are going to be released on [Unyson Extensions Approval](https://github.com/ThemeFuse/Unyson-Extensions-Approval).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
* [Documentation](#documentation)
|
16 |
* [Copyright and license](#copyright-and-license)
|
17 |
* [Contributing to Unyson](#contributing)
|
18 |
+
* [Extensions](#extensions)
|
19 |
|
20 |
## Installation
|
21 |
|
59 |
If you have an idea for Unyson, see the [Trello board](https://trello.com/b/Xm9TxasH/unyson-development).
|
60 |
|
61 |
Theme developers can test the compatibility of their themes with new extensions updates before they are going to be released on [Unyson Extensions Approval](https://github.com/ThemeFuse/Unyson-Extensions-Approval).
|
62 |
+
|
63 |
+
## Extensions
|
64 |
+
|
65 |
+
If you have a bug report or feature request related to a specific extension, follow one of the links below:
|
66 |
+
|
67 |
+
* [Page Builder](https://github.com/ThemeFuse/Unyson-PageBuilder-Extension)
|
68 |
+
* [Shortcodes](https://github.com/ThemeFuse/Unyson-Shortcodes-Extension)
|
69 |
+
* [Mega Menu](https://github.com/ThemeFuse/Unyson-MegaMenu-Extension)
|
70 |
+
* [Sidebars](https://github.com/ThemeFuse/Unyson-Sidebars-Extension)
|
71 |
+
* [Sliders](https://github.com/ThemeFuse/Unyson-Sliders-Extension)
|
72 |
+
* [Portfolio](https://github.com/ThemeFuse/Unyson-Portfolio-Extension)
|
73 |
+
* [SEO](https://github.com/ThemeFuse/Unyson-SEO-Extension)
|
74 |
+
* [Forms](https://github.com/ThemeFuse/Unyson-Forms-Extension)
|
75 |
+
* [Styling](https://github.com/ThemeFuse/Unyson-Styling-Extension)
|
76 |
+
* [Feedback](https://github.com/ThemeFuse/Unyson-Feedback-Extension)
|
77 |
+
* [Backup](https://github.com/ThemeFuse/Unyson-Backup-Extension)
|
78 |
+
* [Breadcrumbs](https://github.com/ThemeFuse/Unyson-Breadcrumbs-Extension)
|
79 |
+
* [Learning](https://github.com/ThemeFuse/Unyson-Learning-Extension)
|
80 |
+
* [Events](https://github.com/ThemeFuse/Unyson-Events-Extension)
|
81 |
+
* [Update](https://github.com/ThemeFuse/Unyson-Update-Extension)
|
82 |
+
* [Analytics](https://github.com/ThemeFuse/Unyson-Analytics-Extension)
|
83 |
+
* [Builder](https://github.com/ThemeFuse/Unyson-Builder-Extension)
|
84 |
+
* [Mailer](https://github.com/ThemeFuse/Unyson-Mailer-Extension)
|
85 |
+
* [Social](https://github.com/ThemeFuse/Unyson-Social-Extension)
|
86 |
+
* [Population Methods](https://github.com/ThemeFuse/Unyson-PopulationMethods-Extension)
|
87 |
+
* [Blog Posts](https://github.com/ThemeFuse/Unyson-Blog-Extension)
|
framework/core/class-fw-manifest.php
CHANGED
@@ -324,10 +324,17 @@ abstract class FW_Manifest
|
|
324 |
$extension->manifest->get_name(), $extension->manifest->get_version(), $requirement
|
325 |
);
|
326 |
} else {
|
327 |
-
$requirement
|
328 |
-
|
329 |
-
|
330 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
}
|
332 |
break;
|
333 |
default:
|
324 |
$extension->manifest->get_name(), $extension->manifest->get_version(), $requirement
|
325 |
);
|
326 |
} else {
|
327 |
+
if (empty($requirement)) {
|
328 |
+
$requirement = sprintf(
|
329 |
+
__('%s extension is required', 'fw'),
|
330 |
+
ucfirst($this->not_met_requirement['extension'])
|
331 |
+
);
|
332 |
+
} else {
|
333 |
+
$requirement = sprintf(
|
334 |
+
__('%s extension is required (%s)', 'fw'),
|
335 |
+
ucfirst($this->not_met_requirement['extension']), $requirement
|
336 |
+
);
|
337 |
+
}
|
338 |
}
|
339 |
break;
|
340 |
default:
|
framework/core/components/backend.php
CHANGED
@@ -824,9 +824,22 @@ final class _FW_Component_Backend
|
|
824 |
echo fw()->backend->render_options($options, $values);
|
825 |
|
826 |
$data['submit']['html'] =
|
827 |
-
'
|
|
|
|
|
|
|
|
|
|
|
828 |
' ' .
|
829 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
830 |
|
831 |
{
|
832 |
$focus_tab_input_name = '_focus_tab';
|
824 |
echo fw()->backend->render_options($options, $values);
|
825 |
|
826 |
$data['submit']['html'] =
|
827 |
+
fw_html_tag('input', array(
|
828 |
+
'type' => 'submit',
|
829 |
+
'name' => '_fw_save_options',
|
830 |
+
'value' => __('Save', 'fw'),
|
831 |
+
'class' => 'button-primary button-large',
|
832 |
+
)) .
|
833 |
' ' .
|
834 |
+
fw_html_tag('input', array(
|
835 |
+
'type' => 'submit',
|
836 |
+
'name' => '_fw_reset_options',
|
837 |
+
'value' => __('Reset', 'fw'),
|
838 |
+
'class' => 'button-secondary button-large',
|
839 |
+
'onclick' => "if (!confirm('". esc_js(
|
840 |
+
__("Click OK to reset.\nAll settings will be lost and replaced with default settings!", 'fw')
|
841 |
+
) ."')) return false;"
|
842 |
+
));
|
843 |
|
844 |
{
|
845 |
$focus_tab_input_name = '_focus_tab';
|
framework/helpers/class-fw-flash-messages.php
CHANGED
@@ -23,7 +23,7 @@ class FW_Flash_Messages
|
|
23 |
{
|
24 |
$messages = FW_Session::get(self::$session_key);
|
25 |
|
26 |
-
if (!is_array($messages)) {
|
27 |
$messages = array_fill_keys(array_keys(self::$available_types), array());
|
28 |
}
|
29 |
|
@@ -186,6 +186,19 @@ class FW_Flash_Messages
|
|
186 |
{
|
187 |
return self::$frontend_printed;
|
188 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
}
|
190 |
|
191 |
if (is_admin()) {
|
23 |
{
|
24 |
$messages = FW_Session::get(self::$session_key);
|
25 |
|
26 |
+
if (empty($messages) || !is_array($messages)) {
|
27 |
$messages = array_fill_keys(array_keys(self::$available_types), array());
|
28 |
}
|
29 |
|
186 |
{
|
187 |
return self::$frontend_printed;
|
188 |
}
|
189 |
+
|
190 |
+
public static function _get_messages($clear = false)
|
191 |
+
{
|
192 |
+
self::process_pending_remove_ids();
|
193 |
+
|
194 |
+
$messages = self::get_messages();
|
195 |
+
|
196 |
+
if ($clear) {
|
197 |
+
self::set_messages(array());
|
198 |
+
}
|
199 |
+
|
200 |
+
return $messages;
|
201 |
+
}
|
202 |
}
|
203 |
|
204 |
if (is_admin()) {
|
framework/helpers/class-fw-form.php
CHANGED
@@ -90,6 +90,9 @@ class FW_Form {
|
|
90 |
$data['attr'] = array();
|
91 |
}
|
92 |
|
|
|
|
|
|
|
93 |
$data['attr']['class'] = 'fw_form_' . $this->id;
|
94 |
|
95 |
if ( isset( $data['attr']['method'] ) ) {
|
@@ -234,7 +237,9 @@ class FW_Form {
|
|
234 |
if ( $this->is_valid() ) {
|
235 |
$this->save();
|
236 |
|
237 |
-
wp_send_json_success(
|
|
|
|
|
238 |
} else {
|
239 |
wp_send_json_error( array(
|
240 |
'errors' => $this->get_errors()
|
@@ -279,31 +284,6 @@ class FW_Form {
|
|
279 |
* @param array $data
|
280 |
*/
|
281 |
public function render( $data = array() ) {
|
282 |
-
?>
|
283 |
-
<form <?php echo fw_attr_to_html( $this->attr ) ?> ><?php
|
284 |
-
|
285 |
-
if ( ! empty( $this->attr['action'] ) && $this->attr['method'] == 'get' ) {
|
286 |
-
/**
|
287 |
-
* Add query vars from action attribute url to hidden inputs to not loose them
|
288 |
-
* For cases when get_search_link() will return '.../?s=~',
|
289 |
-
* the 's' will be lost after submit and no search page will be shown
|
290 |
-
*/
|
291 |
-
|
292 |
-
parse_str( parse_url( $this->attr['action'], PHP_URL_QUERY ), $query_vars );
|
293 |
-
|
294 |
-
if ( ! empty( $query_vars ) ) {
|
295 |
-
foreach ( $query_vars as $var_name => $var_value ) {
|
296 |
-
?><input type="hidden" name="<?php print esc_attr( $var_name ) ?>"
|
297 |
-
value="<?php print fw_htmlspecialchars( $var_value ) ?>" /><?php
|
298 |
-
}
|
299 |
-
}
|
300 |
-
}
|
301 |
-
|
302 |
-
?><input type="hidden" name="<?php print self::$id_input_name; ?>" value="<?php print $this->id ?>" /><?php
|
303 |
-
if ( $this->attr['method'] == 'post' ) {
|
304 |
-
wp_nonce_field( 'submit_fwf', '_nonce_' . md5( $this->id ) );
|
305 |
-
}
|
306 |
-
|
307 |
$render_data = array(
|
308 |
'submit' => array(
|
309 |
'value' => __( 'Submit', 'fw' ),
|
@@ -313,14 +293,18 @@ class FW_Form {
|
|
313 |
*/
|
314 |
'html' => null,
|
315 |
),
|
316 |
-
'data'
|
317 |
-
'attr'
|
318 |
);
|
319 |
|
320 |
unset( $data );
|
321 |
|
322 |
if ( $this->callbacks['render'] ) {
|
323 |
-
|
|
|
|
|
|
|
|
|
324 |
|
325 |
if ( empty( $data ) ) {
|
326 |
// fix if returned wrong data from callback
|
@@ -332,14 +316,49 @@ class FW_Form {
|
|
332 |
unset( $data );
|
333 |
}
|
334 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
// In filter can be defined custom html for submit button
|
336 |
-
if ( isset( $render_data['submit']['html'] ) )
|
337 |
-
|
338 |
-
else
|
339 |
-
|
340 |
-
|
|
|
|
|
|
|
341 |
|
342 |
-
|
343 |
}
|
344 |
|
345 |
/**
|
90 |
$data['attr'] = array();
|
91 |
}
|
92 |
|
93 |
+
$data['attr']['data-fw-form-id'] = $this->id;
|
94 |
+
|
95 |
+
/** @deprecated */
|
96 |
$data['attr']['class'] = 'fw_form_' . $this->id;
|
97 |
|
98 |
if ( isset( $data['attr']['method'] ) ) {
|
237 |
if ( $this->is_valid() ) {
|
238 |
$this->save();
|
239 |
|
240 |
+
wp_send_json_success( array(
|
241 |
+
'flash_messages' => FW_Flash_Messages::_get_messages(true)
|
242 |
+
) );
|
243 |
} else {
|
244 |
wp_send_json_error( array(
|
245 |
'errors' => $this->get_errors()
|
284 |
* @param array $data
|
285 |
*/
|
286 |
public function render( $data = array() ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
$render_data = array(
|
288 |
'submit' => array(
|
289 |
'value' => __( 'Submit', 'fw' ),
|
293 |
*/
|
294 |
'html' => null,
|
295 |
),
|
296 |
+
'data' => $data,
|
297 |
+
'attr' => $this->attr,
|
298 |
);
|
299 |
|
300 |
unset( $data );
|
301 |
|
302 |
if ( $this->callbacks['render'] ) {
|
303 |
+
ob_start();
|
304 |
+
|
305 |
+
$data = call_user_func_array( $this->callbacks['render'], array( $render_data, $this ) );
|
306 |
+
|
307 |
+
$html = ob_get_clean();
|
308 |
|
309 |
if ( empty( $data ) ) {
|
310 |
// fix if returned wrong data from callback
|
316 |
unset( $data );
|
317 |
}
|
318 |
|
319 |
+
echo '<form '. fw_attr_to_html( $render_data['attr'] ) .' >';
|
320 |
+
|
321 |
+
echo fw_html_tag('input', array(
|
322 |
+
'type' => 'hidden',
|
323 |
+
'name' => self::$id_input_name,
|
324 |
+
'value' => $this->id,
|
325 |
+
));
|
326 |
+
|
327 |
+
if ( $render_data['attr']['method'] == 'post' ) {
|
328 |
+
wp_nonce_field( 'submit_fwf', '_nonce_' . md5( $this->id ) );
|
329 |
+
}
|
330 |
+
|
331 |
+
if ( ! empty( $render_data['attr']['action'] ) && $render_data['attr']['method'] == 'get' ) {
|
332 |
+
/**
|
333 |
+
* Add query vars from the action attribute url to hidden inputs to not loose them
|
334 |
+
*/
|
335 |
+
|
336 |
+
parse_str( parse_url( $render_data['attr']['action'], PHP_URL_QUERY ), $query_vars );
|
337 |
+
|
338 |
+
if ( ! empty( $query_vars ) ) {
|
339 |
+
foreach ( $query_vars as $var_name => $var_value ) {
|
340 |
+
echo fw_html_tag('input', array(
|
341 |
+
'type' => 'hidden',
|
342 |
+
'name' => $var_name,
|
343 |
+
'value' => $var_value,
|
344 |
+
));
|
345 |
+
}
|
346 |
+
}
|
347 |
+
}
|
348 |
+
|
349 |
+
echo $html;
|
350 |
+
|
351 |
// In filter can be defined custom html for submit button
|
352 |
+
if ( isset( $render_data['submit']['html'] ) ) {
|
353 |
+
echo $render_data['submit']['html'];
|
354 |
+
} else {
|
355 |
+
echo fw_html_tag('input', array(
|
356 |
+
'type' => 'submit',
|
357 |
+
'value' => $render_data['submit']['value']
|
358 |
+
));
|
359 |
+
}
|
360 |
|
361 |
+
echo '</form>';
|
362 |
}
|
363 |
|
364 |
/**
|
framework/helpers/database.php
CHANGED
@@ -21,7 +21,7 @@
|
|
21 |
|
22 |
if ( is_null( $value ) ) {
|
23 |
/**
|
24 |
-
* Maybe the options was never saved or the given option id does not
|
25 |
* Extract the default values from the options array and try to find there the option id
|
26 |
*/
|
27 |
|
21 |
|
22 |
if ( is_null( $value ) ) {
|
23 |
/**
|
24 |
+
* Maybe the options was never saved or the given option id does not exist
|
25 |
* Extract the default values from the options array and try to find there the option id
|
26 |
*/
|
27 |
|
framework/includes/option-types.php
CHANGED
@@ -417,6 +417,10 @@ class FW_Option_Type_Checkboxes extends FW_Option_Type
|
|
417 |
unset($div_attr['name']);
|
418 |
unset($div_attr['value']);
|
419 |
|
|
|
|
|
|
|
|
|
420 |
$html = '<div '. fw_attr_to_html($div_attr) .'>';
|
421 |
|
422 |
$html .= '<input type="checkbox" name="'. esc_attr($option['attr']['name']) .'[]" value="" checked="checked" style="display: none">'.
|
@@ -480,6 +484,7 @@ class FW_Option_Type_Checkboxes extends FW_Option_Type
|
|
480 |
protected function _get_defaults()
|
481 |
{
|
482 |
return array(
|
|
|
483 |
'value' => array(),
|
484 |
'choices' => array()
|
485 |
);
|
@@ -514,6 +519,10 @@ class FW_Option_Type_Radio extends FW_Option_Type
|
|
514 |
unset($div_attr['name']);
|
515 |
unset($div_attr['value']);
|
516 |
|
|
|
|
|
|
|
|
|
517 |
$html = '<div '. fw_attr_to_html($div_attr) .'>';
|
518 |
|
519 |
foreach ($option['choices'] as $value => $text) {
|
@@ -570,6 +579,7 @@ class FW_Option_Type_Radio extends FW_Option_Type
|
|
570 |
protected function _get_defaults()
|
571 |
{
|
572 |
return array(
|
|
|
573 |
'value' => '',
|
574 |
'choices' => array()
|
575 |
);
|
417 |
unset($div_attr['name']);
|
418 |
unset($div_attr['value']);
|
419 |
|
420 |
+
if ( $option['inline'] ) {
|
421 |
+
$div_attr['class'] .= ' fw-option-type-checkboxes-inline fw-clearfix';
|
422 |
+
}
|
423 |
+
|
424 |
$html = '<div '. fw_attr_to_html($div_attr) .'>';
|
425 |
|
426 |
$html .= '<input type="checkbox" name="'. esc_attr($option['attr']['name']) .'[]" value="" checked="checked" style="display: none">'.
|
484 |
protected function _get_defaults()
|
485 |
{
|
486 |
return array(
|
487 |
+
'inline' => false, // Set this parameter to true in case you want all checkbox inputs to be rendered inline
|
488 |
'value' => array(),
|
489 |
'choices' => array()
|
490 |
);
|
519 |
unset($div_attr['name']);
|
520 |
unset($div_attr['value']);
|
521 |
|
522 |
+
if ( $option['inline'] ) {
|
523 |
+
$div_attr['class'] .= ' fw-option-type-radio-inline fw-clearfix';
|
524 |
+
}
|
525 |
+
|
526 |
$html = '<div '. fw_attr_to_html($div_attr) .'>';
|
527 |
|
528 |
foreach ($option['choices'] as $value => $text) {
|
579 |
protected function _get_defaults()
|
580 |
{
|
581 |
return array(
|
582 |
+
'inline' => false, // Set this parameter to true in case you want all radio inputs to be rendered inline
|
583 |
'value' => '',
|
584 |
'choices' => array()
|
585 |
);
|
framework/includes/option-types/range-slider/class-fw-option-type-range-slider.php
CHANGED
@@ -17,14 +17,14 @@ class FW_Option_Type_Range_Slider extends FW_Option_Type {
|
|
17 |
wp_enqueue_style(
|
18 |
'fw-option-' . $this->get_type() . 'ion-range-slider',
|
19 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/libs/ion-range-slider/ion.rangeSlider.css' ),
|
20 |
-
|
21 |
);
|
22 |
|
23 |
wp_enqueue_script(
|
24 |
'fw-option-' . $this->get_type() . 'ion-range-slider',
|
25 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/libs/ion-range-slider/ion.rangeSlider.min.js' ),
|
26 |
array( 'jquery', 'fw-moment' ),
|
27 |
-
|
28 |
);
|
29 |
}
|
30 |
|
@@ -37,7 +37,7 @@ class FW_Option_Type_Range_Slider extends FW_Option_Type {
|
|
37 |
wp_enqueue_script(
|
38 |
'fw-option-' . $this->get_type(),
|
39 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/js/scripts.js' ),
|
40 |
-
array( 'jquery', 'underscore', 'fw-option-' . $this->get_type() . 'ion-range-slider' ),
|
41 |
fw()->manifest->get_version()
|
42 |
);
|
43 |
}
|
17 |
wp_enqueue_style(
|
18 |
'fw-option-' . $this->get_type() . 'ion-range-slider',
|
19 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/libs/ion-range-slider/ion.rangeSlider.css' ),
|
20 |
+
'2.0.3'
|
21 |
);
|
22 |
|
23 |
wp_enqueue_script(
|
24 |
'fw-option-' . $this->get_type() . 'ion-range-slider',
|
25 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/libs/ion-range-slider/ion.rangeSlider.min.js' ),
|
26 |
array( 'jquery', 'fw-moment' ),
|
27 |
+
'2.0.3'
|
28 |
);
|
29 |
}
|
30 |
|
37 |
wp_enqueue_script(
|
38 |
'fw-option-' . $this->get_type(),
|
39 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/js/scripts.js' ),
|
40 |
+
array( 'jquery', 'fw-events', 'underscore', 'fw-option-' . $this->get_type() . 'ion-range-slider' ),
|
41 |
fw()->manifest->get_version()
|
42 |
);
|
43 |
}
|
framework/includes/option-types/range-slider/static/js/scripts.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
(function (
|
2 |
var defaults = {
|
3 |
onChange: function (data) {
|
4 |
data.input.next('.fw-irs-range-slider-hidden-input').val(data.from + ';' + data.to);
|
@@ -19,4 +19,4 @@
|
|
19 |
});
|
20 |
});
|
21 |
|
22 |
-
})(jQuery);
|
1 |
+
(function ($, fwEvents) {
|
2 |
var defaults = {
|
3 |
onChange: function (data) {
|
4 |
data.input.next('.fw-irs-range-slider-hidden-input').val(data.from + ';' + data.to);
|
19 |
});
|
20 |
});
|
21 |
|
22 |
+
})(jQuery, fwEvents);
|
framework/includes/option-types/slider/class-fw-option-type-slider.php
CHANGED
@@ -17,14 +17,14 @@ class FW_Option_Type_Slider extends FW_Option_Type {
|
|
17 |
wp_enqueue_style(
|
18 |
'fw-option-' . $this->get_type() . 'ion-range-slider',
|
19 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/libs/ion-range-slider/ion.rangeSlider.css' ),
|
20 |
-
|
21 |
);
|
22 |
|
23 |
wp_enqueue_script(
|
24 |
'fw-option-' . $this->get_type() . 'ion-range-slider',
|
25 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/libs/ion-range-slider/ion.rangeSlider.min.js' ),
|
26 |
array( 'jquery', 'fw-moment' ),
|
27 |
-
|
28 |
);
|
29 |
}
|
30 |
|
@@ -37,7 +37,7 @@ class FW_Option_Type_Slider extends FW_Option_Type {
|
|
37 |
wp_enqueue_script(
|
38 |
'fw-option-' . $this->get_type(),
|
39 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/js/scripts.js' ),
|
40 |
-
array( 'jquery', 'underscore', 'fw-option-' . $this->get_type() . 'ion-range-slider' ),
|
41 |
fw()->manifest->get_version()
|
42 |
);
|
43 |
}
|
17 |
wp_enqueue_style(
|
18 |
'fw-option-' . $this->get_type() . 'ion-range-slider',
|
19 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/libs/ion-range-slider/ion.rangeSlider.css' ),
|
20 |
+
'2.0.3'
|
21 |
);
|
22 |
|
23 |
wp_enqueue_script(
|
24 |
'fw-option-' . $this->get_type() . 'ion-range-slider',
|
25 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/libs/ion-range-slider/ion.rangeSlider.min.js' ),
|
26 |
array( 'jquery', 'fw-moment' ),
|
27 |
+
'2.0.3'
|
28 |
);
|
29 |
}
|
30 |
|
37 |
wp_enqueue_script(
|
38 |
'fw-option-' . $this->get_type(),
|
39 |
fw_get_framework_directory_uri( '/includes/option-types/' . $this->get_type() . '/static/js/scripts.js' ),
|
40 |
+
array( 'jquery', 'fw-events', 'underscore', 'fw-option-' . $this->get_type() . 'ion-range-slider' ),
|
41 |
fw()->manifest->get_version()
|
42 |
);
|
43 |
}
|
framework/includes/option-types/slider/static/js/scripts.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
(function (
|
2 |
var defaults = {
|
3 |
onChange: function (data) {
|
4 |
data.input.next('.fw-irs-range-slider-hidden-input').val(data.from + ';' + data.to);
|
@@ -18,4 +18,4 @@
|
|
18 |
});
|
19 |
});
|
20 |
|
21 |
-
})(jQuery);
|
1 |
+
(function ($, fwEvents) {
|
2 |
var defaults = {
|
3 |
onChange: function (data) {
|
4 |
data.input.next('.fw-irs-range-slider-hidden-input').val(data.from + ';' + data.to);
|
18 |
});
|
19 |
});
|
20 |
|
21 |
+
})(jQuery, fwEvents);
|
framework/includes/option-types/typography/class-fw-option-type-typography.php
CHANGED
@@ -20,13 +20,13 @@ class FW_Option_Type_Typography extends FW_Option_Type
|
|
20 |
{
|
21 |
if($this->fonts === null) {
|
22 |
$this->fonts = array(
|
23 |
-
'standard' => array(
|
24 |
"Arial",
|
25 |
"Verdana",
|
26 |
"Trebuchet",
|
27 |
"Georgia",
|
28 |
"Times New Roman",
|
29 |
-
"
|
30 |
"Palatino",
|
31 |
"Helvetica",
|
32 |
"Calibri",
|
@@ -37,7 +37,7 @@ class FW_Option_Type_Typography extends FW_Option_Type
|
|
37 |
"Geneva",
|
38 |
"Impact",
|
39 |
"Serif"
|
40 |
-
),
|
41 |
'google' => fw_get_google_fonts()
|
42 |
);
|
43 |
}
|
20 |
{
|
21 |
if($this->fonts === null) {
|
22 |
$this->fonts = array(
|
23 |
+
'standard' => apply_filters('fw_option_type_typography_standard_fonts', array(
|
24 |
"Arial",
|
25 |
"Verdana",
|
26 |
"Trebuchet",
|
27 |
"Georgia",
|
28 |
"Times New Roman",
|
29 |
+
"Tahoma",
|
30 |
"Palatino",
|
31 |
"Helvetica",
|
32 |
"Calibri",
|
37 |
"Geneva",
|
38 |
"Impact",
|
39 |
"Serif"
|
40 |
+
)),
|
41 |
'google' => fw_get_google_fonts()
|
42 |
);
|
43 |
}
|
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.20';
|
framework/static/css/option-types.css
CHANGED
@@ -78,6 +78,20 @@ textarea.fw-option-type-textarea {
|
|
78 |
width: 100px !important;
|
79 |
}
|
80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
|
82 |
/* modal fixes */
|
83 |
|
78 |
width: 100px !important;
|
79 |
}
|
80 |
|
81 |
+
/* Radio amd Checkboxes inline */
|
82 |
+
|
83 |
+
.fw-option-type-checkboxes.fw-option-type-checkboxes-inline > div,
|
84 |
+
.fw-option-type-radio.fw-option-type-radio-inline > div {
|
85 |
+
float: left;
|
86 |
+
margin-right: 10px;
|
87 |
+
}
|
88 |
+
|
89 |
+
.fw-option-type-checkboxes.fw-option-type-checkboxes-inline > div:last-child,
|
90 |
+
.fw-option-type-radio.fw-option-type-radio-inline > div:last-child {
|
91 |
+
margin-right: 0;
|
92 |
+
}
|
93 |
+
|
94 |
+
/* end: Radio amd Checkboxes inline */
|
95 |
|
96 |
/* modal fixes */
|
97 |
|
framework/static/js/backend-options.js
CHANGED
@@ -74,7 +74,7 @@ jQuery(document).ready(function($){
|
|
74 |
});
|
75 |
|
76 |
setTimeout(function(){
|
77 |
-
$elements.fadeTo('fast', 1);
|
78 |
}, 50);
|
79 |
}
|
80 |
});
|
74 |
});
|
75 |
|
76 |
setTimeout(function(){
|
77 |
+
$elements.fadeTo('fast', 1, function(){ $(this).css('opacity', ''); });
|
78 |
}, 50);
|
79 |
}
|
80 |
});
|
framework/views/backend-option-design-default.php
CHANGED
@@ -6,11 +6,13 @@
|
|
6 |
*/
|
7 |
|
8 |
{
|
9 |
-
if (!isset($option['label']))
|
10 |
-
$option['label'] = $id;
|
|
|
11 |
|
12 |
-
if (!isset($option['desc']))
|
13 |
$option['desc'] = '';
|
|
|
14 |
}
|
15 |
|
16 |
{
|
6 |
*/
|
7 |
|
8 |
{
|
9 |
+
if (!isset($option['label'])) {
|
10 |
+
$option['label'] = fw_id_to_title($id);
|
11 |
+
}
|
12 |
|
13 |
+
if (!isset($option['desc'])) {
|
14 |
$option['desc'] = '';
|
15 |
+
}
|
16 |
}
|
17 |
|
18 |
{
|
framework/views/backend-option-design-taxonomy.php
CHANGED
@@ -6,11 +6,13 @@
|
|
6 |
*/
|
7 |
|
8 |
{
|
9 |
-
if (!isset($option['label']))
|
10 |
-
$option['label'] = $id;
|
|
|
11 |
|
12 |
-
if (!isset($option['desc']))
|
13 |
$option['desc'] = '';
|
|
|
14 |
}
|
15 |
|
16 |
{
|
6 |
*/
|
7 |
|
8 |
{
|
9 |
+
if (!isset($option['label'])) {
|
10 |
+
$option['label'] = fw_id_to_title($id);
|
11 |
+
}
|
12 |
|
13 |
+
if (!isset($option['desc'])) {
|
14 |
$option['desc'] = '';
|
15 |
+
}
|
16 |
}
|
17 |
|
18 |
{
|
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.1
|
6 |
-
Stable tag: 2.1.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -86,6 +86,14 @@ Yes; Unyson will work with any theme.
|
|
86 |
|
87 |
== Changelog ==
|
88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
= 2.1.19 =
|
90 |
* Option type `icon`: Updated Font Awesome to 4.3.0
|
91 |
* Option type `typography` fixes [#195](https://github.com/ThemeFuse/Unyson/issues/195)
|
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.1
|
6 |
+
Stable tag: 2.1.20
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
86 |
|
87 |
== Changelog ==
|
88 |
|
89 |
+
= 2.1.20 =
|
90 |
+
* Added warning on Theme Settings reset [^](http://static.md/0fcf01628eddab75fdbedb3a24784db3.png)
|
91 |
+
* `FW_Form`: Form attributes can be changed in the render method
|
92 |
+
* Option type `slider` and `range-slider` fixes [#210](https://github.com/ThemeFuse/Unyson/issues/210)
|
93 |
+
* Option type `typography`: Added filter on standard fonts [#212](https://github.com/ThemeFuse/Unyson/issues/212)
|
94 |
+
* Option type `radio` and `checkboxes`: Added `inline` parameter [#216](https://github.com/ThemeFuse/Unyson/issues/216)
|
95 |
+
* Minor internal fixes
|
96 |
+
|
97 |
= 2.1.19 =
|
98 |
* Option type `icon`: Updated Font Awesome to 4.3.0
|
99 |
* Option type `typography` fixes [#195](https://github.com/ThemeFuse/Unyson/issues/195)
|
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.20
|
7 |
* Author: ThemeFuse
|
8 |
* Author URI: http://themefuse.com
|
9 |
* License: GPL2+
|