Version Description
- Bug Fix: On some servers the path contains a trailing slash http://bit.ly/123amVu . Make sure to remove it.
- Bug Fix: On extension install, required extensions that are already installed were not added for activation.
Download this release
Release Info
Developer | Unyson |
Plugin | Unyson |
Version | 2.0.1 |
Comparing to | |
See all releases |
Code changes from version 2.0.0 to 2.0.1
- framework/bootstrap-helpers.php +1 -1
- framework/core/Fw.php +1 -1
- framework/core/class-fw-manifest.php +1 -1
- framework/core/components/extensions/manager/available-extensions.php +1 -1
- framework/core/components/extensions/manager/class--fw-extensions-manager.php +40 -16
- framework/core/components/extensions/manager/views/extension-page-header.php +1 -1
- framework/core/components/theme.php +1 -1
- framework/extensions/update/class-fw-extension-update.php +12 -12
- framework/extensions/update/extensions/github-update/class-fw-extension-github-update.php +17 -7
- framework/helpers/class-fw-wp-filesystem.php +4 -4
- framework/includes/option-types/switch/static/adaptive-switch/styles.css +4 -1
- languages/index.html +0 -0
- readme.txt +5 -1
- unyson.php +10 -2
framework/bootstrap-helpers.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
* Convert to Unix style directory separators
|
9 |
*/
|
10 |
function fw_fix_path($path) {
|
11 |
-
return str_replace(array('//', '\\'), array('/', '/'), $path);
|
12 |
}
|
13 |
|
14 |
/** Child theme related functions */
|
8 |
* Convert to Unix style directory separators
|
9 |
*/
|
10 |
function fw_fix_path($path) {
|
11 |
+
return untrailingslashit( str_replace(array('//', '\\'), array('/', '/'), $path) );
|
12 |
}
|
13 |
|
14 |
/** Child theme related functions */
|
framework/core/Fw.php
CHANGED
@@ -68,7 +68,7 @@ final class _Fw
|
|
68 |
if (is_admin() && !$this->manifest->check_requirements()) {
|
69 |
FW_Flash_Messages::add(
|
70 |
'fw_requirements',
|
71 |
-
__('Framework requirements not met:
|
72 |
'warning'
|
73 |
);
|
74 |
}
|
68 |
if (is_admin() && !$this->manifest->check_requirements()) {
|
69 |
FW_Flash_Messages::add(
|
70 |
'fw_requirements',
|
71 |
+
__('Framework requirements not met:', 'fw') .' '. $this->manifest->get_not_met_requirement_text(),
|
72 |
'warning'
|
73 |
);
|
74 |
}
|
framework/core/class-fw-manifest.php
CHANGED
@@ -454,7 +454,7 @@ class FW_Extension_Manifest extends FW_Manifest
|
|
454 |
|
455 |
$this->manifest = array_merge(array(
|
456 |
/**
|
457 |
-
* @type bool Display on the Extensions page
|
458 |
*/
|
459 |
'display' => false,
|
460 |
/**
|
454 |
|
455 |
$this->manifest = array_merge(array(
|
456 |
/**
|
457 |
+
* @type bool Display on the Extensions page or it's a hidden extension
|
458 |
*/
|
459 |
'display' => false,
|
460 |
/**
|
framework/core/components/extensions/manager/available-extensions.php
CHANGED
@@ -82,7 +82,7 @@ $extensions = array(
|
|
82 |
'display' => true,
|
83 |
'parent' => 'shortcodes',
|
84 |
'name' => __( 'Visual Page Builder', 'fw' ),
|
85 |
-
'description' => __( '
|
86 |
'thumbnail' => $thumbnails_uri . '/page-builder.jpg',
|
87 |
'download' => array(
|
88 |
'github' => array(
|
82 |
'display' => true,
|
83 |
'parent' => 'shortcodes',
|
84 |
'name' => __( 'Visual Page Builder', 'fw' ),
|
85 |
+
'description' => __( "Let's you easily build countless pages with the help of the drag and drop visual page builder that comes with a lot of already created shortcodes.", 'fw' ),
|
86 |
'thumbnail' => $thumbnails_uri . '/page-builder.jpg',
|
87 |
'download' => array(
|
88 |
'github' => array(
|
framework/core/components/extensions/manager/class--fw-extensions-manager.php
CHANGED
@@ -724,12 +724,17 @@ final class _FW_Extensions_Manager
|
|
724 |
$activate_extensions = array();
|
725 |
|
726 |
do {
|
|
|
|
|
|
|
727 |
foreach ($install_data['parents'] as $extension_name => $parent_extensions) {
|
728 |
$current_extension_path = fw_get_framework_directory();
|
729 |
|
730 |
foreach ($parent_extensions as $parent_extension_name) {
|
731 |
$current_extension_path .= '/extensions/'. $parent_extension_name;
|
732 |
|
|
|
|
|
733 |
if (isset($installed_extensions[$parent_extension_name])) {
|
734 |
// skip already installed extensions
|
735 |
continue;
|
@@ -819,6 +824,8 @@ final class _FW_Extensions_Manager
|
|
819 |
}
|
820 |
|
821 |
foreach ($extension_required_extensions as $required_extension_name => $required_extension_data) {
|
|
|
|
|
822 |
if (isset($installed_extensions[$required_extension_name])) {
|
823 |
continue;
|
824 |
}
|
@@ -1258,7 +1265,7 @@ final class _FW_Extensions_Manager
|
|
1258 |
|
1259 |
foreach (explode(',', $_GET['extension']) as $extension_name) {
|
1260 |
if (!isset($installed_extensions[$extension_name])) {
|
1261 |
-
$error = sprintf(__('Extension "%s" does not exist.'), $this->get_extension_title($extension_name));
|
1262 |
break 2;
|
1263 |
}
|
1264 |
|
@@ -1397,7 +1404,7 @@ final class _FW_Extensions_Manager
|
|
1397 |
|
1398 |
foreach (explode(',', $_GET['extension']) as $extension_name) {
|
1399 |
if (!isset($installed_extensions[$extension_name])) {
|
1400 |
-
$error = sprintf(__('Extension "%s" does not exist.'), $this->get_extension_title($extension_name));
|
1401 |
break 2;
|
1402 |
}
|
1403 |
|
@@ -1629,15 +1636,23 @@ final class _FW_Extensions_Manager
|
|
1629 |
__('Github error:', 'fw') .' '. $json_response['message']
|
1630 |
);
|
1631 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1632 |
}
|
1633 |
-
|
1634 |
-
return new WP_Error(
|
1635 |
-
$wp_error_id,
|
1636 |
-
sprintf(
|
1637 |
-
__( 'Failed to access Github repository "%s" releases. (Response code: %d)', 'fw' ),
|
1638 |
-
$source_data['user_repo'], $response_code
|
1639 |
-
)
|
1640 |
-
);
|
1641 |
}
|
1642 |
|
1643 |
$releases = json_decode($response['body'], true);
|
@@ -1673,12 +1688,21 @@ final class _FW_Extensions_Manager
|
|
1673 |
unset($http);
|
1674 |
|
1675 |
if (($response_code = wp_remote_retrieve_response_code($response)) !== 200) {
|
1676 |
-
|
1677 |
-
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
1681 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1682 |
}
|
1683 |
|
1684 |
$zip_path = $wp_fs_tmp_dir .'/temp.zip';
|
724 |
$activate_extensions = array();
|
725 |
|
726 |
do {
|
727 |
+
/**
|
728 |
+
* Install parent extensions and the extension
|
729 |
+
*/
|
730 |
foreach ($install_data['parents'] as $extension_name => $parent_extensions) {
|
731 |
$current_extension_path = fw_get_framework_directory();
|
732 |
|
733 |
foreach ($parent_extensions as $parent_extension_name) {
|
734 |
$current_extension_path .= '/extensions/'. $parent_extension_name;
|
735 |
|
736 |
+
$activate_extensions[$parent_extension_name] = array();
|
737 |
+
|
738 |
if (isset($installed_extensions[$parent_extension_name])) {
|
739 |
// skip already installed extensions
|
740 |
continue;
|
824 |
}
|
825 |
|
826 |
foreach ($extension_required_extensions as $required_extension_name => $required_extension_data) {
|
827 |
+
$activate_extensions[$required_extension_name] = array();
|
828 |
+
|
829 |
if (isset($installed_extensions[$required_extension_name])) {
|
830 |
continue;
|
831 |
}
|
1265 |
|
1266 |
foreach (explode(',', $_GET['extension']) as $extension_name) {
|
1267 |
if (!isset($installed_extensions[$extension_name])) {
|
1268 |
+
$error = sprintf(__('Extension "%s" does not exist.', 'fw'), $this->get_extension_title($extension_name));
|
1269 |
break 2;
|
1270 |
}
|
1271 |
|
1404 |
|
1405 |
foreach (explode(',', $_GET['extension']) as $extension_name) {
|
1406 |
if (!isset($installed_extensions[$extension_name])) {
|
1407 |
+
$error = sprintf(__( 'Extension "%s" does not exist.' , 'fw' ), $this->get_extension_title($extension_name));
|
1408 |
break 2;
|
1409 |
}
|
1410 |
|
1636 |
__('Github error:', 'fw') .' '. $json_response['message']
|
1637 |
);
|
1638 |
}
|
1639 |
+
} elseif ($response_code) {
|
1640 |
+
return new WP_Error(
|
1641 |
+
$wp_error_id,
|
1642 |
+
sprintf(
|
1643 |
+
__( 'Failed to access Github repository "%s" releases. (Response code: %d)', 'fw' ),
|
1644 |
+
$source_data['user_repo'], $response_code
|
1645 |
+
)
|
1646 |
+
);
|
1647 |
+
} else {
|
1648 |
+
return new WP_Error(
|
1649 |
+
$wp_error_id,
|
1650 |
+
sprintf(
|
1651 |
+
__( 'Failed to access Github repository "%s" releases.', 'fw' ),
|
1652 |
+
$source_data['user_repo']
|
1653 |
+
)
|
1654 |
+
);
|
1655 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1656 |
}
|
1657 |
|
1658 |
$releases = json_decode($response['body'], true);
|
1688 |
unset($http);
|
1689 |
|
1690 |
if (($response_code = wp_remote_retrieve_response_code($response)) !== 200) {
|
1691 |
+
if ($response_code) {
|
1692 |
+
return new WP_Error(
|
1693 |
+
$wp_error_id,
|
1694 |
+
sprintf( __( 'Cannot download the "%s" extension zip. (Response code: %d)', 'fw' ),
|
1695 |
+
$this->get_extension_title( $extension_name ), $response_code
|
1696 |
+
)
|
1697 |
+
);
|
1698 |
+
} else {
|
1699 |
+
return new WP_Error(
|
1700 |
+
$wp_error_id,
|
1701 |
+
sprintf( __( 'Cannot download the "%s" extension zip.', 'fw' ),
|
1702 |
+
$this->get_extension_title( $extension_name )
|
1703 |
+
)
|
1704 |
+
);
|
1705 |
+
}
|
1706 |
}
|
1707 |
|
1708 |
$zip_path = $wp_fs_tmp_dir .'/temp.zip';
|
framework/core/components/extensions/manager/views/extension-page-header.php
CHANGED
@@ -38,7 +38,7 @@
|
|
38 |
echo sprintf(__('%s Install Instructions', 'fw'), $extension_title);
|
39 |
break;
|
40 |
default:
|
41 |
-
echo __('Unknown tab:
|
42 |
}
|
43 |
?>
|
44 |
</h2>
|
38 |
echo sprintf(__('%s Install Instructions', 'fw'), $extension_title);
|
39 |
break;
|
40 |
default:
|
41 |
+
echo __('Unknown tab:', 'fw') . ' ' . fw_htmlspecialchars($tab);
|
42 |
}
|
43 |
?>
|
44 |
</h2>
|
framework/core/components/theme.php
CHANGED
@@ -280,7 +280,7 @@ final class _FW_Component_Theme
|
|
280 |
if (is_admin() && !fw()->theme->manifest->check_requirements()) {
|
281 |
FW_Flash_Messages::add(
|
282 |
'fw_theme_requirements',
|
283 |
-
__('Theme requirements not met:
|
284 |
'warning'
|
285 |
);
|
286 |
}
|
280 |
if (is_admin() && !fw()->theme->manifest->check_requirements()) {
|
281 |
FW_Flash_Messages::add(
|
282 |
'fw_theme_requirements',
|
283 |
+
__('Theme requirements not met:', 'fw') .' '. fw()->theme->manifest->get_not_met_requirement_text(),
|
284 |
'warning'
|
285 |
);
|
286 |
}
|
framework/extensions/update/class-fw-extension-update.php
CHANGED
@@ -279,14 +279,14 @@ class FW_Extension_Update extends FW_Extension
|
|
279 |
|
280 |
if ($wp_filesystem->exists($file_path)) {
|
281 |
if (!$wp_filesystem->delete($file_path)) {
|
282 |
-
trigger_error(__('Cannot delete:
|
283 |
}
|
284 |
}
|
285 |
|
286 |
if ($enable) {
|
287 |
// Create maintenance file to signal that we are upgrading
|
288 |
if (!$wp_filesystem->put_contents($file_path, '<?php $upgrading = ' . time() . '; ?>', FS_CHMOD_FILE)) {
|
289 |
-
trigger_error(__('Cannot create:
|
290 |
}
|
291 |
}
|
292 |
}
|
@@ -364,13 +364,13 @@ class FW_Extension_Update extends FW_Extension
|
|
364 |
if ($wp_filesystem->exists($tmp_download_dir)) {
|
365 |
// just in case it already exists, clear everything, it may contain old files
|
366 |
if (!$wp_filesystem->rmdir($tmp_download_dir, true)) {
|
367 |
-
$error = __('Cannot remove old temporary directory:
|
368 |
break;
|
369 |
}
|
370 |
}
|
371 |
|
372 |
if (!FW_WP_Filesystem::mkdir_recursive($tmp_download_dir)) {
|
373 |
-
$error = __('Cannot create directory:
|
374 |
break;
|
375 |
}
|
376 |
}
|
@@ -396,7 +396,7 @@ class FW_Extension_Update extends FW_Extension
|
|
396 |
{
|
397 |
$dir_files = $wp_filesystem->dirlist($wp_fs_destination_dir, true);
|
398 |
if ($dir_files === false) {
|
399 |
-
$error =__('Cannot access directory:
|
400 |
break;
|
401 |
}
|
402 |
|
@@ -415,7 +415,7 @@ class FW_Extension_Update extends FW_Extension
|
|
415 |
$file_path = $wp_fs_destination_dir .'/'. $file['name'];
|
416 |
|
417 |
if (!$wp_filesystem->delete($file_path, true, $file['type'])) {
|
418 |
-
$error = __('Cannot remove:
|
419 |
break 2;
|
420 |
}
|
421 |
}
|
@@ -425,7 +425,7 @@ class FW_Extension_Update extends FW_Extension
|
|
425 |
{
|
426 |
$dir_files = $wp_filesystem->dirlist($downloaded_dir, true);
|
427 |
if ($dir_files === false) {
|
428 |
-
$error = __('Cannot access directory:
|
429 |
break;
|
430 |
}
|
431 |
|
@@ -525,7 +525,7 @@ class FW_Extension_Update extends FW_Extension
|
|
525 |
$source_ext_dirs = $wp_filesystem->dirlist($source_dir, true);
|
526 |
if ($source_ext_dirs === false) {
|
527 |
return new WP_Error($wp_error_id,
|
528 |
-
__('Cannot access directory:
|
529 |
);
|
530 |
}
|
531 |
|
@@ -548,7 +548,7 @@ class FW_Extension_Update extends FW_Extension
|
|
548 |
if (!$wp_filesystem->exists($destination_extension_dir)) {
|
549 |
if (!FW_WP_Filesystem::mkdir_recursive($destination_extension_dir)) {
|
550 |
return new WP_Error($wp_error_id,
|
551 |
-
__('Cannot create directory:
|
552 |
);
|
553 |
}
|
554 |
}
|
@@ -558,7 +558,7 @@ class FW_Extension_Update extends FW_Extension
|
|
558 |
$dest_ext_files = $wp_filesystem->dirlist($destination_extension_dir, true);
|
559 |
if ($dest_ext_files === false) {
|
560 |
return new WP_Error($wp_error_id,
|
561 |
-
__('Cannot access directory:
|
562 |
);
|
563 |
}
|
564 |
|
@@ -578,7 +578,7 @@ class FW_Extension_Update extends FW_Extension
|
|
578 |
|
579 |
if (!$wp_filesystem->delete($dest_ext_file_path, true, $dest_ext_file['type'])) {
|
580 |
return new WP_Error($wp_error_id,
|
581 |
-
__('Cannot delete:
|
582 |
);
|
583 |
}
|
584 |
}
|
@@ -590,7 +590,7 @@ class FW_Extension_Update extends FW_Extension
|
|
590 |
$source_ext_files = $wp_filesystem->dirlist($source_extension_dir, true);
|
591 |
if ($source_ext_files === false) {
|
592 |
return new WP_Error($wp_error_id,
|
593 |
-
__('Cannot access directory:
|
594 |
);
|
595 |
}
|
596 |
|
279 |
|
280 |
if ($wp_filesystem->exists($file_path)) {
|
281 |
if (!$wp_filesystem->delete($file_path)) {
|
282 |
+
trigger_error(__('Cannot delete:', 'fw') . ' ' . $file_path, E_USER_WARNING);
|
283 |
}
|
284 |
}
|
285 |
|
286 |
if ($enable) {
|
287 |
// Create maintenance file to signal that we are upgrading
|
288 |
if (!$wp_filesystem->put_contents($file_path, '<?php $upgrading = ' . time() . '; ?>', FS_CHMOD_FILE)) {
|
289 |
+
trigger_error(__('Cannot create:', 'fw') . ' ' . $file_path, E_USER_WARNING);
|
290 |
}
|
291 |
}
|
292 |
}
|
364 |
if ($wp_filesystem->exists($tmp_download_dir)) {
|
365 |
// just in case it already exists, clear everything, it may contain old files
|
366 |
if (!$wp_filesystem->rmdir($tmp_download_dir, true)) {
|
367 |
+
$error = __('Cannot remove old temporary directory:', 'fw') . ' ' . $tmp_download_dir;
|
368 |
break;
|
369 |
}
|
370 |
}
|
371 |
|
372 |
if (!FW_WP_Filesystem::mkdir_recursive($tmp_download_dir)) {
|
373 |
+
$error = __('Cannot create directory:', 'fw') . ' ' . $tmp_download_dir;
|
374 |
break;
|
375 |
}
|
376 |
}
|
396 |
{
|
397 |
$dir_files = $wp_filesystem->dirlist($wp_fs_destination_dir, true);
|
398 |
if ($dir_files === false) {
|
399 |
+
$error =__('Cannot access directory:', 'fw') . ' ' . $wp_fs_destination_dir;
|
400 |
break;
|
401 |
}
|
402 |
|
415 |
$file_path = $wp_fs_destination_dir .'/'. $file['name'];
|
416 |
|
417 |
if (!$wp_filesystem->delete($file_path, true, $file['type'])) {
|
418 |
+
$error = __('Cannot remove:', 'fw') . ' ' . $file_path;
|
419 |
break 2;
|
420 |
}
|
421 |
}
|
425 |
{
|
426 |
$dir_files = $wp_filesystem->dirlist($downloaded_dir, true);
|
427 |
if ($dir_files === false) {
|
428 |
+
$error = __('Cannot access directory:', 'fw') . ' ' . $downloaded_dir;
|
429 |
break;
|
430 |
}
|
431 |
|
525 |
$source_ext_dirs = $wp_filesystem->dirlist($source_dir, true);
|
526 |
if ($source_ext_dirs === false) {
|
527 |
return new WP_Error($wp_error_id,
|
528 |
+
__('Cannot access directory:', 'fw') . ' ' . $source_dir
|
529 |
);
|
530 |
}
|
531 |
|
548 |
if (!$wp_filesystem->exists($destination_extension_dir)) {
|
549 |
if (!FW_WP_Filesystem::mkdir_recursive($destination_extension_dir)) {
|
550 |
return new WP_Error($wp_error_id,
|
551 |
+
__('Cannot create directory:', 'fw') . ' ' . $destination_extension_dir
|
552 |
);
|
553 |
}
|
554 |
}
|
558 |
$dest_ext_files = $wp_filesystem->dirlist($destination_extension_dir, true);
|
559 |
if ($dest_ext_files === false) {
|
560 |
return new WP_Error($wp_error_id,
|
561 |
+
__('Cannot access directory:', 'fw') . ' ' . $destination_extension_dir
|
562 |
);
|
563 |
}
|
564 |
|
578 |
|
579 |
if (!$wp_filesystem->delete($dest_ext_file_path, true, $dest_ext_file['type'])) {
|
580 |
return new WP_Error($wp_error_id,
|
581 |
+
__('Cannot delete:', 'fw') . ' ' . $dest_ext_file_path
|
582 |
);
|
583 |
}
|
584 |
}
|
590 |
$source_ext_files = $wp_filesystem->dirlist($source_extension_dir, true);
|
591 |
if ($source_ext_files === false) {
|
592 |
return new WP_Error($wp_error_id,
|
593 |
+
__('Cannot access directory:', 'fw') . ' ' . $source_extension_dir
|
594 |
);
|
595 |
}
|
596 |
|
framework/extensions/update/extensions/github-update/class-fw-extension-github-update.php
CHANGED
@@ -187,13 +187,23 @@ class FW_Extension_Github_Update extends FW_Ext_Update_Service
|
|
187 |
}
|
188 |
}
|
189 |
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
}
|
198 |
|
199 |
$releases = json_decode($response['body'], true);
|
187 |
}
|
188 |
}
|
189 |
|
190 |
+
if ($response_code) {
|
191 |
+
return new WP_Error(
|
192 |
+
'fw_ext_update_github_download_releases_failed',
|
193 |
+
sprintf(
|
194 |
+
__( 'Failed to access Github repository "%s" releases. (Response code: %d)', 'fw' ),
|
195 |
+
$user_slash_repo, $response_code
|
196 |
+
)
|
197 |
+
);
|
198 |
+
} else {
|
199 |
+
return new WP_Error(
|
200 |
+
'fw_ext_update_github_download_releases_failed',
|
201 |
+
sprintf(
|
202 |
+
__( 'Failed to access Github repository "%s" releases.', 'fw' ),
|
203 |
+
$user_slash_repo
|
204 |
+
)
|
205 |
+
);
|
206 |
+
}
|
207 |
}
|
208 |
|
209 |
$releases = json_decode($response['body'], true);
|
framework/helpers/class-fw-wp-filesystem.php
CHANGED
@@ -92,8 +92,8 @@ class FW_WP_Filesystem
|
|
92 |
|
93 |
$path = fw_fix_path($path);
|
94 |
|
95 |
-
$real_abspath =
|
96 |
-
$wp_filesystem_abspath =
|
97 |
$relative_path = preg_replace('/^'. preg_quote($real_abspath, '/') .'/', '', $path);
|
98 |
|
99 |
return $wp_filesystem_abspath . $relative_path;
|
@@ -114,8 +114,8 @@ class FW_WP_Filesystem
|
|
114 |
|
115 |
$wp_filesystem_path = fw_fix_path($wp_filesystem_path);
|
116 |
|
117 |
-
$real_abspath =
|
118 |
-
$wp_filesystem_abspath =
|
119 |
$relative_path = preg_replace('/^'. preg_quote($wp_filesystem_abspath, '/') .'/', '', $wp_filesystem_path);
|
120 |
|
121 |
return $real_abspath . $relative_path;
|
92 |
|
93 |
$path = fw_fix_path($path);
|
94 |
|
95 |
+
$real_abspath = fw_fix_path(ABSPATH);
|
96 |
+
$wp_filesystem_abspath = fw_fix_path($wp_filesystem->abspath());
|
97 |
$relative_path = preg_replace('/^'. preg_quote($real_abspath, '/') .'/', '', $path);
|
98 |
|
99 |
return $wp_filesystem_abspath . $relative_path;
|
114 |
|
115 |
$wp_filesystem_path = fw_fix_path($wp_filesystem_path);
|
116 |
|
117 |
+
$real_abspath = fw_fix_path(ABSPATH);
|
118 |
+
$wp_filesystem_abspath = fw_fix_path($wp_filesystem->abspath());
|
119 |
$relative_path = preg_replace('/^'. preg_quote($wp_filesystem_abspath, '/') .'/', '', $wp_filesystem_path);
|
120 |
|
121 |
return $real_abspath . $relative_path;
|
framework/includes/option-types/switch/static/adaptive-switch/styles.css
CHANGED
@@ -63,6 +63,7 @@
|
|
63 |
left: 0;
|
64 |
height: 100%;
|
65 |
width: 100%;
|
|
|
66 |
}
|
67 |
.adaptive-switch .switch-dot div {
|
68 |
width: 2em;
|
@@ -79,12 +80,14 @@
|
|
79 |
height: 2em;
|
80 |
width: 2em;
|
81 |
display: inline-block;
|
|
|
82 |
|
|
|
|
|
83 |
-webkit-border-radius: 50%;
|
84 |
-moz-border-radius: 50%;
|
85 |
border-radius: 50%;
|
86 |
}
|
87 |
-
|
88 |
.adaptive-switch .switch-dot,
|
89 |
.adaptive-switch .switch-switcher label.switch-label {
|
90 |
-webkit-box-sizing: border-box;
|
63 |
left: 0;
|
64 |
height: 100%;
|
65 |
width: 100%;
|
66 |
+
|
67 |
}
|
68 |
.adaptive-switch .switch-dot div {
|
69 |
width: 2em;
|
80 |
height: 2em;
|
81 |
width: 2em;
|
82 |
display: inline-block;
|
83 |
+
}
|
84 |
|
85 |
+
.adaptive-switch .switch-dot,
|
86 |
+
.adaptive-switch .switch-dot div span {
|
87 |
-webkit-border-radius: 50%;
|
88 |
-moz-border-radius: 50%;
|
89 |
border-radius: 50%;
|
90 |
}
|
|
|
91 |
.adaptive-switch .switch-dot,
|
92 |
.adaptive-switch .switch-switcher label.switch-label {
|
93 |
-webkit-box-sizing: border-box;
|
languages/index.html
ADDED
File without changes
|
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.0.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -82,6 +82,10 @@ Yes; Unyson will work with any theme.
|
|
82 |
|
83 |
== Changelog ==
|
84 |
|
|
|
|
|
|
|
|
|
85 |
= 2.0.0 =
|
86 |
* First release.
|
87 |
|
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.0.1
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
82 |
|
83 |
== Changelog ==
|
84 |
|
85 |
+
= 2.0.1 =
|
86 |
+
* Bug Fix: On some servers the path contains a trailing slash http://bit.ly/123amVu . Make sure to remove it.
|
87 |
+
* Bug Fix: On extension install, required extensions that are already installed were not added for activation.
|
88 |
+
|
89 |
= 2.0.0 =
|
90 |
* First release.
|
91 |
|
unyson.php
CHANGED
@@ -3,10 +3,12 @@
|
|
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.0.
|
7 |
* Author: ThemeFuse
|
8 |
* Author URI: http://themefuse.com
|
9 |
-
* License: GPL2
|
|
|
|
|
10 |
*/
|
11 |
|
12 |
{
|
@@ -75,4 +77,10 @@ require dirname( __FILE__ ) . '/framework/bootstrap.php';
|
|
75 |
return apply_filters('fw_plugin_action_list', $actions);
|
76 |
}
|
77 |
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), '_filter_plugin_action_list' );
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
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.0.1
|
7 |
* Author: ThemeFuse
|
8 |
* Author URI: http://themefuse.com
|
9 |
+
* License: GPL2+
|
10 |
+
* Text Domain: fw
|
11 |
+
* Domain Path: /languages/
|
12 |
*/
|
13 |
|
14 |
{
|
77 |
return apply_filters('fw_plugin_action_list', $actions);
|
78 |
}
|
79 |
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), '_filter_plugin_action_list' );
|
80 |
+
|
81 |
+
/** @internal */
|
82 |
+
function _action_fw_textdomain() {
|
83 |
+
load_plugin_textdomain( 'fw', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
|
84 |
+
}
|
85 |
+
add_action( 'plugins_loaded', '_action_fw_textdomain' );
|
86 |
}
|