Clearfy – WordPress optimization plugin and disable ultimate tweaker - Version 1.8.5

Version Description

(08.02.2021) = * Fixed: Minor bugs.

Download this release

Release Info

Developer alexkovalevv
Plugin Icon 128x128 Clearfy – WordPress optimization plugin and disable ultimate tweaker
Version 1.8.5
Comparing to
See all releases

Code changes from version 1.8.2 to 1.8.5

Files changed (101) hide show
  1. admin/activation.php +101 -101
  2. admin/ajax/configurate.php +74 -74
  3. admin/ajax/google-page-speed.php +85 -85
  4. admin/ajax/import-settings.php +152 -152
  5. admin/ajax/index.php +2 -2
  6. admin/assets/css/base-statistic.css +405 -405
  7. admin/assets/css/base-statistic.css.map +1 -0
  8. admin/assets/css/base-statistic.less +494 -494
  9. admin/assets/css/components.css +139 -139
  10. admin/assets/css/components.less +152 -152
  11. admin/assets/css/general.css +500 -494
  12. admin/assets/css/general.css.map +1 -0
  13. admin/assets/css/gutenberg-autosave-control.css +18 -18
  14. admin/assets/css/gutenberg-autosave-control.less +20 -20
  15. admin/assets/css/index.php +2 -2
  16. admin/assets/css/install-addons.css +31 -31
  17. admin/assets/css/install-addons.css.map +1 -0
  18. admin/assets/css/install-addons.less +37 -37
  19. admin/assets/css/license-manager.css +659 -659
  20. admin/assets/css/setup/page-setup.css +99 -99
  21. admin/assets/css/setup/page-setup.less +119 -119
  22. admin/assets/css/setup/step-optimize-images.css +673 -673
  23. admin/assets/gutenberg/build/index.build.js +99 -99
  24. admin/assets/gutenberg/build/index.php +2 -2
  25. admin/assets/gutenberg/index.php +2 -2
  26. admin/assets/img/index.php +2 -2
  27. admin/assets/index.php +2 -2
  28. admin/assets/js/circular-progress.js +139 -139
  29. admin/assets/js/general.js +320 -320
  30. admin/assets/js/index.php +2 -2
  31. admin/assets/js/license-manager.js +94 -94
  32. admin/assets/js/setup.js +95 -95
  33. admin/assets/js/widgets.js +36 -36
  34. admin/boot.php +249 -248
  35. admin/includes/classes/class.delete-plugins-button.php +50 -50
  36. admin/includes/classes/class.group.php +65 -65
  37. admin/includes/classes/class.install-plugins-button.php +370 -370
  38. admin/includes/classes/class.option.php +110 -110
  39. admin/includes/compatibility.php +95 -95
  40. admin/includes/index.php +2 -2
  41. admin/includes/options.php +398 -398
  42. admin/includes/sidebar-widgets.php +85 -85
  43. admin/index.php +2 -2
  44. admin/pages/class-page.php +44 -44
  45. admin/pages/class-pages-advanced.php +96 -96
  46. admin/pages/class-pages-cache.php +292 -0
  47. admin/pages/class-pages-clearfy-settings.php +258 -258
  48. admin/pages/class-pages-components-license.php +188 -188
  49. admin/pages/class-pages-components.php +210 -208
  50. admin/pages/class-pages-defence-titan.php +119 -119
  51. admin/pages/class-pages-defence.php +156 -156
  52. admin/pages/class-pages-hide-login-page.php +109 -109
  53. admin/pages/class-pages-image-optimization.php +107 -107
  54. admin/pages/class-pages-license.php +102 -102
  55. admin/pages/class-pages-performance-google.php +156 -156
  56. admin/pages/class-pages-performance.php +500 -500
  57. admin/pages/class-pages-quick-start.php +241 -241
  58. admin/pages/class-pages-seo-double-pages.php +157 -157
  59. admin/pages/class-pages-seo.php +245 -245
  60. admin/pages/class-pages-widgets.php +196 -196
  61. admin/pages/index.php +2 -2
  62. admin/pages/setup/class-pages-setup.php +69 -69
  63. admin/pages/setup/steps/class-step-congratulation.php +156 -156
  64. admin/pages/setup/steps/class-step-default.php +36 -36
  65. admin/pages/setup/steps/class-step-google-page-speed-after.php +97 -97
  66. admin/pages/setup/steps/class-step-google-page-speed-before.php +95 -95
  67. admin/pages/setup/steps/class-step-optimize-images.php +178 -178
  68. admin/pages/setup/steps/class-step-plugins.php +72 -72
  69. admin/pages/setup/steps/class-step-setting-seo-optimize.php +162 -162
  70. admin/pages/setup/steps/class-step-setting-speed-optimize.php +249 -249
  71. assets/css/admin-bar.css +47 -47
  72. assets/css/admin-bar.less +60 -60
  73. assets/css/index.php +2 -2
  74. assets/img/index.php +2 -2
  75. assets/index.php +2 -2
  76. assets/js/css-lazy-load.js +100 -100
  77. assets/js/index.php +2 -2
  78. clearfy.php +204 -192
  79. components/assets-manager/admin/activation.php +32 -32
  80. components/assets-manager/admin/ajax/save-settings.php +215 -215
  81. components/assets-manager/admin/boot.php +210 -210
  82. components/assets-manager/admin/index.php +2 -2
  83. components/assets-manager/admin/pages/class-pages-more-features.php +21 -21
  84. components/assets-manager/admin/pages/class-pages-settings.php +170 -170
  85. components/assets-manager/admin/pages/index.php +2 -2
  86. components/assets-manager/assets/css/PNotifyBrightTheme.css +224 -224
  87. components/assets-manager/assets/css/assets-conditions.css +174 -174
  88. components/assets-manager/assets/css/assets-conditions.less +220 -220
  89. components/assets-manager/assets/css/assets-manager.css +1208 -1208
  90. components/assets-manager/assets/css/assets-manager.less +527 -527
  91. components/assets-manager/assets/css/float-panel.css +251 -251
  92. components/assets-manager/assets/css/float-panel.less +294 -294
  93. components/assets-manager/assets/css/reset.css +251 -251
  94. components/assets-manager/assets/css/reset.less +252 -252
  95. components/assets-manager/assets/css/tables.css +84 -84
  96. components/assets-manager/assets/css/tables.less +107 -107
  97. components/assets-manager/assets/css/tabs.less +177 -177
  98. components/assets-manager/assets/css/tooltip.css +54 -54
  99. components/assets-manager/assets/css/tooltip.less +61 -61
  100. components/assets-manager/assets/js/libs/wam-jquery-migrate.min.js +1 -1
  101. components/assets-manager/assets/js/libs/wam-jquery.js +2 -5
admin/activation.php CHANGED
@@ -1,101 +1,101 @@
1
- <?php
2
- /**
3
- * Activator for the clearfy
4
- *
5
- * @author Webcraftic <wordpress.webraftic@gmail.com>
6
- * @copyright (c) 09.09.2017, Webcraftic
7
- * @see Factory441_Activator
8
- * @version 1.0
9
- */
10
-
11
- // Exit if accessed directly
12
- if( !defined('ABSPATH') ) {
13
- exit;
14
- }
15
-
16
- class WCL_Activation extends Wbcr_Factory441_Activator {
17
-
18
- /**
19
- * Runs activation actions.
20
- *
21
- * @since 1.0.0
22
- */
23
- public function activate()
24
- {
25
- if( !function_exists('is_plugin_active') ) {
26
- require_once(ABSPATH . 'wp-admin/includes/plugin.php');
27
- }
28
- // Deactivate components for code minification, if alternative plugins are installed
29
- // -------------
30
- $minify_js_plugins = [
31
- 'autoptimize/autoptimize.php',
32
- 'fast-velocity-minify/fvm.php',
33
- 'js-css-script-optimizer/js-css-script-optimizer.php',
34
- 'merge-minify-refresh/merge-minify-refresh.php',
35
- 'wp-super-minify/wp-super-minify.php'
36
- ];
37
-
38
- $is_activate_minify_js = true;
39
- foreach($minify_js_plugins as $m_plugin) {
40
-
41
- if( is_plugin_active($m_plugin) ) {
42
- $is_activate_minify_js = false;
43
- }
44
- }
45
-
46
- if( !$is_activate_minify_js ) {
47
- WCL_Plugin::app()->deactivateComponent('minify_and_combine');
48
- WCL_Plugin::app()->deactivateComponent('html_minify');
49
- }
50
-
51
- // -------------
52
- // Deactivate yoast component features if it is not activated
53
- // -------------
54
-
55
- if( !defined('WPSEO_VERSION') ) {
56
- WCL_Plugin::app()->deactivateComponent('yoast_seo');
57
- }
58
-
59
- // Deactivate cyrlitera component for all languages except selected
60
- if( !in_array(get_locale(), ['ru_RU', 'bel', 'kk', 'uk', 'bg', 'bg_BG', 'ka_GE']) ) {
61
- WCL_Plugin::app()->deactivateComponent('cyrlitera');
62
- }
63
-
64
- update_option($this->plugin->getOptionName('setup_wizard'), 1);
65
-
66
- /**
67
- * @since 1.4.1
68
- */
69
- do_action('wbcr/clearfy/activated');
70
- }
71
-
72
- /**
73
- * Runs activation actions.
74
- *
75
- * @since 1.0.0
76
- */
77
- public function deactivate()
78
- {
79
-
80
- /*$dependent = 'clearfy_package/clearfy-package.php';
81
-
82
- require_once ABSPATH . '/wp-admin/includes/plugin.php';
83
- if ( is_plugin_active( $dependent ) ) {
84
- add_action( 'update_option_active_plugins', [ $this, 'deactivateDependent' ] );
85
- }
86
- add_action( 'update_site_option_active_sitewide_plugins', [ $this, 'deactivateDependent' ] );*/
87
-
88
- /**
89
- * @since 1.4.1
90
- */
91
- do_action('wbcr/clearfy/deactivated');
92
- }
93
-
94
- /**
95
- * Deactivate clearfy package
96
- */
97
- /*public function deactivateDependent() {
98
- $package_plugin = WCL_Package::instance();
99
- $package_plugin->deactive();
100
- }*/
101
- }
1
+ <?php
2
+ /**
3
+ * Activator for the clearfy
4
+ *
5
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
6
+ * @copyright (c) 09.09.2017, Webcraftic
7
+ * @see Factory444_Activator
8
+ * @version 1.0
9
+ */
10
+
11
+ // Exit if accessed directly
12
+ if( !defined('ABSPATH') ) {
13
+ exit;
14
+ }
15
+
16
+ class WCL_Activation extends Wbcr_Factory444_Activator {
17
+
18
+ /**
19
+ * Runs activation actions.
20
+ *
21
+ * @since 1.0.0
22
+ */
23
+ public function activate()
24
+ {
25
+ if( !function_exists('is_plugin_active') ) {
26
+ require_once(ABSPATH . 'wp-admin/includes/plugin.php');
27
+ }
28
+ // Deactivate components for code minification, if alternative plugins are installed
29
+ // -------------
30
+ $minify_js_plugins = [
31
+ 'autoptimize/autoptimize.php',
32
+ 'fast-velocity-minify/fvm.php',
33
+ 'js-css-script-optimizer/js-css-script-optimizer.php',
34
+ 'merge-minify-refresh/merge-minify-refresh.php',
35
+ 'wp-super-minify/wp-super-minify.php'
36
+ ];
37
+
38
+ $is_activate_minify_js = true;
39
+ foreach($minify_js_plugins as $m_plugin) {
40
+
41
+ if( is_plugin_active($m_plugin) ) {
42
+ $is_activate_minify_js = false;
43
+ }
44
+ }
45
+
46
+ if( !$is_activate_minify_js ) {
47
+ WCL_Plugin::app()->deactivateComponent('minify_and_combine');
48
+ WCL_Plugin::app()->deactivateComponent('html_minify');
49
+ }
50
+
51
+ // -------------
52
+ // Deactivate yoast component features if it is not activated
53
+ // -------------
54
+
55
+ if( !defined('WPSEO_VERSION') ) {
56
+ WCL_Plugin::app()->deactivateComponent('yoast_seo');
57
+ }
58
+
59
+ // Deactivate cyrlitera component for all languages except selected
60
+ if( !in_array(get_locale(), ['ru_RU', 'bel', 'kk', 'uk', 'bg', 'bg_BG', 'ka_GE']) ) {
61
+ WCL_Plugin::app()->deactivateComponent('cyrlitera');
62
+ }
63
+
64
+ update_option($this->plugin->getOptionName('setup_wizard'), 1);
65
+
66
+ /**
67
+ * @since 1.4.1
68
+ */
69
+ do_action('wbcr/clearfy/activated');
70
+ }
71
+
72
+ /**
73
+ * Runs activation actions.
74
+ *
75
+ * @since 1.0.0
76
+ */
77
+ public function deactivate()
78
+ {
79
+
80
+ /*$dependent = 'clearfy_package/clearfy-package.php';
81
+
82
+ require_once ABSPATH . '/wp-admin/includes/plugin.php';
83
+ if ( is_plugin_active( $dependent ) ) {
84
+ add_action( 'update_option_active_plugins', [ $this, 'deactivateDependent' ] );
85
+ }
86
+ add_action( 'update_site_option_active_sitewide_plugins', [ $this, 'deactivateDependent' ] );*/
87
+
88
+ /**
89
+ * @since 1.4.1
90
+ */
91
+ do_action('wbcr/clearfy/deactivated');
92
+ }
93
+
94
+ /**
95
+ * Deactivate clearfy package
96
+ */
97
+ /*public function deactivateDependent() {
98
+ $package_plugin = WCL_Package::instance();
99
+ $package_plugin->deactive();
100
+ }*/
101
+ }
admin/ajax/configurate.php CHANGED
@@ -1,74 +1,74 @@
1
- <?php
2
- /**
3
- * Ajax plugin configuration
4
- * @author Webcraftic <wordpress.webraftic@gmail.com>
5
- * @copyright (c) 2017 Webraftic Ltd
6
- * @version 1.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if( !defined('ABSPATH') ) {
11
- exit;
12
- }
13
-
14
- function wbcr_clearfy_configurate_plugin()
15
- {
16
- check_ajax_referer('wbcr_clearfy_ajax_quick_start_nonce', 'security');
17
-
18
- if( !WCL_Plugin::app()->currentUserCan() ) {
19
- wp_send_json(array('error' => __('You don\'t have enough capability to edit this information.', 'clearfy')));
20
- }
21
-
22
- $mode_name = WCL_Plugin::app()->request->post('mode', false, true);
23
- $flush_redirect = WCL_Plugin::app()->request->post('flush_redirect', false, true);
24
-
25
- if( empty($mode_name) ) {
26
- wp_send_json(array('error' => __('Undefinded mode.', 'clearfy')));
27
- }
28
-
29
- if( $mode_name != 'reset' ) {
30
- $group = WCL_Group::getInstance($mode_name);
31
- $mode_options = $group->getOptions();
32
-
33
- if( empty($mode_options) ) {
34
- wp_send_json(array('error' => __('Undefinded mode.', 'clearfy')));
35
- }
36
-
37
- foreach($mode_options as $option) {
38
- $set_value = 1;
39
-
40
- $option_name = $option->getName();
41
- $option_value = $option->getValue($mode_name);
42
-
43
- if( !empty($option_value) ) {
44
- $set_value = $option_value;
45
- }
46
-
47
- WCL_Plugin::app()->updatePopulateOption($option_name, $set_value);
48
- }
49
- } else {
50
- $all_options = WCL_Option::getAllOptions();
51
-
52
- if( !empty($all_options) ) {
53
- foreach($all_options as $option) {
54
- WCL_Plugin::app()->deletePopulateOption($option->getName());
55
- }
56
- }
57
- }
58
-
59
- if( !$flush_redirect ) {
60
- WbcrFactoryClearfy232_Helpers::flushPageCache();
61
- }
62
-
63
- do_action('wbcr_clearfy_configurated_quick_mode', $mode_name);
64
-
65
- // wbcr_clearfy/configurate_quick_mode_success_args
66
- // @since 1.3.188
67
- wp_send_json(apply_filters('wbcr_clearfy/configurate_quick_mode_success_args', array(
68
- 'status' => 'success',
69
- 'export_options' => WCL_Helper::getExportOptions()
70
- ), $mode_name));
71
- }
72
-
73
- add_action('wp_ajax_wbcr_clearfy_configurate', 'wbcr_clearfy_configurate_plugin');
74
-
1
+ <?php
2
+ /**
3
+ * Ajax plugin configuration
4
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
5
+ * @copyright (c) 2017 Webraftic Ltd
6
+ * @version 1.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if( !defined('ABSPATH') ) {
11
+ exit;
12
+ }
13
+
14
+ function wbcr_clearfy_configurate_plugin()
15
+ {
16
+ check_ajax_referer('wbcr_clearfy_ajax_quick_start_nonce', 'security');
17
+
18
+ if( !WCL_Plugin::app()->currentUserCan() ) {
19
+ wp_send_json(array('error' => __('You don\'t have enough capability to edit this information.', 'clearfy')));
20
+ }
21
+
22
+ $mode_name = WCL_Plugin::app()->request->post('mode', false, true);
23
+ $flush_redirect = WCL_Plugin::app()->request->post('flush_redirect', false, true);
24
+
25
+ if( empty($mode_name) ) {
26
+ wp_send_json(array('error' => __('Undefinded mode.', 'clearfy')));
27
+ }
28
+
29
+ if( $mode_name != 'reset' ) {
30
+ $group = WCL_Group::getInstance($mode_name);
31
+ $mode_options = $group->getOptions();
32
+
33
+ if( empty($mode_options) ) {
34
+ wp_send_json(array('error' => __('Undefinded mode.', 'clearfy')));
35
+ }
36
+
37
+ foreach($mode_options as $option) {
38
+ $set_value = 1;
39
+
40
+ $option_name = $option->getName();
41
+ $option_value = $option->getValue($mode_name);
42
+
43
+ if( !empty($option_value) ) {
44
+ $set_value = $option_value;
45
+ }
46
+
47
+ WCL_Plugin::app()->updatePopulateOption($option_name, $set_value);
48
+ }
49
+ } else {
50
+ $all_options = WCL_Option::getAllOptions();
51
+
52
+ if( !empty($all_options) ) {
53
+ foreach($all_options as $option) {
54
+ WCL_Plugin::app()->deletePopulateOption($option->getName());
55
+ }
56
+ }
57
+ }
58
+
59
+ if( !$flush_redirect ) {
60
+ WbcrFactoryClearfy235_Helpers::flushPageCache();
61
+ }
62
+
63
+ do_action('wbcr_clearfy_configurated_quick_mode', $mode_name);
64
+
65
+ // wbcr_clearfy/configurate_quick_mode_success_args
66
+ // @since 1.3.188
67
+ wp_send_json(apply_filters('wbcr_clearfy/configurate_quick_mode_success_args', array(
68
+ 'status' => 'success',
69
+ 'export_options' => WCL_Helper::getExportOptions()
70
+ ), $mode_name));
71
+ }
72
+
73
+ add_action('wp_ajax_wbcr_clearfy_configurate', 'wbcr_clearfy_configurate_plugin');
74
+
admin/ajax/google-page-speed.php CHANGED
@@ -1,85 +1,85 @@
1
- <?php
2
- /**
3
- * Ajax plugin configuration
4
- * @author Webcraftic <wordpress.webraftic@gmail.com>
5
- * @copyright (c) 2017 Webraftic Ltd
6
- * @version 1.0
7
- */
8
-
9
- //AIzaSyD85-8Tmp_Ixc43AgqyeLpNZNlGP150LbA
10
-
11
- // Exit if accessed directly
12
- if( !defined('ABSPATH') ) {
13
- exit;
14
- }
15
-
16
- add_action('wp_ajax_wclearfy-fetch-google-pagespeed-audit', function () {
17
- check_ajax_referer('fetch_google_page_speed_audit');
18
-
19
- if( !WCL_Plugin::app()->currentUserCan() ) {
20
- wp_die(-1);
21
- }
22
-
23
- $flush_cache = (bool)WCL_Plugin::app()->request->post('flush_cache', false);
24
-
25
- $results = get_transient(WCL_Plugin::app()->getPrefix() . 'fetch_google_page_speed_audits');
26
-
27
- if( !empty($results) ) {
28
- if( $flush_cache ) {
29
- delete_transient(WCL_Plugin::app()->getPrefix() . 'fetch_google_page_speed_audits');
30
- } else {
31
- wp_send_json_success($results);
32
- }
33
- }
34
-
35
- $site_url = get_home_url();
36
-
37
- // Check if plugin is installed in localhost
38
- if( substr($_SERVER['REMOTE_ADDR'], 0, 4) == '127.' || $_SERVER['REMOTE_ADDR'] == '::1' ) {
39
- $site_url = 'https://cm-wp.com/';
40
- }
41
-
42
- $results = [];
43
- $strategy_arr = array(1 => 'desktop', 2 => 'mobile');
44
-
45
- foreach($strategy_arr as $strategy_id => $strategy_text) {
46
- $google_page_speed_call = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=" . $site_url . "&key=AIzaSyD85-8Tmp_Ixc43AgqyeLpNZNlGP150LbA&strategy=" . $strategy_text;
47
-
48
- //Fetch data from Google PageSpeed API
49
- $response = wp_remote_get($google_page_speed_call, array('timeout' => 30));
50
- $response_code = wp_remote_retrieve_response_code($response);
51
- $google_ps = json_decode($response['body'], true);
52
-
53
- if( isset($google_ps['error']) ) {
54
- wp_send_json_error([
55
- 'error' => $google_ps['error']['message'],
56
- 'code' => $google_ps['error']['code']
57
- ]);
58
- }
59
-
60
- $response_error = null;
61
- if( is_wp_error($response) ) {
62
- $response_error = $response;
63
- } elseif( 200 !== $response_code ) {
64
- $response_error = new WP_Error('api-error', /* translators: %d: Numeric HTTP status code, e.g. 400, 403, 500, 504, etc. */ sprintf(__('Invalid API response code (%d).'), $response_code));
65
- }
66
-
67
- if( is_wp_error($response_error) ) {
68
- wp_send_json_error([
69
- 'error' => $response_error->get_error_message(),
70
- 'code' => $response_error->get_error_code()
71
- ]);
72
- }
73
-
74
- $results[$strategy_text] = [
75
- 'performance_score' => ($google_ps['lighthouseResult']['categories']['performance']['score'] * 100),
76
- 'first_contentful_paint' => $google_ps['lighthouseResult']['audits']['first-contentful-paint']['displayValue'],
77
- 'speed_index' => $google_ps['lighthouseResult']['audits']['speed-index']['displayValue'],
78
- 'interactive' => $google_ps['lighthouseResult']['audits']['interactive']['displayValue']
79
- ];
80
-
81
- set_transient(WCL_Plugin::app()->getPrefix() . 'fetch_google_page_speed_audits', $results, 201);
82
- }
83
- wp_send_json_success($results);
84
- });
85
-
1
+ <?php
2
+ /**
3
+ * Ajax plugin configuration
4
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
5
+ * @copyright (c) 2017 Webraftic Ltd
6
+ * @version 1.0
7
+ */
8
+
9
+ //AIzaSyD85-8Tmp_Ixc43AgqyeLpNZNlGP150LbA
10
+
11
+ // Exit if accessed directly
12
+ if( !defined('ABSPATH') ) {
13
+ exit;
14
+ }
15
+
16
+ add_action('wp_ajax_wclearfy-fetch-google-pagespeed-audit', function () {
17
+ check_ajax_referer('fetch_google_page_speed_audit');
18
+
19
+ if( !WCL_Plugin::app()->currentUserCan() ) {
20
+ wp_die(-1);
21
+ }
22
+
23
+ $flush_cache = (bool)WCL_Plugin::app()->request->post('flush_cache', false);
24
+
25
+ $results = get_transient(WCL_Plugin::app()->getPrefix() . 'fetch_google_page_speed_audits');
26
+
27
+ if( !empty($results) ) {
28
+ if( $flush_cache ) {
29
+ delete_transient(WCL_Plugin::app()->getPrefix() . 'fetch_google_page_speed_audits');
30
+ } else {
31
+ wp_send_json_success($results);
32
+ }
33
+ }
34
+
35
+ $site_url = get_home_url();
36
+
37
+ // Check if plugin is installed in localhost
38
+ if( substr($_SERVER['REMOTE_ADDR'], 0, 4) == '127.' || $_SERVER['REMOTE_ADDR'] == '::1' ) {
39
+ $site_url = 'https://cm-wp.com/';
40
+ }
41
+
42
+ $results = [];
43
+ $strategy_arr = array(1 => 'desktop', 2 => 'mobile');
44
+
45
+ foreach($strategy_arr as $strategy_id => $strategy_text) {
46
+ $google_page_speed_call = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=" . $site_url . "&key=AIzaSyD85-8Tmp_Ixc43AgqyeLpNZNlGP150LbA&strategy=" . $strategy_text;
47
+
48
+ //Fetch data from Google PageSpeed API
49
+ $response = wp_remote_get($google_page_speed_call, array('timeout' => 30));
50
+ $response_code = wp_remote_retrieve_response_code($response);
51
+ $google_ps = json_decode($response['body'], true);
52
+
53
+ if( isset($google_ps['error']) ) {
54
+ wp_send_json_error([
55
+ 'error' => $google_ps['error']['message'],
56
+ 'code' => $google_ps['error']['code']
57
+ ]);
58
+ }
59
+
60
+ $response_error = null;
61
+ if( is_wp_error($response) ) {
62
+ $response_error = $response;
63
+ } elseif( 200 !== $response_code ) {
64
+ $response_error = new WP_Error('api-error', /* translators: %d: Numeric HTTP status code, e.g. 400, 403, 500, 504, etc. */ sprintf(__('Invalid API response code (%d).'), $response_code));
65
+ }
66
+
67
+ if( is_wp_error($response_error) ) {
68
+ wp_send_json_error([
69
+ 'error' => $response_error->get_error_message(),
70
+ 'code' => $response_error->get_error_code()
71
+ ]);
72
+ }
73
+
74
+ $results[$strategy_text] = [
75
+ 'performance_score' => ($google_ps['lighthouseResult']['categories']['performance']['score'] * 100),
76
+ 'first_contentful_paint' => $google_ps['lighthouseResult']['audits']['first-contentful-paint']['displayValue'],
77
+ 'speed_index' => $google_ps['lighthouseResult']['audits']['speed-index']['displayValue'],
78
+ 'interactive' => $google_ps['lighthouseResult']['audits']['interactive']['displayValue']
79
+ ];
80
+
81
+ set_transient(WCL_Plugin::app()->getPrefix() . 'fetch_google_page_speed_audits', $results, 201);
82
+ }
83
+ wp_send_json_success($results);
84
+ });
85
+
admin/ajax/import-settings.php CHANGED
@@ -1,152 +1,152 @@
1
- <?php
2
- /**
3
- * Ajax plugin configuration
4
- * @author Webcraftic <wordpress.webraftic@gmail.com>
5
- * @copyright (c) 2017 Webraftic Ltd
6
- * @version 1.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if( !defined('ABSPATH') ) {
11
- exit;
12
- }
13
-
14
- /**
15
- * Ajax действите, выполняется для получения всех доступных опций для экспорта.
16
- */
17
- function wbcr_clearfy_import_settings()
18
- {
19
- global $wpdb;
20
-
21
- check_ajax_referer('wbcr_clearfy_import_options');
22
-
23
- if( !WCL_Plugin::app()->currentUserCan() ) {
24
- wp_send_json_error(array('error_message' => __('You don\'t have enough capability to edit this information.', 'clearfy')));
25
- die();
26
- }
27
-
28
- $settings = WCL_Helper::maybeGetPostJson('settings');
29
-
30
- /**
31
- * Используется для фильтрации импортируемых настроек,
32
- * обычно это может пригодиться для компонентов, которым нужно выполнить дополнительные дествия к опциям,
33
- * прежде чем продолжить импорт
34
- *
35
- * wbcr/clearfy/filter_import_options
36
- * @since 1.4.0
37
- */
38
- $settings = apply_filters('wbcr/clearfy/filter_import_options', $settings);
39
-
40
- $network_id = get_current_network_id();
41
-
42
- if( empty($settings) || !is_array($settings) ) {
43
- wp_send_json_error(array('error_message' => __('Settings are not defined or do not exist.', 'clearfy')));
44
- die();
45
- }
46
-
47
- $values = array();
48
- $place_holders = array();
49
-
50
- if( WCL_Plugin::app()->isNetworkActive() ) {
51
- $query = "INSERT INTO {$wpdb->sitemeta} (site_id, meta_key, meta_value) VALUES ";
52
- } else {
53
- $query = "INSERT INTO {$wpdb->options} (option_name, option_value) VALUES ";
54
- }
55
-
56
- foreach($settings as $option_name => $option_value) {
57
- $option_name = sanitize_text_field($option_name);
58
- $raw_option_value = $option_value;
59
-
60
- if( is_serialized($option_value) ) {
61
- $option_value = unserialize($option_value);
62
- }
63
-
64
- if( is_array($option_value) || is_object($option_value) ) {
65
- $option_value = WbcrFactoryClearfy232_Helpers::recursiveSanitizeArray($option_value, 'wp_kses_post');
66
- $option_value = maybe_serialize($option_value);
67
- } else {
68
- $option_value = wp_kses_post($option_value);
69
- }
70
-
71
- /**
72
- * Используется для фильтрации импортируемых значений,
73
- * обычно это может пригодиться для компонентов, которым нужно подменять домены, пути или какие-то правила
74
- * при переносе с одного сайта на другой
75
- *
76
- * wbcr/clearfy/filter_import_values
77
- * @since 1.4.0
78
- */
79
- $option_value = apply_filters('wbcr/clearfy/filter_import_values', $option_value, $option_name, $raw_option_value);
80
-
81
- // todo: Вынести в отдельный файл и привязать к хуку
82
- if( WCL_Plugin::app()->getOptionName('robots_txt_text') == $option_name ) {
83
- $site_url = get_home_url();
84
- $dir_host_without_scheme = preg_replace("(^https?://)", "", $site_url);
85
- $dir_host = $dir_host_without_scheme;
86
-
87
- if( is_ssl() ) {
88
- $dir_host = 'https://' . $dir_host_without_scheme;
89
- }
90
-
91
- $replace_host_value = preg_replace('/(Host:\s?)(.*)/', '$1' . $dir_host, $option_value);
92
-
93
- if( !empty($replace_host_value) ) {
94
- $option_value = $replace_host_value;
95
- }
96
-
97
- if( preg_match('/Sitemap:\s?(.*)/', $option_value, $matches) ) {
98
- $site_map_url = $matches[1];
99
-
100
- if( filter_var($site_map_url, FILTER_VALIDATE_URL) ) {
101
- $url_parts = parse_url($site_map_url);
102
- $replace_sitemap_value = preg_replace('/(Sitemap:\s?)(.*)/', '$1' . $url_parts['scheme'] . '://' . $dir_host_without_scheme . $url_parts['path'] . PHP_EOL, $option_value);
103
-
104
- if( !empty($replace_sitemap_value) ) {
105
- $option_value = $replace_sitemap_value;
106
- }
107
- }
108
- }
109
- }
110
-
111
- if( WCL_Plugin::app()->isNetworkActive() ) {
112
- array_push($values, $network_id, $option_name, $option_value);
113
- $place_holders[] = "('%d', '%s', '%s')";/* In my case, i know they will always be integers */
114
- } else {
115
- array_push($values, $option_name, $option_value);
116
- $place_holders[] = "('%s', '%s')";/* In my case, i know they will always be integers */
117
- }
118
- }
119
-
120
- $query .= implode(', ', $place_holders);
121
-
122
- // Удаляем все опции
123
- $all_options = WCL_Option::getAllOptions();
124
-
125
- if( !empty($all_options) ) {
126
- foreach($all_options as $option) {
127
- WCL_Plugin::app()->deletePopulateOption($option->getName());
128
- }
129
- }
130
-
131
- // Сбрасываем кеш опций
132
- WCL_Plugin::app()->flushOptionsCache();
133
-
134
- // Импортируем опции
135
- $wpdb->query($wpdb->prepare("$query ", $values));
136
-
137
- $send_data = array('status' => 'success');
138
-
139
- //$package_plugin = WCL_Package::instance();
140
- //$send_data['update_notice'] = $package_plugin->getUpdateNotice();
141
-
142
- // Сбрасываем кеш для кеширующих плагинов
143
- WbcrFactoryClearfy232_Helpers::flushPageCache();
144
-
145
- do_action('wbcr_clearfy_imported_settings');
146
-
147
- wp_send_json_success($send_data);
148
- die();
149
- }
150
-
151
- add_action('wp_ajax_wbcr-clearfy-import-settings', 'wbcr_clearfy_import_settings');
152
-
1
+ <?php
2
+ /**
3
+ * Ajax plugin configuration
4
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
5
+ * @copyright (c) 2017 Webraftic Ltd
6
+ * @version 1.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if( !defined('ABSPATH') ) {
11
+ exit;
12
+ }
13
+
14
+ /**
15
+ * Ajax действите, выполняется для получения всех доступных опций для экспорта.
16
+ */
17
+ function wbcr_clearfy_import_settings()
18
+ {
19
+ global $wpdb;
20
+
21
+ check_ajax_referer('wbcr_clearfy_import_options');
22
+
23
+ if( !WCL_Plugin::app()->currentUserCan() ) {
24
+ wp_send_json_error(array('error_message' => __('You don\'t have enough capability to edit this information.', 'clearfy')));
25
+ die();
26
+ }
27
+
28
+ $settings = WCL_Helper::maybeGetPostJson('settings');
29
+
30
+ /**
31
+ * Используется для фильтрации импортируемых настроек,
32
+ * обычно это может пригодиться для компонентов, которым нужно выполнить дополнительные дествия к опциям,
33
+ * прежде чем продолжить импорт
34
+ *
35
+ * wbcr/clearfy/filter_import_options
36
+ * @since 1.4.0
37
+ */
38
+ $settings = apply_filters('wbcr/clearfy/filter_import_options', $settings);
39
+
40
+ $network_id = get_current_network_id();
41
+
42
+ if( empty($settings) || !is_array($settings) ) {
43
+ wp_send_json_error(array('error_message' => __('Settings are not defined or do not exist.', 'clearfy')));
44
+ die();
45
+ }
46
+
47
+ $values = array();
48
+ $place_holders = array();
49
+
50
+ if( WCL_Plugin::app()->isNetworkActive() ) {
51
+ $query = "INSERT INTO {$wpdb->sitemeta} (site_id, meta_key, meta_value) VALUES ";
52
+ } else {
53
+ $query = "INSERT INTO {$wpdb->options} (option_name, option_value) VALUES ";
54
+ }
55
+
56
+ foreach($settings as $option_name => $option_value) {
57
+ $option_name = sanitize_text_field($option_name);
58
+ $raw_option_value = $option_value;
59
+
60
+ if( is_serialized($option_value) ) {
61
+ $option_value = unserialize($option_value);
62
+ }
63
+
64
+ if( is_array($option_value) || is_object($option_value) ) {
65
+ $option_value = WbcrFactoryClearfy235_Helpers::recursiveSanitizeArray($option_value, 'wp_kses_post');
66
+ $option_value = maybe_serialize($option_value);
67
+ } else {
68
+ $option_value = wp_kses_post($option_value);
69
+ }
70
+
71
+ /**
72
+ * Используется для фильтрации импортируемых значений,
73
+ * обычно это может пригодиться для компонентов, которым нужно подменять домены, пути или какие-то правила
74
+ * при переносе с одного сайта на другой
75
+ *
76
+ * wbcr/clearfy/filter_import_values
77
+ * @since 1.4.0
78
+ */
79
+ $option_value = apply_filters('wbcr/clearfy/filter_import_values', $option_value, $option_name, $raw_option_value);
80
+
81
+ // todo: Вынести в отдельный файл и привязать к хуку
82
+ if( WCL_Plugin::app()->getOptionName('robots_txt_text') == $option_name ) {
83
+ $site_url = get_home_url();
84
+ $dir_host_without_scheme = preg_replace("(^https?://)", "", $site_url);
85
+ $dir_host = $dir_host_without_scheme;
86
+
87
+ if( is_ssl() ) {
88
+ $dir_host = 'https://' . $dir_host_without_scheme;
89
+ }
90
+
91
+ $replace_host_value = preg_replace('/(Host:\s?)(.*)/', '$1' . $dir_host, $option_value);
92
+
93
+ if( !empty($replace_host_value) ) {
94
+ $option_value = $replace_host_value;
95
+ }
96
+
97
+ if( preg_match('/Sitemap:\s?(.*)/', $option_value, $matches) ) {
98
+ $site_map_url = $matches[1];
99
+
100
+ if( filter_var($site_map_url, FILTER_VALIDATE_URL) ) {
101
+ $url_parts = parse_url($site_map_url);
102
+ $replace_sitemap_value = preg_replace('/(Sitemap:\s?)(.*)/', '$1' . $url_parts['scheme'] . '://' . $dir_host_without_scheme . $url_parts['path'] . PHP_EOL, $option_value);
103
+
104
+ if( !empty($replace_sitemap_value) ) {
105
+ $option_value = $replace_sitemap_value;
106
+ }
107
+ }
108
+ }
109
+ }
110
+
111
+ if( WCL_Plugin::app()->isNetworkActive() ) {
112
+ array_push($values, $network_id, $option_name, $option_value);
113
+ $place_holders[] = "('%d', '%s', '%s')";/* In my case, i know they will always be integers */
114
+ } else {
115
+ array_push($values, $option_name, $option_value);
116
+ $place_holders[] = "('%s', '%s')";/* In my case, i know they will always be integers */
117
+ }
118
+ }
119
+
120
+ $query .= implode(', ', $place_holders);
121
+
122
+ // Удаляем все опции
123
+ $all_options = WCL_Option::getAllOptions();
124
+
125
+ if( !empty($all_options) ) {
126
+ foreach($all_options as $option) {
127
+ WCL_Plugin::app()->deletePopulateOption($option->getName());
128
+ }
129
+ }
130
+
131
+ // Сбрасываем кеш опций
132
+ WCL_Plugin::app()->flushOptionsCache();
133
+
134
+ // Импортируем опции
135
+ $wpdb->query($wpdb->prepare("$query ", $values));
136
+
137
+ $send_data = array('status' => 'success');
138
+
139
+ //$package_plugin = WCL_Package::instance();
140
+ //$send_data['update_notice'] = $package_plugin->getUpdateNotice();
141
+
142
+ // Сбрасываем кеш для кеширующих плагинов
143
+ WbcrFactoryClearfy235_Helpers::flushPageCache();
144
+
145
+ do_action('wbcr_clearfy_imported_settings');
146
+
147
+ wp_send_json_success($send_data);
148
+ die();
149
+ }
150
+
151
+ add_action('wp_ajax_wbcr-clearfy-import-settings', 'wbcr_clearfy_import_settings');
152
+
admin/ajax/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
admin/assets/css/base-statistic.css CHANGED
@@ -1,406 +1,406 @@
1
- /**
2
- * Styles for the Widget to be displayed in the Clearfy plugin
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 13.06.2018
6
- */
7
- #WBCR {
8
- /* Number display */
9
- /* Number and bars */
10
- /* Doughnut */
11
- /* Widget */
12
- }
13
- #WBCR .wio-clear {
14
- clear: both;
15
- }
16
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers {
17
- margin-top: 30px;
18
- background: none;
19
- padding: 0;
20
- }
21
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers h4 {
22
- font-size: 15px;
23
- font-weight: 700;
24
- }
25
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button {
26
- padding: 5px 10px;
27
- border: 0;
28
- font-size: 11px;
29
- text-transform: uppercase !important;
30
- font-weight: bold;
31
- border-radius: 4px;
32
- outline: none;
33
- background: #f3f3f3;
34
- color: #656565;
35
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
36
- }
37
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button:active {
38
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
39
- }
40
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button.wbcr-rio-loading {
41
- width: 56px;
42
- font-size: 0;
43
- background: #f3f3f3 url("../img/quick-start-loader.gif") center no-repeat;
44
- }
45
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button.wbcr-rio-selected {
46
- background: #f3efe2;
47
- color: #d8d8d8;
48
- }
49
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button.wbcr-rio-selected:active {
50
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
51
- }
52
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table {
53
- width: 100%;
54
- box-sizing: border-box;
55
- border-spacing: 3px;
56
- background: #fff;
57
- }
58
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table th,
59
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table td {
60
- padding: 16px 10px;
61
- text-align: center;
62
- }
63
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table th {
64
- background: #efefef;
65
- color: #777777;
66
- box-shadow: 0 1px 0 #d8d8d8;
67
- }
68
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-check-proccess {
69
- display: inline-block;
70
- height: 10px;
71
- width: 30px;
72
- background: url("../img/quick-start-loader.gif") center no-repeat;
73
- }
74
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-servers-list-item-selected {
75
- background: #fffbed;
76
- color: #cec5a8;
77
- font-weight: 600;
78
- }
79
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-success {
80
- color: #8CC152;
81
- }
82
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-error {
83
- color: #fb5d49;
84
- }
85
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-warning {
86
- color: #ffb635;
87
- }
88
- #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers .wbcr-rio-warning-message {
89
- margin-top: 30px;
90
- padding: 20px;
91
- border: 1px dashed #bfbfbf;
92
- background: #ffffff;
93
- margin-bottom: 40px;
94
- font-size: 15px;
95
- color: #828282;
96
- }
97
- #WBCR .wio-columns {
98
- overflow: hidden;
99
- padding: 15px 0;
100
- counter-reset: cols;
101
- }
102
- #WBCR .wio-columns [class^="col-"] {
103
- float: left;
104
- -webkit-box-sizing: border-box;
105
- -moz-box-sizing: border-box;
106
- box-sizing: border-box;
107
- }
108
- #WBCR .wio-columns .col-1-3 {
109
- width: 33.333%;
110
- padding-left: 28px;
111
- }
112
- #WBCR .wio-columns .col-2-3 {
113
- width: 66.666%;
114
- padding-left: 28px;
115
- }
116
- #WBCR .wio-columns .col-1-2 {
117
- width: 50%;
118
- padding: 0 20px;
119
- }
120
- #WBCR .wio-columns .col-statistics.col-statistics {
121
- width: 60%;
122
- }
123
- #WBCR .wio-columns .col-chart.col-chart {
124
- width: 40%;
125
- position: relative;
126
- padding: 20px;
127
- font-size: 12px;
128
- text-transform: uppercase;
129
- background: #f1f1f1b3;
130
- color: #abacaf;
131
- font-weight: bold;
132
- border-radius: 5px;
133
- margin-top: 10px;
134
- text-align: left;
135
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
136
- }
137
- #WBCR .wio-col {
138
- float: left;
139
- width: 50%;
140
- box-sizing: border-box;
141
- -webkit-flex-basis: 50%;
142
- -ms-flex-preferred-size: 50%;
143
- flex-basis: 50%;
144
- }
145
- #WBCR .wio-col {
146
- padding-right: 20px;
147
- }
148
- #WBCR .wio-col + .wio-col {
149
- padding-right: 0;
150
- padding-left: 50px;
151
- }
152
- #WBCR .wio-col:target {
153
- animation: wiohello 1s 3 linear backwards;
154
- }
155
- #WBCR .wio-number-you-optimized {
156
- margin-bottom: 1.35em;
157
- overflow: hidden;
158
- }
159
- #WBCR .wio-number-you-optimized #wio-total-optimized-attachments-pct {
160
- color: #828282;
161
- }
162
- #WBCR .wio-number-you-optimized .wio-number {
163
- display: table-cell;
164
- padding-right: 15px;
165
- font-size: 48px;
166
- font-weight: bold;
167
- line-height: 1;
168
- vertical-align: middle;
169
- white-space: nowrap;
170
- color: #828282;
171
- }
172
- #WBCR .wio-number-you-optimized .wio-text {
173
- display: table-cell;
174
- vertical-align: middle;
175
- overflow: hidden;
176
- font-size: 12px;
177
- color: #828282;
178
- }
179
- #WBCR .wio-number-you-optimized > p {
180
- display: table;
181
- }
182
- #WBCR .wio-bars {
183
- padding-right: 15px;
184
- }
185
- #WBCR .wio-bars p {
186
- font-size: 12px;
187
- margin-bottom: 5px;
188
- }
189
- #WBCR .wio-bars + .wio-number-you-optimized {
190
- border-bottom: 0;
191
- padding-top: 0.85em;
192
- }
193
- #WBCR .wio-bars + .wio-number-you-optimized p {
194
- color: #72a53b;
195
- }
196
- #WBCR .wio-bar-negative .wio-progress {
197
- background: #D2D3D6;
198
- }
199
- #WBCR .wio-bar-negative .wio-barnb {
200
- color: #9d9fa5;
201
- }
202
- #WBCR .wio-progress {
203
- height: 8px;
204
- transition: width 0.3s;
205
- /*.wio-bar-negative {
206
- width: 92% !important;
207
- }*/
208
- }
209
- #WBCR .wio-bar-positive .wio-progress {
210
- background: #8CC152;
211
- }
212
- #WBCR .wio-bar-positive .wio-barnb {
213
- color: #72a53b;
214
- }
215
- #WBCR .wio-bar-primary .wio-progress {
216
- background: #8CC152;
217
- }
218
- #WBCR .wio-bar-primary .wio-barnb {
219
- color: #72a53b;
220
- }
221
- #WBCR .wio-right-outside-number .wio-barnb {
222
- display: block;
223
- margin-right: -5.25em;
224
- text-align: right;
225
- font-weight: bold;
226
- line-height: 0.8;
227
- }
228
- #WBCR .wio-chart {
229
- position: relative;
230
- top: 1px;
231
- display: inline-block;
232
- vertical-align: middle;
233
- }
234
- #WBCR .wio-chart-container {
235
- position: relative;
236
- display: inline-block;
237
- margin-right: 5px;
238
- border: 10px solid #d2d3d6;
239
- border-radius: 100%;
240
- }
241
- #WBCR .wio-chart-container canvas {
242
- display: block;
243
- }
244
- #WBCR .wio-overview-chart-container {
245
- float: left;
246
- margin-right: 20px;
247
- }
248
- #WBCR .wio-chart-percent {
249
- position: absolute;
250
- left: 0;
251
- right: 0;
252
- top: 50%;
253
- margin-top: -0.5em;
254
- line-height: 0.8;
255
- text-align: center;
256
- font-size: 54px;
257
- font-weight: bold;
258
- color: #afafaf;
259
- }
260
- #WBCR .wio-chart-percent span {
261
- font-size: 20px;
262
- vertical-align: super;
263
- }
264
- #WBCR #wio-overview-chart-legend {
265
- overflow: hidden;
266
- }
267
- #WBCR .wio-doughnut-legend li {
268
- display: inline-block;
269
- position: relative;
270
- margin-bottom: 15px;
271
- border-radius: 5px;
272
- padding: 3px 8px 2px 31px;
273
- font-size: 12px;
274
- cursor: default;
275
- -webkit-transition: background-color 200ms ease-in-out;
276
- -moz-transition: background-color 200ms ease-in-out;
277
- -o-transition: background-color 200ms ease-in-out;
278
- transition: background-color 200ms ease-in-out;
279
- }
280
- #WBCR .wio-doughnut-legend li span {
281
- display: block;
282
- position: absolute;
283
- left: 0;
284
- top: 0;
285
- width: 25px;
286
- height: 25px;
287
- border-radius: 50%;
288
- }
289
- #WBCR .wio-optimize-button {
290
- width: 180px;
291
- padding: 12px 30px;
292
- background: #c9deb2;
293
- color: #586549;
294
- border: 0;
295
- box-shadow: none;
296
- font-size: 14px;
297
- text-transform: uppercase !important;
298
- font-weight: bold;
299
- border-radius: 4px;
300
- outline: none;
301
- text-decoration: none;
302
- }
303
- #WBCR .wio-optimize-button:active {
304
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
305
- }
306
- #WBCR .wio-global-optim-phrase {
307
- width: 180px;
308
- padding-top: 20px;
309
- font-size: 14px;
310
- text-align: center;
311
- }
312
- #WBCR .wio-total-percent {
313
- color: #587f2e;
314
- }
315
- #WBCR .wio-text-left {
316
- text-align: left;
317
- }
318
- #WBCR span.wio-num {
319
- display: inline !important;
320
- position: inherit !important;
321
- }
322
- #WBCR .wio-image-optimize-board {
323
- padding: 20px;
324
- }
325
- #WBCR .wio-page-statistic {
326
- padding-left: 40px;
327
- }
328
- #WBCR .wio-page-statistic .wio-chart-percent {
329
- margin-top: -1.1em;
330
- }
331
- #WBCR .wio-widget {
332
- padding: 0 !important;
333
- }
334
- #WBCR .wio-widget .wio-chart-percent {
335
- font-size: 44px;
336
- line-height: 1;
337
- }
338
- #WBCR .wio-widget .wio-bars {
339
- width: 80%;
340
- margin-left: 155px;
341
- box-sizing: border-box;
342
- }
343
- #WBCR .wio-widget .col-chart.col-chart {
344
- width: 100%;
345
- }
346
- #WBCR .wio-widget .col-controls {
347
- width: 45%;
348
- padding-left: 5px;
349
- padding-top: 110px;
350
- }
351
- #WBCR .wio-widget .wio-doughnut-legend {
352
- margin-left: 20px;
353
- text-align: left;
354
- }
355
- #WBCR .wio-widget .wio-widget-bottom {
356
- display: table;
357
- padding-top: 20px !important;
358
- width: 100%;
359
- text-align: right;
360
- }
361
- #WBCR .wio-widget .wio-widget-bottom li {
362
- display: table-cell;
363
- }
364
- #WBCR .wio-widget .wio-widget-bottom li:first-child {
365
- text-align: left;
366
- }
367
- @media (max-width: 830px) {
368
- #WBCR .wio [class^="col-"] {
369
- float: none;
370
- margin-bottom: 1.5em;
371
- }
372
- #WBCR .wio .col-1-3,
373
- #WBCR .wio .col-1-2 {
374
- width: auto;
375
- padding: 0 28px;
376
- clear: both;
377
- padding-top: 1em;
378
- }
379
- }
380
- @keyframes wiohello {
381
- 0%,
382
- 100% {
383
- background: #FFF;
384
- }
385
- 50% {
386
- background: #F4F7F9;
387
- }
388
- }
389
- @media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) {
390
- #WBCR .wio-columns .col-statistics.col-statistics,
391
- #WBCR .wio-columns .col-chart.col-chart {
392
- width: 50%;
393
- }
394
- }
395
- @media (max-width: 808px) {
396
- #WBCR .wio-columns .col-statistics.col-statistics,
397
- #WBCR .wio-columns .col-chart.col-chart {
398
- width: auto;
399
- float: none;
400
- padding: 0;
401
- }
402
- #WBCR .wio-columns .col-chart.col-chart {
403
- margin-top: 3em;
404
- }
405
- }
406
  /*# sourceMappingURL=base-statistic.css.map */
1
+ /**
2
+ * Styles for the Widget to be displayed in the Clearfy plugin
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 13.06.2018
6
+ */
7
+ #WBCR {
8
+ /* Number display */
9
+ /* Number and bars */
10
+ /* Doughnut */
11
+ /* Widget */
12
+ }
13
+ #WBCR .wio-clear {
14
+ clear: both;
15
+ }
16
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers {
17
+ margin-top: 30px;
18
+ background: none;
19
+ padding: 0;
20
+ }
21
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers h4 {
22
+ font-size: 15px;
23
+ font-weight: 700;
24
+ }
25
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button {
26
+ padding: 5px 10px;
27
+ border: 0;
28
+ font-size: 11px;
29
+ text-transform: uppercase !important;
30
+ font-weight: bold;
31
+ border-radius: 4px;
32
+ outline: none;
33
+ background: #f3f3f3;
34
+ color: #656565;
35
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
36
+ }
37
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button:active {
38
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
39
+ }
40
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button.wbcr-rio-loading {
41
+ width: 56px;
42
+ font-size: 0;
43
+ background: #f3f3f3 url("../img/quick-start-loader.gif") center no-repeat;
44
+ }
45
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button.wbcr-rio-selected {
46
+ background: #f3efe2;
47
+ color: #d8d8d8;
48
+ }
49
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers button.wbcr-rio-selected:active {
50
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
51
+ }
52
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table {
53
+ width: 100%;
54
+ box-sizing: border-box;
55
+ border-spacing: 3px;
56
+ background: #fff;
57
+ }
58
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table th,
59
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table td {
60
+ padding: 16px 10px;
61
+ text-align: center;
62
+ }
63
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table th {
64
+ background: #efefef;
65
+ color: #777777;
66
+ box-shadow: 0 1px 0 #d8d8d8;
67
+ }
68
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-check-proccess {
69
+ display: inline-block;
70
+ height: 10px;
71
+ width: 30px;
72
+ background: url("../img/quick-start-loader.gif") center no-repeat;
73
+ }
74
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-servers-list-item-selected {
75
+ background: #fffbed;
76
+ color: #cec5a8;
77
+ font-weight: 600;
78
+ }
79
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-success {
80
+ color: #8CC152;
81
+ }
82
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-error {
83
+ color: #fb5d49;
84
+ }
85
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers table .wbcr-rio-server-warning {
86
+ color: #ffb635;
87
+ }
88
+ #WBCR .wbcr-factory-sidebar-widget.wbcr-rio-servers .wbcr-rio-warning-message {
89
+ margin-top: 30px;
90
+ padding: 20px;
91
+ border: 1px dashed #bfbfbf;
92
+ background: #ffffff;
93
+ margin-bottom: 40px;
94
+ font-size: 15px;
95
+ color: #828282;
96
+ }
97
+ #WBCR .wio-columns {
98
+ overflow: hidden;
99
+ padding: 15px 0;
100
+ counter-reset: cols;
101
+ }
102
+ #WBCR .wio-columns [class^="col-"] {
103
+ float: left;
104
+ -webkit-box-sizing: border-box;
105
+ -moz-box-sizing: border-box;
106
+ box-sizing: border-box;
107
+ }
108
+ #WBCR .wio-columns .col-1-3 {
109
+ width: 33.333%;
110
+ padding-left: 28px;
111
+ }
112
+ #WBCR .wio-columns .col-2-3 {
113
+ width: 66.666%;
114
+ padding-left: 28px;
115
+ }
116
+ #WBCR .wio-columns .col-1-2 {
117
+ width: 50%;
118
+ padding: 0 20px;
119
+ }
120
+ #WBCR .wio-columns .col-statistics.col-statistics {
121
+ width: 60%;
122
+ }
123
+ #WBCR .wio-columns .col-chart.col-chart {
124
+ width: 40%;
125
+ position: relative;
126
+ padding: 20px;
127
+ font-size: 12px;
128
+ text-transform: uppercase;
129
+ background: #f1f1f1b3;
130
+ color: #abacaf;
131
+ font-weight: bold;
132
+ border-radius: 5px;
133
+ margin-top: 10px;
134
+ text-align: left;
135
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
136
+ }
137
+ #WBCR .wio-col {
138
+ float: left;
139
+ width: 50%;
140
+ box-sizing: border-box;
141
+ -webkit-flex-basis: 50%;
142
+ -ms-flex-preferred-size: 50%;
143
+ flex-basis: 50%;
144
+ }
145
+ #WBCR .wio-col {
146
+ padding-right: 20px;
147
+ }
148
+ #WBCR .wio-col + .wio-col {
149
+ padding-right: 0;
150
+ padding-left: 50px;
151
+ }
152
+ #WBCR .wio-col:target {
153
+ animation: wiohello 1s 3 linear backwards;
154
+ }
155
+ #WBCR .wio-number-you-optimized {
156
+ margin-bottom: 1.35em;
157
+ overflow: hidden;
158
+ }
159
+ #WBCR .wio-number-you-optimized #wio-total-optimized-attachments-pct {
160
+ color: #828282;
161
+ }
162
+ #WBCR .wio-number-you-optimized .wio-number {
163
+ display: table-cell;
164
+ padding-right: 15px;
165
+ font-size: 48px;
166
+ font-weight: bold;
167
+ line-height: 1;
168
+ vertical-align: middle;
169
+ white-space: nowrap;
170
+ color: #828282;
171
+ }
172
+ #WBCR .wio-number-you-optimized .wio-text {
173
+ display: table-cell;
174
+ vertical-align: middle;
175
+ overflow: hidden;
176
+ font-size: 12px;
177
+ color: #828282;
178
+ }
179
+ #WBCR .wio-number-you-optimized > p {
180
+ display: table;
181
+ }
182
+ #WBCR .wio-bars {
183
+ padding-right: 15px;
184
+ }
185
+ #WBCR .wio-bars p {
186
+ font-size: 12px;
187
+ margin-bottom: 5px;
188
+ }
189
+ #WBCR .wio-bars + .wio-number-you-optimized {
190
+ border-bottom: 0;
191
+ padding-top: 0.85em;
192
+ }
193
+ #WBCR .wio-bars + .wio-number-you-optimized p {
194
+ color: #72a53b;
195
+ }
196
+ #WBCR .wio-bar-negative .wio-progress {
197
+ background: #D2D3D6;
198
+ }
199
+ #WBCR .wio-bar-negative .wio-barnb {
200
+ color: #9d9fa5;
201
+ }
202
+ #WBCR .wio-progress {
203
+ height: 8px;
204
+ transition: width 0.3s;
205
+ /*.wio-bar-negative {
206
+ width: 92% !important;
207
+ }*/
208
+ }
209
+ #WBCR .wio-bar-positive .wio-progress {
210
+ background: #8CC152;
211
+ }
212
+ #WBCR .wio-bar-positive .wio-barnb {
213
+ color: #72a53b;
214
+ }
215
+ #WBCR .wio-bar-primary .wio-progress {
216
+ background: #8CC152;
217
+ }
218
+ #WBCR .wio-bar-primary .wio-barnb {
219
+ color: #72a53b;
220
+ }
221
+ #WBCR .wio-right-outside-number .wio-barnb {
222
+ display: block;
223
+ margin-right: -5.25em;
224
+ text-align: right;
225
+ font-weight: bold;
226
+ line-height: 0.8;
227
+ }
228
+ #WBCR .wio-chart {
229
+ position: relative;
230
+ top: 1px;
231
+ display: inline-block;
232
+ vertical-align: middle;
233
+ }
234
+ #WBCR .wio-chart-container {
235
+ position: relative;
236
+ display: inline-block;
237
+ margin-right: 5px;
238
+ border: 10px solid #d2d3d6;
239
+ border-radius: 100%;
240
+ }
241
+ #WBCR .wio-chart-container canvas {
242
+ display: block;
243
+ }
244
+ #WBCR .wio-overview-chart-container {
245
+ float: left;
246
+ margin-right: 20px;
247
+ }
248
+ #WBCR .wio-chart-percent {
249
+ position: absolute;
250
+ left: 0;
251
+ right: 0;
252
+ top: 50%;
253
+ margin-top: -0.5em;
254
+ line-height: 0.8;
255
+ text-align: center;
256
+ font-size: 54px;
257
+ font-weight: bold;
258
+ color: #afafaf;
259
+ }
260
+ #WBCR .wio-chart-percent span {
261
+ font-size: 20px;
262
+ vertical-align: super;
263
+ }
264
+ #WBCR #wio-overview-chart-legend {
265
+ overflow: hidden;
266
+ }
267
+ #WBCR .wio-doughnut-legend li {
268
+ display: inline-block;
269
+ position: relative;
270
+ margin-bottom: 15px;
271
+ border-radius: 5px;
272
+ padding: 3px 8px 2px 31px;
273
+ font-size: 12px;
274
+ cursor: default;
275
+ -webkit-transition: background-color 200ms ease-in-out;
276
+ -moz-transition: background-color 200ms ease-in-out;
277
+ -o-transition: background-color 200ms ease-in-out;
278
+ transition: background-color 200ms ease-in-out;
279
+ }
280
+ #WBCR .wio-doughnut-legend li span {
281
+ display: block;
282
+ position: absolute;
283
+ left: 0;
284
+ top: 0;
285
+ width: 25px;
286
+ height: 25px;
287
+ border-radius: 50%;
288
+ }
289
+ #WBCR .wio-optimize-button {
290
+ width: 180px;
291
+ padding: 12px 30px;
292
+ background: #c9deb2;
293
+ color: #586549;
294
+ border: 0;
295
+ box-shadow: none;
296
+ font-size: 14px;
297
+ text-transform: uppercase !important;
298
+ font-weight: bold;
299
+ border-radius: 4px;
300
+ outline: none;
301
+ text-decoration: none;
302
+ }
303
+ #WBCR .wio-optimize-button:active {
304
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
305
+ }
306
+ #WBCR .wio-global-optim-phrase {
307
+ width: 180px;
308
+ padding-top: 20px;
309
+ font-size: 14px;
310
+ text-align: center;
311
+ }
312
+ #WBCR .wio-total-percent {
313
+ color: #587f2e;
314
+ }
315
+ #WBCR .wio-text-left {
316
+ text-align: left;
317
+ }
318
+ #WBCR span.wio-num {
319
+ display: inline !important;
320
+ position: inherit !important;
321
+ }
322
+ #WBCR .wio-image-optimize-board {
323
+ padding: 20px;
324
+ }
325
+ #WBCR .wio-page-statistic {
326
+ padding-left: 40px;
327
+ }
328
+ #WBCR .wio-page-statistic .wio-chart-percent {
329
+ margin-top: -1.1em;
330
+ }
331
+ #WBCR .wio-widget {
332
+ padding: 0 !important;
333
+ }
334
+ #WBCR .wio-widget .wio-chart-percent {
335
+ font-size: 44px;
336
+ line-height: 1;
337
+ }
338
+ #WBCR .wio-widget .wio-bars {
339
+ width: 80%;
340
+ margin-left: 155px;
341
+ box-sizing: border-box;
342
+ }
343
+ #WBCR .wio-widget .col-chart.col-chart {
344
+ width: 100%;
345
+ }
346
+ #WBCR .wio-widget .col-controls {
347
+ width: 45%;
348
+ padding-left: 5px;
349
+ padding-top: 110px;
350
+ }
351
+ #WBCR .wio-widget .wio-doughnut-legend {
352
+ margin-left: 20px;
353
+ text-align: left;
354
+ }
355
+ #WBCR .wio-widget .wio-widget-bottom {
356
+ display: table;
357
+ padding-top: 20px !important;
358
+ width: 100%;
359
+ text-align: right;
360
+ }
361
+ #WBCR .wio-widget .wio-widget-bottom li {
362
+ display: table-cell;
363
+ }
364
+ #WBCR .wio-widget .wio-widget-bottom li:first-child {
365
+ text-align: left;
366
+ }
367
+ @media (max-width: 830px) {
368
+ #WBCR .wio [class^="col-"] {
369
+ float: none;
370
+ margin-bottom: 1.5em;
371
+ }
372
+ #WBCR .wio .col-1-3,
373
+ #WBCR .wio .col-1-2 {
374
+ width: auto;
375
+ padding: 0 28px;
376
+ clear: both;
377
+ padding-top: 1em;
378
+ }
379
+ }
380
+ @keyframes wiohello {
381
+ 0%,
382
+ 100% {
383
+ background: #FFF;
384
+ }
385
+ 50% {
386
+ background: #F4F7F9;
387
+ }
388
+ }
389
+ @media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) {
390
+ #WBCR .wio-columns .col-statistics.col-statistics,
391
+ #WBCR .wio-columns .col-chart.col-chart {
392
+ width: 50%;
393
+ }
394
+ }
395
+ @media (max-width: 808px) {
396
+ #WBCR .wio-columns .col-statistics.col-statistics,
397
+ #WBCR .wio-columns .col-chart.col-chart {
398
+ width: auto;
399
+ float: none;
400
+ padding: 0;
401
+ }
402
+ #WBCR .wio-columns .col-chart.col-chart {
403
+ margin-top: 3em;
404
+ }
405
+ }
406
  /*# sourceMappingURL=base-statistic.css.map */
admin/assets/css/base-statistic.css.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["base-statistic.less"],"names":[],"mappings":"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","file":"base-statistic.css"}
admin/assets/css/base-statistic.less CHANGED
@@ -1,494 +1,494 @@
1
- /**
2
- * Styles for the Widget to be displayed in the Clearfy plugin
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 13.06.2018
6
- */
7
-
8
- @positiveColor: #8CC152;
9
- @negativeColor: #D2D3D6;
10
- @neutralColor: #828282;
11
-
12
- @errorColor: #fb5d49;
13
- @waringColor: #ffb635;
14
-
15
- @greyButtonBg: #f3f3f3;
16
- @greyButtonColor: #656565;
17
-
18
- @greenButtonBg: #c9deb2;
19
- @greenButtonColor: #586549;
20
-
21
- @orangeButtonBg: #fdd599;
22
- @orangeButtonColor: #a57b3c;
23
-
24
- #WBCR {
25
- .wio-clear {
26
- clear: both;
27
- }
28
-
29
- // Right sidebar
30
-
31
- .wbcr-factory-sidebar-widget {
32
- &.wbcr-rio-servers {
33
- margin-top: 30px;
34
- background: none;
35
- padding: 0;
36
-
37
- h4 {
38
- font-size: 15px;
39
- font-weight: 700;
40
- }
41
-
42
- button {
43
- padding: 5px 10px;
44
- border: 0;
45
- font-size: 11px;
46
- text-transform: uppercase !important;
47
- font-weight: bold;
48
- border-radius: 4px;
49
- outline: none;
50
- background: @greyButtonBg;
51
- color: @greyButtonColor;
52
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
53
-
54
- &:active {
55
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
56
- }
57
-
58
- &.wbcr-rio-loading {
59
- width: 56px;
60
- font-size: 0;
61
- background: @greyButtonBg url("../img/quick-start-loader.gif") center no-repeat;
62
- }
63
-
64
- &.wbcr-rio-selected {
65
- background: #f3efe2;
66
- color: #d8d8d8;
67
- &:active {
68
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
69
- }
70
- }
71
- }
72
-
73
- table {
74
- width: 100%;
75
- box-sizing: border-box;
76
- border-spacing: 3px;
77
- background: #fff;
78
-
79
- th, td {
80
- padding: 16px 10px;
81
- text-align: center;
82
- }
83
- th {
84
- background: #efefef;
85
- color: #777777;
86
- box-shadow: 0 1px 0 rgb(216, 216, 216);
87
- }
88
- .wbcr-rio-server-check-proccess {
89
- display: inline-block;
90
- height: 10px;
91
- width: 30px;
92
- background: url("../img/quick-start-loader.gif") center no-repeat;
93
- }
94
- .wbcr-rio-servers-list-item-selected {
95
- background: #fffbed;
96
- color: #cec5a8;
97
- font-weight: 600;
98
- }
99
- .wbcr-rio-server-success {
100
- color: @positiveColor;
101
- }
102
- .wbcr-rio-server-error {
103
- color: @errorColor;
104
- }
105
- .wbcr-rio-server-warning {
106
- color: @waringColor;
107
- }
108
- }
109
-
110
- .wbcr-rio-warning-message {
111
- margin-top: 30px;
112
- padding: 20px;
113
- border: 1px dashed #bfbfbf;
114
- background: #ffffff;
115
- margin-bottom: 40px;
116
- font-size: 15px;
117
- color: #828282;
118
- }
119
- }
120
- }
121
-
122
- .wio-columns {
123
- overflow: hidden;
124
- padding: 15px 0;
125
- counter-reset: cols;
126
-
127
- [class^="col-"] {
128
- float: left;
129
- -webkit-box-sizing: border-box;
130
- -moz-box-sizing: border-box;
131
- box-sizing: border-box;
132
- }
133
-
134
- .col-1-3 {
135
- width: 33.333%;
136
- padding-left: 28px;
137
- }
138
-
139
- .col-2-3 {
140
- width: 66.666%;
141
- padding-left: 28px
142
- }
143
-
144
- .col-1-2 {
145
- width: 50%;
146
- padding: 0 20px;
147
- }
148
-
149
- .col-statistics.col-statistics {
150
- width: 60%;
151
- }
152
-
153
- .col-chart.col-chart {
154
- width: 40%;
155
- position: relative;
156
- padding: 20px;
157
- font-size: 12px;
158
- text-transform: uppercase;
159
- background: #f1f1f1b3;
160
- color: #abacaf;
161
- font-weight: bold;
162
- border-radius: 5px;
163
- margin-top: 10px;
164
- text-align: left;
165
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
166
- }
167
- }
168
-
169
- .wio-col {
170
- float: left;
171
- width: 50%;
172
- box-sizing: border-box;
173
- -webkit-flex-basis: 50%;
174
- -ms-flex-preferred-size: 50%;
175
- flex-basis: 50%;
176
- }
177
-
178
- .wio-col {
179
- padding-right: 20px;
180
- }
181
-
182
- .wio-col + .wio-col {
183
- padding-right: 0;
184
- padding-left: 50px;
185
- }
186
-
187
- .wio-col:target {
188
- animation: wiohello 1s 3 linear backwards;
189
- }
190
-
191
- /* Number display */
192
- .wio-number-you-optimized {
193
- margin-bottom: 1.35em;
194
- overflow: hidden;
195
-
196
- #wio-total-optimized-attachments-pct {
197
- color: @neutralColor;
198
- }
199
-
200
- .wio-number {
201
- display: table-cell;
202
- padding-right: 15px;
203
- font-size: 48px;
204
- font-weight: bold;
205
- line-height: 1;
206
- vertical-align: middle;
207
- white-space: nowrap;
208
- color: @neutralColor;
209
- }
210
-
211
- .wio-text {
212
- display: table-cell;
213
- vertical-align: middle;
214
- overflow: hidden;
215
- font-size: 12px;
216
- color: @neutralColor;
217
- }
218
-
219
- & > p {
220
- display: table;
221
- }
222
- }
223
-
224
- /* Number and bars */
225
- .wio-bars {
226
- padding-right: 15px;
227
- }
228
-
229
- .wio-bars p {
230
- font-size: 12px;
231
- margin-bottom: 5px;
232
- }
233
-
234
- .wio-bars + .wio-number-you-optimized {
235
- border-bottom: 0;
236
- padding-top: 0.85em;
237
- }
238
-
239
- .wio-bars + .wio-number-you-optimized p {
240
- color: darken(@positiveColor, 10);
241
- }
242
-
243
- .wio-bar-negative {
244
- .wio-progress {
245
- background: @negativeColor;
246
- }
247
- .wio-barnb {
248
- color: darken(@negativeColor, 20);
249
- }
250
- }
251
-
252
- .wio-progress {
253
- height: 8px;
254
- transition: width .3s;
255
-
256
- /*.wio-bar-negative {
257
- width: 92% !important;
258
- }*/
259
- }
260
-
261
- .wio-bar-positive {
262
- .wio-progress {
263
- background: @positiveColor;
264
- }
265
- .wio-barnb {
266
- color: darken(@positiveColor, 10);
267
- }
268
- }
269
-
270
- .wio-bar-primary {
271
- .wio-progress {
272
- background: @positiveColor;
273
- }
274
- .wio-barnb {
275
- color: darken(@positiveColor, 10);
276
- }
277
- }
278
-
279
- .wio-right-outside-number .wio-barnb {
280
- display: block;
281
- margin-right: -5.25em;
282
- text-align: right;
283
- font-weight: bold;
284
- line-height: .8;
285
- }
286
-
287
- /* Doughnut */
288
- .wio-chart {
289
- position: relative;
290
- top: 1px;
291
- display: inline-block;
292
- vertical-align: middle;
293
- }
294
-
295
- .wio-chart-container {
296
- position: relative;
297
- display: inline-block;
298
- margin-right: 5px;
299
- border: 10px solid #d2d3d6;
300
- border-radius: 100%;
301
- }
302
-
303
- .wio-chart-container canvas {
304
- display: block;
305
- }
306
-
307
- .wio-overview-chart-container {
308
- float: left;
309
- margin-right: 20px;
310
- }
311
-
312
- .wio-chart-percent {
313
- position: absolute;
314
- left: 0;
315
- right: 0;
316
- top: 50%;
317
- margin-top: -.5em;
318
- line-height: 0.8;
319
- text-align: center;
320
- font-size: 54px;
321
- font-weight: bold;
322
- color: #afafaf;
323
- }
324
-
325
- .wio-chart-percent span {
326
- font-size: 20px;
327
- vertical-align: super;
328
- }
329
-
330
- #wio-overview-chart-legend {
331
- overflow: hidden;
332
- }
333
-
334
- .wio-doughnut-legend li {
335
- display: inline-block;
336
- position: relative;
337
- margin-bottom: 15px;
338
- border-radius: 5px;
339
- padding: 3px 8px 2px 31px;
340
- font-size: 12px;
341
- cursor: default;
342
- -webkit-transition: background-color 200ms ease-in-out;
343
- -moz-transition: background-color 200ms ease-in-out;
344
- -o-transition: background-color 200ms ease-in-out;
345
- transition: background-color 200ms ease-in-out;
346
- }
347
-
348
- .wio-doughnut-legend li span {
349
- display: block;
350
- position: absolute;
351
- left: 0;
352
- top: 0;
353
- width: 25px;
354
- height: 25px;
355
- border-radius: 50%;
356
- }
357
-
358
- .wio-optimize-button {
359
- width: 180px;
360
- padding: 12px 30px;
361
- background: @greenButtonBg;
362
- color: @greenButtonColor;
363
- border: 0;
364
- box-shadow: none;
365
- font-size: 14px;
366
- text-transform: uppercase !important;
367
- font-weight: bold;
368
- border-radius: 4px;
369
- outline: none;
370
- text-decoration: none;
371
-
372
- &:active {
373
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
374
- }
375
- }
376
-
377
- .wio-global-optim-phrase {
378
- width: 180px;
379
- padding-top: 20px;
380
- font-size: 14px;
381
- text-align: center;
382
- }
383
-
384
- .wio-total-percent {
385
- color: darken(@positiveColor, 20);
386
- }
387
-
388
- .wio-text-left {
389
- text-align: left;
390
- }
391
-
392
- span.wio-num {
393
- display: inline !important;
394
- position: inherit !important;
395
- }
396
-
397
- /* Widget */
398
- .wio-image-optimize-board {
399
- padding: 20px;
400
- }
401
-
402
- .wio-page-statistic {
403
- padding-left: 40px;
404
-
405
- .wio-chart-percent {
406
- margin-top: -1.1em;
407
- }
408
- }
409
-
410
- .wio-widget {
411
- padding: 0 !important;
412
-
413
- .wio-chart-percent {
414
- font-size: 44px;
415
- line-height: 1;
416
- }
417
- .wio-bars {
418
- width: 80%;
419
- margin-left: 155px;
420
- box-sizing: border-box;
421
- }
422
- .col-chart.col-chart {
423
- width: 100%;
424
- }
425
- .col-controls {
426
- width: 45%;
427
- padding-left: 5px;
428
- padding-top: 110px
429
- }
430
- .wio-doughnut-legend {
431
- margin-left: 20px;
432
- text-align: left;
433
-
434
- }
435
- .wio-widget-bottom {
436
- display: table;
437
- padding-top: 20px !important;
438
- width: 100%;
439
- text-align: right;
440
- }
441
- .wio-widget-bottom li {
442
- display: table-cell;
443
- }
444
- .wio-widget-bottom li:first-child {
445
- text-align: left;
446
- }
447
- }
448
-
449
- @media (max-width: 830px) {
450
- .wio [class^="col-"] {
451
- float: none;
452
- margin-bottom: 1.5em;
453
- }
454
-
455
- .wio .col-1-3,
456
- .wio .col-1-2 {
457
- width: auto;
458
- padding: 0 28px;
459
- clear: both;
460
- padding-top: 1em;
461
- }
462
- }
463
-
464
- @keyframes wiohello {
465
- 0%, 100% {
466
- background: #FFF;
467
- }
468
- 50% {
469
- background: #F4F7F9;
470
- }
471
- }
472
-
473
- @media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) {
474
- .wio-columns {
475
- .col-statistics.col-statistics, .col-chart.col-chart {
476
- width: 50%;
477
- }
478
- }
479
-
480
- }
481
-
482
- @media (max-width: 808px) {
483
- .wio-columns {
484
- .col-statistics.col-statistics, .col-chart.col-chart {
485
- width: auto;
486
- float: none;
487
- padding: 0;
488
- }
489
- .col-chart.col-chart {
490
- margin-top: 3em;
491
- }
492
- }
493
- }
494
- }
1
+ /**
2
+ * Styles for the Widget to be displayed in the Clearfy plugin
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 13.06.2018
6
+ */
7
+
8
+ @positiveColor: #8CC152;
9
+ @negativeColor: #D2D3D6;
10
+ @neutralColor: #828282;
11
+
12
+ @errorColor: #fb5d49;
13
+ @waringColor: #ffb635;
14
+
15
+ @greyButtonBg: #f3f3f3;
16
+ @greyButtonColor: #656565;
17
+
18
+ @greenButtonBg: #c9deb2;
19
+ @greenButtonColor: #586549;
20
+
21
+ @orangeButtonBg: #fdd599;
22
+ @orangeButtonColor: #a57b3c;
23
+
24
+ #WBCR {
25
+ .wio-clear {
26
+ clear: both;
27
+ }
28
+
29
+ // Right sidebar
30
+
31
+ .wbcr-factory-sidebar-widget {
32
+ &.wbcr-rio-servers {
33
+ margin-top: 30px;
34
+ background: none;
35
+ padding: 0;
36
+
37
+ h4 {
38
+ font-size: 15px;
39
+ font-weight: 700;
40
+ }
41
+
42
+ button {
43
+ padding: 5px 10px;
44
+ border: 0;
45
+ font-size: 11px;
46
+ text-transform: uppercase !important;
47
+ font-weight: bold;
48
+ border-radius: 4px;
49
+ outline: none;
50
+ background: @greyButtonBg;
51
+ color: @greyButtonColor;
52
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
53
+
54
+ &:active {
55
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
56
+ }
57
+
58
+ &.wbcr-rio-loading {
59
+ width: 56px;
60
+ font-size: 0;
61
+ background: @greyButtonBg url("../img/quick-start-loader.gif") center no-repeat;
62
+ }
63
+
64
+ &.wbcr-rio-selected {
65
+ background: #f3efe2;
66
+ color: #d8d8d8;
67
+ &:active {
68
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
69
+ }
70
+ }
71
+ }
72
+
73
+ table {
74
+ width: 100%;
75
+ box-sizing: border-box;
76
+ border-spacing: 3px;
77
+ background: #fff;
78
+
79
+ th, td {
80
+ padding: 16px 10px;
81
+ text-align: center;
82
+ }
83
+ th {
84
+ background: #efefef;
85
+ color: #777777;
86
+ box-shadow: 0 1px 0 rgb(216, 216, 216);
87
+ }
88
+ .wbcr-rio-server-check-proccess {
89
+ display: inline-block;
90
+ height: 10px;
91
+ width: 30px;
92
+ background: url("../img/quick-start-loader.gif") center no-repeat;
93
+ }
94
+ .wbcr-rio-servers-list-item-selected {
95
+ background: #fffbed;
96
+ color: #cec5a8;
97
+ font-weight: 600;
98
+ }
99
+ .wbcr-rio-server-success {
100
+ color: @positiveColor;
101
+ }
102
+ .wbcr-rio-server-error {
103
+ color: @errorColor;
104
+ }
105
+ .wbcr-rio-server-warning {
106
+ color: @waringColor;
107
+ }
108
+ }
109
+
110
+ .wbcr-rio-warning-message {
111
+ margin-top: 30px;
112
+ padding: 20px;
113
+ border: 1px dashed #bfbfbf;
114
+ background: #ffffff;
115
+ margin-bottom: 40px;
116
+ font-size: 15px;
117
+ color: #828282;
118
+ }
119
+ }
120
+ }
121
+
122
+ .wio-columns {
123
+ overflow: hidden;
124
+ padding: 15px 0;
125
+ counter-reset: cols;
126
+
127
+ [class^="col-"] {
128
+ float: left;
129
+ -webkit-box-sizing: border-box;
130
+ -moz-box-sizing: border-box;
131
+ box-sizing: border-box;
132
+ }
133
+
134
+ .col-1-3 {
135
+ width: 33.333%;
136
+ padding-left: 28px;
137
+ }
138
+
139
+ .col-2-3 {
140
+ width: 66.666%;
141
+ padding-left: 28px
142
+ }
143
+
144
+ .col-1-2 {
145
+ width: 50%;
146
+ padding: 0 20px;
147
+ }
148
+
149
+ .col-statistics.col-statistics {
150
+ width: 60%;
151
+ }
152
+
153
+ .col-chart.col-chart {
154
+ width: 40%;
155
+ position: relative;
156
+ padding: 20px;
157
+ font-size: 12px;
158
+ text-transform: uppercase;
159
+ background: #f1f1f1b3;
160
+ color: #abacaf;
161
+ font-weight: bold;
162
+ border-radius: 5px;
163
+ margin-top: 10px;
164
+ text-align: left;
165
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
166
+ }
167
+ }
168
+
169
+ .wio-col {
170
+ float: left;
171
+ width: 50%;
172
+ box-sizing: border-box;
173
+ -webkit-flex-basis: 50%;
174
+ -ms-flex-preferred-size: 50%;
175
+ flex-basis: 50%;
176
+ }
177
+
178
+ .wio-col {
179
+ padding-right: 20px;
180
+ }
181
+
182
+ .wio-col + .wio-col {
183
+ padding-right: 0;
184
+ padding-left: 50px;
185
+ }
186
+
187
+ .wio-col:target {
188
+ animation: wiohello 1s 3 linear backwards;
189
+ }
190
+
191
+ /* Number display */
192
+ .wio-number-you-optimized {
193
+ margin-bottom: 1.35em;
194
+ overflow: hidden;
195
+
196
+ #wio-total-optimized-attachments-pct {
197
+ color: @neutralColor;
198
+ }
199
+
200
+ .wio-number {
201
+ display: table-cell;
202
+ padding-right: 15px;
203
+ font-size: 48px;
204
+ font-weight: bold;
205
+ line-height: 1;
206
+ vertical-align: middle;
207
+ white-space: nowrap;
208
+ color: @neutralColor;
209
+ }
210
+
211
+ .wio-text {
212
+ display: table-cell;
213
+ vertical-align: middle;
214
+ overflow: hidden;
215
+ font-size: 12px;
216
+ color: @neutralColor;
217
+ }
218
+
219
+ & > p {
220
+ display: table;
221
+ }
222
+ }
223
+
224
+ /* Number and bars */
225
+ .wio-bars {
226
+ padding-right: 15px;
227
+ }
228
+
229
+ .wio-bars p {
230
+ font-size: 12px;
231
+ margin-bottom: 5px;
232
+ }
233
+
234
+ .wio-bars + .wio-number-you-optimized {
235
+ border-bottom: 0;
236
+ padding-top: 0.85em;
237
+ }
238
+
239
+ .wio-bars + .wio-number-you-optimized p {
240
+ color: darken(@positiveColor, 10);
241
+ }
242
+
243
+ .wio-bar-negative {
244
+ .wio-progress {
245
+ background: @negativeColor;
246
+ }
247
+ .wio-barnb {
248
+ color: darken(@negativeColor, 20);
249
+ }
250
+ }
251
+
252
+ .wio-progress {
253
+ height: 8px;
254
+ transition: width .3s;
255
+
256
+ /*.wio-bar-negative {
257
+ width: 92% !important;
258
+ }*/
259
+ }
260
+
261
+ .wio-bar-positive {
262
+ .wio-progress {
263
+ background: @positiveColor;
264
+ }
265
+ .wio-barnb {
266
+ color: darken(@positiveColor, 10);
267
+ }
268
+ }
269
+
270
+ .wio-bar-primary {
271
+ .wio-progress {
272
+ background: @positiveColor;
273
+ }
274
+ .wio-barnb {
275
+ color: darken(@positiveColor, 10);
276
+ }
277
+ }
278
+
279
+ .wio-right-outside-number .wio-barnb {
280
+ display: block;
281
+ margin-right: -5.25em;
282
+ text-align: right;
283
+ font-weight: bold;
284
+ line-height: .8;
285
+ }
286
+
287
+ /* Doughnut */
288
+ .wio-chart {
289
+ position: relative;
290
+ top: 1px;
291
+ display: inline-block;
292
+ vertical-align: middle;
293
+ }
294
+
295
+ .wio-chart-container {
296
+ position: relative;
297
+ display: inline-block;
298
+ margin-right: 5px;
299
+ border: 10px solid #d2d3d6;
300
+ border-radius: 100%;
301
+ }
302
+
303
+ .wio-chart-container canvas {
304
+ display: block;
305
+ }
306
+
307
+ .wio-overview-chart-container {
308
+ float: left;
309
+ margin-right: 20px;
310
+ }
311
+
312
+ .wio-chart-percent {
313
+ position: absolute;
314
+ left: 0;
315
+ right: 0;
316
+ top: 50%;
317
+ margin-top: -.5em;
318
+ line-height: 0.8;
319
+ text-align: center;
320
+ font-size: 54px;
321
+ font-weight: bold;
322
+ color: #afafaf;
323
+ }
324
+
325
+ .wio-chart-percent span {
326
+ font-size: 20px;
327
+ vertical-align: super;
328
+ }
329
+
330
+ #wio-overview-chart-legend {
331
+ overflow: hidden;
332
+ }
333
+
334
+ .wio-doughnut-legend li {
335
+ display: inline-block;
336
+ position: relative;
337
+ margin-bottom: 15px;
338
+ border-radius: 5px;
339
+ padding: 3px 8px 2px 31px;
340
+ font-size: 12px;
341
+ cursor: default;
342
+ -webkit-transition: background-color 200ms ease-in-out;
343
+ -moz-transition: background-color 200ms ease-in-out;
344
+ -o-transition: background-color 200ms ease-in-out;
345
+ transition: background-color 200ms ease-in-out;
346
+ }
347
+
348
+ .wio-doughnut-legend li span {
349
+ display: block;
350
+ position: absolute;
351
+ left: 0;
352
+ top: 0;
353
+ width: 25px;
354
+ height: 25px;
355
+ border-radius: 50%;
356
+ }
357
+
358
+ .wio-optimize-button {
359
+ width: 180px;
360
+ padding: 12px 30px;
361
+ background: @greenButtonBg;
362
+ color: @greenButtonColor;
363
+ border: 0;
364
+ box-shadow: none;
365
+ font-size: 14px;
366
+ text-transform: uppercase !important;
367
+ font-weight: bold;
368
+ border-radius: 4px;
369
+ outline: none;
370
+ text-decoration: none;
371
+
372
+ &:active {
373
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
374
+ }
375
+ }
376
+
377
+ .wio-global-optim-phrase {
378
+ width: 180px;
379
+ padding-top: 20px;
380
+ font-size: 14px;
381
+ text-align: center;
382
+ }
383
+
384
+ .wio-total-percent {
385
+ color: darken(@positiveColor, 20);
386
+ }
387
+
388
+ .wio-text-left {
389
+ text-align: left;
390
+ }
391
+
392
+ span.wio-num {
393
+ display: inline !important;
394
+ position: inherit !important;
395
+ }
396
+
397
+ /* Widget */
398
+ .wio-image-optimize-board {
399
+ padding: 20px;
400
+ }
401
+
402
+ .wio-page-statistic {
403
+ padding-left: 40px;
404
+
405
+ .wio-chart-percent {
406
+ margin-top: -1.1em;
407
+ }
408
+ }
409
+
410
+ .wio-widget {
411
+ padding: 0 !important;
412
+
413
+ .wio-chart-percent {
414
+ font-size: 44px;
415
+ line-height: 1;
416
+ }
417
+ .wio-bars {
418
+ width: 80%;
419
+ margin-left: 155px;
420
+ box-sizing: border-box;
421
+ }
422
+ .col-chart.col-chart {
423
+ width: 100%;
424
+ }
425
+ .col-controls {
426
+ width: 45%;
427
+ padding-left: 5px;
428
+ padding-top: 110px
429
+ }
430
+ .wio-doughnut-legend {
431
+ margin-left: 20px;
432
+ text-align: left;
433
+
434
+ }
435
+ .wio-widget-bottom {
436
+ display: table;
437
+ padding-top: 20px !important;
438
+ width: 100%;
439
+ text-align: right;
440
+ }
441
+ .wio-widget-bottom li {
442
+ display: table-cell;
443
+ }
444
+ .wio-widget-bottom li:first-child {
445
+ text-align: left;
446
+ }
447
+ }
448
+
449
+ @media (max-width: 830px) {
450
+ .wio [class^="col-"] {
451
+ float: none;
452
+ margin-bottom: 1.5em;
453
+ }
454
+
455
+ .wio .col-1-3,
456
+ .wio .col-1-2 {
457
+ width: auto;
458
+ padding: 0 28px;
459
+ clear: both;
460
+ padding-top: 1em;
461
+ }
462
+ }
463
+
464
+ @keyframes wiohello {
465
+ 0%, 100% {
466
+ background: #FFF;
467
+ }
468
+ 50% {
469
+ background: #F4F7F9;
470
+ }
471
+ }
472
+
473
+ @media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) {
474
+ .wio-columns {
475
+ .col-statistics.col-statistics, .col-chart.col-chart {
476
+ width: 50%;
477
+ }
478
+ }
479
+
480
+ }
481
+
482
+ @media (max-width: 808px) {
483
+ .wio-columns {
484
+ .col-statistics.col-statistics, .col-chart.col-chart {
485
+ width: auto;
486
+ float: none;
487
+ padding: 0;
488
+ }
489
+ .col-chart.col-chart {
490
+ margin-top: 3em;
491
+ }
492
+ }
493
+ }
494
+ }
admin/assets/css/components.css CHANGED
@@ -1,140 +1,140 @@
1
- /**
2
- * Page components
3
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
- * @copyright Alex Kovalev 30.09.2017
5
- */
6
- #WBCR .wbcr-clearfy-components {
7
- padding: 0 20px 20px;
8
- text-align: center;
9
- }
10
- #WBCR .wbcr-clearfy-components .plugin-card {
11
- position: relative;
12
- display: inline-block;
13
- width: 32.7%;
14
- height: 250px;
15
- margin-left: 0;
16
- margin-right: 0;
17
- text-align: left;
18
- float: none;
19
- vertical-align: top;
20
- }
21
- #WBCR .wbcr-clearfy-components .plugin-card:first-child {
22
- margin-left: 0;
23
- }
24
- #WBCR .wbcr-clearfy-components .plugin-card .plugin-card-bottom {
25
- position: absolute;
26
- bottom: 0;
27
- right: 0;
28
- left: 0;
29
- }
30
- #WBCR .wbcr-clearfy-components .plugin-card .plugin-card-top {
31
- min-height: 163px;
32
- }
33
- #WBCR .wbcr-clearfy-components .plugin-card .desc,
34
- #WBCR .wbcr-clearfy-components .plugin-card .name {
35
- margin-right: 0 !important;
36
- }
37
- #WBCR .wbcr-clearfy-components .plugin-card .name h3 {
38
- font-size: 17px;
39
- margin-top: 0 !important;
40
- }
41
- #WBCR .wbcr-clearfy-components .plugin-card .install-now {
42
- float: right;
43
- }
44
- #WBCR .wbcr-clearfy-components .plugin-card .delete-now {
45
- float: right;
46
- margin-left: 5px;
47
- }
48
- #WBCR .wbcr-clearfy-components .plugin-card .delete-now .dashicons,
49
- #WBCR .wbcr-clearfy-components .plugin-card .delete-now .dashicons-before:before {
50
- font-size: 16px !important;
51
- line-height: 1.5 !important;
52
- color: #62696f;
53
- }
54
- #WBCR .wbcr-clearfy-components .plugin-card a.open-plugin-details-modal {
55
- color: #5c5d5f;
56
- text-decoration: none;
57
- font-weight: 600;
58
- font-size: 15px;
59
- }
60
- #WBCR .wbcr-clearfy-components .plugin-card .plugin-card-premium-ribbon {
61
- position: absolute;
62
- bottom: 60px;
63
- right: 0;
64
- height: 30px;
65
- width: 120px;
66
- border-radius: 3px 0 0 3px;
67
- background-color: #f7dea9;
68
- color: #67532f;
69
- text-align: center;
70
- font-size: 12px;
71
- font-weight: 600;
72
- line-height: 2.4;
73
- text-transform: uppercase;
74
- z-index: 1;
75
- }
76
- #WBCR .wbcr-clearfy-components .plugin-card .plugin-card-free-ribbon {
77
- position: absolute;
78
- bottom: 60px;
79
- right: 0;
80
- height: 30px;
81
- width: 120px;
82
- border-radius: 3px 0 0 3px;
83
- background-color: #cccccc;
84
- color: #6b6b6b;
85
- text-align: center;
86
- font-size: 12px;
87
- font-weight: 600;
88
- line-height: 2.4;
89
- text-transform: uppercase;
90
- z-index: 1;
91
- }
92
- #WBCR .wbcr-clearfy-components .plugin-card .plugin-card-freemium-ribbon {
93
- position: absolute;
94
- bottom: 60px;
95
- right: 0;
96
- height: 30px;
97
- width: 120px;
98
- border-radius: 3px 0 0 3px;
99
- background-color: #cae2b3;
100
- color: #546742;
101
- text-align: center;
102
- font-size: 12px;
103
- font-weight: 600;
104
- line-height: 2.4;
105
- text-transform: uppercase;
106
- z-index: 1;
107
- }
108
- #WBCR .wbcr-clearfy-components .plugin-card.premium {
109
- border-color: #e8d7b2;
110
- background-color: #fff9eb;
111
- }
112
- #WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive {
113
- background-color: #f1f1f1;
114
- }
115
- #WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive a.open-plugin-details-modal {
116
- color: #ababab;
117
- text-decoration: none;
118
- font-weight: 600;
119
- font-size: 15px;
120
- }
121
- #WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive .plugin-icon {
122
- opacity: 0.3;
123
- }
124
- #WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive .desc {
125
- color: #afafaf;
126
- }
127
- #WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive.premium {
128
- background-color: #f9f2f1;
129
- }
130
- @media screen and (max-width: 1750px) {
131
- #WBCR .wbcr-clearfy-components .plugin-card {
132
- width: 49%;
133
- }
134
- }
135
- @media screen and (max-width: 1350px) {
136
- #WBCR .wbcr-clearfy-components .plugin-card {
137
- width: 100%;
138
- }
139
- }
140
  /*# sourceMappingURL=components.css.map */
1
+ /**
2
+ * Page components
3
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
+ * @copyright Alex Kovalev 30.09.2017
5
+ */
6
+ #WBCR .wbcr-clearfy-components {
7
+ padding: 0 20px 20px;
8
+ text-align: center;
9
+ }
10
+ #WBCR .wbcr-clearfy-components .plugin-card {
11
+ position: relative;
12
+ display: inline-block;
13
+ width: 32.7%;
14
+ height: 250px;
15
+ margin-left: 0;
16
+ margin-right: 0;
17
+ text-align: left;
18
+ float: none;
19
+ vertical-align: top;
20
+ }
21
+ #WBCR .wbcr-clearfy-components .plugin-card:first-child {
22
+ margin-left: 0;
23
+ }
24
+ #WBCR .wbcr-clearfy-components .plugin-card .plugin-card-bottom {
25
+ position: absolute;
26
+ bottom: 0;
27
+ right: 0;
28
+ left: 0;
29
+ }
30
+ #WBCR .wbcr-clearfy-components .plugin-card .plugin-card-top {
31
+ min-height: 163px;
32
+ }
33
+ #WBCR .wbcr-clearfy-components .plugin-card .desc,
34
+ #WBCR .wbcr-clearfy-components .plugin-card .name {
35
+ margin-right: 0 !important;
36
+ }
37
+ #WBCR .wbcr-clearfy-components .plugin-card .name h3 {
38
+ font-size: 17px;
39
+ margin-top: 0 !important;
40
+ }
41
+ #WBCR .wbcr-clearfy-components .plugin-card .install-now {
42
+ float: right;
43
+ }
44
+ #WBCR .wbcr-clearfy-components .plugin-card .delete-now {
45
+ float: right;
46
+ margin-left: 5px;
47
+ }
48
+ #WBCR .wbcr-clearfy-components .plugin-card .delete-now .dashicons,
49
+ #WBCR .wbcr-clearfy-components .plugin-card .delete-now .dashicons-before:before {
50
+ font-size: 16px !important;
51
+ line-height: 1.5 !important;
52
+ color: #62696f;
53
+ }
54
+ #WBCR .wbcr-clearfy-components .plugin-card a.open-plugin-details-modal {
55
+ color: #5c5d5f;
56
+ text-decoration: none;
57
+ font-weight: 600;
58
+ font-size: 15px;
59
+ }
60
+ #WBCR .wbcr-clearfy-components .plugin-card .plugin-card-premium-ribbon {
61
+ position: absolute;
62
+ bottom: 60px;
63
+ right: 0;
64
+ height: 30px;
65
+ width: 120px;
66
+ border-radius: 3px 0 0 3px;
67
+ background-color: #f7dea9;
68
+ color: #67532f;
69
+ text-align: center;
70
+ font-size: 12px;
71
+ font-weight: 600;
72
+ line-height: 2.4;
73
+ text-transform: uppercase;
74
+ z-index: 1;
75
+ }
76
+ #WBCR .wbcr-clearfy-components .plugin-card .plugin-card-free-ribbon {
77
+ position: absolute;
78
+ bottom: 60px;
79
+ right: 0;
80
+ height: 30px;
81
+ width: 120px;
82
+ border-radius: 3px 0 0 3px;
83
+ background-color: #cccccc;
84
+ color: #6b6b6b;
85
+ text-align: center;
86
+ font-size: 12px;
87
+ font-weight: 600;
88
+ line-height: 2.4;
89
+ text-transform: uppercase;
90
+ z-index: 1;
91
+ }
92
+ #WBCR .wbcr-clearfy-components .plugin-card .plugin-card-freemium-ribbon {
93
+ position: absolute;
94
+ bottom: 60px;
95
+ right: 0;
96
+ height: 30px;
97
+ width: 120px;
98
+ border-radius: 3px 0 0 3px;
99
+ background-color: #cae2b3;
100
+ color: #546742;
101
+ text-align: center;
102
+ font-size: 12px;
103
+ font-weight: 600;
104
+ line-height: 2.4;
105
+ text-transform: uppercase;
106
+ z-index: 1;
107
+ }
108
+ #WBCR .wbcr-clearfy-components .plugin-card.premium {
109
+ border-color: #e8d7b2;
110
+ background-color: #fff9eb;
111
+ }
112
+ #WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive {
113
+ background-color: #f1f1f1;
114
+ }
115
+ #WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive a.open-plugin-details-modal {
116
+ color: #ababab;
117
+ text-decoration: none;
118
+ font-weight: 600;
119
+ font-size: 15px;
120
+ }
121
+ #WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive .plugin-icon {
122
+ opacity: 0.3;
123
+ }
124
+ #WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive .desc {
125
+ color: #afafaf;
126
+ }
127
+ #WBCR .wbcr-clearfy-components .plugin-card.plugin-status-deactive.premium {
128
+ background-color: #f9f2f1;
129
+ }
130
+ @media screen and (max-width: 1750px) {
131
+ #WBCR .wbcr-clearfy-components .plugin-card {
132
+ width: 49%;
133
+ }
134
+ }
135
+ @media screen and (max-width: 1350px) {
136
+ #WBCR .wbcr-clearfy-components .plugin-card {
137
+ width: 100%;
138
+ }
139
+ }
140
  /*# sourceMappingURL=components.css.map */
admin/assets/css/components.less CHANGED
@@ -1,153 +1,153 @@
1
- /**
2
- * Page components
3
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
- * @copyright Alex Kovalev 30.09.2017
5
- */
6
-
7
- #WBCR {
8
- .card-ribbon(@bgColor:#f7dea9, @color:#67532f) {
9
- position: absolute;
10
- bottom: 60px;
11
- right: 0;
12
- height: 30px;
13
- width: 120px;
14
- border-radius: 3px 0 0 3px;
15
- background-color: @bgColor;
16
- color: @color;
17
- text-align: center;
18
- font-size: 12px;
19
- font-weight: 600;
20
- line-height: 2.4;
21
- text-transform: uppercase;
22
- z-index: 1;
23
- }
24
-
25
- .wbcr-clearfy-components {
26
- padding: 0 20px 20px;
27
- text-align: center;
28
-
29
- .plugin-card {
30
- position: relative;
31
- display: inline-block;
32
- width: 32.7%;
33
- height: 250px;
34
- margin-left: 0;
35
- margin-right: 0;
36
- text-align: left;
37
- float: none;
38
- vertical-align: top;
39
-
40
- &:first-child {
41
- margin-left: 0;
42
- }
43
-
44
- .plugin-card-bottom {
45
- position: absolute;
46
- bottom: 0;
47
- right: 0;
48
- left: 0;
49
- }
50
-
51
- .plugin-card-top {
52
- min-height: 163px;
53
- }
54
-
55
- .desc, .name {
56
- margin-right: 0 !important;
57
- }
58
-
59
- .name {
60
- h3 {
61
- font-size: 17px;
62
- margin-top: 0 !important;
63
- }
64
- }
65
-
66
- .install-now {
67
- float: right;
68
- }
69
-
70
- .delete-now {
71
- float: right;
72
- margin-left: 5px;
73
-
74
- .dashicons, .dashicons-before:before {
75
- font-size: 16px !important;
76
- line-height: 1.5 !important;
77
- color: #62696f;
78
- }
79
- }
80
-
81
- a.open-plugin-details-modal {
82
- color: #5c5d5f;
83
- text-decoration: none;
84
- font-weight: 600;
85
- font-size: 15px;
86
- }
87
-
88
- // Premium
89
- .plugin-card-premium-ribbon {
90
- .card-ribbon();
91
- }
92
-
93
- // Free
94
- .plugin-card-free-ribbon {
95
- .card-ribbon(#cccccc, #6b6b6b);
96
- }
97
-
98
- // Freemium
99
- .plugin-card-freemium-ribbon {
100
- .card-ribbon(#cae2b3, #546742);
101
- }
102
-
103
- &.premium {
104
- border-color: #e8d7b2;
105
- background-color: #fff9eb;
106
- }
107
-
108
- &.plugin-status-deactive {
109
- background-color: #f1f1f1;
110
- //background-color: #f9f2f1;
111
-
112
- a.open-plugin-details-modal {
113
- color: #ababab;
114
- text-decoration: none;
115
- font-weight: 600;
116
- font-size: 15px;
117
- }
118
-
119
- .plugin-icon {
120
- opacity: 0.3;
121
- }
122
-
123
- .desc {
124
- color: #afafaf;
125
- }
126
-
127
- &.premium {
128
- background-color: #f9f2f1;
129
- }
130
- }
131
- }
132
- }
133
- }
134
-
135
- @media screen and (max-width: 1750px) {
136
- #WBCR {
137
- .wbcr-clearfy-components {
138
- .plugin-card {
139
- width: 49%;
140
- }
141
- }
142
- }
143
- }
144
-
145
- @media screen and (max-width: 1350px) {
146
- #WBCR {
147
- .wbcr-clearfy-components {
148
- .plugin-card {
149
- width: 100%;
150
- }
151
- }
152
- }
153
  }
1
+ /**
2
+ * Page components
3
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
+ * @copyright Alex Kovalev 30.09.2017
5
+ */
6
+
7
+ #WBCR {
8
+ .card-ribbon(@bgColor:#f7dea9, @color:#67532f) {
9
+ position: absolute;
10
+ bottom: 60px;
11
+ right: 0;
12
+ height: 30px;
13
+ width: 120px;
14
+ border-radius: 3px 0 0 3px;
15
+ background-color: @bgColor;
16
+ color: @color;
17
+ text-align: center;
18
+ font-size: 12px;
19
+ font-weight: 600;
20
+ line-height: 2.4;
21
+ text-transform: uppercase;
22
+ z-index: 1;
23
+ }
24
+
25
+ .wbcr-clearfy-components {
26
+ padding: 0 20px 20px;
27
+ text-align: center;
28
+
29
+ .plugin-card {
30
+ position: relative;
31
+ display: inline-block;
32
+ width: 32.7%;
33
+ height: 250px;
34
+ margin-left: 0;
35
+ margin-right: 0;
36
+ text-align: left;
37
+ float: none;
38
+ vertical-align: top;
39
+
40
+ &:first-child {
41
+ margin-left: 0;
42
+ }
43
+
44
+ .plugin-card-bottom {
45
+ position: absolute;
46
+ bottom: 0;
47
+ right: 0;
48
+ left: 0;
49
+ }
50
+
51
+ .plugin-card-top {
52
+ min-height: 163px;
53
+ }
54
+
55
+ .desc, .name {
56
+ margin-right: 0 !important;
57
+ }
58
+
59
+ .name {
60
+ h3 {
61
+ font-size: 17px;
62
+ margin-top: 0 !important;
63
+ }
64
+ }
65
+
66
+ .install-now {
67
+ float: right;
68
+ }
69
+
70
+ .delete-now {
71
+ float: right;
72
+ margin-left: 5px;
73
+
74
+ .dashicons, .dashicons-before:before {
75
+ font-size: 16px !important;
76
+ line-height: 1.5 !important;
77
+ color: #62696f;
78
+ }
79
+ }
80
+
81
+ a.open-plugin-details-modal {
82
+ color: #5c5d5f;
83
+ text-decoration: none;
84
+ font-weight: 600;
85
+ font-size: 15px;
86
+ }
87
+
88
+ // Premium
89
+ .plugin-card-premium-ribbon {
90
+ .card-ribbon();
91
+ }
92
+
93
+ // Free
94
+ .plugin-card-free-ribbon {
95
+ .card-ribbon(#cccccc, #6b6b6b);
96
+ }
97
+
98
+ // Freemium
99
+ .plugin-card-freemium-ribbon {
100
+ .card-ribbon(#cae2b3, #546742);
101
+ }
102
+
103
+ &.premium {
104
+ border-color: #e8d7b2;
105
+ background-color: #fff9eb;
106
+ }
107
+
108
+ &.plugin-status-deactive {
109
+ background-color: #f1f1f1;
110
+ //background-color: #f9f2f1;
111
+
112
+ a.open-plugin-details-modal {
113
+ color: #ababab;
114
+ text-decoration: none;
115
+ font-weight: 600;
116
+ font-size: 15px;
117
+ }
118
+
119
+ .plugin-icon {
120
+ opacity: 0.3;
121
+ }
122
+
123
+ .desc {
124
+ color: #afafaf;
125
+ }
126
+
127
+ &.premium {
128
+ background-color: #f9f2f1;
129
+ }
130
+ }
131
+ }
132
+ }
133
+ }
134
+
135
+ @media screen and (max-width: 1750px) {
136
+ #WBCR {
137
+ .wbcr-clearfy-components {
138
+ .plugin-card {
139
+ width: 49%;
140
+ }
141
+ }
142
+ }
143
+ }
144
+
145
+ @media screen and (max-width: 1350px) {
146
+ #WBCR {
147
+ .wbcr-clearfy-components {
148
+ .plugin-card {
149
+ width: 100%;
150
+ }
151
+ }
152
+ }
153
  }
admin/assets/css/general.css CHANGED
@@ -1,495 +1,501 @@
1
- /**
2
- * General styles
3
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
- * @copyright Alex Kovalev 23.08.2017
5
- */
6
- .wbcr-clearfy-layer {
7
- display: none;
8
- position: absolute;
9
- top: 0;
10
- left: -20px;
11
- right: 0;
12
- bottom: 0;
13
- background: rgba(255, 235, 59, 0.18);
14
- z-index: 9;
15
- }
16
- #WBCR {
17
- /*.wbcr-right-sidebar-section {
18
- width: 49%;
19
- padding-top: 20px;
20
- }*/
21
- /**
22
- * Widgets
23
- */
24
- /**
25
- * Navigation bar
26
- */
27
- /*.wbcr-clearfy-board {
28
- background: #f9f8f8;
29
- box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1);
30
- padding: 20px;
31
- margin-bottom: 20px;
32
- min-width: 350px;
33
- //float: right;
34
- }*/
35
- }
36
- #WBCR .wbcr-factory-pages-440-impressive-page-template .wbcr-factory-page-header {
37
- height: 80px !important;
38
- }
39
- #WBCR .wbcr-factory-pages-440-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo span {
40
- display: inline-block !important;
41
- }
42
- #WBCR .row {
43
- display: block !important;
44
- width: auto !important;
45
- table-layout: auto !important;
46
- }
47
- #WBCR .row > div {
48
- display: block !important;
49
- padding: 0 !important;
50
- }
51
- #WBCR .wbcr-clr-logo-label {
52
- position: relative;
53
- padding: 0 10px 3px;
54
- border-radius: 5px;
55
- border-bottom: 1px solid rgba(0, 0, 0, 0.3);
56
- border-top: 1px solid rgba(255, 255, 255, 0.2);
57
- }
58
- #WBCR .wbcr-clr-logo-label:before {
59
- content: '';
60
- display: block;
61
- position: absolute;
62
- width: 20px;
63
- height: 25px;
64
- top: -10px;
65
- right: -10px;
66
- background: url(../../../assets/img/webcraftic-plugin-icon.png) 0 0 no-repeat;
67
- }
68
- #WBCR .wbcr-clr-logo-label.wbcr-clr-free-label-logo {
69
- color: #f1f1f1;
70
- background-color: #636363;
71
- }
72
- #WBCR .wbcr-clr-logo-label.wbcr-clr-premium-label-logo {
73
- color: #000000;
74
- background-color: #ffbe00;
75
- }
76
- #WBCR .wbcr-content-section,
77
- #WBCR .wbcr-right-sidebar-section {
78
- display: inline-block;
79
- vertical-align: top;
80
- }
81
- #WBCR .wbcr-content-section {
82
- width: 100%;
83
- }
84
- #WBCR #wbcr-clr-go-to-premium-widget .wbcr-clr-purchase-premium {
85
- position: relative;
86
- text-decoration: none;
87
- font-weight: bold;
88
- background: #fffaea;
89
- padding: 0;
90
- border-radius: 4px;
91
- outline: none;
92
- margin-top: 15px;
93
- box-shadow: 0 0 8px #fddf67;
94
- }
95
- #WBCR #wbcr-clr-go-to-premium-widget .wbcr-clr-purchase-premium .fa {
96
- position: relative;
97
- margin-right: 3px;
98
- margin-left: 3px;
99
- }
100
- #WBCR .wbcr-factory-left-navigation-bar #components-wbcr_clearfy-tab {
101
- border-left: 5px solid #7edbff;
102
- }
103
- #WBCR .wbcr-factory-left-navigation-bar #license-wbcr_clearfy-tab {
104
- border-left: 5px solid #ffd762;
105
- }
106
- #WBCR .wbcr-factory-left-navigation-bar .wbcr-factory-active-tab #license-wbcr_clearfy-tab {
107
- font-weight: lighter;
108
- color: #222;
109
- }
110
- #WBCR .wbcr-factory-left-navigation-bar .wbcr-factory-active-tab #license-wbcr_clearfy-tab .dashicons-admin-network {
111
- color: #222;
112
- }
113
- #WBCR .wbcr-clearfy-danger-message {
114
- position: relative;
115
- padding: 15px;
116
- background: #ffe0de;
117
- color: #9c6e6e;
118
- border-radius: 3px;
119
- }
120
- #WBCR .wbcr-clearfy-danger-message:after,
121
- #WBCR .wbcr-clearfy-danger-message:before {
122
- bottom: 100%;
123
- left: 20px;
124
- border: solid transparent;
125
- content: " ";
126
- height: 0;
127
- width: 0;
128
- position: absolute;
129
- pointer-events: none;
130
- }
131
- #WBCR .wbcr-clearfy-danger-message:after {
132
- border-color: rgba(136, 183, 213, 0);
133
- border-bottom-color: #ffe0de;
134
- border-width: 10px;
135
- }
136
- #WBCR .wbcr-clearfy-danger-message:before {
137
- border-color: rgba(194, 225, 245, 0);
138
- border-bottom-color: #ffe0de;
139
- border-width: 10px;
140
- }
141
- #WBCR .wbcr-clearfy-group-header {
142
- background: #efefef;
143
- padding: 20px 0 10px 20px;
144
- margin: 30px 0;
145
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
146
- }
147
- #WBCR .wbcr-clearfy-group-header:first-child {
148
- margin-top: 0;
149
- }
150
- #WBCR .wbcr-clearfy-group-header strong {
151
- font-size: 15px;
152
- }
153
- #WBCR .wbcr-clearfy-group-header p {
154
- color: #8c8888;
155
- font-size: 12px;
156
- }
157
- #WBCR #wbcr-clearfy-quick-mode-board h4 {
158
- margin-top: 30px;
159
- }
160
- #WBCR .wbcr-clearfy-fake-image-optimizer-board .wbcr-clearfy-fake-widget {
161
- position: relative;
162
- width: 659px;
163
- height: 250px;
164
- }
165
- #WBCR .wbcr-clearfy-fake-image-optimizer-board .wbcr-clearfy-fake-widget .wbcr-clr-proccess-button {
166
- opacity: 0;
167
- position: absolute;
168
- top: 50%;
169
- left: 50%;
170
- margin: -25px 0 0 -100px;
171
- width: 200px;
172
- height: 50px;
173
- font-size: 16px;
174
- font-weight: bold;
175
- text-align: center;
176
- line-height: 3;
177
- background: #fdd599 !important;
178
- color: #a57b3c !important;
179
- text-decoration: none !important;
180
- text-shadow: none !important;
181
- box-shadow: none !important;
182
- border: 1px solid #e0c08f !important;
183
- border-radius: 3px;
184
- outline: none;
185
- -webkit-transition: opacity 1000ms;
186
- -moz-transition: opacity 1000ms;
187
- -o-transition: opacity 1000ms;
188
- transition: opacity 1000ms;
189
- }
190
- #WBCR .wbcr-clearfy-fake-image-optimizer-board .wbcr-clearfy-fake-widget:hover .wbcr-clr-proccess-button {
191
- display: block;
192
- opacity: 1;
193
- }
194
- #WBCR .wbcr-clearfy-fake-image-optimizer-board .wbcr-clearfy-fake-widget:hover .wbcr-clearfy-widget-overlay img {
195
- opacity: 0.2;
196
- }
197
- #WBCR .wbcr-clearfy-fake-image-optimizer-board .wbcr-clearfy-fake-widget .wbcr-clearfy-widget-overlay img {
198
- width: 100%;
199
- -webkit-transition: opacity 500ms;
200
- -moz-transition: opacity 500ms;
201
- -o-transition: opacity 500ms;
202
- transition: opacity 500ms;
203
- }
204
- #WBCR .wbcr-clearfy-switch-success-message,
205
- #WBCR .wbcr-clearfy-switch-error-message {
206
- display: none;
207
- padding: 15px 20px;
208
- font-size: 13px;
209
- font-weight: bold;
210
- margin: 0 0 15px;
211
- border-radius: 4px;
212
- }
213
- #WBCR .wbcr-clearfy-switch-success-message {
214
- background: #e5f9ce;
215
- border-bottom: 3px solid #d3eab9;
216
- color: #56614a;
217
- }
218
- #WBCR .wbcr-clearfy-switch-error-message {
219
- background: #fdc6c2;
220
- border-bottom: 3px solid #e2a19c;
221
- color: #bd6963;
222
- }
223
- #WBCR .wbcr-clearfy-troubleshooting {
224
- padding: 0 50px 20px;
225
- }
226
- #WBCR .wbcr-clearfy-export-import {
227
- padding: 0 50px;
228
- text-align: right;
229
- }
230
- #WBCR .wbcr-clearfy-export-import label {
231
- display: block;
232
- width: 100%;
233
- text-align: left;
234
- padding: 7px 0;
235
- }
236
- #WBCR .wbcr-clearfy-export-import #wbcr-clearfy-import-export {
237
- width: 100%;
238
- box-sizing: border-box;
239
- height: 200px;
240
- line-height: inherit;
241
- margin: 0;
242
- padding: 7px 14px;
243
- box-shadow: none;
244
- border-radius: 3px;
245
- border: 1px solid #eee;
246
- border-top-color: #dedede;
247
- background-color: #f1f1f1;
248
- color: #444;
249
- transition: border-color 0.3s;
250
- -webkit-appearance: none;
251
- }
252
- #WBCR .wbcr-clearfy-export-import .wbcr-clearfy-import-options-button {
253
- display: inline-block;
254
- margin-top: 10px;
255
- }
256
- #WBCR #wbcr-clearfy-quick-mode-board {
257
- padding: 20px;
258
- }
259
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch {
260
- position: relative;
261
- padding: 15px 20px;
262
- margin-right: 20px;
263
- font-size: 12px;
264
- text-transform: uppercase;
265
- background: #f1f1f1;
266
- color: #6d6d6d;
267
- font-weight: bold;
268
- border-radius: 5px;
269
- margin-top: 10px;
270
- text-align: left;
271
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
272
- -webkit-transition: all 0.2s ease-out;
273
- -moz-transition: all 0.2s ease-out;
274
- -o-transition: all 0.2s ease-out;
275
- transition: all 0.2s ease-out;
276
- /*&.wbcr-clearfy-mode-reset:hover {
277
- & .wbcr-clearfy-button-activate-mode {
278
- background-color: #fb7976;
279
- color: darken(#fb7976, 50%);
280
- &:hover {
281
- background-color: lighten(#fb7976, 3%);
282
- }
283
- }
284
- }*/
285
- }
286
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch:after {
287
- display: block;
288
- clear: both;
289
- }
290
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .fa,
291
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .dashicons {
292
- font-size: 25px;
293
- }
294
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .fa,
295
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .dashicons,
296
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch span {
297
- display: inline-block !important;
298
- }
299
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch span {
300
- margin-left: 15px;
301
- margin-top: 3px;
302
- }
303
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-active {
304
- /*.fa, .dashicons:before {
305
- color: #8bc34a;
306
- }
307
-
308
- & .wbcr-clearfy-button-activate-mode {
309
- display: none !important;
310
- }
311
- & .wbcr-clearfy-button-deativate-mode {
312
- display: inline-block !important;
313
- }*/
314
- }
315
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-active .wbcr-clearfy-button-activate-mode {
316
- background-color: #f7f7f7 !important;
317
- color: #e0e0e0 !important;
318
- cursor: default;
319
- }
320
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-reset .wbcr-clearfy-switch-confirmation {
321
- width: 130px;
322
- }
323
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-reset .wbcr-clearfy-switch-confirmation .wbcr-clearfy-button-activate-mode {
324
- width: 130px;
325
- background-color: #fdd599;
326
- color: #a57b3c;
327
- }
328
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-reset .wbcr-clearfy-switch-confirmation .wbcr-clearfy-button-activate-mode:hover {
329
- background-color: #fddba8;
330
- }
331
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .fa,
332
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .dashicons:before {
333
- color: #8bc34a;
334
- }
335
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .wbcr-clearfy-button-activate-mode {
336
- background-color: #c9deb2;
337
- color: #586549;
338
- }
339
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .wbcr-clearfy-button-activate-mode:hover {
340
- background-color: #d1e3bd;
341
- }
342
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-loading .wbcr-clearfy-switch-confirmation button {
343
- background: url("../img/quick-start-loader.gif") center center no-repeat;
344
- background-color: #f7f7f7 !important;
345
- font-size: 0;
346
- cursor: default !important;
347
- }
348
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation {
349
- position: absolute;
350
- top: 0;
351
- right: 20px;
352
- bottom: 0;
353
- width: 100px;
354
- text-align: right;
355
- -webkit-transition: all 0.3s ease-out;
356
- -moz-transition: all 0.3s ease-out;
357
- -o-transition: all 0.3s ease-out;
358
- transition: all 0.3s ease-out;
359
- }
360
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation button {
361
- display: inline-block;
362
- width: 100px;
363
- margin: 12px 0 0;
364
- border: 0;
365
- box-shadow: none;
366
- padding: 5px 10px;
367
- font-weight: bold;
368
- font-size: 13px;
369
- border-radius: 3px;
370
- outline: none;
371
- background-color: #dedede;
372
- color: #808080;
373
- /*&.wbcr-clearfy-button-activate-mode {
374
- background-color: #c9deb2;
375
- color: #586549;
376
- &:hover {
377
- background-color: lighten(#c9deb2, 3%);
378
- }
379
- }
380
- &.wbcr-clearfy-button-deativate-mode {
381
- display: none;
382
- background-color: #fdd599;
383
- color: #a57b3c;
384
- margin-right: 0;
385
- &:hover {
386
- background-color: lighten(#fdd599, 3%);
387
- }
388
- }*/
389
- }
390
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation button:hover {
391
- background-color: #d6d6d6;
392
- }
393
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation button:active {
394
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
395
- }
396
- #WBCR .wbcr-clearfy-confirm-popup {
397
- display: none;
398
- position: fixed;
399
- top: 50%;
400
- left: 50%;
401
- width: 500px;
402
- height: 400px;
403
- margin: -200px 0 0 -250px;
404
- padding: 20px;
405
- background: rgba(255, 255, 255, 0.82);
406
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
407
- border: 4px solid rgba(216, 210, 171, 0.44);
408
- z-index: 99;
409
- }
410
- #WBCR .wbcr-clearfy-confirm-popup h3 {
411
- font-size: 17px;
412
- text-align: center;
413
- font-weight: bold;
414
- margin: 5px 0 0;
415
- }
416
- #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-reset-warning-message {
417
- display: none;
418
- text-align: center;
419
- }
420
- #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-list-options {
421
- display: none;
422
- height: 230px;
423
- overflow-y: auto;
424
- overflow-x: hidden;
425
- padding-left: 40px;
426
- list-style: decimal;
427
- margin: 20px 0;
428
- }
429
- #WBCR .wbcr-clearfy-confirm-popup.wbcr-clearfy-default-warning-options .wbcr-clearfy-list-options {
430
- display: block;
431
- }
432
- #WBCR .wbcr-clearfy-confirm-popup.wbcr-clearfy-reset-warning-options {
433
- height: 200px;
434
- margin: -100px 0 0 -250px;
435
- }
436
- #WBCR .wbcr-clearfy-confirm-popup.wbcr-clearfy-reset-warning-options .wbcr-clearfy-reset-warning-message {
437
- display: block;
438
- margin: 10px 0;
439
- }
440
- #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons {
441
- text-align: center;
442
- padding: 10px;
443
- }
444
- #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button {
445
- display: inline-block;
446
- padding: 7px 25px;
447
- box-shadow: none;
448
- border: 0;
449
- font-weight: bold;
450
- }
451
- #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button,
452
- #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button:focus {
453
- outline: 0 !important;
454
- box-shadow: none !important;
455
- }
456
- #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button.wbcr-clearfy-popup-button-ok {
457
- background: #FFEB3B;
458
- color: #564f0d;
459
- }
460
- #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button.wbcr-clearfy-cancel-mode {
461
- background: #d6d6d6;
462
- color: #5f5d5d;
463
- }
464
- @media screen and (max-width: 1380px) {
465
- #WBCR #wbcr-clearfy-quick-mode-board {
466
- min-width: 450px;
467
- padding-right: 0;
468
- }
469
- #WBCR .wbcr-content-section,
470
- #WBCR .wbcr-right-sidebar-section {
471
- width: 100%;
472
- }
473
- #WBCR .wbcr-clearfy-export-import-board {
474
- margin-top: 20px;
475
- }
476
- }
477
- @media screen and (max-width: 950px) {
478
- #WBCR #wbcr-clearfy-quick-mode-board {
479
- min-width: 100%;
480
- }
481
- #WBCR .wbcr-content-section,
482
- #WBCR .wbcr-right-sidebar-section {
483
- width: 100%;
484
- }
485
- #WBCR .wbcr-clearfy-board {
486
- width: 100%;
487
- min-width: 100%;
488
- }
489
- }
490
- @media screen and (max-width: 550px) {
491
- #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch span {
492
- font-size: 0 !important;
493
- }
494
- }
 
 
 
 
 
 
495
  /*# sourceMappingURL=general.css.map */
1
+ /**
2
+ * General styles
3
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
+ * @copyright Alex Kovalev 23.08.2017
5
+ */
6
+ .wbcr-clearfy-layer {
7
+ display: none;
8
+ position: absolute;
9
+ top: 0;
10
+ left: -20px;
11
+ right: 0;
12
+ bottom: 0;
13
+ background: rgba(255, 235, 59, 0.18);
14
+ z-index: 9;
15
+ }
16
+ #WBCR {
17
+ /*.wbcr-right-sidebar-section {
18
+ width: 49%;
19
+ padding-top: 20px;
20
+ }*/
21
+ /**
22
+ * Widgets
23
+ */
24
+ /**
25
+ * Navigation bar
26
+ */
27
+ /*.wbcr-clearfy-board {
28
+ background: #f9f8f8;
29
+ box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1);
30
+ padding: 20px;
31
+ margin-bottom: 20px;
32
+ min-width: 350px;
33
+ //float: right;
34
+ }*/
35
+ }
36
+ #WBCR .wbcr-factory-pages-443-impressive-page-template .wbcr-factory-page-header {
37
+ height: 80px !important;
38
+ }
39
+ #WBCR .wbcr-factory-pages-443-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo span {
40
+ display: inline-block !important;
41
+ }
42
+ #WBCR .row {
43
+ display: block !important;
44
+ width: auto !important;
45
+ table-layout: auto !important;
46
+ }
47
+ #WBCR .row > div {
48
+ display: block !important;
49
+ padding: 0 !important;
50
+ }
51
+ #WBCR .wbcr-clr-logo-label {
52
+ position: relative;
53
+ padding: 0 10px 3px;
54
+ border-radius: 5px;
55
+ border-bottom: 1px solid rgba(0, 0, 0, 0.3);
56
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
57
+ }
58
+ #WBCR .wbcr-clr-logo-label:before {
59
+ content: '';
60
+ display: block;
61
+ position: absolute;
62
+ width: 20px;
63
+ height: 25px;
64
+ top: -10px;
65
+ right: -10px;
66
+ background: url(../../../assets/img/webcraftic-plugin-icon.png) 0 0 no-repeat;
67
+ }
68
+ #WBCR .wbcr-clr-logo-label.wbcr-clr-free-label-logo {
69
+ color: #f1f1f1;
70
+ background-color: #636363;
71
+ }
72
+ #WBCR .wbcr-clr-logo-label.wbcr-clr-premium-label-logo {
73
+ color: #000000;
74
+ background-color: #ffbe00;
75
+ }
76
+ #WBCR .wbcr-content-section,
77
+ #WBCR .wbcr-right-sidebar-section {
78
+ display: inline-block;
79
+ vertical-align: top;
80
+ }
81
+ #WBCR .wbcr-content-section {
82
+ width: 100%;
83
+ }
84
+ #WBCR #wbcr-clr-go-to-premium-widget .wbcr-clr-purchase-premium {
85
+ position: relative;
86
+ text-decoration: none;
87
+ font-weight: bold;
88
+ background: #fffaea;
89
+ padding: 0;
90
+ border-radius: 4px;
91
+ outline: none;
92
+ margin-top: 15px;
93
+ box-shadow: 0 0 8px #fddf67;
94
+ }
95
+ #WBCR #wbcr-clr-go-to-premium-widget .wbcr-clr-purchase-premium .fa {
96
+ position: relative;
97
+ margin-right: 3px;
98
+ margin-left: 3px;
99
+ }
100
+ #WBCR .wbcr-factory-left-navigation-bar #components-wbcr_clearfy-tab {
101
+ border-left: 5px solid #7edbff;
102
+ }
103
+ #WBCR .wbcr-factory-left-navigation-bar #license-wbcr_clearfy-tab {
104
+ border-left: 5px solid #ffd762;
105
+ }
106
+ #WBCR .wbcr-factory-left-navigation-bar .wbcr-factory-active-tab #license-wbcr_clearfy-tab {
107
+ font-weight: lighter;
108
+ color: #222;
109
+ }
110
+ #WBCR .wbcr-factory-left-navigation-bar .wbcr-factory-active-tab #license-wbcr_clearfy-tab .dashicons-admin-network {
111
+ color: #222;
112
+ }
113
+ #WBCR .wbcr-clearfy-danger-message {
114
+ position: relative;
115
+ padding: 15px;
116
+ background: #ffe0de;
117
+ color: #9c6e6e;
118
+ border-radius: 3px;
119
+ }
120
+ #WBCR .wbcr-clearfy-danger-message:after,
121
+ #WBCR .wbcr-clearfy-danger-message:before {
122
+ bottom: 100%;
123
+ left: 20px;
124
+ border: solid transparent;
125
+ content: " ";
126
+ height: 0;
127
+ width: 0;
128
+ position: absolute;
129
+ pointer-events: none;
130
+ }
131
+ #WBCR .wbcr-clearfy-danger-message:after {
132
+ border-color: rgba(136, 183, 213, 0);
133
+ border-bottom-color: #ffe0de;
134
+ border-width: 10px;
135
+ }
136
+ #WBCR .wbcr-clearfy-danger-message:before {
137
+ border-color: rgba(194, 225, 245, 0);
138
+ border-bottom-color: #ffe0de;
139
+ border-width: 10px;
140
+ }
141
+ #WBCR .wbcr-clearfy-group-header {
142
+ background: #efefef;
143
+ padding: 20px 0 10px 20px;
144
+ margin: 30px 0;
145
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
146
+ }
147
+ #WBCR .wbcr-clearfy-group-header:first-child {
148
+ margin-top: 0;
149
+ }
150
+ #WBCR .wbcr-clearfy-group-header strong {
151
+ font-size: 15px;
152
+ }
153
+ #WBCR .wbcr-clearfy-group-header p {
154
+ color: #8c8888;
155
+ font-size: 12px;
156
+ }
157
+ #WBCR #wbcr-clearfy-quick-mode-board h4 {
158
+ margin-top: 30px;
159
+ }
160
+ #WBCR .wbcr-clearfy-fake-image-optimizer-board .wbcr-clearfy-fake-widget {
161
+ position: relative;
162
+ width: 659px;
163
+ height: 250px;
164
+ }
165
+ #WBCR .wbcr-clearfy-fake-image-optimizer-board .wbcr-clearfy-fake-widget .wbcr-clr-proccess-button {
166
+ opacity: 0;
167
+ position: absolute;
168
+ top: 50%;
169
+ left: 50%;
170
+ margin: -25px 0 0 -100px;
171
+ width: 200px;
172
+ height: 50px;
173
+ font-size: 16px;
174
+ font-weight: bold;
175
+ text-align: center;
176
+ line-height: 3;
177
+ background: #fdd599 !important;
178
+ color: #a57b3c !important;
179
+ text-decoration: none !important;
180
+ text-shadow: none !important;
181
+ box-shadow: none !important;
182
+ border: 1px solid #e0c08f !important;
183
+ border-radius: 3px;
184
+ outline: none;
185
+ -webkit-transition: opacity 1000ms;
186
+ -moz-transition: opacity 1000ms;
187
+ -o-transition: opacity 1000ms;
188
+ transition: opacity 1000ms;
189
+ }
190
+ #WBCR .wbcr-clearfy-fake-image-optimizer-board .wbcr-clearfy-fake-widget:hover .wbcr-clr-proccess-button {
191
+ display: block;
192
+ opacity: 1;
193
+ }
194
+ #WBCR .wbcr-clearfy-fake-image-optimizer-board .wbcr-clearfy-fake-widget:hover .wbcr-clearfy-widget-overlay img {
195
+ opacity: 0.2;
196
+ }
197
+ #WBCR .wbcr-clearfy-fake-image-optimizer-board .wbcr-clearfy-fake-widget .wbcr-clearfy-widget-overlay img {
198
+ width: 100%;
199
+ -webkit-transition: opacity 500ms;
200
+ -moz-transition: opacity 500ms;
201
+ -o-transition: opacity 500ms;
202
+ transition: opacity 500ms;
203
+ }
204
+ #WBCR .wbcr-clearfy-switch-success-message,
205
+ #WBCR .wbcr-clearfy-switch-error-message {
206
+ display: none;
207
+ padding: 15px 20px;
208
+ font-size: 13px;
209
+ font-weight: bold;
210
+ margin: 0 0 15px;
211
+ border-radius: 4px;
212
+ }
213
+ #WBCR .wbcr-clearfy-switch-success-message {
214
+ background: #e5f9ce;
215
+ border-bottom: 3px solid #d3eab9;
216
+ color: #56614a;
217
+ }
218
+ #WBCR .wbcr-clearfy-switch-error-message {
219
+ background: #fdc6c2;
220
+ border-bottom: 3px solid #e2a19c;
221
+ color: #bd6963;
222
+ }
223
+ #WBCR .wbcr-clearfy-troubleshooting {
224
+ padding: 0 50px 20px;
225
+ }
226
+ #WBCR .wbcr-clearfy-export-import {
227
+ padding: 0 50px;
228
+ text-align: right;
229
+ }
230
+ #WBCR .wbcr-clearfy-export-import label {
231
+ display: block;
232
+ width: 100%;
233
+ text-align: left;
234
+ padding: 7px 0;
235
+ }
236
+ #WBCR .wbcr-clearfy-export-import #wbcr-clearfy-import-export {
237
+ width: 100%;
238
+ box-sizing: border-box;
239
+ height: 200px;
240
+ line-height: inherit;
241
+ margin: 0;
242
+ padding: 7px 14px;
243
+ box-shadow: none;
244
+ border-radius: 3px;
245
+ border: 1px solid #eee;
246
+ border-top-color: #dedede;
247
+ background-color: #f1f1f1;
248
+ color: #444;
249
+ transition: border-color 0.3s;
250
+ -webkit-appearance: none;
251
+ }
252
+ #WBCR .wbcr-clearfy-export-import .wbcr-clearfy-import-options-button {
253
+ display: inline-block;
254
+ margin-top: 10px;
255
+ }
256
+ #WBCR #wbcr-clearfy-quick-mode-board {
257
+ padding: 20px;
258
+ }
259
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch {
260
+ position: relative;
261
+ padding: 15px 20px;
262
+ margin-right: 20px;
263
+ font-size: 12px;
264
+ text-transform: uppercase;
265
+ background: #f1f1f1;
266
+ color: #6d6d6d;
267
+ font-weight: bold;
268
+ border-radius: 5px;
269
+ margin-top: 10px;
270
+ text-align: left;
271
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
272
+ -webkit-transition: all 0.2s ease-out;
273
+ -moz-transition: all 0.2s ease-out;
274
+ -o-transition: all 0.2s ease-out;
275
+ transition: all 0.2s ease-out;
276
+ /*&.wbcr-clearfy-mode-reset:hover {
277
+ & .wbcr-clearfy-button-activate-mode {
278
+ background-color: #fb7976;
279
+ color: darken(#fb7976, 50%);
280
+ &:hover {
281
+ background-color: lighten(#fb7976, 3%);
282
+ }
283
+ }
284
+ }*/
285
+ }
286
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch:after {
287
+ display: block;
288
+ clear: both;
289
+ }
290
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .fa,
291
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .dashicons {
292
+ font-size: 25px;
293
+ }
294
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .fa,
295
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .dashicons,
296
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch span {
297
+ display: inline-block !important;
298
+ }
299
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch span {
300
+ margin-left: 15px;
301
+ margin-top: 3px;
302
+ }
303
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-active {
304
+ /*.fa, .dashicons:before {
305
+ color: #8bc34a;
306
+ }
307
+
308
+ & .wbcr-clearfy-button-activate-mode {
309
+ display: none !important;
310
+ }
311
+ & .wbcr-clearfy-button-deativate-mode {
312
+ display: inline-block !important;
313
+ }*/
314
+ }
315
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-active .wbcr-clearfy-button-activate-mode {
316
+ background-color: #f7f7f7 !important;
317
+ color: #e0e0e0 !important;
318
+ cursor: default;
319
+ }
320
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-reset .wbcr-clearfy-switch-confirmation {
321
+ width: 130px;
322
+ }
323
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-reset .wbcr-clearfy-switch-confirmation .wbcr-clearfy-button-activate-mode {
324
+ width: 130px;
325
+ background-color: #fdd599;
326
+ color: #a57b3c;
327
+ }
328
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-reset .wbcr-clearfy-switch-confirmation .wbcr-clearfy-button-activate-mode:hover {
329
+ background-color: #fddba8;
330
+ }
331
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .fa,
332
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .dashicons:before {
333
+ color: #8bc34a;
334
+ }
335
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .wbcr-clearfy-button-activate-mode {
336
+ background-color: #c9deb2;
337
+ color: #586549;
338
+ }
339
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .wbcr-clearfy-button-activate-mode:hover {
340
+ background-color: #d1e3bd;
341
+ }
342
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-loading .wbcr-clearfy-switch-confirmation button {
343
+ background: url("../img/quick-start-loader.gif") center center no-repeat;
344
+ background-color: #f7f7f7 !important;
345
+ font-size: 0;
346
+ cursor: default !important;
347
+ }
348
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation {
349
+ position: absolute;
350
+ top: 0;
351
+ right: 20px;
352
+ bottom: 0;
353
+ width: 100px;
354
+ text-align: right;
355
+ -webkit-transition: all 0.3s ease-out;
356
+ -moz-transition: all 0.3s ease-out;
357
+ -o-transition: all 0.3s ease-out;
358
+ transition: all 0.3s ease-out;
359
+ }
360
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation button {
361
+ display: inline-block;
362
+ width: 100px;
363
+ margin: 12px 0 0;
364
+ border: 0;
365
+ box-shadow: none;
366
+ padding: 5px 10px;
367
+ font-weight: bold;
368
+ font-size: 13px;
369
+ border-radius: 3px;
370
+ outline: none;
371
+ background-color: #dedede;
372
+ color: #808080;
373
+ /*&.wbcr-clearfy-button-activate-mode {
374
+ background-color: #c9deb2;
375
+ color: #586549;
376
+ &:hover {
377
+ background-color: lighten(#c9deb2, 3%);
378
+ }
379
+ }
380
+ &.wbcr-clearfy-button-deativate-mode {
381
+ display: none;
382
+ background-color: #fdd599;
383
+ color: #a57b3c;
384
+ margin-right: 0;
385
+ &:hover {
386
+ background-color: lighten(#fdd599, 3%);
387
+ }
388
+ }*/
389
+ }
390
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation button:hover {
391
+ background-color: #d6d6d6;
392
+ }
393
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation button:active {
394
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
395
+ }
396
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .wbcr-clearfy-switch-confirmation .wbcr-clearfy-button-activate-wizard {
397
+ width: 100px;
398
+ background-color: #8bc34a;
399
+ color: #ffffff;
400
+ margin-top: 10px;
401
+ }
402
+ #WBCR .wbcr-clearfy-confirm-popup {
403
+ display: none;
404
+ position: fixed;
405
+ top: 50%;
406
+ left: 50%;
407
+ width: 500px;
408
+ height: 400px;
409
+ margin: -200px 0 0 -250px;
410
+ padding: 20px;
411
+ background: rgba(255, 255, 255, 0.82);
412
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
413
+ border: 4px solid rgba(216, 210, 171, 0.44);
414
+ z-index: 99;
415
+ }
416
+ #WBCR .wbcr-clearfy-confirm-popup h3 {
417
+ font-size: 17px;
418
+ text-align: center;
419
+ font-weight: bold;
420
+ margin: 5px 0 0;
421
+ }
422
+ #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-reset-warning-message {
423
+ display: none;
424
+ text-align: center;
425
+ }
426
+ #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-list-options {
427
+ display: none;
428
+ height: 230px;
429
+ overflow-y: auto;
430
+ overflow-x: hidden;
431
+ padding-left: 40px;
432
+ list-style: decimal;
433
+ margin: 20px 0;
434
+ }
435
+ #WBCR .wbcr-clearfy-confirm-popup.wbcr-clearfy-default-warning-options .wbcr-clearfy-list-options {
436
+ display: block;
437
+ }
438
+ #WBCR .wbcr-clearfy-confirm-popup.wbcr-clearfy-reset-warning-options {
439
+ height: 200px;
440
+ margin: -100px 0 0 -250px;
441
+ }
442
+ #WBCR .wbcr-clearfy-confirm-popup.wbcr-clearfy-reset-warning-options .wbcr-clearfy-reset-warning-message {
443
+ display: block;
444
+ margin: 10px 0;
445
+ }
446
+ #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons {
447
+ text-align: center;
448
+ padding: 10px;
449
+ }
450
+ #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button {
451
+ display: inline-block;
452
+ padding: 7px 25px;
453
+ box-shadow: none;
454
+ border: 0;
455
+ font-weight: bold;
456
+ }
457
+ #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button,
458
+ #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button:focus {
459
+ outline: 0 !important;
460
+ box-shadow: none !important;
461
+ }
462
+ #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button.wbcr-clearfy-popup-button-ok {
463
+ background: #FFEB3B;
464
+ color: #564f0d;
465
+ }
466
+ #WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button.wbcr-clearfy-cancel-mode {
467
+ background: #d6d6d6;
468
+ color: #5f5d5d;
469
+ }
470
+ @media screen and (max-width: 1380px) {
471
+ #WBCR #wbcr-clearfy-quick-mode-board {
472
+ min-width: 450px;
473
+ padding-right: 0;
474
+ }
475
+ #WBCR .wbcr-content-section,
476
+ #WBCR .wbcr-right-sidebar-section {
477
+ width: 100%;
478
+ }
479
+ #WBCR .wbcr-clearfy-export-import-board {
480
+ margin-top: 20px;
481
+ }
482
+ }
483
+ @media screen and (max-width: 950px) {
484
+ #WBCR #wbcr-clearfy-quick-mode-board {
485
+ min-width: 100%;
486
+ }
487
+ #WBCR .wbcr-content-section,
488
+ #WBCR .wbcr-right-sidebar-section {
489
+ width: 100%;
490
+ }
491
+ #WBCR .wbcr-clearfy-board {
492
+ width: 100%;
493
+ min-width: 100%;
494
+ }
495
+ }
496
+ @media screen and (max-width: 550px) {
497
+ #WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch span {
498
+ font-size: 0 !important;
499
+ }
500
+ }
501
  /*# sourceMappingURL=general.css.map */
admin/assets/css/general.css.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["general.less"],"names":[],"mappings":"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","file":"general.css"}
admin/assets/css/gutenberg-autosave-control.css CHANGED
@@ -1,19 +1,19 @@
1
- /**
2
- * Gutenber autosave control styles
3
-
4
- * @author Webcraftic <wordpress.webraftic@gmail.com>
5
- * @copyright (c) 10.12.2018, Webcraftic
6
- * @version 1.0
7
- *
8
- * Credits:
9
- * This code was used from the plugin: https://wordpress.org/plugins/disable-gutenberg-autosave/
10
- * Author websevendev
11
- */
12
- h2.disable-gutenberg-autosave-header {
13
- margin: 0;
14
- }
15
- p.disable-gutenberg-autosave-error {
16
- color: red;
17
- font-family: "Monaco", "Menlo", "Ubuntu Mono", "Consolas", "source-code-pro", monospace;
18
- }
19
  /*# sourceMappingURL=gutenberg-autosave-control.css.map */
1
+ /**
2
+ * Gutenber autosave control styles
3
+
4
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
5
+ * @copyright (c) 10.12.2018, Webcraftic
6
+ * @version 1.0
7
+ *
8
+ * Credits:
9
+ * This code was used from the plugin: https://wordpress.org/plugins/disable-gutenberg-autosave/
10
+ * Author websevendev
11
+ */
12
+ h2.disable-gutenberg-autosave-header {
13
+ margin: 0;
14
+ }
15
+ p.disable-gutenberg-autosave-error {
16
+ color: red;
17
+ font-family: "Monaco", "Menlo", "Ubuntu Mono", "Consolas", "source-code-pro", monospace;
18
+ }
19
  /*# sourceMappingURL=gutenberg-autosave-control.css.map */
admin/assets/css/gutenberg-autosave-control.less CHANGED
@@ -1,20 +1,20 @@
1
- /**
2
- * Gutenber autosave control styles
3
-
4
- * @author Webcraftic <wordpress.webraftic@gmail.com>
5
- * @copyright (c) 10.12.2018, Webcraftic
6
- * @version 1.0
7
- *
8
- * Credits:
9
- * This code was used from the plugin: https://wordpress.org/plugins/disable-gutenberg-autosave/
10
- * Author websevendev
11
- */
12
-
13
- h2.disable-gutenberg-autosave-header {
14
- margin: 0;
15
- }
16
-
17
- p.disable-gutenberg-autosave-error {
18
- color: red;
19
- font-family: "Monaco", "Menlo", "Ubuntu Mono", "Consolas", "source-code-pro", monospace;
20
- }
1
+ /**
2
+ * Gutenber autosave control styles
3
+
4
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
5
+ * @copyright (c) 10.12.2018, Webcraftic
6
+ * @version 1.0
7
+ *
8
+ * Credits:
9
+ * This code was used from the plugin: https://wordpress.org/plugins/disable-gutenberg-autosave/
10
+ * Author websevendev
11
+ */
12
+
13
+ h2.disable-gutenberg-autosave-header {
14
+ margin: 0;
15
+ }
16
+
17
+ p.disable-gutenberg-autosave-error {
18
+ color: red;
19
+ font-family: "Monaco", "Menlo", "Ubuntu Mono", "Consolas", "source-code-pro", monospace;
20
+ }
admin/assets/css/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
admin/assets/css/install-addons.css CHANGED
@@ -1,32 +1,32 @@
1
- /**
2
- * Install addons global styles
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright Webcraftic 11.07.2018
5
- */
6
- .wbcr-clr-new-component {
7
- background: #f7f7f7;
8
- border: 1px solid #eaeaea;
9
- padding: 5px 20px;
10
- margin-bottom: 10px;
11
- }
12
- .wbcr-clr-new-component h4 {
13
- margin: 5px 0;
14
- display: inline-block;
15
- }
16
- .wbcr-clr-new-component .wbcr-clr-proccess-button {
17
- display: inline-block;
18
- margin: 5px 0;
19
- }
20
- .wbcr-clr-new-component.wbcr-clr-premium {
21
- background: #fff6db;
22
- border: 1px solid #e4dea9;
23
- }
24
- .wbcr-clr-new-component.wbcr-clr-premium h4 {
25
- color: #88690c;
26
- }
27
- .wbcr-clr-proccess-button.button-link,
28
- .wbcr-clr-proccess-button.button-link:focus {
29
- outline: none !important;
30
- box-shadow: none !important;
31
- }
32
  /*# sourceMappingURL=install-addons.css.map */
1
+ /**
2
+ * Install addons global styles
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright Webcraftic 11.07.2018
5
+ */
6
+ .wbcr-clr-new-component {
7
+ background: #f7f7f7;
8
+ border: 1px solid #eaeaea;
9
+ padding: 5px 20px;
10
+ margin-bottom: 10px;
11
+ }
12
+ .wbcr-clr-new-component h4 {
13
+ margin: 5px 0;
14
+ display: inline-block;
15
+ }
16
+ .wbcr-clr-new-component .wbcr-clr-proccess-button {
17
+ display: inline-block;
18
+ margin: 5px 0;
19
+ }
20
+ .wbcr-clr-new-component.wbcr-clr-premium {
21
+ background: #fff6db;
22
+ border: 1px solid #e4dea9;
23
+ }
24
+ .wbcr-clr-new-component.wbcr-clr-premium h4 {
25
+ color: #88690c;
26
+ }
27
+ .wbcr-clr-proccess-button.button-link,
28
+ .wbcr-clr-proccess-button.button-link:focus {
29
+ outline: none !important;
30
+ box-shadow: none !important;
31
+ }
32
  /*# sourceMappingURL=install-addons.css.map */
admin/assets/css/install-addons.css.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["install-addons.less"],"names":[],"mappings":";;;;;AAKA;EACE,mBAAA;EACA,yBAAA;EACA,iBAAA;EACA,mBAAA;;AAJF,uBAME;EACE,aAAA;EACA,qBAAA;;AARJ,uBAWE;EACE,qBAAA;EACA,aAAA;;AAGF,uBAAC;EACC,mBAAA;EACA,yBAAA;;AAFF,uBAAC,iBAIC;EACE,cAAA;;AAMJ,yBAAC;AAAc,yBAAC,YAAY;EAC1B,wBAAA;EACA,2BAAA","file":"install-addons.css"}
admin/assets/css/install-addons.less CHANGED
@@ -1,37 +1,37 @@
1
- /**
2
- * Install addons global styles
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright Webcraftic 11.07.2018
5
- */
6
- .wbcr-clr-new-component {
7
- background: #f7f7f7;
8
- border: 1px solid #eaeaea;
9
- padding: 5px 20px;
10
- margin-bottom: 10px;
11
-
12
- h4 {
13
- margin: 5px 0;
14
- display: inline-block;
15
- }
16
-
17
- .wbcr-clr-proccess-button {
18
- display: inline-block;
19
- margin: 5px 0;
20
- }
21
-
22
- &.wbcr-clr-premium {
23
- background: #fff6db;
24
- border: 1px solid #e4dea9;
25
-
26
- h4 {
27
- color: #88690c;
28
- }
29
- }
30
- }
31
-
32
- .wbcr-clr-proccess-button {
33
- &.button-link, &.button-link:focus {
34
- outline: none !important;
35
- box-shadow: none !important;
36
- }
37
- }
1
+ /**
2
+ * Install addons global styles
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright Webcraftic 11.07.2018
5
+ */
6
+ .wbcr-clr-new-component {
7
+ background: #f7f7f7;
8
+ border: 1px solid #eaeaea;
9
+ padding: 5px 20px;
10
+ margin-bottom: 10px;
11
+
12
+ h4 {
13
+ margin: 5px 0;
14
+ display: inline-block;
15
+ }
16
+
17
+ .wbcr-clr-proccess-button {
18
+ display: inline-block;
19
+ margin: 5px 0;
20
+ }
21
+
22
+ &.wbcr-clr-premium {
23
+ background: #fff6db;
24
+ border: 1px solid #e4dea9;
25
+
26
+ h4 {
27
+ color: #88690c;
28
+ }
29
+ }
30
+ }
31
+
32
+ .wbcr-clr-proccess-button {
33
+ &.button-link, &.button-link:focus {
34
+ outline: none !important;
35
+ box-shadow: none !important;
36
+ }
37
+ }
admin/assets/css/license-manager.css CHANGED
@@ -1,659 +1,659 @@
1
-
2
- .not-visible-in-manager {
3
- display: none;
4
- }
5
-
6
- /**
7
- * Global License Message
8
- */
9
- .global-license-message {
10
- width: 600px;
11
- margin: auto;
12
- /*margin-top: 100px;*/
13
- font-size: 14px;
14
- line-height: 170%;
15
- }
16
-
17
- .global-license-message h2, .global-license-message h3 {
18
- padding: 0px;
19
- margin: 5px 0;
20
- }
21
-
22
- .onp-page-wrap {
23
- max-width: 720px;
24
- margin: auto;
25
- margin-top: 40px;
26
- font-size: 14px;
27
- line-height: 170%;
28
- }
29
-
30
- .onp-container {
31
- border: 0px;
32
- padding: 0px;
33
- border-radius: 5px;
34
- background: rgb(255, 255, 255) !important;
35
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
36
- -moz-box-sizing: border-box;
37
- box-sizing: border-box;
38
- }
39
-
40
- #license-manager .onp-container {
41
- background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* FF3.6+ */
42
- background: -webkit-gradient(linear, left top, left bottom, color-stop(63%, rgba(255, 255, 255, 1)), color-stop(100%, rgba(246, 246, 246, 1))); /* Chrome,Safari4+ */
43
- background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Chrome10+,Safari5.1+ */
44
- background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Opera 11.10+ */
45
- background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* IE10+ */
46
- background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* W3C */
47
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f6f6f6', GradientType=0); /* IE6-9 */
48
- }
49
-
50
- .onp-container h2 {
51
- margin: 0px;
52
- padding: 0px;
53
- }
54
-
55
- .onp-container p {
56
- margin: 0 0 2px 0;
57
- padding: 0px;
58
- line-height: 170%;
59
- }
60
-
61
- .btn-uppercase {
62
- font-size: 12px;
63
- letter-spacing: 1px;
64
- text-transform: uppercase;
65
- text-decoration: none;
66
- }
67
-
68
- .btn-uppercase *[class^=icon] {
69
- position: relative;
70
- top: -1px;
71
- left: -1px;
72
- }
73
-
74
- .onp-page-wrap .license-message {
75
- margin-bottom: 20px;
76
- overflow: hidden;
77
- }
78
-
79
- .onp-page-wrap .license-message .alert {
80
- margin: 0px;
81
- }
82
-
83
- .onp-page-wrap .license-message strong {
84
- display: block;
85
- margin-bottom: 0px;
86
- }
87
-
88
- .onp-page-wrap .license-message p {
89
- margin: 1px 0 1px 0;
90
- padding: 0px;
91
- }
92
-
93
- .onp-page-wrap .license-message a {
94
- font-weight: bold;
95
- }
96
-
97
- .license-message .alert-warning-icon {
98
- padding-left: 60px;
99
- background-image: url("../img/warning.png");
100
- background-position: 15px 11px;
101
- background-repeat: no-repeat;
102
- }
103
-
104
- #onp-hide-license-manager {
105
- position: absolute;
106
- top: 2px;
107
- right: 15px;
108
- font-size: 12px;
109
- color: #777;
110
- font-weight: bold;
111
- }
112
-
113
- #onp-hide-license-manager:hover {
114
- text-decoration: none;
115
- }
116
-
117
- #onp-hide-license-manager,
118
- #onp-hide-license-manager:focus,
119
- #onp-hide-license-manager:hover {
120
- outline: none;
121
- border: 0px;
122
- box-shadow: none;
123
- }
124
-
125
- #onp-hide-license-manager .fa {
126
- margin-right: 5px;
127
- }
128
-
129
- #license-manager .license-details-wrap {
130
- border: 1px solid #e9e9e9;
131
- padding: 0px;
132
- border-radius: 5px;
133
-
134
- background: rgb(255, 255, 255); /* Old browsers */
135
- background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* FF3.6+ */
136
- background: -webkit-gradient(linear, left top, left bottom, color-stop(63%, rgba(255, 255, 255, 1)), color-stop(100%, rgba(246, 246, 246, 1))); /* Chrome,Safari4+ */
137
- background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Chrome10+,Safari5.1+ */
138
- background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Opera 11.10+ */
139
- background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* IE10+ */
140
- background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* W3C */
141
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f6f6f6', GradientType=0); /* IE6-9 */
142
-
143
- box-shadow: 0px 2px 1px #c9c9c9;
144
- }
145
-
146
- #license-manager .activate-trial-hint {
147
- background-color: #f8f8f8;
148
- padding: 10px 20px;
149
- position: relative;
150
- -moz-box-sizing: content-box;
151
- box-sizing: content-box;
152
- }
153
-
154
- #license-manager .activate-error-hint {
155
- background-color: #fb7976;
156
- color: #f5f5f5;
157
- text-shadow: none;
158
- padding: 2px 9px;
159
- width: 100%;
160
- position: relative;
161
- margin-left: -9px;
162
- -moz-box-sizing: content-box;
163
- box-sizing: content-box;
164
- }
165
-
166
- #license-manager .license-details {
167
- padding: 20px;
168
- padding-bottom: 0px;
169
- -webkit-border-top-left-radius: 5px;
170
- -webkit-border-top-right-radius: 5px;
171
- -moz-border-radius-topleft: 5px;
172
- -moz-border-radius-topright: 5px;
173
- border-top-left-radius: 5px;
174
- border-top-right-radius: 5px;
175
-
176
- position: relative;
177
- z-index: 10;
178
- }
179
-
180
- #license-manager .license-key-identity {
181
- font-style: italic;
182
- position: relative;
183
- top: -6px;
184
- }
185
-
186
- #license-manager .license-key-identity code {
187
- display: inline-block;
188
- padding:2px 5px;
189
- font-size: 16px;
190
- }
191
-
192
- #license-manager .license-key-description {
193
- font-size: 12px;
194
- }
195
-
196
- #license-manager .license-delete-button {
197
- float: right;
198
- text-decoration: none;
199
- position: relative;
200
- top: -7px;
201
- left: 10px;
202
- }
203
-
204
- #license-manager .license-synchronization-button {
205
- float: right;
206
- text-decoration: none;
207
- position: relative;
208
- top: -7px;
209
- left: 5px;
210
- }
211
-
212
- #license-manager .license-details-block {
213
- padding: 28px 35px 15px 35px;
214
- margin-left: -35px;
215
- width: 100%;
216
- position: relative;
217
- margin-top: 20px;
218
-
219
- background: #fff;
220
- border: 0px;
221
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
222
- color: #333;
223
-
224
- border-radius: 5px;
225
-
226
- -webkit-box-sizing: content-box;
227
- -moz-box-sizing: content-box;
228
- box-sizing: content-box;
229
- }
230
-
231
- #license-manager .license-details-block p + p {
232
- margin-top: 10px;
233
- }
234
-
235
- #license-manager .license-details-block a {
236
- font-weight: bold;
237
- }
238
-
239
- #license-manager .license-details-block.trial-details-block {
240
- background: #ffdede;
241
-
242
- border: 0;
243
- box-shadow: 0 0 7px #cf4944;
244
- color: #a04342;
245
- text-shadow: 1px 1px 2px #fff2f2;
246
- }
247
-
248
- #license-manager .license-details-block.trial-details-block a {
249
- color: #a04342;
250
- }
251
-
252
- #license-manager .license-details-block.paid-details-block {
253
- border: 0;
254
- box-shadow: 0 0 7px #b8823b;
255
- color: #8a6d3b;
256
- background: #fcf8e3;
257
- }
258
-
259
- #license-manager .license-details-block.paid-details-block a {
260
- color: #7a4c00;
261
- }
262
-
263
- #license-manager .license-details-block.gift-details-block {
264
- background: #DFF0D8;
265
- border: 1px solid #D6E9C6;
266
- box-shadow: 0px 0px 5px #D6E9C6;
267
- color: #468847;
268
- }
269
-
270
- #license-manager .license-details-block.gift-details-block a {
271
- color: #468847;
272
- }
273
-
274
- #license-manager .license-params {
275
- margin-top: 15px;
276
- position: relative;
277
- left: -2px;
278
- }
279
-
280
- #license-manager .license-value {
281
- display: block;
282
- font-size: 16px;
283
- font-weight: bold;
284
- }
285
-
286
- #license-manager .license-value small {
287
- font-weight: normal;
288
- }
289
-
290
- #license-manager .license-value-name {
291
- display: block;
292
- font-size: 12px;
293
- }
294
-
295
- #license-manager .license-param {
296
- white-space: nowrap;
297
- line-height: 130%;
298
- padding: 10px 0 10px 35px;
299
- vertical-align: top;
300
- }
301
-
302
- #license-manager .license-param-domain {
303
- padding-left: 65px;
304
- background: url('../img/free-license-chip.png') -3px 0px no-repeat;
305
- }
306
-
307
- #license-manager .trial-details-block .license-param-domain {
308
- background: url('../img/trial-license-chip.png') -3px 0px no-repeat;
309
- }
310
-
311
- #license-manager .paid-details-block .license-param-domain {
312
- background: url('../img/paid-license-chip.png') -3px 0px no-repeat;
313
- }
314
-
315
- #license-manager .license-details-block h3 {
316
- margin: 0px;
317
- padding: 0px;
318
- font-size: 22px;
319
- margin-bottom: 10px;
320
- }
321
-
322
- #license-manager .license-details-block a {
323
- color: #a04342;
324
- }
325
-
326
- #license-manager .license-input {
327
-
328
- padding: 20px;
329
- -webkit-border-bottom-right-radius: 5px;
330
- -webkit-border-bottom-left-radius: 5px;
331
- -moz-border-radius-bottomright: 5px;
332
- -moz-border-radius-bottomleft: 5px;
333
- border-bottom-right-radius: 5px;
334
- border-bottom-left-radius: 5px;
335
- }
336
-
337
- #license-manager .license-input .btn {
338
- text-decoration: none;
339
- }
340
-
341
- #license-manager .license-key-wrap {
342
- padding-right: 110px;
343
- }
344
-
345
- #license-key {
346
- width: 100%;
347
- position: relative;
348
- font-size: 18px;
349
- line-height: 20px;
350
- position: relative;
351
- top: -1px;
352
- height: 36px;
353
- color: #000;
354
- }
355
-
356
- #license-submit {
357
- float: right;
358
- padding: 7px 14px 6px 14px;
359
- }
360
-
361
- #plugin-update-block {
362
- padding-top: 10px;
363
- font-size: 10px;
364
- color: #666;
365
- max-width: 700px;
366
- margin: auto;
367
- }
368
-
369
- #plugin-update-block a {
370
- color: #000;
371
- }
372
-
373
- .purchase-premium {
374
- float: right;
375
- position: relative;
376
- top: -11px;
377
- left: 8px;
378
- text-decoration: none;
379
- font-weight: bold;
380
- background: #fffaea;
381
- padding: 0px;
382
- border-radius: 4px;
383
- outline: none;
384
- margin-top: 4px;
385
- box-shadow: 0 0 8px #fddf67;
386
- }
387
-
388
- .purchase-premium .fa {
389
- position: relative;
390
- margin-right: 3px;
391
- margin-left: 3px;
392
- }
393
-
394
- /*
395
- * Manual Trial Activation
396
- */
397
- #trial-manual .onp-container {
398
- padding: 20px;
399
- overflow: hidden;
400
- }
401
-
402
- #trial-manual ul {
403
- margin: 0px;
404
- padding: 0px;
405
- margin-top: 10px;
406
- }
407
-
408
- #trial-manual ul li {
409
- margin-bottom: 10px;
410
- }
411
-
412
- #trial-manual .license-reponse-code {
413
- width: 100%;
414
- height: 150px;
415
- margin-top: 5px;
416
- }
417
-
418
- /*
419
- * Manual Key Activation
420
- */
421
- #activate-key-manual .onp-container {
422
- padding: 20px;
423
- overflow: hidden;
424
- }
425
-
426
- #activate-key-manual ul {
427
- margin: 0px;
428
- padding: 0px;
429
- margin-top: 10px;
430
- }
431
-
432
- #activate-key-manual ul li {
433
- margin-bottom: 10px;
434
- }
435
-
436
- #activate-key-manual .license-reponse-code {
437
- width: 100%;
438
- height: 150px;
439
- margin-top: 5px;
440
- }
441
-
442
- /**
443
- * FAQ
444
- */
445
-
446
- #faq-block {
447
- border-top: 1px solid #d7d7d7;
448
-
449
- margin-top: 20px;
450
- width: 100%;
451
-
452
- padding: 10px 20px;
453
- position: relative;
454
- }
455
-
456
- #faq-block .faq-header {
457
- border-bottom: 1px dotted #333;
458
- display: inline-block;
459
- cursor: pointer;
460
- font-weight: bold;
461
- line-height: 16px;
462
- font-size: 13px;
463
- color: #333;
464
- }
465
-
466
- #faq-block .faq-header:hover {
467
- border-bottom: 0px;
468
- }
469
-
470
- #faq-block .faq-header:focus, #faq-block .faq-header:active {
471
- outline: 0;
472
- }
473
-
474
- #faq-block li > div {
475
- display: none;
476
- }
477
-
478
- #faq-block p {
479
- margin: 6px 0 10px 0;
480
- font-size: 13px;
481
- line-height: 170%;
482
- }
483
-
484
- #open-faq {
485
- color: #000 !important;
486
- text-decoration: none;
487
- border-bottom: 1px dotted #000;
488
- margin-left: 4px;
489
- }
490
-
491
- #open-faq:hover {
492
- border-bottom: 0px;
493
- }
494
-
495
- .gray-link, .gray-link a {
496
- color: #666666 !important;
497
- }
498
-
499
- /**
500
- * A form to create a customer account
501
- */
502
-
503
- .onp-single-block .onp-header {
504
- text-align: center;
505
- padding: 10px;
506
- }
507
-
508
- .onp-single-block .onp-header h4 {
509
- font-size: 26px;
510
- line-height: 130%;
511
- }
512
-
513
- .onp-single-block .onp-container {
514
- padding: 50px 60px;
515
- border: 1px solid #bbb;
516
- position: relative;
517
- }
518
-
519
- .onp-single-block .onp-container .onp-container-header {
520
- margin-bottom: 20px;
521
- }
522
-
523
- .onp-single-block .onp-container .onp-container-header h4 {
524
- color: #000;
525
- margin: 0px;
526
- font-size: 20px;
527
- }
528
-
529
- .onp-single-block .onp-container .onp-container-header .onp-key-info {
530
- color: #666;
531
- }
532
-
533
- .onp-single-block .onp-container .onp-container-header .onp-key-info .fa {
534
- color: #777;
535
- }
536
-
537
- .onp-single-block .onp-container .onp-container-header .onp-icon {
538
- position: absolute;
539
- top: 30px;
540
- right: 30px;
541
- }
542
-
543
- .onp-single-block .onp-container p,
544
- .onp-single-block .onp-container li {
545
- color: #333;
546
- font-size: 14px;
547
- }
548
-
549
- .onp-single-block .onp-container p + p {
550
- margin-top: 15px;
551
- }
552
-
553
- .onp-single-block .onp-container .onp-form {
554
- text-align: left;
555
- padding: 10px 0 0 0;
556
- }
557
-
558
- .onp-single-block #email {
559
- font-size: 26px;
560
- line-height: 26px;
561
- height: 50px;
562
- }
563
-
564
- .onp-single-block .checkbox {
565
- padding-left: 25px;
566
- color: #999;
567
- font-style: italic;
568
- }
569
-
570
- .onp-single-block .checkbox input {
571
- margin-left: -25px;
572
- }
573
-
574
- .onp-single-block .onp-actions {
575
- padding-top: 20px;
576
- }
577
-
578
- .onp-single-block .onp-actions .btn-primary {
579
- margin-right: 15px;
580
- }
581
-
582
- .onp-single-block .onp-actions a.onp-cancel {
583
- text-decoration: none;
584
- color: #111;
585
- }
586
-
587
- .onp-single-block .onp-actions a.onp-cancel:hover {
588
- text-decoration: none;
589
- border-bottom: 1px solid #111;
590
- background-color: #f9f9f9;
591
- }
592
-
593
- .onp-single-block .onp-benefits {
594
- padding-left: 25px;
595
- margin-top: 15px;
596
- list-style: initial;
597
- }
598
-
599
- .onp-single-block .onp-login-details {
600
-
601
- }
602
-
603
- .onp-single-block .onp-text-seporator {
604
- border-top: 1px solid #eee;
605
- margin: 30px 0;
606
- }
607
-
608
- #create-account .onp-container {
609
- background: #fff url("../img/create-account-bg.png") no-repeat 370px 230px !important;
610
- }
611
-
612
- #account-created .onp-step {
613
- overflow: hidden;
614
- }
615
-
616
- #account-created .onp-steps {
617
- padding: 25px 0 20px 10px;
618
- }
619
-
620
- #account-created .onp-step + .onp-step {
621
- margin-top: 20px;
622
- }
623
-
624
- #account-created .onp-step .onp-num {
625
- font-size: 25px;
626
- line-height: 40px;
627
- background-color: #f5f5f5;
628
- width: 40px;
629
- height: 40px;
630
- display: inline-block;
631
- border-radius: 7px;
632
- text-align: center;
633
- -moz-box-sizing: border-box;
634
- box-sizing: border-box;
635
- margin-right: 10px;
636
- vertical-align: middle;
637
- font-weight: bolder;
638
- font-family: Arial, sans-serif;
639
- }
640
-
641
- #account-created .onp-step .onp-desc {
642
- width: 490px;
643
- display: inline-block;
644
- vertical-align: middle;
645
- line-height: 150%;
646
- }
647
-
648
- #finish .onp-container {
649
- background: #fff url("../img/finish.png") no-repeat 0 -90px !important;
650
- padding-left: 260px;
651
- min-height: 250px;
652
-
653
- border-bottom: 3px solid #ccc;
654
- }
655
-
656
- .wcl-loader {
657
- float: right;
658
- width: 32px;
659
- }
1
+
2
+ .not-visible-in-manager {
3
+ display: none;
4
+ }
5
+
6
+ /**
7
+ * Global License Message
8
+ */
9
+ .global-license-message {
10
+ width: 600px;
11
+ margin: auto;
12
+ /*margin-top: 100px;*/
13
+ font-size: 14px;
14
+ line-height: 170%;
15
+ }
16
+
17
+ .global-license-message h2, .global-license-message h3 {
18
+ padding: 0px;
19
+ margin: 5px 0;
20
+ }
21
+
22
+ .onp-page-wrap {
23
+ max-width: 720px;
24
+ margin: auto;
25
+ margin-top: 40px;
26
+ font-size: 14px;
27
+ line-height: 170%;
28
+ }
29
+
30
+ .onp-container {
31
+ border: 0px;
32
+ padding: 0px;
33
+ border-radius: 5px;
34
+ background: rgb(255, 255, 255) !important;
35
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
36
+ -moz-box-sizing: border-box;
37
+ box-sizing: border-box;
38
+ }
39
+
40
+ #license-manager .onp-container {
41
+ background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* FF3.6+ */
42
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(63%, rgba(255, 255, 255, 1)), color-stop(100%, rgba(246, 246, 246, 1))); /* Chrome,Safari4+ */
43
+ background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Chrome10+,Safari5.1+ */
44
+ background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Opera 11.10+ */
45
+ background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* IE10+ */
46
+ background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* W3C */
47
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f6f6f6', GradientType=0); /* IE6-9 */
48
+ }
49
+
50
+ .onp-container h2 {
51
+ margin: 0px;
52
+ padding: 0px;
53
+ }
54
+
55
+ .onp-container p {
56
+ margin: 0 0 2px 0;
57
+ padding: 0px;
58
+ line-height: 170%;
59
+ }
60
+
61
+ .btn-uppercase {
62
+ font-size: 12px;
63
+ letter-spacing: 1px;
64
+ text-transform: uppercase;
65
+ text-decoration: none;
66
+ }
67
+
68
+ .btn-uppercase *[class^=icon] {
69
+ position: relative;
70
+ top: -1px;
71
+ left: -1px;
72
+ }
73
+
74
+ .onp-page-wrap .license-message {
75
+ margin-bottom: 20px;
76
+ overflow: hidden;
77
+ }
78
+
79
+ .onp-page-wrap .license-message .alert {
80
+ margin: 0px;
81
+ }
82
+
83
+ .onp-page-wrap .license-message strong {
84
+ display: block;
85
+ margin-bottom: 0px;
86
+ }
87
+
88
+ .onp-page-wrap .license-message p {
89
+ margin: 1px 0 1px 0;
90
+ padding: 0px;
91
+ }
92
+
93
+ .onp-page-wrap .license-message a {
94
+ font-weight: bold;
95
+ }
96
+
97
+ .license-message .alert-warning-icon {
98
+ padding-left: 60px;
99
+ background-image: url("../img/warning.png");
100
+ background-position: 15px 11px;
101
+ background-repeat: no-repeat;
102
+ }
103
+
104
+ #onp-hide-license-manager {
105
+ position: absolute;
106
+ top: 2px;
107
+ right: 15px;
108
+ font-size: 12px;
109
+ color: #777;
110
+ font-weight: bold;
111
+ }
112
+
113
+ #onp-hide-license-manager:hover {
114
+ text-decoration: none;
115
+ }
116
+
117
+ #onp-hide-license-manager,
118
+ #onp-hide-license-manager:focus,
119
+ #onp-hide-license-manager:hover {
120
+ outline: none;
121
+ border: 0px;
122
+ box-shadow: none;
123
+ }
124
+
125
+ #onp-hide-license-manager .fa {
126
+ margin-right: 5px;
127
+ }
128
+
129
+ #license-manager .license-details-wrap {
130
+ border: 1px solid #e9e9e9;
131
+ padding: 0px;
132
+ border-radius: 5px;
133
+
134
+ background: rgb(255, 255, 255); /* Old browsers */
135
+ background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* FF3.6+ */
136
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(63%, rgba(255, 255, 255, 1)), color-stop(100%, rgba(246, 246, 246, 1))); /* Chrome,Safari4+ */
137
+ background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Chrome10+,Safari5.1+ */
138
+ background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* Opera 11.10+ */
139
+ background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* IE10+ */
140
+ background: linear-gradient(to bottom, rgba(255, 255, 255, 1) 63%, rgba(246, 246, 246, 1) 100%); /* W3C */
141
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f6f6f6', GradientType=0); /* IE6-9 */
142
+
143
+ box-shadow: 0px 2px 1px #c9c9c9;
144
+ }
145
+
146
+ #license-manager .activate-trial-hint {
147
+ background-color: #f8f8f8;
148
+ padding: 10px 20px;
149
+ position: relative;
150
+ -moz-box-sizing: content-box;
151
+ box-sizing: content-box;
152
+ }
153
+
154
+ #license-manager .activate-error-hint {
155
+ background-color: #fb7976;
156
+ color: #f5f5f5;
157
+ text-shadow: none;
158
+ padding: 2px 9px;
159
+ width: 100%;
160
+ position: relative;
161
+ margin-left: -9px;
162
+ -moz-box-sizing: content-box;
163
+ box-sizing: content-box;
164
+ }
165
+
166
+ #license-manager .license-details {
167
+ padding: 20px;
168
+ padding-bottom: 0px;
169
+ -webkit-border-top-left-radius: 5px;
170
+ -webkit-border-top-right-radius: 5px;
171
+ -moz-border-radius-topleft: 5px;
172
+ -moz-border-radius-topright: 5px;
173
+ border-top-left-radius: 5px;
174
+ border-top-right-radius: 5px;
175
+
176
+ position: relative;
177
+ z-index: 10;
178
+ }
179
+
180
+ #license-manager .license-key-identity {
181
+ font-style: italic;
182
+ position: relative;
183
+ top: -6px;
184
+ }
185
+
186
+ #license-manager .license-key-identity code {
187
+ display: inline-block;
188
+ padding:2px 5px;
189
+ font-size: 16px;
190
+ }
191
+
192
+ #license-manager .license-key-description {
193
+ font-size: 12px;
194
+ }
195
+
196
+ #license-manager .license-delete-button {
197
+ float: right;
198
+ text-decoration: none;
199
+ position: relative;
200
+ top: -7px;
201
+ left: 10px;
202
+ }
203
+
204
+ #license-manager .license-synchronization-button {
205
+ float: right;
206
+ text-decoration: none;
207
+ position: relative;
208
+ top: -7px;
209
+ left: 5px;
210
+ }
211
+
212
+ #license-manager .license-details-block {
213
+ padding: 28px 35px 15px 35px;
214
+ margin-left: -35px;
215
+ width: 100%;
216
+ position: relative;
217
+ margin-top: 20px;
218
+
219
+ background: #fff;
220
+ border: 0px;
221
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
222
+ color: #333;
223
+
224
+ border-radius: 5px;
225
+
226
+ -webkit-box-sizing: content-box;
227
+ -moz-box-sizing: content-box;
228
+ box-sizing: content-box;
229
+ }
230
+
231
+ #license-manager .license-details-block p + p {
232
+ margin-top: 10px;
233
+ }
234
+
235
+ #license-manager .license-details-block a {
236
+ font-weight: bold;
237
+ }
238
+
239
+ #license-manager .license-details-block.trial-details-block {
240
+ background: #ffdede;
241
+
242
+ border: 0;
243
+ box-shadow: 0 0 7px #cf4944;
244
+ color: #a04342;
245
+ text-shadow: 1px 1px 2px #fff2f2;
246
+ }
247
+
248
+ #license-manager .license-details-block.trial-details-block a {
249
+ color: #a04342;
250
+ }
251
+
252
+ #license-manager .license-details-block.paid-details-block {
253
+ border: 0;
254
+ box-shadow: 0 0 7px #b8823b;
255
+ color: #8a6d3b;
256
+ background: #fcf8e3;
257
+ }
258
+
259
+ #license-manager .license-details-block.paid-details-block a {
260
+ color: #7a4c00;
261
+ }
262
+
263
+ #license-manager .license-details-block.gift-details-block {
264
+ background: #DFF0D8;
265
+ border: 1px solid #D6E9C6;
266
+ box-shadow: 0px 0px 5px #D6E9C6;
267
+ color: #468847;
268
+ }
269
+
270
+ #license-manager .license-details-block.gift-details-block a {
271
+ color: #468847;
272
+ }
273
+
274
+ #license-manager .license-params {
275
+ margin-top: 15px;
276
+ position: relative;
277
+ left: -2px;
278
+ }
279
+
280
+ #license-manager .license-value {
281
+ display: block;
282
+ font-size: 16px;
283
+ font-weight: bold;
284
+ }
285
+
286
+ #license-manager .license-value small {
287
+ font-weight: normal;
288
+ }
289
+
290
+ #license-manager .license-value-name {
291
+ display: block;
292
+ font-size: 12px;
293
+ }
294
+
295
+ #license-manager .license-param {
296
+ white-space: nowrap;
297
+ line-height: 130%;
298
+ padding: 10px 0 10px 35px;
299
+ vertical-align: top;
300
+ }
301
+
302
+ #license-manager .license-param-domain {
303
+ padding-left: 65px;
304
+ background: url('../img/free-license-chip.png') -3px 0px no-repeat;
305
+ }
306
+
307
+ #license-manager .trial-details-block .license-param-domain {
308
+ background: url('../img/trial-license-chip.png') -3px 0px no-repeat;
309
+ }
310
+
311
+ #license-manager .paid-details-block .license-param-domain {
312
+ background: url('../img/paid-license-chip.png') -3px 0px no-repeat;
313
+ }
314
+
315
+ #license-manager .license-details-block h3 {
316
+ margin: 0px;
317
+ padding: 0px;
318
+ font-size: 22px;
319
+ margin-bottom: 10px;
320
+ }
321
+
322
+ #license-manager .license-details-block a {
323
+ color: #a04342;
324
+ }
325
+
326
+ #license-manager .license-input {
327
+
328
+ padding: 20px;
329
+ -webkit-border-bottom-right-radius: 5px;
330
+ -webkit-border-bottom-left-radius: 5px;
331
+ -moz-border-radius-bottomright: 5px;
332
+ -moz-border-radius-bottomleft: 5px;
333
+ border-bottom-right-radius: 5px;
334
+ border-bottom-left-radius: 5px;
335
+ }
336
+
337
+ #license-manager .license-input .btn {
338
+ text-decoration: none;
339
+ }
340
+
341
+ #license-manager .license-key-wrap {
342
+ padding-right: 110px;
343
+ }
344
+
345
+ #license-key {
346
+ width: 100%;
347
+ position: relative;
348
+ font-size: 18px;
349
+ line-height: 20px;
350
+ position: relative;
351
+ top: -1px;
352
+ height: 36px;
353
+ color: #000;
354
+ }
355
+
356
+ #license-submit {
357
+ float: right;
358
+ padding: 7px 14px 6px 14px;
359
+ }
360
+
361
+ #plugin-update-block {
362
+ padding-top: 10px;
363
+ font-size: 10px;
364
+ color: #666;
365
+ max-width: 700px;
366
+ margin: auto;
367
+ }
368
+
369
+ #plugin-update-block a {
370
+ color: #000;
371
+ }
372
+
373
+ .purchase-premium {
374
+ float: right;
375
+ position: relative;
376
+ top: -11px;
377
+ left: 8px;
378
+ text-decoration: none;
379
+ font-weight: bold;
380
+ background: #fffaea;
381
+ padding: 0px;
382
+ border-radius: 4px;
383
+ outline: none;
384
+ margin-top: 4px;
385
+ box-shadow: 0 0 8px #fddf67;
386
+ }
387
+
388
+ .purchase-premium .fa {
389
+ position: relative;
390
+ margin-right: 3px;
391
+ margin-left: 3px;
392
+ }
393
+
394
+ /*
395
+ * Manual Trial Activation
396
+ */
397
+ #trial-manual .onp-container {
398
+ padding: 20px;
399
+ overflow: hidden;
400
+ }
401
+
402
+ #trial-manual ul {
403
+ margin: 0px;
404
+ padding: 0px;
405
+ margin-top: 10px;
406
+ }
407
+
408
+ #trial-manual ul li {
409
+ margin-bottom: 10px;
410
+ }
411
+
412
+ #trial-manual .license-reponse-code {
413
+ width: 100%;
414
+ height: 150px;
415
+ margin-top: 5px;
416
+ }
417
+
418
+ /*
419
+ * Manual Key Activation
420
+ */
421
+ #activate-key-manual .onp-container {
422
+ padding: 20px;
423
+ overflow: hidden;
424
+ }
425
+
426
+ #activate-key-manual ul {
427
+ margin: 0px;
428
+ padding: 0px;
429
+ margin-top: 10px;
430
+ }
431
+
432
+ #activate-key-manual ul li {
433
+ margin-bottom: 10px;
434
+ }
435
+
436
+ #activate-key-manual .license-reponse-code {
437
+ width: 100%;
438
+ height: 150px;
439
+ margin-top: 5px;
440
+ }
441
+
442
+ /**
443
+ * FAQ
444
+ */
445
+
446
+ #faq-block {
447
+ border-top: 1px solid #d7d7d7;
448
+
449
+ margin-top: 20px;
450
+ width: 100%;
451
+
452
+ padding: 10px 20px;
453
+ position: relative;
454
+ }
455
+
456
+ #faq-block .faq-header {
457
+ border-bottom: 1px dotted #333;
458
+ display: inline-block;
459
+ cursor: pointer;
460
+ font-weight: bold;
461
+ line-height: 16px;
462
+ font-size: 13px;
463
+ color: #333;
464
+ }
465
+
466
+ #faq-block .faq-header:hover {
467
+ border-bottom: 0px;
468
+ }
469
+
470
+ #faq-block .faq-header:focus, #faq-block .faq-header:active {
471
+ outline: 0;
472
+ }
473
+
474
+ #faq-block li > div {
475
+ display: none;
476
+ }
477
+
478
+ #faq-block p {
479
+ margin: 6px 0 10px 0;
480
+ font-size: 13px;
481
+ line-height: 170%;
482
+ }
483
+
484
+ #open-faq {
485
+ color: #000 !important;
486
+ text-decoration: none;
487
+ border-bottom: 1px dotted #000;
488
+ margin-left: 4px;
489
+ }
490
+
491
+ #open-faq:hover {
492
+ border-bottom: 0px;
493
+ }
494
+
495
+ .gray-link, .gray-link a {
496
+ color: #666666 !important;
497
+ }
498
+
499
+ /**
500
+ * A form to create a customer account
501
+ */
502
+
503
+ .onp-single-block .onp-header {
504
+ text-align: center;
505
+ padding: 10px;
506
+ }
507
+
508
+ .onp-single-block .onp-header h4 {
509
+ font-size: 26px;
510
+ line-height: 130%;
511
+ }
512
+
513
+ .onp-single-block .onp-container {
514
+ padding: 50px 60px;
515
+ border: 1px solid #bbb;
516
+ position: relative;
517
+ }
518
+
519
+ .onp-single-block .onp-container .onp-container-header {
520
+ margin-bottom: 20px;
521
+ }
522
+
523
+ .onp-single-block .onp-container .onp-container-header h4 {
524
+ color: #000;
525
+ margin: 0px;
526
+ font-size: 20px;
527
+ }
528
+
529
+ .onp-single-block .onp-container .onp-container-header .onp-key-info {
530
+ color: #666;
531
+ }
532
+
533
+ .onp-single-block .onp-container .onp-container-header .onp-key-info .fa {
534
+ color: #777;
535
+ }
536
+
537
+ .onp-single-block .onp-container .onp-container-header .onp-icon {
538
+ position: absolute;
539
+ top: 30px;
540
+ right: 30px;
541
+ }
542
+
543
+ .onp-single-block .onp-container p,
544
+ .onp-single-block .onp-container li {
545
+ color: #333;
546
+ font-size: 14px;
547
+ }
548
+
549
+ .onp-single-block .onp-container p + p {
550
+ margin-top: 15px;
551
+ }
552
+
553
+ .onp-single-block .onp-container .onp-form {
554
+ text-align: left;
555
+ padding: 10px 0 0 0;
556
+ }
557
+
558
+ .onp-single-block #email {
559
+ font-size: 26px;
560
+ line-height: 26px;
561
+ height: 50px;
562
+ }
563
+
564
+ .onp-single-block .checkbox {
565
+ padding-left: 25px;
566
+ color: #999;
567
+ font-style: italic;
568
+ }
569
+
570
+ .onp-single-block .checkbox input {
571
+ margin-left: -25px;
572
+ }
573
+
574
+ .onp-single-block .onp-actions {
575
+ padding-top: 20px;
576
+ }
577
+
578
+ .onp-single-block .onp-actions .btn-primary {
579
+ margin-right: 15px;
580
+ }
581
+
582
+ .onp-single-block .onp-actions a.onp-cancel {
583
+ text-decoration: none;
584
+ color: #111;
585
+ }
586
+
587
+ .onp-single-block .onp-actions a.onp-cancel:hover {
588
+ text-decoration: none;
589
+ border-bottom: 1px solid #111;
590
+ background-color: #f9f9f9;
591
+ }
592
+
593
+ .onp-single-block .onp-benefits {
594
+ padding-left: 25px;
595
+ margin-top: 15px;
596
+ list-style: initial;
597
+ }
598
+
599
+ .onp-single-block .onp-login-details {
600
+
601
+ }
602
+
603
+ .onp-single-block .onp-text-seporator {
604
+ border-top: 1px solid #eee;
605
+ margin: 30px 0;
606
+ }
607
+
608
+ #create-account .onp-container {
609
+ background: #fff url("../img/create-account-bg.png") no-repeat 370px 230px !important;
610
+ }
611
+
612
+ #account-created .onp-step {
613
+ overflow: hidden;
614
+ }
615
+
616
+ #account-created .onp-steps {
617
+ padding: 25px 0 20px 10px;
618
+ }
619
+
620
+ #account-created .onp-step + .onp-step {
621
+ margin-top: 20px;
622
+ }
623
+
624
+ #account-created .onp-step .onp-num {
625
+ font-size: 25px;
626
+ line-height: 40px;
627
+ background-color: #f5f5f5;
628
+ width: 40px;
629
+ height: 40px;
630
+ display: inline-block;
631
+ border-radius: 7px;
632
+ text-align: center;
633
+ -moz-box-sizing: border-box;
634
+ box-sizing: border-box;
635
+ margin-right: 10px;
636
+ vertical-align: middle;
637
+ font-weight: bolder;
638
+ font-family: Arial, sans-serif;
639
+ }
640
+
641
+ #account-created .onp-step .onp-desc {
642
+ width: 490px;
643
+ display: inline-block;
644
+ vertical-align: middle;
645
+ line-height: 150%;
646
+ }
647
+
648
+ #finish .onp-container {
649
+ background: #fff url("../img/finish.png") no-repeat 0 -90px !important;
650
+ padding-left: 260px;
651
+ min-height: 250px;
652
+
653
+ border-bottom: 3px solid #ccc;
654
+ }
655
+
656
+ .wcl-loader {
657
+ float: right;
658
+ width: 32px;
659
+ }
admin/assets/css/setup/page-setup.css CHANGED
@@ -1,99 +1,99 @@
1
- .wclearfy-setup__color--red > .dashicons {
2
- color: #ff1c40;
3
- }
4
- .wclearfy-setup__color--green > .dashicons {
5
- color: #1fa21f;
6
- }
7
- .wclearfy-setup__install-component-button {
8
- background-color: #ff1c40 !important;
9
- border-color: #ff1c40 !important;
10
- color: white !important;
11
- text-transform: uppercase !important;
12
- border-radius: 5px !important;
13
- padding: 10px 30px !important;
14
- text-decoration: none !important;
15
- }
16
- .wclearfy-setup__install-component-button:link,
17
- .wclearfy-setup__install-component-button:active {
18
- text-decoration: none !important;
19
- }
20
- .wclearfy-setup__install-component-button:hover {
21
- color: #f3f4ef;
22
- }
23
- .wbcr-clearfy-danger-message {
24
- position: relative;
25
- padding: 15px;
26
- background: #ffe0de;
27
- color: #9c6e6e;
28
- border-radius: 3px;
29
- }
30
- .wclearfy-gogle-page-speed-audit__preloader {
31
- display: block;
32
- width: 100%;
33
- height: 100px;
34
- background: url("../../img/setup-preloader-124x124.gif") center no-repeat;
35
- }
36
- .wclearfy-gogle-page-speed-audit__errors {
37
- display: none;
38
- padding: 15px;
39
- background: #fddfdf;
40
- }
41
- .wclearfy-score {
42
- padding: 20px;
43
- text-align: center;
44
- }
45
- .wclearfy-desktop-score,
46
- .wclearfy-mobile-score {
47
- display: inline-block;
48
- width: 150px;
49
- padding-left: 20px;
50
- padding-right: 20px;
51
- }
52
- .wclearfy-score-circle {
53
- position: relative;
54
- margin: 0 auto;
55
- }
56
- .wclearfy-status-circle-text {
57
- position: absolute;
58
- left: 50%;
59
- top: 50%;
60
- padding: 0;
61
- margin: 0;
62
- transform: translate(-50%, -50%);
63
- color: #aaa;
64
- font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
65
- font-size: 1.3125rem;
66
- font-weight: 300;
67
- line-height: 1.5;
68
- }
69
- .wclearfy-score-circle .wclearfy-status-overlay-text {
70
- position: absolute;
71
- left: 50%;
72
- top: 50%;
73
- padding: 0;
74
- margin: 0;
75
- width: 200%;
76
- text-align: center;
77
- transform: translate(-50%, -50%);
78
- font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
79
- font-size: 0.875rem;
80
- font-weight: normal;
81
- line-height: 1.3125;
82
- opacity: 0;
83
- color: #777;
84
- }
85
- .wclearfy-statistic {
86
- padding: 10px;
87
- font-family: Roboto, Helvetica, Arial, sans-serif;
88
- font-size: 14px;
89
- }
90
- .wclearfy-statistic .wclearfy-statistic__line {
91
- border-bottom: 1px solid #ebebeb;
92
- display: flex;
93
- justify-content: space-between;
94
- padding: 8px;
95
- }
96
- .wclearfy-statistic .wclearfy-statistic__results {
97
- padding-right: 5px;
98
- font-weight: bold;
99
- }
1
+ .wclearfy-setup__color--red > .dashicons {
2
+ color: #ff1c40;
3
+ }
4
+ .wclearfy-setup__color--green > .dashicons {
5
+ color: #1fa21f;
6
+ }
7
+ .wclearfy-setup__install-component-button {
8
+ background-color: #ff1c40 !important;
9
+ border-color: #ff1c40 !important;
10
+ color: white !important;
11
+ text-transform: uppercase !important;
12
+ border-radius: 5px !important;
13
+ padding: 10px 30px !important;
14
+ text-decoration: none !important;
15
+ }
16
+ .wclearfy-setup__install-component-button:link,
17
+ .wclearfy-setup__install-component-button:active {
18
+ text-decoration: none !important;
19
+ }
20
+ .wclearfy-setup__install-component-button:hover {
21
+ color: #f3f4ef;
22
+ }
23
+ .wbcr-clearfy-danger-message {
24
+ position: relative;
25
+ padding: 15px;
26
+ background: #ffe0de;
27
+ color: #9c6e6e;
28
+ border-radius: 3px;
29
+ }
30
+ .wclearfy-gogle-page-speed-audit__preloader {
31
+ display: block;
32
+ width: 100%;
33
+ height: 100px;
34
+ background: url("../../img/setup-preloader-124x124.gif") center no-repeat;
35
+ }
36
+ .wclearfy-gogle-page-speed-audit__errors {
37
+ display: none;
38
+ padding: 15px;
39
+ background: #fddfdf;
40
+ }
41
+ .wclearfy-score {
42
+ padding: 20px;
43
+ text-align: center;
44
+ }
45
+ .wclearfy-desktop-score,
46
+ .wclearfy-mobile-score {
47
+ display: inline-block;
48
+ width: 150px;
49
+ padding-left: 20px;
50
+ padding-right: 20px;
51
+ }
52
+ .wclearfy-score-circle {
53
+ position: relative;
54
+ margin: 0 auto;
55
+ }
56
+ .wclearfy-status-circle-text {
57
+ position: absolute;
58
+ left: 50%;
59
+ top: 50%;
60
+ padding: 0;
61
+ margin: 0;
62
+ transform: translate(-50%, -50%);
63
+ color: #aaa;
64
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
65
+ font-size: 1.3125rem;
66
+ font-weight: 300;
67
+ line-height: 1.5;
68
+ }
69
+ .wclearfy-score-circle .wclearfy-status-overlay-text {
70
+ position: absolute;
71
+ left: 50%;
72
+ top: 50%;
73
+ padding: 0;
74
+ margin: 0;
75
+ width: 200%;
76
+ text-align: center;
77
+ transform: translate(-50%, -50%);
78
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
79
+ font-size: 0.875rem;
80
+ font-weight: normal;
81
+ line-height: 1.3125;
82
+ opacity: 0;
83
+ color: #777;
84
+ }
85
+ .wclearfy-statistic {
86
+ padding: 10px;
87
+ font-family: Roboto, Helvetica, Arial, sans-serif;
88
+ font-size: 14px;
89
+ }
90
+ .wclearfy-statistic .wclearfy-statistic__line {
91
+ border-bottom: 1px solid #ebebeb;
92
+ display: flex;
93
+ justify-content: space-between;
94
+ padding: 8px;
95
+ }
96
+ .wclearfy-statistic .wclearfy-statistic__results {
97
+ padding-right: 5px;
98
+ font-weight: bold;
99
+ }
admin/assets/css/setup/page-setup.less CHANGED
@@ -1,119 +1,119 @@
1
- .wclearfy-setup__color--red {
2
- & > .dashicons {
3
- color: #ff1c40;
4
- }
5
-
6
- }
7
-
8
- .wclearfy-setup__color--green {
9
- & > .dashicons {
10
- color: #1fa21f;
11
- }
12
- }
13
-
14
- .wclearfy-setup__install-component-button {
15
- background-color: #ff1c40 !important;
16
- border-color: #ff1c40 !important;
17
- color: white !important;
18
- text-transform: uppercase !important;
19
- border-radius: 5px !important;
20
- padding: 10px 30px !important;
21
- text-decoration: none !important;
22
-
23
- &:link, &:active {
24
- text-decoration: none !important;
25
- }
26
-
27
- &:hover {
28
- color: #f3f4ef;
29
- }
30
- }
31
-
32
- .wbcr-clearfy-danger-message {
33
- position: relative;
34
- padding: 15px;
35
- background: #ffe0de;
36
- color: #9c6e6e;
37
- border-radius: 3px;
38
- }
39
-
40
- .wclearfy-gogle-page-speed-audit__preloader {
41
- display: block;
42
- width: 100%;
43
- height: 100px;
44
- background: url("../../img/setup-preloader-124x124.gif") center no-repeat;
45
- }
46
-
47
- .wclearfy-gogle-page-speed-audit__errors {
48
- display: none;
49
- padding: 15px;
50
- background: #fddfdf;
51
- }
52
-
53
- .wclearfy-score {
54
- padding: 20px;
55
- text-align: center;
56
- }
57
-
58
- .wclearfy-desktop-score, .wclearfy-mobile-score {
59
- display: inline-block;
60
- width: 150px;
61
- padding-left: 20px;
62
- padding-right: 20px;
63
- }
64
-
65
-
66
- .wclearfy-score-circle {
67
- position: relative;
68
- margin: 0 auto;
69
- }
70
-
71
- .wclearfy-status-circle-text {
72
- position: absolute;
73
- left: 50%;
74
- top: 50%;
75
- padding: 0;
76
- margin: 0;
77
- transform: translate(-50%, -50%);
78
- color: #aaa;
79
- font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
80
- font-size: 1.3125rem;
81
- font-weight: 300;
82
- line-height: 1.5;
83
- }
84
-
85
- .wclearfy-score-circle .wclearfy-status-overlay-text {
86
- position: absolute;
87
- left: 50%;
88
- top: 50%;
89
- padding: 0;
90
- margin: 0;
91
- width: 200%;
92
- text-align: center;
93
- transform: translate(-50%, -50%);
94
- font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
95
- font-size: 0.875rem;
96
- font-weight: normal;
97
- line-height: 1.3125;
98
- opacity: 0;
99
- color: #777;
100
- }
101
-
102
- .wclearfy-statistic {
103
- padding: 10px;
104
- font-family: Roboto, Helvetica, Arial, sans-serif;
105
- font-size: 14px;
106
-
107
- .wclearfy-statistic__line {
108
- border-bottom: 1px solid #ebebeb;
109
- display: flex;
110
- justify-content: space-between;
111
- padding: 8px;
112
- }
113
-
114
- .wclearfy-statistic__results {
115
- padding-right: 5px;
116
- font-weight: bold;
117
- }
118
- }
119
-
1
+ .wclearfy-setup__color--red {
2
+ & > .dashicons {
3
+ color: #ff1c40;
4
+ }
5
+
6
+ }
7
+
8
+ .wclearfy-setup__color--green {
9
+ & > .dashicons {
10
+ color: #1fa21f;
11
+ }
12
+ }
13
+
14
+ .wclearfy-setup__install-component-button {
15
+ background-color: #ff1c40 !important;
16
+ border-color: #ff1c40 !important;
17
+ color: white !important;
18
+ text-transform: uppercase !important;
19
+ border-radius: 5px !important;
20
+ padding: 10px 30px !important;
21
+ text-decoration: none !important;
22
+
23
+ &:link, &:active {
24
+ text-decoration: none !important;
25
+ }
26
+
27
+ &:hover {
28
+ color: #f3f4ef;
29
+ }
30
+ }
31
+
32
+ .wbcr-clearfy-danger-message {
33
+ position: relative;
34
+ padding: 15px;
35
+ background: #ffe0de;
36
+ color: #9c6e6e;
37
+ border-radius: 3px;
38
+ }
39
+
40
+ .wclearfy-gogle-page-speed-audit__preloader {
41
+ display: block;
42
+ width: 100%;
43
+ height: 100px;
44
+ background: url("../../img/setup-preloader-124x124.gif") center no-repeat;
45
+ }
46
+
47
+ .wclearfy-gogle-page-speed-audit__errors {
48
+ display: none;
49
+ padding: 15px;
50
+ background: #fddfdf;
51
+ }
52
+
53
+ .wclearfy-score {
54
+ padding: 20px;
55
+ text-align: center;
56
+ }
57
+
58
+ .wclearfy-desktop-score, .wclearfy-mobile-score {
59
+ display: inline-block;
60
+ width: 150px;
61
+ padding-left: 20px;
62
+ padding-right: 20px;
63
+ }
64
+
65
+
66
+ .wclearfy-score-circle {
67
+ position: relative;
68
+ margin: 0 auto;
69
+ }
70
+
71
+ .wclearfy-status-circle-text {
72
+ position: absolute;
73
+ left: 50%;
74
+ top: 50%;
75
+ padding: 0;
76
+ margin: 0;
77
+ transform: translate(-50%, -50%);
78
+ color: #aaa;
79
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
80
+ font-size: 1.3125rem;
81
+ font-weight: 300;
82
+ line-height: 1.5;
83
+ }
84
+
85
+ .wclearfy-score-circle .wclearfy-status-overlay-text {
86
+ position: absolute;
87
+ left: 50%;
88
+ top: 50%;
89
+ padding: 0;
90
+ margin: 0;
91
+ width: 200%;
92
+ text-align: center;
93
+ transform: translate(-50%, -50%);
94
+ font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
95
+ font-size: 0.875rem;
96
+ font-weight: normal;
97
+ line-height: 1.3125;
98
+ opacity: 0;
99
+ color: #777;
100
+ }
101
+
102
+ .wclearfy-statistic {
103
+ padding: 10px;
104
+ font-family: Roboto, Helvetica, Arial, sans-serif;
105
+ font-size: 14px;
106
+
107
+ .wclearfy-statistic__line {
108
+ border-bottom: 1px solid #ebebeb;
109
+ display: flex;
110
+ justify-content: space-between;
111
+ padding: 8px;
112
+ }
113
+
114
+ .wclearfy-statistic__results {
115
+ padding-right: 5px;
116
+ font-weight: bold;
117
+ }
118
+ }
119
+
admin/assets/css/setup/step-optimize-images.css CHANGED
@@ -1,673 +1,673 @@
1
- /**
2
- * Styles for the Widget to be displayed in the Clearfy plugin
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 14.06.2019
6
- */
7
- .wio-clear {
8
- clear: both;
9
- }
10
- #io_folders_statistic-wbcr_clearfy-tab,
11
- #io_nextgen_gallery_statistic-wbcr_clearfy-tab {
12
- display: none !important;
13
- }
14
- .wrio-statistic-nav {
15
- margin: 0;
16
- background: #efefef;
17
- }
18
- .wrio-statistic-nav ul {
19
- margin: 0;
20
- }
21
- .wrio-statistic-nav ul li {
22
- position: relative;
23
- display: inline-block;
24
- margin: 0 0 0 0;
25
- background: #ffffff;
26
- box-shadow: 0 -2px 0 #eaeaea;
27
- }
28
- .wrio-statistic-nav ul li:hover {
29
- background: #f7f7f7;
30
- }
31
- .wrio-statistic-nav ul li.active {
32
- background: #f7f7f7;
33
- border-top: 1px solid #d4d4d4;
34
- border-left: 1px solid #d4d4d4;
35
- border-right: 1px solid #d4d4d4;
36
- border-bottom: 1px solid #f7f7f7;
37
- margin-bottom: -1px;
38
- }
39
- .wrio-statistic-nav ul li.active a {
40
- color: #222;
41
- }
42
- .wrio-statistic-nav ul li.active a .wrio-statistic-tab-percent {
43
- border: 2px dashed #8bc34a;
44
- color: #5e8237;
45
- }
46
- .wrio-statistic-nav ul li.active .dashicons,
47
- .wrio-statistic-nav ul li.active .dashicons-before:before {
48
- color: #ff8b66;
49
- }
50
- .wrio-statistic-nav ul li .wrio-statistic-tab {
51
- display: block;
52
- padding: 10px 20px 10px 20px;
53
- text-decoration: none;
54
- color: #d4d4d4;
55
- font-size: 22px;
56
- line-height: 2;
57
- }
58
- .wrio-statistic-nav ul li .wrio-statistic-tab:active,
59
- .wrio-statistic-nav ul li .wrio-statistic-tab:focus {
60
- background: 0;
61
- box-shadow: none;
62
- outline: none;
63
- }
64
- .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons,
65
- .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons-before:before {
66
- display: inline-block;
67
- width: 30px;
68
- height: 30px;
69
- font-size: 30px;
70
- line-height: 1.5;
71
- margin-right: 15px;
72
- color: #d4d4d4;
73
- }
74
- .wrio-statistic-nav ul li .wrio-statistic-tab .wrio-statistic-tab-percent {
75
- display: inline-block;
76
- width: 42px;
77
- height: 42px;
78
- border-radius: 100px;
79
- border: 2px dashed #e4e4e4;
80
- padding: 5px;
81
- margin-left: 30px;
82
- font-size: 14px;
83
- font-weight: 600;
84
- text-align: center;
85
- color: #bdbdbd;
86
- }
87
- .wrio-statistic-nav ul li .wrio-statistic-tab-premium-label:after {
88
- display: inline-block;
89
- position: absolute;
90
- content: 'PRO';
91
- background: #ff5722;
92
- border-radius: 4px;
93
- color: #fff;
94
- font-size: 10px;
95
- line-height: 1;
96
- font-style: normal;
97
- padding: 4px 6px;
98
- margin-left: 4px;
99
- vertical-align: top;
100
- top: 10px;
101
- left: auto;
102
- right: 10px;
103
- z-index: 11;
104
- }
105
- .wrio-table {
106
- width: 100%;
107
- table-layout: fixed;
108
- box-sizing: border-box;
109
- border-spacing: 3px;
110
- background: #fff;
111
- border-top: 2px dashed #cac9c9;
112
- }
113
- .wrio-table th,
114
- .wrio-table td {
115
- padding: 16px 10px;
116
- text-align: center;
117
- }
118
- .wrio-table th {
119
- background: #f3f3f3;
120
- color: #777777;
121
- box-shadow: 0 1px 0 #d8d8d8;
122
- }
123
- .wrio-table th:nth-child(2n+1) {
124
- background: #f9f9f9;
125
- }
126
- .wrio-table tr.wrio-error {
127
- background-color: #ffe9e9 !important;
128
- }
129
- .wrio-table .wrio-table-spinner {
130
- background: url("../img/quick-start-loader.gif") center center no-repeat;
131
- }
132
- .wrio-table .wrio-table-highlighter {
133
- display: inline-block;
134
- padding: 3px 7px;
135
- background: #f3f3f3;
136
- }
137
- .wrio-table .wbcr-rio-server-success {
138
- color: #8CC152;
139
- }
140
- .wrio-table .wbcr-rio-server-error {
141
- color: #fb5d49;
142
- }
143
- .wrio-table .wbcr-rio-server-warning {
144
- color: #ffb635;
145
- }
146
- .wrio-table.wbcr-rio-folders-table td:nth-child(3) {
147
- text-align: left;
148
- }
149
- .wrio-servers {
150
- padding: 40px 20px;
151
- }
152
- .wrio-servers label span {
153
- display: block;
154
- font-weight: normal;
155
- font-size: 12px;
156
- color: #b7b2b2;
157
- }
158
- .wrio-servers #wrio-change-optimization-server {
159
- position: relative;
160
- display: inline-block;
161
- max-width: 400px;
162
- margin-right: 15px;
163
- margin-bottom: 0;
164
- border: 1px solid #d2d0d0;
165
- background: #efefef;
166
- }
167
- .wrio-servers .wrio-servers-info {
168
- margin: 0 0 0;
169
- padding: 20px;
170
- background: #fff;
171
- }
172
- .wrio-servers .wrio-server-status-wrap {
173
- display: inline-block;
174
- margin-top: 8px;
175
- }
176
- .wrio-servers .wrio-server-status-wrap .wrio-server-status {
177
- background: transparent;
178
- color: #fff;
179
- padding: 3px 5px;
180
- border-radius: 4px;
181
- }
182
- .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-down {
183
- background: #ff5722;
184
- }
185
- .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-stable {
186
- background: #8bc34a;
187
- }
188
- .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-server-check-proccess {
189
- display: inline-block;
190
- height: 10px;
191
- width: 30px;
192
- background: url("../img/quick-start-loader.gif") center no-repeat;
193
- }
194
- .wrio-servers .wrio-premium-user-balance-wrap {
195
- display: inline-block;
196
- margin-top: 8px;
197
- margin-left: 10px;
198
- }
199
- .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance {
200
- color: #fff;
201
- padding: 3px 5px;
202
- border-radius: 4px;
203
- background: #ffc107;
204
- }
205
- .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance-check-proccess {
206
- display: inline-block;
207
- height: 10px;
208
- width: 30px;
209
- background: url("../img/quick-start-loader.gif") center no-repeat;
210
- }
211
- .wio-columns {
212
- overflow: hidden;
213
- padding: 15px 0;
214
- counter-reset: cols;
215
- }
216
- .wio-columns [class^="col-"] {
217
- float: left;
218
- -webkit-box-sizing: border-box;
219
- -moz-box-sizing: border-box;
220
- box-sizing: border-box;
221
- }
222
- .wio-columns .col-1-3 {
223
- width: 33.333%;
224
- padding-left: 28px;
225
- }
226
- .wio-columns .col-2-3 {
227
- width: 66.666%;
228
- padding-left: 28px;
229
- }
230
- .wio-columns .col-1-2 {
231
- width: 50%;
232
- padding: 0 20px;
233
- }
234
- .wio-columns .col-statistics.col-statistics {
235
- width: 60%;
236
- }
237
- .wio-columns .col-chart.col-chart {
238
- width: 40%;
239
- position: relative;
240
- padding: 20px;
241
- font-size: 12px;
242
- text-transform: uppercase;
243
- background: #f1f1f1b3;
244
- color: #abacaf;
245
- font-weight: bold;
246
- border-radius: 5px;
247
- margin-top: 10px;
248
- text-align: left;
249
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
250
- }
251
- .wio-col {
252
- float: left;
253
- width: 50%;
254
- box-sizing: border-box;
255
- -webkit-flex-basis: 50%;
256
- -ms-flex-preferred-size: 50%;
257
- flex-basis: 50%;
258
- }
259
- .wio-col {
260
- padding-right: 20px;
261
- }
262
- .wio-col + .wio-col {
263
- padding-right: 0;
264
- padding-left: 50px;
265
- }
266
- .wio-col:target {
267
- animation: wiohello 1s 3 linear backwards;
268
- }
269
- .wio-number-you-optimized {
270
- margin-bottom: 1.35em;
271
- overflow: hidden;
272
- }
273
- .wio-number-you-optimized #wio-total-optimized-attachments-pct {
274
- color: #828282;
275
- }
276
- .wio-number-you-optimized .wio-number {
277
- display: table-cell;
278
- padding-right: 15px;
279
- font-size: 48px;
280
- font-weight: bold;
281
- line-height: 1;
282
- vertical-align: middle;
283
- white-space: nowrap;
284
- color: #828282;
285
- }
286
- .wio-number-you-optimized .wio-text {
287
- display: table-cell;
288
- vertical-align: middle;
289
- overflow: hidden;
290
- font-size: 12px;
291
- color: #828282;
292
- }
293
- .wio-number-you-optimized > p {
294
- display: table;
295
- }
296
- .wio-bars {
297
- padding-right: 15px;
298
- }
299
- .wio-bars p {
300
- font-size: 12px;
301
- margin-bottom: 5px;
302
- }
303
- .wio-bars + .wio-number-you-optimized {
304
- border-bottom: 0;
305
- padding-top: 0.85em;
306
- }
307
- .wio-bars + .wio-number-you-optimized p {
308
- color: #72a53b;
309
- }
310
- .wio-bar-negative .wio-progress {
311
- background: #D2D3D6;
312
- }
313
- .wio-bar-negative .wio-barnb {
314
- color: #9d9fa5;
315
- }
316
- .wio-progress {
317
- height: 8px;
318
- transition: width 0.3s;
319
- /*.wio-bar-negative {
320
- width: 92% !important;
321
- }*/
322
- }
323
- .wio-bar-positive .wio-progress {
324
- background: #8CC152;
325
- }
326
- .wio-bar-positive .wio-barnb {
327
- color: #72a53b;
328
- }
329
- .wio-bar-primary .wio-progress {
330
- background: #8CC152;
331
- }
332
- .wio-bar-primary .wio-barnb {
333
- color: #72a53b;
334
- }
335
- .wio-right-outside-number .wio-barnb {
336
- display: block;
337
- margin-right: -5.25em;
338
- text-align: right;
339
- font-weight: bold;
340
- line-height: 0.8;
341
- }
342
- /* Doughnut */
343
- .wio-chart {
344
- position: relative;
345
- top: 1px;
346
- display: inline-block;
347
- vertical-align: middle;
348
- }
349
- .wio-chart-container {
350
- position: relative;
351
- display: inline-block;
352
- margin-right: 5px;
353
- }
354
- .wio-chart-container canvas {
355
- display: block;
356
- }
357
- .wio-overview-chart-container {
358
- float: left;
359
- margin-right: 20px;
360
- }
361
- .wio-chart-percent {
362
- position: absolute;
363
- left: 0;
364
- right: 0;
365
- top: 50%;
366
- margin-top: -0.5em;
367
- line-height: 0.8;
368
- text-align: center;
369
- font-size: 54px;
370
- font-weight: bold;
371
- color: #afafaf;
372
- }
373
- .wio-chart-percent span {
374
- font-size: 20px;
375
- vertical-align: super;
376
- }
377
- #wio-overview-chart-legend {
378
- overflow: hidden;
379
- }
380
- .wio-doughnut-legend li {
381
- display: inline-block;
382
- position: relative;
383
- margin-bottom: 15px;
384
- border-radius: 5px;
385
- padding: 3px 8px 2px 31px;
386
- font-size: 9px;
387
- cursor: default;
388
- -webkit-transition: background-color 200ms ease-in-out;
389
- -moz-transition: background-color 200ms ease-in-out;
390
- -o-transition: background-color 200ms ease-in-out;
391
- transition: background-color 200ms ease-in-out;
392
- }
393
- .wio-doughnut-legend li span {
394
- display: block;
395
- position: absolute;
396
- left: 0;
397
- top: 0;
398
- width: 25px;
399
- height: 25px;
400
- border-radius: 50%;
401
- }
402
- .wio-optimize-button {
403
- min-width: 180px;
404
- padding: 12px 30px;
405
- background: #c9deb2;
406
- color: #586549;
407
- border: 0;
408
- box-shadow: none;
409
- font-size: 14px;
410
- text-transform: uppercase !important;
411
- font-weight: bold;
412
- border-radius: 4px;
413
- outline: none;
414
- }
415
- .wio-optimize-button:active {
416
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
417
- }
418
- .wio-optimize-button:disabled {
419
- background: #e2edd6;
420
- color: #a5b295;
421
- }
422
- .wio-optimize-button.wio-running {
423
- color: #a57b3c;
424
- background: #fdd599 url("../img/Spinner-1s-33px.gif") 10px center no-repeat;
425
- padding-left: 50px;
426
- }
427
- .wio-global-optim-phrase {
428
- width: 180px;
429
- padding-top: 20px;
430
- font-size: 14px;
431
- text-align: center;
432
- }
433
- .wio-total-percent {
434
- color: #587f2e;
435
- }
436
- #wio-start-msg-top,
437
- #wio-start-msg-right,
438
- #wio-start-msg-complete {
439
- display: none;
440
- }
441
- .wio-text-left {
442
- text-align: left;
443
- }
444
- span.wio-num {
445
- display: inline !important;
446
- position: inherit !important;
447
- }
448
- .wio-image-optimize-board {
449
- padding-bottom: 0 !important;
450
- }
451
- .wio-page-statistic {
452
- padding-left: 40px;
453
- }
454
- .wio-page-statistic .wio-chart-percent {
455
- margin-top: -1.1em;
456
- }
457
- .wrio-optimization-progress {
458
- background: none;
459
- padding: 0;
460
- /*button {
461
- padding: 5px 10px;
462
- border: 0;
463
- font-size: 11px;
464
- text-transform: uppercase !important;
465
- font-weight: bold;
466
- border-radius: 4px;
467
- outline: none;
468
- background: @greyButtonBg;
469
- color: @greyButtonColor;
470
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
471
-
472
- &:active {
473
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
474
- }
475
-
476
- &.wbcr-rio-loading {
477
- width: 56px;
478
- font-size: 0;
479
- background: @greyButtonBg url("../img/quick-start-loader.gif") center no-repeat;
480
- }
481
-
482
- &.wbcr-rio-selected {
483
- background: #f3efe2;
484
- color: #d8d8d8;
485
-
486
- &:active {
487
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
488
- }
489
- }
490
- }*/
491
- }
492
- .wrio-optimization-progress h4 {
493
- font-size: 15px;
494
- font-weight: 700;
495
- }
496
- .wrio-optimization-progress .wbcr-rio-warning-message {
497
- padding: 20px;
498
- background: #efefef;
499
- font-size: 15px;
500
- color: #b7b7b7;
501
- font-style: italic;
502
- }
503
- .wio-widget {
504
- padding: 0 !important;
505
- }
506
- .wio-widget .wio-chart-percent {
507
- font-size: 44px;
508
- line-height: 1;
509
- }
510
- .wio-widget .wio-bars {
511
- width: 60%;
512
- margin-left: 155px;
513
- }
514
- .wio-widget .col-chart.col-chart {
515
- width: 100%;
516
- }
517
- .wio-widget .col-controls {
518
- width: 45%;
519
- padding-left: 5px;
520
- padding-top: 110px;
521
- }
522
- .wio-widget .wio-doughnut-legend {
523
- /*padding-top:30px;*/
524
- text-align: left;
525
- }
526
- .wio-widget .wio-widget-bottom {
527
- display: table;
528
- padding-top: 20px !important;
529
- width: 100%;
530
- text-align: right;
531
- }
532
- .wio-widget .wio-widget-bottom li {
533
- display: table-cell;
534
- }
535
- .wio-widget .wio-widget-bottom li:first-child {
536
- text-align: left;
537
- }
538
- .factory-checkbox.wrio-checkbox-premium-label:after {
539
- display: inline-block;
540
- position: relative;
541
- content: 'PRO';
542
- background: #ff5722;
543
- border-radius: 4px;
544
- color: #fff;
545
- font-size: 10px;
546
- line-height: 1;
547
- font-style: normal;
548
- padding: 4px 6px;
549
- margin-left: 4px;
550
- vertical-align: top;
551
- top: -8px;
552
- left: -10px;
553
- right: auto;
554
- z-index: 11;
555
- }
556
- .factory-checkbox-disabled input,
557
- .factory-checkbox-disabled button {
558
- pointer-events: none;
559
- cursor: not-allowed;
560
- opacity: 0.65;
561
- filter: alpha(opacity=65);
562
- -webkit-box-shadow: none;
563
- box-shadow: none;
564
- }
565
- #wrio-webp-options h3,
566
- #wrio-error-log-options h3 {
567
- font-size: 14px;
568
- margin: 0 0 10px 0;
569
- font-weight: 600;
570
- color: #565656;
571
- }
572
- #wrio-webp-options .wrio-webp-options-info,
573
- #wrio-error-log-options .wrio-webp-options-info {
574
- color: #8a8787;
575
- font-size: 12px;
576
- }
577
- #wrio-webp-options ul,
578
- #wrio-error-log-options ul {
579
- padding-left: 0;
580
- }
581
- #wrio-webp-options ul li:after,
582
- #wrio-error-log-options ul li:after {
583
- content: '';
584
- display: block;
585
- clear: both;
586
- }
587
- #wrio-webp-options ul li label,
588
- #wrio-error-log-options ul li label {
589
- font-weight: 600;
590
- }
591
- #wrio-webp-options ul li .wrio-webp-options-radio,
592
- #wrio-error-log-options ul li .wrio-webp-options-radio,
593
- #wrio-webp-options ul li .wrio-error-log-options-checkbox,
594
- #wrio-error-log-options ul li .wrio-error-log-options-checkbox {
595
- display: block;
596
- float: left;
597
- margin-top: 2px;
598
- margin-right: 8px;
599
- }
600
- #wrio-webp-options ul li .wrio-webp-options-radio:focus,
601
- #wrio-error-log-options ul li .wrio-webp-options-radio:focus,
602
- #wrio-webp-options ul li .wrio-error-log-options-checkbox:focus,
603
- #wrio-error-log-options ul li .wrio-error-log-options-checkbox:focus {
604
- outline: none;
605
- box-shadow: none;
606
- }
607
- #wrio-webp-options ul li .wrio-webp-options-info,
608
- #wrio-error-log-options ul li .wrio-webp-options-info,
609
- #wrio-webp-options ul li .wrio-error-log-options-info,
610
- #wrio-error-log-options ul li .wrio-error-log-options-info {
611
- padding-left: 25px;
612
- }
613
- @media (max-width: 830px) {
614
- .wio [class^="col-"] {
615
- float: none;
616
- margin-bottom: 1.5em;
617
- }
618
- .wio .col-1-3,
619
- .wio .col-1-2 {
620
- width: auto;
621
- padding: 0 28px;
622
- clear: both;
623
- padding-top: 1em;
624
- }
625
- }
626
- @keyframes wiohello {
627
- 0%,
628
- 100% {
629
- background: #FFF;
630
- }
631
- 50% {
632
- background: #F4F7F9;
633
- }
634
- }
635
- @media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) {
636
- .wio-columns .col-statistics.col-statistics,
637
- .wio-columns .col-chart.col-chart {
638
- width: 50%;
639
- }
640
- }
641
- @media (max-width: 808px) {
642
- .wio-columns .col-statistics.col-statistics,
643
- .wio-columns .col-chart.col-chart {
644
- width: auto;
645
- float: none;
646
- padding: 0;
647
- }
648
- .wio-columns .col-chart.col-chart {
649
- margin-top: 3em;
650
- }
651
- }
652
- /*@media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
653
- .wio-overview-chart-container {
654
- float: none;
655
- margin-right: 0;
656
- }
657
- }
658
-
659
- @media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
660
- .wio-overview-chart-container {
661
- float: none;
662
- margin-right: 0;
663
- }
664
-
665
- .wio-doughnut-legend {
666
- margin-top: 18px;
667
- }
668
-
669
- .wio-global-optim-phrase {
670
- padding-top: 0;
671
- width: auto;
672
- }
673
- }*/
1
+ /**
2
+ * Styles for the Widget to be displayed in the Clearfy plugin
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 14.06.2019
6
+ */
7
+ .wio-clear {
8
+ clear: both;
9
+ }
10
+ #io_folders_statistic-wbcr_clearfy-tab,
11
+ #io_nextgen_gallery_statistic-wbcr_clearfy-tab {
12
+ display: none !important;
13
+ }
14
+ .wrio-statistic-nav {
15
+ margin: 0;
16
+ background: #efefef;
17
+ }
18
+ .wrio-statistic-nav ul {
19
+ margin: 0;
20
+ }
21
+ .wrio-statistic-nav ul li {
22
+ position: relative;
23
+ display: inline-block;
24
+ margin: 0 0 0 0;
25
+ background: #ffffff;
26
+ box-shadow: 0 -2px 0 #eaeaea;
27
+ }
28
+ .wrio-statistic-nav ul li:hover {
29
+ background: #f7f7f7;
30
+ }
31
+ .wrio-statistic-nav ul li.active {
32
+ background: #f7f7f7;
33
+ border-top: 1px solid #d4d4d4;
34
+ border-left: 1px solid #d4d4d4;
35
+ border-right: 1px solid #d4d4d4;
36
+ border-bottom: 1px solid #f7f7f7;
37
+ margin-bottom: -1px;
38
+ }
39
+ .wrio-statistic-nav ul li.active a {
40
+ color: #222;
41
+ }
42
+ .wrio-statistic-nav ul li.active a .wrio-statistic-tab-percent {
43
+ border: 2px dashed #8bc34a;
44
+ color: #5e8237;
45
+ }
46
+ .wrio-statistic-nav ul li.active .dashicons,
47
+ .wrio-statistic-nav ul li.active .dashicons-before:before {
48
+ color: #ff8b66;
49
+ }
50
+ .wrio-statistic-nav ul li .wrio-statistic-tab {
51
+ display: block;
52
+ padding: 10px 20px 10px 20px;
53
+ text-decoration: none;
54
+ color: #d4d4d4;
55
+ font-size: 22px;
56
+ line-height: 2;
57
+ }
58
+ .wrio-statistic-nav ul li .wrio-statistic-tab:active,
59
+ .wrio-statistic-nav ul li .wrio-statistic-tab:focus {
60
+ background: 0;
61
+ box-shadow: none;
62
+ outline: none;
63
+ }
64
+ .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons,
65
+ .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons-before:before {
66
+ display: inline-block;
67
+ width: 30px;
68
+ height: 30px;
69
+ font-size: 30px;
70
+ line-height: 1.5;
71
+ margin-right: 15px;
72
+ color: #d4d4d4;
73
+ }
74
+ .wrio-statistic-nav ul li .wrio-statistic-tab .wrio-statistic-tab-percent {
75
+ display: inline-block;
76
+ width: 42px;
77
+ height: 42px;
78
+ border-radius: 100px;
79
+ border: 2px dashed #e4e4e4;
80
+ padding: 5px;
81
+ margin-left: 30px;
82
+ font-size: 14px;
83
+ font-weight: 600;
84
+ text-align: center;
85
+ color: #bdbdbd;
86
+ }
87
+ .wrio-statistic-nav ul li .wrio-statistic-tab-premium-label:after {
88
+ display: inline-block;
89
+ position: absolute;
90
+ content: 'PRO';
91
+ background: #ff5722;
92
+ border-radius: 4px;
93
+ color: #fff;
94
+ font-size: 10px;
95
+ line-height: 1;
96
+ font-style: normal;
97
+ padding: 4px 6px;
98
+ margin-left: 4px;
99
+ vertical-align: top;
100
+ top: 10px;
101
+ left: auto;
102
+ right: 10px;
103
+ z-index: 11;
104
+ }
105
+ .wrio-table {
106
+ width: 100%;
107
+ table-layout: fixed;
108
+ box-sizing: border-box;
109
+ border-spacing: 3px;
110
+ background: #fff;
111
+ border-top: 2px dashed #cac9c9;
112
+ }
113
+ .wrio-table th,
114
+ .wrio-table td {
115
+ padding: 16px 10px;
116
+ text-align: center;
117
+ }
118
+ .wrio-table th {
119
+ background: #f3f3f3;
120
+ color: #777777;
121
+ box-shadow: 0 1px 0 #d8d8d8;
122
+ }
123
+ .wrio-table th:nth-child(2n+1) {
124
+ background: #f9f9f9;
125
+ }
126
+ .wrio-table tr.wrio-error {
127
+ background-color: #ffe9e9 !important;
128
+ }
129
+ .wrio-table .wrio-table-spinner {
130
+ background: url("../img/quick-start-loader.gif") center center no-repeat;
131
+ }
132
+ .wrio-table .wrio-table-highlighter {
133
+ display: inline-block;
134
+ padding: 3px 7px;
135
+ background: #f3f3f3;
136
+ }
137
+ .wrio-table .wbcr-rio-server-success {
138
+ color: #8CC152;
139
+ }
140
+ .wrio-table .wbcr-rio-server-error {
141
+ color: #fb5d49;
142
+ }
143
+ .wrio-table .wbcr-rio-server-warning {
144
+ color: #ffb635;
145
+ }
146
+ .wrio-table.wbcr-rio-folders-table td:nth-child(3) {
147
+ text-align: left;
148
+ }
149
+ .wrio-servers {
150
+ padding: 40px 20px;
151
+ }
152
+ .wrio-servers label span {
153
+ display: block;
154
+ font-weight: normal;
155
+ font-size: 12px;
156
+ color: #b7b2b2;
157
+ }
158
+ .wrio-servers #wrio-change-optimization-server {
159
+ position: relative;
160
+ display: inline-block;
161
+ max-width: 400px;
162
+ margin-right: 15px;
163
+ margin-bottom: 0;
164
+ border: 1px solid #d2d0d0;
165
+ background: #efefef;
166
+ }
167
+ .wrio-servers .wrio-servers-info {
168
+ margin: 0 0 0;
169
+ padding: 20px;
170
+ background: #fff;
171
+ }
172
+ .wrio-servers .wrio-server-status-wrap {
173
+ display: inline-block;
174
+ margin-top: 8px;
175
+ }
176
+ .wrio-servers .wrio-server-status-wrap .wrio-server-status {
177
+ background: transparent;
178
+ color: #fff;
179
+ padding: 3px 5px;
180
+ border-radius: 4px;
181
+ }
182
+ .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-down {
183
+ background: #ff5722;
184
+ }
185
+ .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-stable {
186
+ background: #8bc34a;
187
+ }
188
+ .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-server-check-proccess {
189
+ display: inline-block;
190
+ height: 10px;
191
+ width: 30px;
192
+ background: url("../img/quick-start-loader.gif") center no-repeat;
193
+ }
194
+ .wrio-servers .wrio-premium-user-balance-wrap {
195
+ display: inline-block;
196
+ margin-top: 8px;
197
+ margin-left: 10px;
198
+ }
199
+ .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance {
200
+ color: #fff;
201
+ padding: 3px 5px;
202
+ border-radius: 4px;
203
+ background: #ffc107;
204
+ }
205
+ .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance-check-proccess {
206
+ display: inline-block;
207
+ height: 10px;
208
+ width: 30px;
209
+ background: url("../img/quick-start-loader.gif") center no-repeat;
210
+ }
211
+ .wio-columns {
212
+ overflow: hidden;
213
+ padding: 15px 0;
214
+ counter-reset: cols;
215
+ }
216
+ .wio-columns [class^="col-"] {
217
+ float: left;
218
+ -webkit-box-sizing: border-box;
219
+ -moz-box-sizing: border-box;
220
+ box-sizing: border-box;
221
+ }
222
+ .wio-columns .col-1-3 {
223
+ width: 33.333%;
224
+ padding-left: 28px;
225
+ }
226
+ .wio-columns .col-2-3 {
227
+ width: 66.666%;
228
+ padding-left: 28px;
229
+ }
230
+ .wio-columns .col-1-2 {
231
+ width: 50%;
232
+ padding: 0 20px;
233
+ }
234
+ .wio-columns .col-statistics.col-statistics {
235
+ width: 60%;
236
+ }
237
+ .wio-columns .col-chart.col-chart {
238
+ width: 40%;
239
+ position: relative;
240
+ padding: 20px;
241
+ font-size: 12px;
242
+ text-transform: uppercase;
243
+ background: #f1f1f1b3;
244
+ color: #abacaf;
245
+ font-weight: bold;
246
+ border-radius: 5px;
247
+ margin-top: 10px;
248
+ text-align: left;
249
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
250
+ }
251
+ .wio-col {
252
+ float: left;
253
+ width: 50%;
254
+ box-sizing: border-box;
255
+ -webkit-flex-basis: 50%;
256
+ -ms-flex-preferred-size: 50%;
257
+ flex-basis: 50%;
258
+ }
259
+ .wio-col {
260
+ padding-right: 20px;
261
+ }
262
+ .wio-col + .wio-col {
263
+ padding-right: 0;
264
+ padding-left: 50px;
265
+ }
266
+ .wio-col:target {
267
+ animation: wiohello 1s 3 linear backwards;
268
+ }
269
+ .wio-number-you-optimized {
270
+ margin-bottom: 1.35em;
271
+ overflow: hidden;
272
+ }
273
+ .wio-number-you-optimized #wio-total-optimized-attachments-pct {
274
+ color: #828282;
275
+ }
276
+ .wio-number-you-optimized .wio-number {
277
+ display: table-cell;
278
+ padding-right: 15px;
279
+ font-size: 48px;
280
+ font-weight: bold;
281
+ line-height: 1;
282
+ vertical-align: middle;
283
+ white-space: nowrap;
284
+ color: #828282;
285
+ }
286
+ .wio-number-you-optimized .wio-text {
287
+ display: table-cell;
288
+ vertical-align: middle;
289
+ overflow: hidden;
290
+ font-size: 12px;
291
+ color: #828282;
292
+ }
293
+ .wio-number-you-optimized > p {
294
+ display: table;
295
+ }
296
+ .wio-bars {
297
+ padding-right: 15px;
298
+ }
299
+ .wio-bars p {
300
+ font-size: 12px;
301
+ margin-bottom: 5px;
302
+ }
303
+ .wio-bars + .wio-number-you-optimized {
304
+ border-bottom: 0;
305
+ padding-top: 0.85em;
306
+ }
307
+ .wio-bars + .wio-number-you-optimized p {
308
+ color: #72a53b;
309
+ }
310
+ .wio-bar-negative .wio-progress {
311
+ background: #D2D3D6;
312
+ }
313
+ .wio-bar-negative .wio-barnb {
314
+ color: #9d9fa5;
315
+ }
316
+ .wio-progress {
317
+ height: 8px;
318
+ transition: width 0.3s;
319
+ /*.wio-bar-negative {
320
+ width: 92% !important;
321
+ }*/
322
+ }
323
+ .wio-bar-positive .wio-progress {
324
+ background: #8CC152;
325
+ }
326
+ .wio-bar-positive .wio-barnb {
327
+ color: #72a53b;
328
+ }
329
+ .wio-bar-primary .wio-progress {
330
+ background: #8CC152;
331
+ }
332
+ .wio-bar-primary .wio-barnb {
333
+ color: #72a53b;
334
+ }
335
+ .wio-right-outside-number .wio-barnb {
336
+ display: block;
337
+ margin-right: -5.25em;
338
+ text-align: right;
339
+ font-weight: bold;
340
+ line-height: 0.8;
341
+ }
342
+ /* Doughnut */
343
+ .wio-chart {
344
+ position: relative;
345
+ top: 1px;
346
+ display: inline-block;
347
+ vertical-align: middle;
348
+ }
349
+ .wio-chart-container {
350
+ position: relative;
351
+ display: inline-block;
352
+ margin-right: 5px;
353
+ }
354
+ .wio-chart-container canvas {
355
+ display: block;
356
+ }
357
+ .wio-overview-chart-container {
358
+ float: left;
359
+ margin-right: 20px;
360
+ }
361
+ .wio-chart-percent {
362
+ position: absolute;
363
+ left: 0;
364
+ right: 0;
365
+ top: 50%;
366
+ margin-top: -0.5em;
367
+ line-height: 0.8;
368
+ text-align: center;
369
+ font-size: 54px;
370
+ font-weight: bold;
371
+ color: #afafaf;
372
+ }
373
+ .wio-chart-percent span {
374
+ font-size: 20px;
375
+ vertical-align: super;
376
+ }
377
+ #wio-overview-chart-legend {
378
+ overflow: hidden;
379
+ }
380
+ .wio-doughnut-legend li {
381
+ display: inline-block;
382
+ position: relative;
383
+ margin-bottom: 15px;
384
+ border-radius: 5px;
385
+ padding: 3px 8px 2px 31px;
386
+ font-size: 9px;
387
+ cursor: default;
388
+ -webkit-transition: background-color 200ms ease-in-out;
389
+ -moz-transition: background-color 200ms ease-in-out;
390
+ -o-transition: background-color 200ms ease-in-out;
391
+ transition: background-color 200ms ease-in-out;
392
+ }
393
+ .wio-doughnut-legend li span {
394
+ display: block;
395
+ position: absolute;
396
+ left: 0;
397
+ top: 0;
398
+ width: 25px;
399
+ height: 25px;
400
+ border-radius: 50%;
401
+ }
402
+ .wio-optimize-button {
403
+ min-width: 180px;
404
+ padding: 12px 30px;
405
+ background: #c9deb2;
406
+ color: #586549;
407
+ border: 0;
408
+ box-shadow: none;
409
+ font-size: 14px;
410
+ text-transform: uppercase !important;
411
+ font-weight: bold;
412
+ border-radius: 4px;
413
+ outline: none;
414
+ }
415
+ .wio-optimize-button:active {
416
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
417
+ }
418
+ .wio-optimize-button:disabled {
419
+ background: #e2edd6;
420
+ color: #a5b295;
421
+ }
422
+ .wio-optimize-button.wio-running {
423
+ color: #a57b3c;
424
+ background: #fdd599 url("../img/Spinner-1s-33px.gif") 10px center no-repeat;
425
+ padding-left: 50px;
426
+ }
427
+ .wio-global-optim-phrase {
428
+ width: 180px;
429
+ padding-top: 20px;
430
+ font-size: 14px;
431
+ text-align: center;
432
+ }
433
+ .wio-total-percent {
434
+ color: #587f2e;
435
+ }
436
+ #wio-start-msg-top,
437
+ #wio-start-msg-right,
438
+ #wio-start-msg-complete {
439
+ display: none;
440
+ }
441
+ .wio-text-left {
442
+ text-align: left;
443
+ }
444
+ span.wio-num {
445
+ display: inline !important;
446
+ position: inherit !important;
447
+ }
448
+ .wio-image-optimize-board {
449
+ padding-bottom: 0 !important;
450
+ }
451
+ .wio-page-statistic {
452
+ padding-left: 40px;
453
+ }
454
+ .wio-page-statistic .wio-chart-percent {
455
+ margin-top: -1.1em;
456
+ }
457
+ .wrio-optimization-progress {
458
+ background: none;
459
+ padding: 0;
460
+ /*button {
461
+ padding: 5px 10px;
462
+ border: 0;
463
+ font-size: 11px;
464
+ text-transform: uppercase !important;
465
+ font-weight: bold;
466
+ border-radius: 4px;
467
+ outline: none;
468
+ background: @greyButtonBg;
469
+ color: @greyButtonColor;
470
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
471
+
472
+ &:active {
473
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
474
+ }
475
+
476
+ &.wbcr-rio-loading {
477
+ width: 56px;
478
+ font-size: 0;
479
+ background: @greyButtonBg url("../img/quick-start-loader.gif") center no-repeat;
480
+ }
481
+
482
+ &.wbcr-rio-selected {
483
+ background: #f3efe2;
484
+ color: #d8d8d8;
485
+
486
+ &:active {
487
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
488
+ }
489
+ }
490
+ }*/
491
+ }
492
+ .wrio-optimization-progress h4 {
493
+ font-size: 15px;
494
+ font-weight: 700;
495
+ }
496
+ .wrio-optimization-progress .wbcr-rio-warning-message {
497
+ padding: 20px;
498
+ background: #efefef;
499
+ font-size: 15px;
500
+ color: #b7b7b7;
501
+ font-style: italic;
502
+ }
503
+ .wio-widget {
504
+ padding: 0 !important;
505
+ }
506
+ .wio-widget .wio-chart-percent {
507
+ font-size: 44px;
508
+ line-height: 1;
509
+ }
510
+ .wio-widget .wio-bars {
511
+ width: 60%;
512
+ margin-left: 155px;
513
+ }
514
+ .wio-widget .col-chart.col-chart {
515
+ width: 100%;
516
+ }
517
+ .wio-widget .col-controls {
518
+ width: 45%;
519
+ padding-left: 5px;
520
+ padding-top: 110px;
521
+ }
522
+ .wio-widget .wio-doughnut-legend {
523
+ /*padding-top:30px;*/
524
+ text-align: left;
525
+ }
526
+ .wio-widget .wio-widget-bottom {
527
+ display: table;
528
+ padding-top: 20px !important;
529
+ width: 100%;
530
+ text-align: right;
531
+ }
532
+ .wio-widget .wio-widget-bottom li {
533
+ display: table-cell;
534
+ }
535
+ .wio-widget .wio-widget-bottom li:first-child {
536
+ text-align: left;
537
+ }
538
+ .factory-checkbox.wrio-checkbox-premium-label:after {
539
+ display: inline-block;
540
+ position: relative;
541
+ content: 'PRO';
542
+ background: #ff5722;
543
+ border-radius: 4px;
544
+ color: #fff;
545
+ font-size: 10px;
546
+ line-height: 1;
547
+ font-style: normal;
548
+ padding: 4px 6px;
549
+ margin-left: 4px;
550
+ vertical-align: top;
551
+ top: -8px;
552
+ left: -10px;
553
+ right: auto;
554
+ z-index: 11;
555
+ }
556
+ .factory-checkbox-disabled input,
557
+ .factory-checkbox-disabled button {
558
+ pointer-events: none;
559
+ cursor: not-allowed;
560
+ opacity: 0.65;
561
+ filter: alpha(opacity=65);
562
+ -webkit-box-shadow: none;
563
+ box-shadow: none;
564
+ }
565
+ #wrio-webp-options h3,
566
+ #wrio-error-log-options h3 {
567
+ font-size: 14px;
568
+ margin: 0 0 10px 0;
569
+ font-weight: 600;
570
+ color: #565656;
571
+ }
572
+ #wrio-webp-options .wrio-webp-options-info,
573
+ #wrio-error-log-options .wrio-webp-options-info {
574
+ color: #8a8787;
575
+ font-size: 12px;
576
+ }
577
+ #wrio-webp-options ul,
578
+ #wrio-error-log-options ul {
579
+ padding-left: 0;
580
+ }
581
+ #wrio-webp-options ul li:after,
582
+ #wrio-error-log-options ul li:after {
583
+ content: '';
584
+ display: block;
585
+ clear: both;
586
+ }
587
+ #wrio-webp-options ul li label,
588
+ #wrio-error-log-options ul li label {
589
+ font-weight: 600;
590
+ }
591
+ #wrio-webp-options ul li .wrio-webp-options-radio,
592
+ #wrio-error-log-options ul li .wrio-webp-options-radio,
593
+ #wrio-webp-options ul li .wrio-error-log-options-checkbox,
594
+ #wrio-error-log-options ul li .wrio-error-log-options-checkbox {
595
+ display: block;
596
+ float: left;
597
+ margin-top: 2px;
598
+ margin-right: 8px;
599
+ }
600
+ #wrio-webp-options ul li .wrio-webp-options-radio:focus,
601
+ #wrio-error-log-options ul li .wrio-webp-options-radio:focus,
602
+ #wrio-webp-options ul li .wrio-error-log-options-checkbox:focus,
603
+ #wrio-error-log-options ul li .wrio-error-log-options-checkbox:focus {
604
+ outline: none;
605
+ box-shadow: none;
606
+ }
607
+ #wrio-webp-options ul li .wrio-webp-options-info,
608
+ #wrio-error-log-options ul li .wrio-webp-options-info,
609
+ #wrio-webp-options ul li .wrio-error-log-options-info,
610
+ #wrio-error-log-options ul li .wrio-error-log-options-info {
611
+ padding-left: 25px;
612
+ }
613
+ @media (max-width: 830px) {
614
+ .wio [class^="col-"] {
615
+ float: none;
616
+ margin-bottom: 1.5em;
617
+ }
618
+ .wio .col-1-3,
619
+ .wio .col-1-2 {
620
+ width: auto;
621
+ padding: 0 28px;
622
+ clear: both;
623
+ padding-top: 1em;
624
+ }
625
+ }
626
+ @keyframes wiohello {
627
+ 0%,
628
+ 100% {
629
+ background: #FFF;
630
+ }
631
+ 50% {
632
+ background: #F4F7F9;
633
+ }
634
+ }
635
+ @media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) {
636
+ .wio-columns .col-statistics.col-statistics,
637
+ .wio-columns .col-chart.col-chart {
638
+ width: 50%;
639
+ }
640
+ }
641
+ @media (max-width: 808px) {
642
+ .wio-columns .col-statistics.col-statistics,
643
+ .wio-columns .col-chart.col-chart {
644
+ width: auto;
645
+ float: none;
646
+ padding: 0;
647
+ }
648
+ .wio-columns .col-chart.col-chart {
649
+ margin-top: 3em;
650
+ }
651
+ }
652
+ /*@media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
653
+ .wio-overview-chart-container {
654
+ float: none;
655
+ margin-right: 0;
656
+ }
657
+ }
658
+
659
+ @media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
660
+ .wio-overview-chart-container {
661
+ float: none;
662
+ margin-right: 0;
663
+ }
664
+
665
+ .wio-doughnut-legend {
666
+ margin-top: 18px;
667
+ }
668
+
669
+ .wio-global-optim-phrase {
670
+ padding-top: 0;
671
+ width: auto;
672
+ }
673
+ }*/
admin/assets/gutenberg/build/index.build.js CHANGED
@@ -1,100 +1,100 @@
1
- /******/ (function(modules) { // webpackBootstrap
2
- /******/ // The module cache
3
- /******/ var installedModules = {};
4
- /******/
5
- /******/ // The require function
6
- /******/ function __webpack_require__(moduleId) {
7
- /******/
8
- /******/ // Check if module is in cache
9
- /******/ if(installedModules[moduleId]) {
10
- /******/ return installedModules[moduleId].exports;
11
- /******/ }
12
- /******/ // Create a new module (and put it into the cache)
13
- /******/ var module = installedModules[moduleId] = {
14
- /******/ i: moduleId,
15
- /******/ l: false,
16
- /******/ exports: {}
17
- /******/ };
18
- /******/
19
- /******/ // Execute the module function
20
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
- /******/
22
- /******/ // Flag the module as loaded
23
- /******/ module.l = true;
24
- /******/
25
- /******/ // Return the exports of the module
26
- /******/ return module.exports;
27
- /******/ }
28
- /******/
29
- /******/
30
- /******/ // expose the modules object (__webpack_modules__)
31
- /******/ __webpack_require__.m = modules;
32
- /******/
33
- /******/ // expose the module cache
34
- /******/ __webpack_require__.c = installedModules;
35
- /******/
36
- /******/ // define getter function for harmony exports
37
- /******/ __webpack_require__.d = function(exports, name, getter) {
38
- /******/ if(!__webpack_require__.o(exports, name)) {
39
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
- /******/ }
41
- /******/ };
42
- /******/
43
- /******/ // define __esModule on exports
44
- /******/ __webpack_require__.r = function(exports) {
45
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
- /******/ }
48
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
- /******/ };
50
- /******/
51
- /******/ // create a fake namespace object
52
- /******/ // mode & 1: value is a module id, require it
53
- /******/ // mode & 2: merge all properties of value into the ns
54
- /******/ // mode & 4: return value when already ns object
55
- /******/ // mode & 8|1: behave like require
56
- /******/ __webpack_require__.t = function(value, mode) {
57
- /******/ if(mode & 1) value = __webpack_require__(value);
58
- /******/ if(mode & 8) return value;
59
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
- /******/ var ns = Object.create(null);
61
- /******/ __webpack_require__.r(ns);
62
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
- /******/ return ns;
65
- /******/ };
66
- /******/
67
- /******/ // getDefaultExport function for compatibility with non-harmony modules
68
- /******/ __webpack_require__.n = function(module) {
69
- /******/ var getter = module && module.__esModule ?
70
- /******/ function getDefault() { return module['default']; } :
71
- /******/ function getModuleExports() { return module; };
72
- /******/ __webpack_require__.d(getter, 'a', getter);
73
- /******/ return getter;
74
- /******/ };
75
- /******/
76
- /******/ // Object.prototype.hasOwnProperty.call
77
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
- /******/
79
- /******/ // __webpack_public_path__
80
- /******/ __webpack_require__.p = "";
81
- /******/
82
- /******/
83
- /******/ // Load entry module and return exports
84
- /******/ return __webpack_require__(__webpack_require__.s = "./src/index.js");
85
- /******/ })
86
- /************************************************************************/
87
- /******/ ({
88
-
89
- /***/ "./src/index.js":
90
- /*!**********************!*\
91
- !*** ./src/index.js ***!
92
- \**********************/
93
- /*! no static exports found */
94
- /***/ (function(module, exports) {
95
-
96
- eval("function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n/**\r\n * Gutenber autosave control. A simple solution for managing autosaves in gutenberg editor.\r\n * Previously, we simply turned off autosave using hooks, but in the editor,\r\n * you can’t do this in the gutenber.\r\n *\r\n * This widget for Gutenberg editor adds an icon, when clicked, you can select the autosave interval or full disable it.\r\n *\r\n * @author Webcraftic <wordpress.webraftic@gmail.com>\r\n * @copyright (c) 10.12.2018, Webcraftic\r\n * @version 1.0\r\n *\r\n * Credits:\r\n * This is not our development, we found excellent plugin and used these functions in our plugin. It is foolish to reinvent the wheel.\r\n * I hope in the future we will refine it better and add our ideas.\r\n * In the development of the code used by the author plugin: https://wordpress.org/plugins/disable-gutenberg-autosave/\r\n */\nvar NOT_TODAY = 99999;\nvar INTERVAL_OPTIONS = [{\n label: '10 seconds (default)',\n value: 10\n}, {\n label: '30 seconds',\n value: 30\n}, {\n label: '1 minute',\n value: 60\n}, {\n label: '5 minutes',\n value: 60 * 5\n}, {\n label: '10 minutes',\n value: 60 * 10\n}, {\n label: '30 minutes',\n value: 60 * 30\n}, {\n label: 'Disabled',\n value: NOT_TODAY\n}];\n\nvar ClearfyGutenbergAutosave =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(ClearfyGutenbergAutosave, _React$Component);\n\n function ClearfyGutenbergAutosave(props) {\n var _this;\n\n _classCallCheck(this, ClearfyGutenbergAutosave);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ClearfyGutenbergAutosave).call(this, props));\n _this.state = {\n interval: 0,\n error: false\n };\n _this.apiGetInterval = _this.apiGetInterval.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.apiSetInterval = _this.apiSetInterval.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.editorUpdateInterval = _this.editorUpdateInterval.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n return _this;\n }\n\n _createClass(ClearfyGutenbergAutosave, [{\n key: \"apiGetInterval\",\n value: function apiGetInterval() {\n var _this2 = this;\n\n wp.apiFetch({\n path: '/clearfy-gutenberg-autosave/v1/interval'\n }).then(function (interval) {\n _this2.setState({\n interval: interval,\n error: false\n });\n }, function (error) {\n _this2.setState({\n interval: NOT_TODAY,\n error: error.message\n });\n });\n }\n }, {\n key: \"apiSetInterval\",\n value: function apiSetInterval() {\n if (this.state.error) {\n return;\n }\n\n wp.apiFetch({\n path: '/clearfy-gutenberg-autosave/v1/interval?interval=' + parseInt(this.state.interval),\n method: 'POST'\n });\n }\n }, {\n key: \"editorUpdateInterval\",\n value: function editorUpdateInterval() {\n this.props.updateEditorSettings(Object.assign({}, this.props.editorSettings, {\n autosaveInterval: parseInt(this.state.interval)\n }));\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.apiGetInterval();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (!this.state.interval) {\n return;\n }\n\n if (prevState.interval && prevState.inverval !== 0 && prevState.interval !== this.state.interval) {\n this.apiSetInterval();\n }\n\n if (this.props.editorSettings.autosaveInterval && this.props.editorSettings.autosaveInterval !== this.state.interval) {\n this.editorUpdateInterval();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n return React.createElement(React.Fragment, null, React.createElement(wp.editPost.PluginSidebarMoreMenuItem, {\n target: \"disable-gutenberg-autosave-sidebar\"\n }, 'Clearfy Gutenberg Autosave'), React.createElement(wp.editPost.PluginSidebar, {\n name: \"disable-gutenberg-autosave-sidebar\",\n title: 'Autosave settings'\n }, React.createElement(wp.components.PanelBody, {\n className: \"disable-gutenberg-autosave-settings\"\n }, !this.state.interval && React.createElement(\"p\", null, 'Loading...'), !!this.state.interval && this.state.error && React.createElement(React.Fragment, null, React.createElement(\"h2\", {\n className: \"disable-gutenberg-autosave-header\"\n }, 'API error:'), React.createElement(\"p\", {\n className: \"disable-gutenberg-autosave-error\"\n }, this.state.error), React.createElement(\"p\", null, 'Autosave is disabled anyway, but you cannot set custom intervals.'), React.createElement(wp.components.Button, {\n className: \"button button-primary\",\n onClick: function onClick() {\n _this3.setState({\n interval: 0,\n error: false\n });\n\n _this3.apiGetInterval();\n }\n }, 'Try again')), !!this.state.interval && !this.state.error && React.createElement(wp.components.RadioControl, {\n label: 'Autosave interval',\n options: INTERVAL_OPTIONS,\n selected: parseInt(this.state.interval),\n onChange: function onChange(value) {\n return _this3.setState({\n interval: parseInt(value)\n });\n }\n }))));\n }\n }]);\n\n return ClearfyGutenbergAutosave;\n}(React.Component);\n\nwp.plugins.registerPlugin('clearfy-gutenberg-autosave', {\n icon: 'backup',\n render: wp.compose.compose([wp.data.withSelect(function (select) {\n return {\n editorSettings: select('core/editor').getEditorSettings()\n };\n }), wp.data.withDispatch(function (dispatch) {\n return {\n updateEditorSettings: dispatch('core/editor').updateEditorSettings\n };\n })])(ClearfyGutenbergAutosave)\n});\n\n//# sourceURL=webpack:///./src/index.js?");
97
-
98
- /***/ })
99
-
100
  /******/ });
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./src/index.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./src/index.js":
90
+ /*!**********************!*\
91
+ !*** ./src/index.js ***!
92
+ \**********************/
93
+ /*! no static exports found */
94
+ /***/ (function(module, exports) {
95
+
96
+ eval("function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n/**\r\n * Gutenber autosave control. A simple solution for managing autosaves in gutenberg editor.\r\n * Previously, we simply turned off autosave using hooks, but in the editor,\r\n * you can’t do this in the gutenber.\r\n *\r\n * This widget for Gutenberg editor adds an icon, when clicked, you can select the autosave interval or full disable it.\r\n *\r\n * @author Webcraftic <wordpress.webraftic@gmail.com>\r\n * @copyright (c) 10.12.2018, Webcraftic\r\n * @version 1.0\r\n *\r\n * Credits:\r\n * This is not our development, we found excellent plugin and used these functions in our plugin. It is foolish to reinvent the wheel.\r\n * I hope in the future we will refine it better and add our ideas.\r\n * In the development of the code used by the author plugin: https://wordpress.org/plugins/disable-gutenberg-autosave/\r\n */\nvar NOT_TODAY = 99999;\nvar INTERVAL_OPTIONS = [{\n label: '10 seconds (default)',\n value: 10\n}, {\n label: '30 seconds',\n value: 30\n}, {\n label: '1 minute',\n value: 60\n}, {\n label: '5 minutes',\n value: 60 * 5\n}, {\n label: '10 minutes',\n value: 60 * 10\n}, {\n label: '30 minutes',\n value: 60 * 30\n}, {\n label: 'Disabled',\n value: NOT_TODAY\n}];\n\nvar ClearfyGutenbergAutosave =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(ClearfyGutenbergAutosave, _React$Component);\n\n function ClearfyGutenbergAutosave(props) {\n var _this;\n\n _classCallCheck(this, ClearfyGutenbergAutosave);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ClearfyGutenbergAutosave).call(this, props));\n _this.state = {\n interval: 0,\n error: false\n };\n _this.apiGetInterval = _this.apiGetInterval.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.apiSetInterval = _this.apiSetInterval.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.editorUpdateInterval = _this.editorUpdateInterval.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n return _this;\n }\n\n _createClass(ClearfyGutenbergAutosave, [{\n key: \"apiGetInterval\",\n value: function apiGetInterval() {\n var _this2 = this;\n\n wp.apiFetch({\n path: '/clearfy-gutenberg-autosave/v1/interval'\n }).then(function (interval) {\n _this2.setState({\n interval: interval,\n error: false\n });\n }, function (error) {\n _this2.setState({\n interval: NOT_TODAY,\n error: error.message\n });\n });\n }\n }, {\n key: \"apiSetInterval\",\n value: function apiSetInterval() {\n if (this.state.error) {\n return;\n }\n\n wp.apiFetch({\n path: '/clearfy-gutenberg-autosave/v1/interval?interval=' + parseInt(this.state.interval),\n method: 'POST'\n });\n }\n }, {\n key: \"editorUpdateInterval\",\n value: function editorUpdateInterval() {\n this.props.updateEditorSettings(Object.assign({}, this.props.editorSettings, {\n autosaveInterval: parseInt(this.state.interval)\n }));\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.apiGetInterval();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (!this.state.interval) {\n return;\n }\n\n if (prevState.interval && prevState.inverval !== 0 && prevState.interval !== this.state.interval) {\n this.apiSetInterval();\n }\n\n if (this.props.editorSettings.autosaveInterval && this.props.editorSettings.autosaveInterval !== this.state.interval) {\n this.editorUpdateInterval();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n return React.createElement(React.Fragment, null, React.createElement(wp.editPost.PluginSidebarMoreMenuItem, {\n target: \"disable-gutenberg-autosave-sidebar\"\n }, 'Clearfy Gutenberg Autosave'), React.createElement(wp.editPost.PluginSidebar, {\n name: \"disable-gutenberg-autosave-sidebar\",\n title: 'Autosave settings'\n }, React.createElement(wp.components.PanelBody, {\n className: \"disable-gutenberg-autosave-settings\"\n }, !this.state.interval && React.createElement(\"p\", null, 'Loading...'), !!this.state.interval && this.state.error && React.createElement(React.Fragment, null, React.createElement(\"h2\", {\n className: \"disable-gutenberg-autosave-header\"\n }, 'API error:'), React.createElement(\"p\", {\n className: \"disable-gutenberg-autosave-error\"\n }, this.state.error), React.createElement(\"p\", null, 'Autosave is disabled anyway, but you cannot set custom intervals.'), React.createElement(wp.components.Button, {\n className: \"button button-primary\",\n onClick: function onClick() {\n _this3.setState({\n interval: 0,\n error: false\n });\n\n _this3.apiGetInterval();\n }\n }, 'Try again')), !!this.state.interval && !this.state.error && React.createElement(wp.components.RadioControl, {\n label: 'Autosave interval',\n options: INTERVAL_OPTIONS,\n selected: parseInt(this.state.interval),\n onChange: function onChange(value) {\n return _this3.setState({\n interval: parseInt(value)\n });\n }\n }))));\n }\n }]);\n\n return ClearfyGutenbergAutosave;\n}(React.Component);\n\nwp.plugins.registerPlugin('clearfy-gutenberg-autosave', {\n icon: 'backup',\n render: wp.compose.compose([wp.data.withSelect(function (select) {\n return {\n editorSettings: select('core/editor').getEditorSettings()\n };\n }), wp.data.withDispatch(function (dispatch) {\n return {\n updateEditorSettings: dispatch('core/editor').updateEditorSettings\n };\n })])(ClearfyGutenbergAutosave)\n});\n\n//# sourceURL=webpack:///./src/index.js?");
97
+
98
+ /***/ })
99
+
100
  /******/ });
admin/assets/gutenberg/build/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
admin/assets/gutenberg/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
admin/assets/img/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
admin/assets/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
admin/assets/js/circular-progress.js CHANGED
@@ -1,139 +1,139 @@
1
- /**
2
- *
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright (c) 04.02.2020, Webcraftic
5
- * @version 1.0
6
- */
7
-
8
- //wfCircularProgress
9
- jQuery.fn.wfCircularProgress = function (options) {
10
- jQuery(this).each(function () {
11
- var creationOptions;
12
- try {
13
- creationOptions = JSON.parse(jQuery(this).data('wfCircularProgressOptions'));
14
- } catch (e) { /* Ignore */
15
- }
16
- if (typeof creationOptions !== 'object') {
17
- creationOptions = {};
18
- }
19
- var opts = jQuery.extend({}, jQuery.fn.wfCircularProgress.defaults, creationOptions, options);
20
-
21
- var center = Math.floor(opts.diameter / 2);
22
- var insetRadius = center - opts.strokeWidth * 2;
23
-
24
- var circumference = 2 * insetRadius * Math.PI;
25
- var finalOffset = -(circumference * (1 - opts.endPercent));
26
- var initialOffset = -(circumference);
27
-
28
- var terminatorRadius = Math.floor(opts.strokeWidth * 1.5);
29
- var terminatorDiameter = 2 * terminatorRadius;
30
- var finalTerminatorX = center - insetRadius * Math.cos(Math.PI * 2 * (opts.endPercent - 0.25));
31
- var finalTerminatorY = center + insetRadius * Math.sin(Math.PI * 2 * (opts.endPercent - 0.25));
32
- var initialTerminatorX = center - insetRadius * Math.cos(Math.PI * 2 * (opts.startPercent - 0.25));
33
- var initialTerminatorY = center + insetRadius * Math.sin(Math.PI * 2 * (opts.startPercent - 0.25));
34
-
35
- var terminatorSVG = "m 0,-" + terminatorRadius + " a " + terminatorRadius + "," + terminatorRadius + " 0 1 1 0," + terminatorDiameter + " a " + terminatorRadius + "," + terminatorRadius + " 0 1 1 0,-" + terminatorDiameter;
36
-
37
- jQuery(this).data('wfCircularProgressOptions', JSON.stringify(opts));
38
-
39
- jQuery(this).css('width', opts.diameter + 'px');
40
- jQuery(this).css('height', opts.diameter + 'px');
41
-
42
- var svg = jQuery(this).find('svg');
43
- if (svg.length === 0) {
44
- svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
45
- jQuery(this).append(svg);
46
- }
47
- var inactivePath = jQuery(this).find('.wclearfy-status-circle-inactive-path');
48
- if (inactivePath.length === 0) {
49
- inactivePath = document.createElementNS("http://www.w3.org/2000/svg", "path");
50
- jQuery(inactivePath).addClass('wclearfy-status-circle-inactive-path');
51
- jQuery(svg).append(inactivePath);
52
- }
53
- var activePath = jQuery(this).find('.wclearfy-status-circle-active-path');
54
- if (activePath.length === 0) {
55
- activePath = document.createElementNS("http://www.w3.org/2000/svg", "path");
56
- jQuery(activePath).addClass('wclearfy-status-circle-active-path');
57
- jQuery(svg).append(activePath);
58
- }
59
- var terminator = jQuery(this).find('.wclearfy-status-circle-terminator');
60
- if (terminator.length === 0) {
61
- terminator = document.createElementNS("http://www.w3.org/2000/svg", "path");
62
- jQuery(terminator).addClass('wclearfy-status-circle-terminator');
63
- jQuery(svg).append(terminator);
64
- }
65
- var text = jQuery(this).find('.wclearfy-status-circle-text');
66
- if (text.length === 0) {
67
- text = jQuery('<div class="wclearfy-status-circle-text"></div>');
68
- jQuery(this).append(text);
69
- }
70
- var pendingOverlay = jQuery(this).find('.wf-status-overlay-text');
71
- if (pendingOverlay.length === 0 && opts.pendingMessage.length !== 0) {
72
- pendingOverlay = jQuery('<div class="wclearfy-status-overlay-text"></div>');
73
- jQuery(this).append(pendingOverlay);
74
- }
75
-
76
- jQuery(svg).attr('viewBox', '0 0 ' + opts.diameter + ' ' + opts.diameter);
77
- jQuery(svg).css('display', opts.css_display);
78
- jQuery(svg).css('width', opts.diameter + 'px');
79
- jQuery(svg).css('height', opts.diameter + 'px');
80
- jQuery(inactivePath).attr('d', 'M ' + center + ',' + center + ' m 0,-' + insetRadius + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,' + (2 * insetRadius) + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,-' + (2 * insetRadius));
81
- jQuery(inactivePath).attr('stroke', opts.inactiveColor);
82
- jQuery(inactivePath).attr('stroke-width', opts.strokeWidth);
83
- jQuery(inactivePath).attr('fill-opacity', 0);
84
- jQuery(activePath).attr('d', 'M ' + center + ',' + center + ' m 0,-' + insetRadius + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,' + (2 * insetRadius) + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,-' + (2 * insetRadius));
85
- jQuery(activePath).attr('stroke', opts.color);
86
- jQuery(activePath).attr('stroke-width', opts.strokeWidth);
87
- jQuery(activePath).attr('stroke-dasharray', circumference + ',' + circumference);
88
- jQuery(activePath).attr('stroke-dashoffset', initialOffset);
89
- jQuery(activePath).attr('fill-opacity', 0);
90
- jQuery(terminator).attr('d', 'M ' + initialTerminatorX + ',' + initialTerminatorY + ' ' + terminatorSVG);
91
- jQuery(terminator).attr('stroke', opts.color);
92
- jQuery(terminator).attr('stroke-width', opts.strokeWidth);
93
- jQuery(terminator).attr('fill', '#ffffff');
94
- jQuery(pendingOverlay).html(opts.pendingMessage);
95
-
96
- jQuery(pendingOverlay).animate({
97
- opacity: opts.pendingOverlay ? 1.0 : 0.0,
98
- }, {
99
- duration: 500,
100
- step: function (value) {
101
- var opacity = 1.0 - (value * 0.8);
102
- jQuery(svg).css('opacity', opacity);
103
- jQuery(text).css('opacity', opacity);
104
- },
105
- complete: function () {
106
- jQuery(svg).css('opacity', opts.pendingOverlay ? 0.2 : 1.0);
107
- jQuery(text).css('opacity', opts.pendingOverlay ? 0.2 : 1.0);
108
- }
109
- });
110
-
111
- jQuery(activePath).animate({
112
- "stroke-dashoffset": finalOffset + 'px'
113
- }, {
114
- duration: 500,
115
- step: function (value) {
116
- var percentage = 1 + value / circumference;
117
- var x = center - insetRadius * Math.cos(Math.PI * 2 * (percentage - 0.25));
118
- var y = center + insetRadius * Math.sin(Math.PI * 2 * (percentage - 0.25));
119
- jQuery(terminator).attr('d', 'M ' + x + ',' + y + ' ' + terminatorSVG);
120
- text.html(Math.round(percentage * 100));
121
- },
122
- complete: function () {
123
- text.html(Math.round(opts.endPercent * 100));
124
- }
125
- });
126
- });
127
- };
128
-
129
- jQuery.fn.wfCircularProgress.defaults = {
130
- startPercent: 0,
131
- endPercent: 1,
132
- color: '#16bc9b',
133
- inactiveColor: '#ececec',
134
- strokeWidth: 3,
135
- diameter: 100,
136
- pendingOverlay: false,
137
- pendingMessage: 'Note: Status will update when changes are saved',
138
- css_display: 'block',
139
- };
1
+ /**
2
+ *
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright (c) 04.02.2020, Webcraftic
5
+ * @version 1.0
6
+ */
7
+
8
+ //wfCircularProgress
9
+ jQuery.fn.wfCircularProgress = function (options) {
10
+ jQuery(this).each(function () {
11
+ var creationOptions;
12
+ try {
13
+ creationOptions = JSON.parse(jQuery(this).data('wfCircularProgressOptions'));
14
+ } catch (e) { /* Ignore */
15
+ }
16
+ if (typeof creationOptions !== 'object') {
17
+ creationOptions = {};
18
+ }
19
+ var opts = jQuery.extend({}, jQuery.fn.wfCircularProgress.defaults, creationOptions, options);
20
+
21
+ var center = Math.floor(opts.diameter / 2);
22
+ var insetRadius = center - opts.strokeWidth * 2;
23
+
24
+ var circumference = 2 * insetRadius * Math.PI;
25
+ var finalOffset = -(circumference * (1 - opts.endPercent));
26
+ var initialOffset = -(circumference);
27
+
28
+ var terminatorRadius = Math.floor(opts.strokeWidth * 1.5);
29
+ var terminatorDiameter = 2 * terminatorRadius;
30
+ var finalTerminatorX = center - insetRadius * Math.cos(Math.PI * 2 * (opts.endPercent - 0.25));
31
+ var finalTerminatorY = center + insetRadius * Math.sin(Math.PI * 2 * (opts.endPercent - 0.25));
32
+ var initialTerminatorX = center - insetRadius * Math.cos(Math.PI * 2 * (opts.startPercent - 0.25));
33
+ var initialTerminatorY = center + insetRadius * Math.sin(Math.PI * 2 * (opts.startPercent - 0.25));
34
+
35
+ var terminatorSVG = "m 0,-" + terminatorRadius + " a " + terminatorRadius + "," + terminatorRadius + " 0 1 1 0," + terminatorDiameter + " a " + terminatorRadius + "," + terminatorRadius + " 0 1 1 0,-" + terminatorDiameter;
36
+
37
+ jQuery(this).data('wfCircularProgressOptions', JSON.stringify(opts));
38
+
39
+ jQuery(this).css('width', opts.diameter + 'px');
40
+ jQuery(this).css('height', opts.diameter + 'px');
41
+
42
+ var svg = jQuery(this).find('svg');
43
+ if (svg.length === 0) {
44
+ svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
45
+ jQuery(this).append(svg);
46
+ }
47
+ var inactivePath = jQuery(this).find('.wclearfy-status-circle-inactive-path');
48
+ if (inactivePath.length === 0) {
49
+ inactivePath = document.createElementNS("http://www.w3.org/2000/svg", "path");
50
+ jQuery(inactivePath).addClass('wclearfy-status-circle-inactive-path');
51
+ jQuery(svg).append(inactivePath);
52
+ }
53
+ var activePath = jQuery(this).find('.wclearfy-status-circle-active-path');
54
+ if (activePath.length === 0) {
55
+ activePath = document.createElementNS("http://www.w3.org/2000/svg", "path");
56
+ jQuery(activePath).addClass('wclearfy-status-circle-active-path');
57
+ jQuery(svg).append(activePath);
58
+ }
59
+ var terminator = jQuery(this).find('.wclearfy-status-circle-terminator');
60
+ if (terminator.length === 0) {
61
+ terminator = document.createElementNS("http://www.w3.org/2000/svg", "path");
62
+ jQuery(terminator).addClass('wclearfy-status-circle-terminator');
63
+ jQuery(svg).append(terminator);
64
+ }
65
+ var text = jQuery(this).find('.wclearfy-status-circle-text');
66
+ if (text.length === 0) {
67
+ text = jQuery('<div class="wclearfy-status-circle-text"></div>');
68
+ jQuery(this).append(text);
69
+ }
70
+ var pendingOverlay = jQuery(this).find('.wf-status-overlay-text');
71
+ if (pendingOverlay.length === 0 && opts.pendingMessage.length !== 0) {
72
+ pendingOverlay = jQuery('<div class="wclearfy-status-overlay-text"></div>');
73
+ jQuery(this).append(pendingOverlay);
74
+ }
75
+
76
+ jQuery(svg).attr('viewBox', '0 0 ' + opts.diameter + ' ' + opts.diameter);
77
+ jQuery(svg).css('display', opts.css_display);
78
+ jQuery(svg).css('width', opts.diameter + 'px');
79
+ jQuery(svg).css('height', opts.diameter + 'px');
80
+ jQuery(inactivePath).attr('d', 'M ' + center + ',' + center + ' m 0,-' + insetRadius + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,' + (2 * insetRadius) + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,-' + (2 * insetRadius));
81
+ jQuery(inactivePath).attr('stroke', opts.inactiveColor);
82
+ jQuery(inactivePath).attr('stroke-width', opts.strokeWidth);
83
+ jQuery(inactivePath).attr('fill-opacity', 0);
84
+ jQuery(activePath).attr('d', 'M ' + center + ',' + center + ' m 0,-' + insetRadius + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,' + (2 * insetRadius) + ' a ' + insetRadius + ',' + insetRadius + ' 0 1 1 0,-' + (2 * insetRadius));
85
+ jQuery(activePath).attr('stroke', opts.color);
86
+ jQuery(activePath).attr('stroke-width', opts.strokeWidth);
87
+ jQuery(activePath).attr('stroke-dasharray', circumference + ',' + circumference);
88
+ jQuery(activePath).attr('stroke-dashoffset', initialOffset);
89
+ jQuery(activePath).attr('fill-opacity', 0);
90
+ jQuery(terminator).attr('d', 'M ' + initialTerminatorX + ',' + initialTerminatorY + ' ' + terminatorSVG);
91
+ jQuery(terminator).attr('stroke', opts.color);
92
+ jQuery(terminator).attr('stroke-width', opts.strokeWidth);
93
+ jQuery(terminator).attr('fill', '#ffffff');
94
+ jQuery(pendingOverlay).html(opts.pendingMessage);
95
+
96
+ jQuery(pendingOverlay).animate({
97
+ opacity: opts.pendingOverlay ? 1.0 : 0.0,
98
+ }, {
99
+ duration: 500,
100
+ step: function (value) {
101
+ var opacity = 1.0 - (value * 0.8);
102
+ jQuery(svg).css('opacity', opacity);
103
+ jQuery(text).css('opacity', opacity);
104
+ },
105
+ complete: function () {
106
+ jQuery(svg).css('opacity', opts.pendingOverlay ? 0.2 : 1.0);
107
+ jQuery(text).css('opacity', opts.pendingOverlay ? 0.2 : 1.0);
108
+ }
109
+ });
110
+
111
+ jQuery(activePath).animate({
112
+ "stroke-dashoffset": finalOffset + 'px'
113
+ }, {
114
+ duration: 500,
115
+ step: function (value) {
116
+ var percentage = 1 + value / circumference;
117
+ var x = center - insetRadius * Math.cos(Math.PI * 2 * (percentage - 0.25));
118
+ var y = center + insetRadius * Math.sin(Math.PI * 2 * (percentage - 0.25));
119
+ jQuery(terminator).attr('d', 'M ' + x + ',' + y + ' ' + terminatorSVG);
120
+ text.html(Math.round(percentage * 100));
121
+ },
122
+ complete: function () {
123
+ text.html(Math.round(opts.endPercent * 100));
124
+ }
125
+ });
126
+ });
127
+ };
128
+
129
+ jQuery.fn.wfCircularProgress.defaults = {
130
+ startPercent: 0,
131
+ endPercent: 1,
132
+ color: '#16bc9b',
133
+ inactiveColor: '#ececec',
134
+ strokeWidth: 3,
135
+ diameter: 100,
136
+ pendingOverlay: false,
137
+ pendingMessage: 'Note: Status will update when changes are saved',
138
+ css_display: 'block',
139
+ };
admin/assets/js/general.js CHANGED
@@ -1,320 +1,320 @@
1
- /**
2
- * General
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright (c) 10.09.2017, Webcraftic
5
- * @version 1.0
6
- */
7
-
8
- (function($) {
9
- 'use strict';
10
-
11
- var general = {
12
- init: function() {
13
- this.qickStartAssistent();
14
- this.importOptions();
15
-
16
- /*$.wfactory_441.hooks.add('core/components/pre_activate', function(button) {
17
- // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
18
- if( !$('#WBCR').length ) {
19
- return false;
20
- }
21
-
22
- if( button.closest('.wbcr-clr-new-component').length ) {
23
- button.closest('.wbcr-clr-new-component').remove();
24
- }
25
-
26
- if( button.closest('.wbcr-clearfy-fake-image-optimizer-board').length ) {
27
- button.remove();
28
- window.location.reload();
29
- }
30
- });*/
31
-
32
- /*$.wfactory_441.hooks.add('core/components/updated', function(button, data, response) {
33
- // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
34
- if( !($('#WBCR').length && $.wbcr_factory_clearfy_232) ) {
35
- return false;
36
- }
37
-
38
- if( response.data.need_rewrite_rules && !$('.wbcr-clr-need-rewrite-rules-message').length ) {
39
- $.wbcr_factory_clearfy_232.app.showNotice(response.data.need_rewrite_rules, 'warning');
40
- }
41
-
42
- });*/
43
- },
44
- qickStartAssistent: function() {
45
- var self = this;
46
-
47
- $('.wbcr-clearfy-button-activate-mode').click(function() {
48
-
49
- var switcher = $(this).closest('.wbcr-clearfy-switch'),
50
- modeName = switcher.data('mode'),
51
- modeOptions = switcher.data('mode-options');
52
-
53
- if( switcher.hasClass('wbcr-clearfy-loading') || switcher.hasClass('wbcr-clearfy-active') ) {
54
- return false;
55
- }
56
-
57
- self.showConfirmationPopup(modeName, modeOptions);
58
- return false;
59
- });
60
-
61
- $('.wbcr-clearfy-popup-button-cancel').click(function() {
62
- self.hideConfirmationPopup();
63
- });
64
-
65
- /*$('.wbcr-clearfy-button-deativate-mode').click(function() {
66
- var $this = $(this),
67
- switcher = $(this).closest('.wbcr-clearfy-switch'),
68
- modeName = switcher.data('mode');
69
-
70
- if( switcher.hasClass('wbcr-clearfy-loading') ) {
71
- return false;
72
- }
73
-
74
- switcher.addClass('wbcr-clearfy-loading');
75
-
76
- self.sendRequest({
77
- action: 'wbcr_clearfy_configurate',
78
- mode: modeName,
79
- cancel_mode: true
80
- }, function(data) {
81
- switcher.removeClass('wbcr-clearfy-loading');
82
-
83
- if( data && data.export_options ) {
84
- $('#wbcr-clearfy-import-export').html(data.export_options);
85
- }
86
- },
87
- function() {
88
- if( modeName != 'reset' ) {
89
- switcher.removeClass('wbcr-clearfy-active');
90
- }
91
- });
92
- return false;
93
- });*/
94
-
95
- $('.wbcr-clearfy-popup-button-ok').click(function() {
96
- var $this = $(this), modeName = $this.closest('.wbcr-clearfy-confirm-popup').data('mode'),
97
- switcher = $('div[data-mode="' + modeName + '"]', '#wbcr-clearfy-quick-mode-board'),
98
- modeArgs = switcher.data('mode-args'),
99
- flushRedirect = modeArgs && modeArgs.flush_redirect;
100
-
101
- self.hideConfirmationPopup();
102
- switcher.addClass('wbcr-clearfy-loading');
103
-
104
- self.sendRequest({
105
- action: 'wbcr_clearfy_configurate',
106
- mode: modeName,
107
- flush_redirect: flushRedirect
108
- }, function(data) {
109
- if( !flushRedirect ) {
110
- switcher.removeClass('wbcr-clearfy-loading');
111
- }
112
-
113
- if( !data || data.error ) {
114
- /**
115
- * Хук выполняет проивольную функцию, после того как получен ajax ответ о том, что в
116
- * результате конфигурации произошла ошибка Реализация системы фильтров и хуков в файле
117
- * libs/clearfy/admin/assests/js/global.js Пример регистрации хука
118
- * $.wbcr_factory_clearfy_232.hooks.add('wbcr/factory_clearfy_232/updated',
119
- * function(noticeId) {});
120
- * @param {string} modeName - имя режима конфигурации
121
- * @param {object} data
122
- */
123
-
124
- $.wbcr_factory_clearfy_232.hooks.run('clearfy/quick_start/configurated_error', [
125
- modeName,
126
- data
127
- ]);
128
- return;
129
- }
130
-
131
- if( data.export_options ) {
132
- $('#wbcr-clearfy-import-export').html(data.export_options);
133
- }
134
- },
135
- function(data) {
136
-
137
- /**
138
- * Хук выполняет проивольную функцию, после того как получен ajax ответ об успешном выполнении
139
- * конфигурации Реализация системы фильтров и хуков в файле
140
- * libs/clearfy/admin/assests/js/global.js Пример регистрации хука
141
- * $.wbcr_factory_clearfy_232.hooks.add('wbcr/factory_clearfy_232/updated', function(noticeId)
142
- * {});
143
- * @param {string} modeName - имя режима конфигурации
144
- * @param {object} data
145
- */
146
- $.wbcr_factory_clearfy_232.hooks.run('clearfy/quick_start/configurated', [modeName, data]);
147
-
148
- if( modeName !== 'reset' ) {
149
- switcher.addClass('wbcr-clearfy-active');
150
- return;
151
- }
152
-
153
- $('.wbcr-clearfy-switch').removeClass('wbcr-clearfy-active');
154
- });
155
-
156
- return false;
157
- });
158
- },
159
-
160
- showConfirmationPopup: function(modeName, options) {
161
- var self = this;
162
-
163
- if( !$('.wbcr-clearfy-layer').length ) {
164
- var layer = $('<div></div>').addClass('wbcr-clearfy-layer');
165
- layer.prependTo('#wpbody');
166
- layer.fadeIn();
167
- } else {
168
- $('.wbcr-clearfy-layer').fadeIn();
169
- }
170
-
171
- var popupElem = $('.wbcr-clearfy-confirm-popup');
172
- popupElem.data('mode', modeName);
173
- popupElem.fadeIn();
174
-
175
- if( modeName !== 'reset' ) {
176
- var printOptTitles = '';
177
-
178
- if( options ) {
179
- for( var opt in options ) {
180
- if( !options.hasOwnProperty(opt) ) {
181
- continue;
182
- }
183
- printOptTitles += '<li>' + options[opt] + '</li>';
184
-
185
- }
186
- $('.wbcr-clearfy-list-options').html(printOptTitles);
187
- popupElem.addClass('wbcr-clearfy-default-warning-options');
188
- }
189
- return;
190
- }
191
-
192
- popupElem.addClass('wbcr-clearfy-reset-warning-options');
193
- },
194
-
195
- hideConfirmationPopup: function() {
196
- $('.wbcr-clearfy-layer').fadeOut(100);
197
- var popupElem = $('.wbcr-clearfy-confirm-popup');
198
-
199
- popupElem.fadeOut(100, function() {
200
- popupElem.removeClass('wbcr-clearfy-default-warning-options');
201
- popupElem.removeClass('wbcr-clearfy-reset-warning-options');
202
- });
203
-
204
- },
205
-
206
- importOptions: function() {
207
- var self = this;
208
-
209
- $('.wbcr-clearfy-import-options-button').click(function() {
210
- var settings = $('#wbcr-clearfy-import-export').val(),
211
- $this = $(this);
212
-
213
- if( !settings ) {
214
- $.wbcr_factory_clearfy_232.app.showNotice('Import options is empty!', 'danger');
215
- return false;
216
- }
217
-
218
- if( void 0 === wbcr_clearfy_ajax || !wbcr_clearfy_ajax.import_options_nonce ) {
219
- $.wbcr_factory_clearfy_232.app.showNotice('Unknown Javascript error, most likely the wbcr_clearfy_ajax variable does not exist!', 'danger');
220
- return false;
221
- }
222
-
223
- $(this).prop('disabled', true);
224
-
225
- self.sendRequest({
226
- action: 'wbcr-clearfy-import-settings',
227
- _wpnonce: wbcr_clearfy_ajax.import_options_nonce,
228
- settings: settings
229
- }, function(response) {
230
- $this.prop('disabled', false);
231
-
232
- if( response.data.update_notice ) {
233
- if( !$('.wbcr-clr-update-package').length ) {
234
- $.wbcr_factory_clearfy_232.app.showNotice(response.data.update_notice);
235
- }
236
- } else {
237
- if( $('.wbcr-clr-update-package').length ) {
238
- $('.wbcr-clr-update-package').closest('.wbcr-factory-warning-notice').remove();
239
- }
240
- }
241
- });
242
-
243
- return false;
244
- });
245
- },
246
- sendRequest: function(request_data, beforeValidateCallback, successCallback) {
247
- var self = this;
248
-
249
- if( wbcr_clearfy_ajax === undefined ) {
250
- console.log('Undefinded wbcr_clearfy_ajax object.');
251
- return;
252
- }
253
-
254
- if( typeof request_data === 'object' ) {
255
- request_data.security = wbcr_clearfy_ajax.ajax_nonce;
256
- }
257
-
258
- $.ajax(ajaxurl, {
259
- type: 'post',
260
- dataType: 'json',
261
- data: request_data,
262
- success: function(data, textStatus, jqXHR) {
263
- var noticeId;
264
-
265
- beforeValidateCallback && beforeValidateCallback(data);
266
-
267
- if( !data || data.error ) {
268
- console.log(data);
269
-
270
- if( data ) {
271
- noticeId = $.wbcr_factory_clearfy_232.app.showNotice(data.error_message, 'danger');
272
- } else {
273
- if( void 0 !== wbcr_clearfy_ajax ) {
274
- noticeId = $.wbcr_factory_clearfy_232.app.showNotice(wbcr_clearfy_ajax.i18n.unknown_error, 'danger');
275
- }
276
- }
277
-
278
- setTimeout(function() {
279
- $.wbcr_factory_clearfy_232.app.hideNotice(noticeId);
280
- }, 5000);
281
- return;
282
- }
283
-
284
- successCallback && successCallback(data);
285
-
286
- if( !request_data.flush_redirect ) {
287
- if( void 0 !== wbcr_clearfy_ajax ) {
288
- noticeId = $.wbcr_factory_clearfy_232.app.showNotice(wbcr_clearfy_ajax.i18n.success_update_settings, 'success');
289
-
290
- setTimeout(function() {
291
- $.wbcr_factory_clearfy_232.app.hideNotice(noticeId);
292
- }, 5000);
293
- }
294
- return;
295
- }
296
-
297
- window.location.href = wbcr_clearfy_ajax.flush_cache_url;
298
- // открыть уведомление
299
-
300
- },
301
- error: function(xhr, ajaxOptions, thrownError) {
302
- console.log(xhr.status);
303
- console.log(xhr.responseText);
304
- console.log(thrownError);
305
-
306
- var noticeId = $.wbcr_factory_clearfy_232.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
307
- }
308
- });
309
- }
310
- };
311
-
312
-
313
- $(document).ready(function() {
314
- general.init();
315
- });
316
-
317
-
318
-
319
-
320
- })(jQuery);
1
+ /**
2
+ * General
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright (c) 10.09.2017, Webcraftic
5
+ * @version 1.0
6
+ */
7
+
8
+ (function($) {
9
+ 'use strict';
10
+
11
+ var general = {
12
+ init: function() {
13
+ this.qickStartAssistent();
14
+ this.importOptions();
15
+
16
+ /*$.wfactory_444.hooks.add('core/components/pre_activate', function(button) {
17
+ // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
18
+ if( !$('#WBCR').length ) {
19
+ return false;
20
+ }
21
+
22
+ if( button.closest('.wbcr-clr-new-component').length ) {
23
+ button.closest('.wbcr-clr-new-component').remove();
24
+ }
25
+
26
+ if( button.closest('.wbcr-clearfy-fake-image-optimizer-board').length ) {
27
+ button.remove();
28
+ window.location.reload();
29
+ }
30
+ });*/
31
+
32
+ /*$.wfactory_444.hooks.add('core/components/updated', function(button, data, response) {
33
+ // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
34
+ if( !($('#WBCR').length && $.wbcr_factory_clearfy_235) ) {
35
+ return false;
36
+ }
37
+
38
+ if( response.data.need_rewrite_rules && !$('.wbcr-clr-need-rewrite-rules-message').length ) {
39
+ $.wbcr_factory_clearfy_235.app.showNotice(response.data.need_rewrite_rules, 'warning');
40
+ }
41
+
42
+ });*/
43
+ },
44
+ qickStartAssistent: function() {
45
+ var self = this;
46
+
47
+ $('.wbcr-clearfy-button-activate-mode').click(function() {
48
+
49
+ var switcher = $(this).closest('.wbcr-clearfy-switch'),
50
+ modeName = switcher.data('mode'),
51
+ modeOptions = switcher.data('mode-options');
52
+
53
+ if( switcher.hasClass('wbcr-clearfy-loading') || switcher.hasClass('wbcr-clearfy-active') ) {
54
+ return false;
55
+ }
56
+
57
+ self.showConfirmationPopup(modeName, modeOptions);
58
+ return false;
59
+ });
60
+
61
+ $('.wbcr-clearfy-popup-button-cancel').click(function() {
62
+ self.hideConfirmationPopup();
63
+ });
64
+
65
+ /*$('.wbcr-clearfy-button-deativate-mode').click(function() {
66
+ var $this = $(this),
67
+ switcher = $(this).closest('.wbcr-clearfy-switch'),
68
+ modeName = switcher.data('mode');
69
+
70
+ if( switcher.hasClass('wbcr-clearfy-loading') ) {
71
+ return false;
72
+ }
73
+
74
+ switcher.addClass('wbcr-clearfy-loading');
75
+
76
+ self.sendRequest({
77
+ action: 'wbcr_clearfy_configurate',
78
+ mode: modeName,
79
+ cancel_mode: true
80
+ }, function(data) {
81
+ switcher.removeClass('wbcr-clearfy-loading');
82
+
83
+ if( data && data.export_options ) {
84
+ $('#wbcr-clearfy-import-export').html(data.export_options);
85
+ }
86
+ },
87
+ function() {
88
+ if( modeName != 'reset' ) {
89
+ switcher.removeClass('wbcr-clearfy-active');
90
+ }
91
+ });
92
+ return false;
93
+ });*/
94
+
95
+ $('.wbcr-clearfy-popup-button-ok').click(function() {
96
+ var $this = $(this), modeName = $this.closest('.wbcr-clearfy-confirm-popup').data('mode'),
97
+ switcher = $('div[data-mode="' + modeName + '"]', '#wbcr-clearfy-quick-mode-board'),
98
+ modeArgs = switcher.data('mode-args'),
99
+ flushRedirect = modeArgs && modeArgs.flush_redirect;
100
+
101
+ self.hideConfirmationPopup();
102
+ switcher.addClass('wbcr-clearfy-loading');
103
+
104
+ self.sendRequest({
105
+ action: 'wbcr_clearfy_configurate',
106
+ mode: modeName,
107
+ flush_redirect: flushRedirect
108
+ }, function(data) {
109
+ if( !flushRedirect ) {
110
+ switcher.removeClass('wbcr-clearfy-loading');
111
+ }
112
+
113
+ if( !data || data.error ) {
114
+ /**
115
+ * Хук выполняет проивольную функцию, после того как получен ajax ответ о том, что в
116
+ * результате конфигурации произошла ошибка Реализация системы фильтров и хуков в файле
117
+ * libs/clearfy/admin/assests/js/global.js Пример регистрации хука
118
+ * $.wbcr_factory_clearfy_235.hooks.add('wbcr/factory_clearfy_235/updated',
119
+ * function(noticeId) {});
120
+ * @param {string} modeName - имя режима конфигурации
121
+ * @param {object} data
122
+ */
123
+
124
+ $.wbcr_factory_clearfy_235.hooks.run('clearfy/quick_start/configurated_error', [
125
+ modeName,
126
+ data
127
+ ]);
128
+ return;
129
+ }
130
+
131
+ if( data.export_options ) {
132
+ $('#wbcr-clearfy-import-export').html(data.export_options);
133
+ }
134
+ },
135
+ function(data) {
136
+
137
+ /**
138
+ * Хук выполняет проивольную функцию, после того как получен ajax ответ об успешном выполнении
139
+ * конфигурации Реализация системы фильтров и хуков в файле
140
+ * libs/clearfy/admin/assests/js/global.js Пример регистрации хука
141
+ * $.wbcr_factory_clearfy_235.hooks.add('wbcr/factory_clearfy_235/updated', function(noticeId)
142
+ * {});
143
+ * @param {string} modeName - имя режима конфигурации
144
+ * @param {object} data
145
+ */
146
+ $.wbcr_factory_clearfy_235.hooks.run('clearfy/quick_start/configurated', [modeName, data]);
147
+
148
+ if( modeName !== 'reset' ) {
149
+ switcher.addClass('wbcr-clearfy-active');
150
+ return;
151
+ }
152
+
153
+ $('.wbcr-clearfy-switch').removeClass('wbcr-clearfy-active');
154
+ });
155
+
156
+ return false;
157
+ });
158
+ },
159
+
160
+ showConfirmationPopup: function(modeName, options) {
161
+ var self = this;
162
+
163
+ if( !$('.wbcr-clearfy-layer').length ) {
164
+ var layer = $('<div></div>').addClass('wbcr-clearfy-layer');
165
+ layer.prependTo('#wpbody');
166
+ layer.fadeIn();
167
+ } else {
168
+ $('.wbcr-clearfy-layer').fadeIn();
169
+ }
170
+
171
+ var popupElem = $('.wbcr-clearfy-confirm-popup');
172
+ popupElem.data('mode', modeName);
173
+ popupElem.fadeIn();
174
+
175
+ if( modeName !== 'reset' ) {
176
+ var printOptTitles = '';
177
+
178
+ if( options ) {
179
+ for( var opt in options ) {
180
+ if( !options.hasOwnProperty(opt) ) {
181
+ continue;
182
+ }
183
+ printOptTitles += '<li>' + options[opt] + '</li>';
184
+
185
+ }
186
+ $('.wbcr-clearfy-list-options').html(printOptTitles);
187
+ popupElem.addClass('wbcr-clearfy-default-warning-options');
188
+ }
189
+ return;
190
+ }
191
+
192
+ popupElem.addClass('wbcr-clearfy-reset-warning-options');
193
+ },
194
+
195
+ hideConfirmationPopup: function() {
196
+ $('.wbcr-clearfy-layer').fadeOut(100);
197
+ var popupElem = $('.wbcr-clearfy-confirm-popup');
198
+
199
+ popupElem.fadeOut(100, function() {
200
+ popupElem.removeClass('wbcr-clearfy-default-warning-options');
201
+ popupElem.removeClass('wbcr-clearfy-reset-warning-options');
202
+ });
203
+
204
+ },
205
+
206
+ importOptions: function() {
207
+ var self = this;
208
+
209
+ $('.wbcr-clearfy-import-options-button').click(function() {
210
+ var settings = $('#wbcr-clearfy-import-export').val(),
211
+ $this = $(this);
212
+
213
+ if( !settings ) {
214
+ $.wbcr_factory_clearfy_235.app.showNotice('Import options is empty!', 'danger');
215
+ return false;
216
+ }
217
+
218
+ if( void 0 === wbcr_clearfy_ajax || !wbcr_clearfy_ajax.import_options_nonce ) {
219
+ $.wbcr_factory_clearfy_235.app.showNotice('Unknown Javascript error, most likely the wbcr_clearfy_ajax variable does not exist!', 'danger');
220
+ return false;
221
+ }
222
+
223
+ $(this).prop('disabled', true);
224
+
225
+ self.sendRequest({
226
+ action: 'wbcr-clearfy-import-settings',
227
+ _wpnonce: wbcr_clearfy_ajax.import_options_nonce,
228
+ settings: settings
229
+ }, function(response) {
230
+ $this.prop('disabled', false);
231
+
232
+ if( response.data.update_notice ) {
233
+ if( !$('.wbcr-clr-update-package').length ) {
234
+ $.wbcr_factory_clearfy_235.app.showNotice(response.data.update_notice);
235
+ }
236
+ } else {
237
+ if( $('.wbcr-clr-update-package').length ) {
238
+ $('.wbcr-clr-update-package').closest('.wbcr-factory-warning-notice').remove();
239
+ }
240
+ }
241
+ });
242
+
243
+ return false;
244
+ });
245
+ },
246
+ sendRequest: function(request_data, beforeValidateCallback, successCallback) {
247
+ var self = this;
248
+
249
+ if( wbcr_clearfy_ajax === undefined ) {
250
+ console.log('Undefinded wbcr_clearfy_ajax object.');
251
+ return;
252
+ }
253
+
254
+ if( typeof request_data === 'object' ) {
255
+ request_data.security = wbcr_clearfy_ajax.ajax_nonce;
256
+ }
257
+
258
+ $.ajax(ajaxurl, {
259
+ type: 'post',
260
+ dataType: 'json',
261
+ data: request_data,
262
+ success: function(data, textStatus, jqXHR) {
263
+ var noticeId;
264
+
265
+ beforeValidateCallback && beforeValidateCallback(data);
266
+
267
+ if( !data || data.error ) {
268
+ console.log(data);
269
+
270
+ if( data ) {
271
+ noticeId = $.wbcr_factory_clearfy_235.app.showNotice(data.error_message, 'danger');
272
+ } else {
273
+ if( void 0 !== wbcr_clearfy_ajax ) {
274
+ noticeId = $.wbcr_factory_clearfy_235.app.showNotice(wbcr_clearfy_ajax.i18n.unknown_error, 'danger');
275
+ }
276
+ }
277
+
278
+ setTimeout(function() {
279
+ $.wbcr_factory_clearfy_235.app.hideNotice(noticeId);
280
+ }, 5000);
281
+ return;
282
+ }
283
+
284
+ successCallback && successCallback(data);
285
+
286
+ if( !request_data.flush_redirect ) {
287
+ if( void 0 !== wbcr_clearfy_ajax ) {
288
+ noticeId = $.wbcr_factory_clearfy_235.app.showNotice(wbcr_clearfy_ajax.i18n.success_update_settings, 'success');
289
+
290
+ setTimeout(function() {
291
+ $.wbcr_factory_clearfy_235.app.hideNotice(noticeId);
292
+ }, 5000);
293
+ }
294
+ return;
295
+ }
296
+
297
+ window.location.href = wbcr_clearfy_ajax.flush_cache_url;
298
+ // открыть уведомление
299
+
300
+ },
301
+ error: function(xhr, ajaxOptions, thrownError) {
302
+ console.log(xhr.status);
303
+ console.log(xhr.responseText);
304
+ console.log(thrownError);
305
+
306
+ var noticeId = $.wbcr_factory_clearfy_235.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
307
+ }
308
+ });
309
+ }
310
+ };
311
+
312
+
313
+ $(document).ready(function() {
314
+ general.init();
315
+ });
316
+
317
+
318
+
319
+
320
+ })(jQuery);
admin/assets/js/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
admin/assets/js/license-manager.js CHANGED
@@ -1,94 +1,94 @@
1
- /**
2
- * Этот файл содержит скрипт исполняелся во время процедур с формой лицензирования.
3
- * Его основная роль отправка ajax запросов на проверку, активацию, деактивацию лицензии
4
- * и вывод уведомлений об ошибка или успешно выполнении проверок.
5
- *
6
- * @author Webcraftic <wordpress.webraftic@gmail.com>
7
- * @copyright (c) 05.10.2018, Webcraftic
8
- * @version 1.1
9
- * @since 1.4.0
10
- */
11
-
12
-
13
- jQuery(function($) {
14
-
15
- var allNotices = [];
16
-
17
- $(document).on('click', '.wcl-control-btn', function() {
18
-
19
- // Скрываем все открытые этим событием уведомления
20
- // Глобальные уведомления не трогаем
21
-
22
- for( i = 0; i < allNotices.length; i++ ) {
23
- $.wbcr_factory_clearfy_232.app.hideNotice(allNotices[i]);
24
- }
25
-
26
- $('.wcl-control-btn').hide();
27
-
28
- var wrapper = $('#wcl-license-wrapper'),
29
- loader = wrapper.data('loader');
30
-
31
- $(this).after('<img class="wcl-loader" src="' + loader + '">');
32
-
33
- var data = {
34
- action: 'wbcr-clearfy-check-license',
35
- _wpnonce: $('#_wpnonce').val(),
36
- license_action: $(this).data('action'),
37
- licensekey: ''
38
- };
39
-
40
- if( $(this).data('action') == 'activate' ) {
41
- data.licensekey = $('#license-key').val();
42
- }
43
-
44
- $.ajax(ajaxurl, {
45
- type: 'post',
46
- dataType: 'json',
47
- data: data,
48
- success: function(response) {
49
- var noticeId;
50
-
51
- if( !response || !response.success ) {
52
-
53
- $('.wcl-control-btn').show();
54
- $('.wcl-loader').remove();
55
-
56
- if( response.data ) {
57
- console.log(response.data.error_message);
58
- noticeId = $.wbcr_factory_clearfy_232.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
59
- allNotices.push(noticeId);
60
- } else {
61
- console.log(response);
62
- }
63
-
64
- return;
65
- }
66
-
67
- if( response.data && response.data.message ) {
68
- noticeId = $.wbcr_factory_clearfy_232.app.showNotice(response.data.message, 'success');
69
- allNotices.push(noticeId);
70
-
71
- // todo: доработать генерацию формы, вместо перезагрузки страницы
72
- window.location.reload();
73
- }
74
-
75
- },
76
- error: function(xhr, ajaxOptions, thrownError) {
77
-
78
- $('.wcl-control-btn').show();
79
- $('.wcl-loader').remove();
80
-
81
- console.log(xhr.status);
82
- console.log(xhr.responseText);
83
- console.log(thrownError);
84
-
85
- var noticeId = $.wbcr_factory_clearfy_232.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
86
-
87
- allNotices.push(noticeId);
88
- }
89
- });
90
-
91
- return false;
92
- });
93
-
94
- });
1
+ /**
2
+ * Этот файл содержит скрипт исполняелся во время процедур с формой лицензирования.
3
+ * Его основная роль отправка ajax запросов на проверку, активацию, деактивацию лицензии
4
+ * и вывод уведомлений об ошибка или успешно выполнении проверок.
5
+ *
6
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
7
+ * @copyright (c) 05.10.2018, Webcraftic
8
+ * @version 1.1
9
+ * @since 1.4.0
10
+ */
11
+
12
+
13
+ jQuery(function($) {
14
+
15
+ var allNotices = [];
16
+
17
+ $(document).on('click', '.wcl-control-btn', function() {
18
+
19
+ // Скрываем все открытые этим событием уведомления
20
+ // Глобальные уведомления не трогаем
21
+
22
+ for( i = 0; i < allNotices.length; i++ ) {
23
+ $.wbcr_factory_clearfy_235.app.hideNotice(allNotices[i]);
24
+ }
25
+
26
+ $('.wcl-control-btn').hide();
27
+
28
+ var wrapper = $('#wcl-license-wrapper'),
29
+ loader = wrapper.data('loader');
30
+
31
+ $(this).after('<img class="wcl-loader" src="' + loader + '">');
32
+
33
+ var data = {
34
+ action: 'wbcr-clearfy-check-license',
35
+ _wpnonce: $('#_wpnonce').val(),
36
+ license_action: $(this).data('action'),
37
+ licensekey: ''
38
+ };
39
+
40
+ if( $(this).data('action') == 'activate' ) {
41
+ data.licensekey = $('#license-key').val();
42
+ }
43
+
44
+ $.ajax(ajaxurl, {
45
+ type: 'post',
46
+ dataType: 'json',
47
+ data: data,
48
+ success: function(response) {
49
+ var noticeId;
50
+
51
+ if( !response || !response.success ) {
52
+
53
+ $('.wcl-control-btn').show();
54
+ $('.wcl-loader').remove();
55
+
56
+ if( response.data ) {
57
+ console.log(response.data.error_message);
58
+ noticeId = $.wbcr_factory_clearfy_235.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
59
+ allNotices.push(noticeId);
60
+ } else {
61
+ console.log(response);
62
+ }
63
+
64
+ return;
65
+ }
66
+
67
+ if( response.data && response.data.message ) {
68
+ noticeId = $.wbcr_factory_clearfy_235.app.showNotice(response.data.message, 'success');
69
+ allNotices.push(noticeId);
70
+
71
+ // todo: доработать генерацию формы, вместо перезагрузки страницы
72
+ window.location.reload();
73
+ }
74
+
75
+ },
76
+ error: function(xhr, ajaxOptions, thrownError) {
77
+
78
+ $('.wcl-control-btn').show();
79
+ $('.wcl-loader').remove();
80
+
81
+ console.log(xhr.status);
82
+ console.log(xhr.responseText);
83
+ console.log(thrownError);
84
+
85
+ var noticeId = $.wbcr_factory_clearfy_235.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
86
+
87
+ allNotices.push(noticeId);
88
+ }
89
+ });
90
+
91
+ return false;
92
+ });
93
+
94
+ });
admin/assets/js/setup.js CHANGED
@@ -1,95 +1,95 @@
1
- /**
2
- * Setup master
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright (c) 12.08.2020, Webcraftic
5
- * @version 1.0
6
- */
7
-
8
- (function($) {
9
- 'use strict';
10
-
11
- window.wclearfy_fetch_google_pagespeed_audit = function(nonce, flush_cache) {
12
-
13
- let data = {
14
- action: 'wclearfy-fetch-google-pagespeed-audit',
15
- flush_cache: flush_cache,
16
- _wpnonce: nonce,
17
- };
18
-
19
- $.ajax(ajaxurl, {
20
- type: 'post',
21
- dataType: 'json',
22
- data: data,
23
- success: function(response) {
24
- console.log(response);
25
-
26
- $('.wclearfy-gogle-page-speed-audit__preloader').hide();
27
-
28
- if( !response || !response.success ) {
29
- if( response.data ) {
30
- console.log(response.data.error);
31
- $('.wclearfy-gogle-page-speed-audit__errors').text(response.data.error).show();
32
- } else {
33
- console.log(response);
34
- }
35
- return;
36
- }
37
-
38
- $('.wclearfy-gogle-page-speed-audit').show();
39
-
40
- if( response.data && response.data.desktop ) {
41
- $('#wclearfy-desktop-score__circle').wfCircularProgress({
42
- endPercent: (response.data.desktop.performance_score / 100),
43
- color: get_color(response.data.desktop.performance_score),
44
- inactiveColor: '#ececec',
45
- strokeWidth: 5,
46
- diameter: 150,
47
- });
48
-
49
- $('#wclearfy-statistic__desktop-first-contentful-paint').text(response.data.desktop.performance_score);
50
- $('#wclearfy-statistic__desktop-speed-index').text(response.data.desktop.speed_index);
51
- $('#wclearfy-statistic__desktop-interactive').text(response.data.desktop.interactive);
52
- }
53
-
54
- if( response.data && response.data.mobile ) {
55
- $('#wclearfy-mobile-score__circle').wfCircularProgress({
56
- endPercent: (response.data.mobile.performance_score / 100),
57
- color: get_color(response.data.mobile.performance_score),
58
- inactiveColor: '#ececec',
59
- strokeWidth: 5,
60
- diameter: 150,
61
- });
62
-
63
- $('#wclearfy-statistic__mobile-first-contentful-paint').text(response.data.desktop.performance_score);
64
- $('#wclearfy-statistic__mobile-speed-index').text(response.data.desktop.speed_index);
65
- $('#wclearfy-statistic__mobile-interactive').text(response.data.desktop.interactive);
66
- }
67
-
68
- },
69
- error: function(xhr, ajaxOptions, thrownError) {
70
-
71
- $('.wclearfy-gogle-page-speed-audit__preloader').hide();
72
-
73
- console.log(xhr.status);
74
- console.log(xhr.responseText);
75
- console.log(thrownError);
76
-
77
- $('.wclearfy-gogle-page-speed-audit__errors').text('Status: ' + xhr.status + 'Error:' + xhr.responseText).show();
78
- }
79
- });
80
-
81
- function get_color(score) {
82
- let desktopColor;
83
-
84
- if( score > 70 ) {
85
- desktopColor = '#a8d207';
86
- } else if( score > 40 ) {
87
- desktopColor = '#f18727';
88
- } else {
89
- desktopColor = '#cd2727';
90
- }
91
-
92
- return desktopColor;
93
- }
94
- }
95
- })(jQuery);
1
+ /**
2
+ * Setup master
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright (c) 12.08.2020, Webcraftic
5
+ * @version 1.0
6
+ */
7
+
8
+ (function($) {
9
+ 'use strict';
10
+
11
+ window.wclearfy_fetch_google_pagespeed_audit = function(nonce, flush_cache) {
12
+
13
+ let data = {
14
+ action: 'wclearfy-fetch-google-pagespeed-audit',
15
+ flush_cache: flush_cache,
16
+ _wpnonce: nonce,
17
+ };
18
+
19
+ $.ajax(ajaxurl, {
20
+ type: 'post',
21
+ dataType: 'json',
22
+ data: data,
23
+ success: function(response) {
24
+ console.log(response);
25
+
26
+ $('.wclearfy-gogle-page-speed-audit__preloader').hide();
27
+
28
+ if( !response || !response.success ) {
29
+ if( response.data ) {
30
+ console.log(response.data.error);
31
+ $('.wclearfy-gogle-page-speed-audit__errors').text(response.data.error).show();
32
+ } else {
33
+ console.log(response);
34
+ }
35
+ return;
36
+ }
37
+
38
+ $('.wclearfy-gogle-page-speed-audit').show();
39
+
40
+ if( response.data && response.data.desktop ) {
41
+ $('#wclearfy-desktop-score__circle').wfCircularProgress({
42
+ endPercent: (response.data.desktop.performance_score / 100),
43
+ color: get_color(response.data.desktop.performance_score),
44
+ inactiveColor: '#ececec',
45
+ strokeWidth: 5,
46
+ diameter: 150,
47
+ });
48
+
49
+ $('#wclearfy-statistic__desktop-first-contentful-paint').text(response.data.desktop.performance_score);
50
+ $('#wclearfy-statistic__desktop-speed-index').text(response.data.desktop.speed_index);
51
+ $('#wclearfy-statistic__desktop-interactive').text(response.data.desktop.interactive);
52
+ }
53
+
54
+ if( response.data && response.data.mobile ) {
55
+ $('#wclearfy-mobile-score__circle').wfCircularProgress({
56
+ endPercent: (response.data.mobile.performance_score / 100),
57
+ color: get_color(response.data.mobile.performance_score),
58
+ inactiveColor: '#ececec',
59
+ strokeWidth: 5,
60
+ diameter: 150,
61
+ });
62
+
63
+ $('#wclearfy-statistic__mobile-first-contentful-paint').text(response.data.desktop.performance_score);
64
+ $('#wclearfy-statistic__mobile-speed-index').text(response.data.desktop.speed_index);
65
+ $('#wclearfy-statistic__mobile-interactive').text(response.data.desktop.interactive);
66
+ }
67
+
68
+ },
69
+ error: function(xhr, ajaxOptions, thrownError) {
70
+
71
+ $('.wclearfy-gogle-page-speed-audit__preloader').hide();
72
+
73
+ console.log(xhr.status);
74
+ console.log(xhr.responseText);
75
+ console.log(thrownError);
76
+
77
+ $('.wclearfy-gogle-page-speed-audit__errors').text('Status: ' + xhr.status + 'Error:' + xhr.responseText).show();
78
+ }
79
+ });
80
+
81
+ function get_color(score) {
82
+ let desktopColor;
83
+
84
+ if( score > 70 ) {
85
+ desktopColor = '#a8d207';
86
+ } else if( score > 40 ) {
87
+ desktopColor = '#f18727';
88
+ } else {
89
+ desktopColor = '#cd2727';
90
+ }
91
+
92
+ return desktopColor;
93
+ }
94
+ }
95
+ })(jQuery);
admin/assets/js/widgets.js CHANGED
@@ -1,37 +1,37 @@
1
- jQuery(function($) {
2
-
3
- function subscribeWidget() {
4
- var form = $('#wbcr-factory-subscribe-widget-form');
5
- form.submit(function(ev) {
6
- ev.preventDefault();
7
- var agree = form.find('[name=agree_terms]:checked');
8
- if( agree.length === 0 ) {
9
- return;
10
- }
11
-
12
- $.ajax({
13
- method: "POST",
14
- url: "https://clearfy.pro/wp-json/mailerlite/v1/subscribe/",
15
- data: {email: $('.wbcr-factory-subscribe-widget-field').val()},
16
- success: function(data) {
17
- if( !data.message ) {
18
- if( data.subscribed ) {
19
- $(".wbcr-factory-subscribe-widget-msg.success").show();
20
- } else {
21
- $(".wbcr-factory-subscribe-widget-msg.success2").show();
22
- }
23
- } else {
24
- alert('Something went wrong :(');
25
- console.error(data.message);
26
- }
27
- },
28
- error: function(error) {
29
- console.log(error);
30
- }
31
- });
32
- });
33
- }
34
-
35
- subscribeWidget();
36
-
37
  });
1
+ jQuery(function($) {
2
+
3
+ function subscribeWidget() {
4
+ var form = $('#wbcr-factory-subscribe-widget-form');
5
+ form.submit(function(ev) {
6
+ ev.preventDefault();
7
+ var agree = form.find('[name=agree_terms]:checked');
8
+ if( agree.length === 0 ) {
9
+ return;
10
+ }
11
+
12
+ $.ajax({
13
+ method: "POST",
14
+ url: "https://clearfy.pro/wp-json/mailerlite/v1/subscribe/",
15
+ data: {email: $('.wbcr-factory-subscribe-widget-field').val()},
16
+ success: function(data) {
17
+ if( !data.message ) {
18
+ if( data.subscribed ) {
19
+ $(".wbcr-factory-subscribe-widget-msg.success").show();
20
+ } else {
21
+ $(".wbcr-factory-subscribe-widget-msg.success2").show();
22
+ }
23
+ } else {
24
+ alert('Something went wrong :(');
25
+ console.error(data.message);
26
+ }
27
+ },
28
+ error: function(error) {
29
+ console.log(error);
30
+ }
31
+ });
32
+ });
33
+ }
34
+
35
+ subscribeWidget();
36
+
37
  });
admin/boot.php CHANGED
@@ -1,248 +1,249 @@
1
- <?php
2
- /**
3
- * The boot file is needed to connect backend files, as well as register hooks.
4
- * Some hooks are so small that it does not make sense to put them into a file
5
- * or put them into a specific group of code.
6
- *
7
- * I usually register administrator notifications, create handlers before saving
8
- * plugin settings or after, register options in the Clearfy plugin.
9
- *
10
- * @author Webcraftic <wordpress.webraftic@gmail.com>, Alex Kovalev <alex.kovalevv@gmail.com>
11
- * @copyright Webcraftic
12
- * @version 1.1
13
- */
14
-
15
- // Exit if accessed directly
16
- if( !defined('ABSPATH') ) {
17
- exit;
18
- }
19
-
20
- /**
21
- * Этот хук реализует условную логику перенаправления на страницу мастера настроек,
22
- * сразу после активации плагина.
23
- */
24
- add_action('admin_init', function () {
25
-
26
- $plugin = WCL_Plugin::app();
27
-
28
- // If the user has updated the plugin or activated it for the first time,
29
- // you need to show the page "What's new?"
30
- if( !WCL_Plugin::app()->isNetworkAdmin() ) {
31
- $setup_page_viewed = WCL_Plugin::app()->request->get('wclearfy_setup_page_viewed', null);
32
- if( is_null($setup_page_viewed) ) {
33
- if( WCL_Helper::is_need_show_setup_page() ) {
34
- try {
35
- $redirect_url = '';
36
- if( class_exists('Wbcr_FactoryPages440') ) {
37
- $redirect_url = WCL_Plugin::app()->getPluginPageUrl('setup', ['wclearfy_setup_page_viewed' => 1]);
38
- }
39
- if( $redirect_url ) {
40
- wp_safe_redirect($redirect_url);
41
- die();
42
- }
43
- } catch( Exception $e ) {
44
- }
45
- }
46
- } else {
47
- if( WCL_Helper::is_need_show_setup_page() ) {
48
- delete_option($plugin->getOptionName('setup_wizard'));
49
- }
50
- }
51
- }
52
- });
53
-
54
- /**
55
- * Выводит кнопку настроек Clearfy в шапке интерфейса плагина
56
- */
57
- add_action('wbcr/factory/pages/impressive/header', function ($plugin_name) {
58
- if( $plugin_name != WCL_Plugin::app()->getPluginName() ) {
59
- return;
60
- }
61
- ?>
62
- <a href="<?php echo WCL_Plugin::app()->getPluginPageUrl('clearfy_settings') ?>" class="wbcr-factory-button wbcr-factory-type-settings">
63
- <?php echo apply_filters('wbcr/clearfy/settings_button_title', __('Clearfy settings', 'clearfy')); ?>
64
- </a>
65
- <?php
66
- });
67
-
68
- /**
69
- * @param $form
70
- * @param Wbcr_Factory441_Plugin $plugin
71
- * @param Wbcr_FactoryPages440_ImpressiveThemplate $obj
72
- */
73
- function wbcr_clearfy_multisite_before_save($form, $plugin, $obj)
74
- {
75
- if( $plugin->getPluginName() !== WCL_Plugin::app()->getPluginName() ) {
76
- return;
77
- }
78
-
79
- if( $plugin->isNetworkAdmin() ) {
80
- if( !$plugin->premium->is_activate() && $plugin->isNetworkActive() ) {
81
- $obj->redirectToAction('multisite-pro');
82
- }
83
- }
84
- }
85
-
86
- add_action('wbcr/factory/pages/impressive/before_form_save', 'wbcr_clearfy_multisite_before_save', 10, 3);
87
-
88
- /**
89
- * Устанавливает логотип Webcraftic и сборку плагина для Clearfy и всех его компонентов
90
- *
91
- * @param string $title
92
- *
93
- * @since 1.4.0
94
- *
95
- */
96
- function wbcr_clearfy_branding($title)
97
- {
98
- $is_premium = WCL_Plugin::app()->premium->is_activate();
99
-
100
- return 'Webcraftic Clearfy ' . ($is_premium ? '<span class="wbcr-clr-logo-label wbcr-clr-premium-label-logo">' . __('Business', 'clearfy') . '</span>' : '<span class="wbcr-clr-logo-label wbcr-clr-free-label-logo">Free</span>') . ' ver';
101
- }
102
-
103
- add_action('wbcr/factory/pages/impressive/plugin_title', 'wbcr_clearfy_branding');
104
-
105
- /**
106
- * Подключаем скрипты для установки компонентов Clearfy
107
- * на все страницы админпанели
108
- */
109
- /*add_action('admin_enqueue_scripts', function () {
110
- wp_enqueue_style('wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/css/install-addons.css', [], WCL_Plugin::app()->getPluginVersion());
111
- wp_enqueue_script('wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/js/install-addons.js', [
112
- 'jquery',
113
- 'wbcr-factory-clearfy-232-global'
114
- ], WCL_Plugin::app()->getPluginVersion());
115
- });*/
116
-
117
- /**
118
- * Выводит уведомление, что нужно сбросить постоянные ссылки.
119
- * Уведомление будет показано на всех страницах Clearfy и его компонентах.
120
- *
121
- * @param WCL_Plugin $plugin
122
- * @param Wbcr_FactoryPages440_ImpressiveThemplate $obj
123
- */
124
- function wbcr_clearfy_print_notice_rewrite_rules($plugin, $obj)
125
- {
126
- if( WCL_Plugin::app()->getPopulateOption('need_rewrite_rules') ) {
127
- $obj->printWarningNotice(sprintf('<span class="wbcr-clr-need-rewrite-rules-message">' . __('When you deactivate some components, permanent links may work incorrectly. If this happens, please, <a href="%s">update the permalinks</a>, so you could complete the deactivation.', 'clearfy'), admin_url('options-permalink.php')) . '</span>');
128
- }
129
- }
130
-
131
- add_action('wbcr/factory/pages/impressive/print_all_notices', 'wbcr_clearfy_print_notice_rewrite_rules', 10, 2);
132
-
133
- /**
134
- * Удалем уведомление Clearfy о том, что нужно перезаписать постоянные ссылоки.s
135
- */
136
- function wbcr_clearfy_flush_rewrite_rules()
137
- {
138
- WCL_Plugin::app()->deletePopulateOption('need_rewrite_rules', 1);
139
- }
140
-
141
- add_action('flush_rewrite_rules_hard', 'wbcr_clearfy_flush_rewrite_rules');
142
-
143
- /**
144
- * Обновить постоынные ссылки, после выполнения быстрых настроек
145
- *
146
- * @param WHM_Plugin $plugin
147
- * @param Wbcr_FactoryPages440_ImpressiveThemplate $obj
148
- */
149
- function wbcr_clearfy_after_form_save($plugin, $obj)
150
- {
151
- if( !WCL_Plugin::app()->currentUserCan() ) {
152
- return;
153
- }
154
- $is_clearfy = WCL_Plugin::app()->getPluginName() == $plugin->getPluginName();
155
-
156
- if( $is_clearfy && $obj->id == 'quick_start' && isset($_GET['action']) && $_GET['action'] == 'flush-cache-and-rules' ) {
157
- require_once ABSPATH . 'wp-admin/includes/file.php';
158
- require_once ABSPATH . 'wp-admin/includes/misc.php';
159
- flush_rewrite_rules(true);
160
- }
161
- }
162
-
163
- add_action('wbcr/factory/pages/impressive/after_form_save', 'wbcr_clearfy_after_form_save', 10, 2);
164
-
165
- /**
166
- * Widget with the offer to buy Clearfy Business
167
- *
168
- * @param array $widgets
169
- * @param string $position
170
- * @param Wbcr_Factory441_Plugin $plugin
171
- */
172
-
173
- add_filter('wbcr/factory/pages/impressive/widgets', function ($widgets, $position, $plugin) {
174
- $is_current_plugin = $plugin->getPluginName() == WCL_Plugin::app()->getPluginName();
175
-
176
- if( class_exists('WRIO_Plugin') ) {
177
- $is_current_plugin = $plugin->getPluginName() === WRIO_Plugin::app()->getPluginName() || $plugin->getPluginName() === WCL_Plugin::app()->getPluginName();
178
- }
179
-
180
- if( $is_current_plugin ) {
181
-
182
- require_once WCL_PLUGIN_DIR . '/admin/includes/sidebar-widgets.php';
183
-
184
- if( WCL_Plugin::app()->premium->is_activate() ) {
185
- unset($widgets['donate_widget']);
186
-
187
- if( $position == 'right' ) {
188
- unset($widgets['adverts_widget']);
189
- unset($widgets['business_suggetion']);
190
- unset($widgets['rating_widget']);
191
- unset($widgets['info_widget']);
192
- }
193
-
194
- return $widgets;
195
- } else {
196
- if( $position == 'right' ) {
197
- unset($widgets['business_suggetion']);
198
- unset($widgets['info_widget']);
199
- unset($widgets['rating_widget']);
200
- }
201
- }
202
-
203
- if( $position == 'bottom' ) {
204
- unset($widgets['support_widget']);
205
- $widgets['donate_widget'] = wbcr_clearfy_get_sidebar_premium_widget();
206
- }
207
- }
208
-
209
- return $widgets;
210
- }, 9999, 3);
211
-
212
- /**
213
- * Remove adverts notices for premium users
214
- */
215
- add_action('wbcr/factory/admin_notices', function ($notices, $plugin_name) {
216
- if( $plugin_name != WCL_Plugin::app()->getPluginName() ) {
217
- return $notices;
218
- }
219
-
220
- if( WCL_Plugin::app()->premium->is_activate() ) {
221
- unset($notices['adverts_notice']);
222
- }
223
-
224
- return $notices;
225
- }, 9999, 2);
226
-
227
- /**
228
- * Remove adverts widgets for premium users
229
- */
230
- add_action('wp_dashboard_setup', function () {
231
- global $wp_meta_boxes;
232
-
233
- if( WCL_Plugin::app()->premium->is_activate() ) {
234
- if( isset($wp_meta_boxes['dashboard']) ) {
235
- if( isset($wp_meta_boxes['dashboard']['normal']) && isset($wp_meta_boxes['dashboard']['normal']['core']) && isset($wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget']) ) {
236
- unset($wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget']);
237
- }
238
- if( isset($wp_meta_boxes['dashboard']['side']) && isset($wp_meta_boxes['dashboard']['side']['core']) && isset($wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget']) ) {
239
- unset($wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget']);
240
- }
241
- }
242
- }
243
- }, 9999);
244
-
245
- // add widget scripts on all clearfy pages
246
- add_action('wbcr/clearfy/page_assets', function ($id, $scripts, $styles) {
247
- $scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/widgets.js', array('jquery'));
248
- }, 10, 3);
 
1
+ <?php
2
+ /**
3
+ * The boot file is needed to connect backend files, as well as register hooks.
4
+ * Some hooks are so small that it does not make sense to put them into a file
5
+ * or put them into a specific group of code.
6
+ *
7
+ * I usually register administrator notifications, create handlers before saving
8
+ * plugin settings or after, register options in the Clearfy plugin.
9
+ *
10
+ * @author Webcraftic <wordpress.webraftic@gmail.com>, Alex Kovalev <alex.kovalevv@gmail.com>
11
+ * @copyright Webcraftic
12
+ * @version 1.1
13
+ */
14
+
15
+ // Exit if accessed directly
16
+ if( !defined('ABSPATH') ) {
17
+ exit;
18
+ }
19
+
20
+ /**
21
+ * Уведомление будет показано на всех страницах Clearfy и его компонентах.
22
+ *
23
+ * @param WCL_Plugin $plugin
24
+ * @param Wbcr_FactoryPages443_ImpressiveThemplate $obj
25
+ */
26
+
27
+ add_action('wbcr/factory/pages/impressive/print_all_notices', function ($plugin, $obj) {
28
+ # Выводит уведомление, что в отключены некоторые опции, чтобы не было конфликтов с wp rocket.
29
+ if( is_plugin_active('wp-rocket/wp-rocket.php') ) {
30
+ $obj->printWarningNotice(sprintf(__('You are using Clearfy and wp rocket together, to avoid conflicts, we have disabled similar features in Clearfy. For example, you cannot use caching in Clearfy and wp rocket at the same time. You can read more about this in <a href="%s" target="_blank" rel="noopener">this article</a>.', 'clearfy'), 'https://clearfy.pro/docs/wp-rocket-clearfy/'));
31
+ }
32
+ # Выводит уведомление, что нужно сбросить постоянные ссылки.
33
+ if( WCL_Plugin::app()->getPopulateOption('need_rewrite_rules') ) {
34
+ $obj->printWarningNotice(sprintf('<span class="wbcr-clr-need-rewrite-rules-message">' . __('When you deactivate some components, permanent links may work incorrectly. If this happens, please, <a href="%s">update the permalinks</a>, so you could complete the deactivation.', 'clearfy'), admin_url('options-permalink.php')) . '</span>');
35
+ }
36
+ }, 10, 2);
37
+
38
+ /**
39
+ * Этот хук реализует условную логику перенаправления на страницу мастера настроек,
40
+ * сразу после активации плагина.
41
+ */
42
+ add_action('admin_init', function () {
43
+ $plugin = WCL_Plugin::app();
44
+
45
+ // If the user has updated the plugin or activated it for the first time,
46
+ // you need to show the page "What's new?"
47
+ if( !WCL_Plugin::app()->isNetworkAdmin() ) {
48
+ $setup_page_viewed = WCL_Plugin::app()->request->get('wclearfy_setup_page_viewed', null);
49
+ if( is_null($setup_page_viewed) ) {
50
+ if( WCL_Helper::is_need_show_setup_page() ) {
51
+ try {
52
+ $redirect_url = '';
53
+ if( class_exists('Wbcr_FactoryPages443') ) {
54
+ $redirect_url = WCL_Plugin::app()->getPluginPageUrl('setup', ['wclearfy_setup_page_viewed' => 1]);
55
+ }
56
+ if( $redirect_url ) {
57
+ wp_safe_redirect($redirect_url);
58
+ die();
59
+ }
60
+ } catch( Exception $e ) {
61
+ }
62
+ }
63
+ } else {
64
+ if( WCL_Helper::is_need_show_setup_page() ) {
65
+ delete_option($plugin->getOptionName('setup_wizard'));
66
+ }
67
+ }
68
+ }
69
+ });
70
+
71
+ /**
72
+ * Выводит кнопку настроек Clearfy в шапке интерфейса плагина
73
+ */
74
+ add_action('wbcr/factory/pages/impressive/header', function ($plugin_name) {
75
+ if( $plugin_name != WCL_Plugin::app()->getPluginName() ) {
76
+ return;
77
+ }
78
+ ?>
79
+ <a href="<?php echo WCL_Plugin::app()->getPluginPageUrl('clearfy_settings') ?>" class="wbcr-factory-button wbcr-factory-type-settings">
80
+ <?php echo apply_filters('wbcr/clearfy/settings_button_title', __('Clearfy settings', 'clearfy')); ?>
81
+ </a>
82
+ <?php
83
+ });
84
+
85
+ /**
86
+ * @param $form
87
+ * @param Wbcr_Factory444_Plugin $plugin
88
+ * @param Wbcr_FactoryPages443_ImpressiveThemplate $obj
89
+ */
90
+ function wbcr_clearfy_multisite_before_save($form, $plugin, $obj)
91
+ {
92
+ if( $plugin->getPluginName() !== WCL_Plugin::app()->getPluginName() ) {
93
+ return;
94
+ }
95
+
96
+ if( $plugin->isNetworkAdmin() ) {
97
+ if( !$plugin->premium->is_activate() && $plugin->isNetworkActive() ) {
98
+ $obj->redirectToAction('multisite-pro');
99
+ }
100
+ }
101
+ }
102
+
103
+ add_action('wbcr/factory/pages/impressive/before_form_save', 'wbcr_clearfy_multisite_before_save', 10, 3);
104
+
105
+ /**
106
+ * Устанавливает логотип Webcraftic и сборку плагина для Clearfy и всех его компонентов
107
+ *
108
+ * @param string $title
109
+ *
110
+ * @since 1.4.0
111
+ *
112
+ */
113
+ function wbcr_clearfy_branding($title)
114
+ {
115
+ $is_premium = WCL_Plugin::app()->premium->is_activate();
116
+
117
+ return 'Webcraftic Clearfy ' . ($is_premium ? '<span class="wbcr-clr-logo-label wbcr-clr-premium-label-logo">' . __('Business', 'clearfy') . '</span>' : '<span class="wbcr-clr-logo-label wbcr-clr-free-label-logo">Free</span>') . ' ver';
118
+ }
119
+
120
+ add_action('wbcr/factory/pages/impressive/plugin_title', 'wbcr_clearfy_branding');
121
+
122
+ /**
123
+ * Подключаем скрипты для установки компонентов Clearfy
124
+ * на все страницы админпанели
125
+ */
126
+ /*add_action('admin_enqueue_scripts', function () {
127
+ wp_enqueue_style('wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/css/install-addons.css', [], WCL_Plugin::app()->getPluginVersion());
128
+ wp_enqueue_script('wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/js/install-addons.js', [
129
+ 'jquery',
130
+ 'wbcr-factory-clearfy-235-global'
131
+ ], WCL_Plugin::app()->getPluginVersion());
132
+ });*/
133
+
134
+ /**
135
+ * Удалем уведомление Clearfy о том, что нужно перезаписать постоянные ссылоки.s
136
+ */
137
+ function wbcr_clearfy_flush_rewrite_rules()
138
+ {
139
+ WCL_Plugin::app()->deletePopulateOption('need_rewrite_rules', 1);
140
+ }
141
+
142
+ add_action('flush_rewrite_rules_hard', 'wbcr_clearfy_flush_rewrite_rules');
143
+
144
+ /**
145
+ * Обновить постоынные ссылки, после выполнения быстрых настроек
146
+ *
147
+ * @param WHM_Plugin $plugin
148
+ * @param Wbcr_FactoryPages443_ImpressiveThemplate $obj
149
+ */
150
+ function wbcr_clearfy_after_form_save($plugin, $obj)
151
+ {
152
+ if( !WCL_Plugin::app()->currentUserCan() ) {
153
+ return;
154
+ }
155
+ $is_clearfy = WCL_Plugin::app()->getPluginName() == $plugin->getPluginName();
156
+
157
+ if( $is_clearfy && $obj->id == 'quick_start' && isset($_GET['action']) && $_GET['action'] == 'flush-cache-and-rules' ) {
158
+ require_once ABSPATH . 'wp-admin/includes/file.php';
159
+ require_once ABSPATH . 'wp-admin/includes/misc.php';
160
+ flush_rewrite_rules(true);
161
+ }
162
+ }
163
+
164
+ add_action('wbcr/factory/pages/impressive/after_form_save', 'wbcr_clearfy_after_form_save', 10, 2);
165
+
166
+ /**
167
+ * Widget with the offer to buy Clearfy Business
168
+ *
169
+ * @param array $widgets
170
+ * @param string $position
171
+ * @param Wbcr_Factory444_Plugin $plugin
172
+ */
173
+
174
+ add_filter('wbcr/factory/pages/impressive/widgets', function ($widgets, $position, $plugin) {
175
+ $is_current_plugin = $plugin->getPluginName() == WCL_Plugin::app()->getPluginName();
176
+
177
+ if( class_exists('WRIO_Plugin') ) {
178
+ $is_current_plugin = $plugin->getPluginName() === WRIO_Plugin::app()->getPluginName() || $plugin->getPluginName() === WCL_Plugin::app()->getPluginName();
179
+ }
180
+
181
+ if( $is_current_plugin ) {
182
+
183
+ require_once WCL_PLUGIN_DIR . '/admin/includes/sidebar-widgets.php';
184
+
185
+ if( WCL_Plugin::app()->premium->is_activate() ) {
186
+ unset($widgets['donate_widget']);
187
+
188
+ if( $position == 'right' ) {
189
+ unset($widgets['adverts_widget']);
190
+ unset($widgets['business_suggetion']);
191
+ unset($widgets['rating_widget']);
192
+ unset($widgets['info_widget']);
193
+ }
194
+
195
+ return $widgets;
196
+ } else {
197
+ if( $position == 'right' ) {
198
+ unset($widgets['business_suggetion']);
199
+ unset($widgets['info_widget']);
200
+ unset($widgets['rating_widget']);
201
+ }
202
+ }
203
+
204
+ if( $position == 'bottom' ) {
205
+ unset($widgets['support_widget']);
206
+ $widgets['donate_widget'] = wbcr_clearfy_get_sidebar_premium_widget();
207
+ }
208
+ }
209
+
210
+ return $widgets;
211
+ }, 9999, 3);
212
+
213
+ /**
214
+ * Remove adverts notices for premium users
215
+ */
216
+ add_action('wbcr/factory/admin_notices', function ($notices, $plugin_name) {
217
+ if( $plugin_name != WCL_Plugin::app()->getPluginName() ) {
218
+ return $notices;
219
+ }
220
+
221
+ if( WCL_Plugin::app()->premium->is_activate() ) {
222
+ unset($notices['adverts_notice']);
223
+ }
224
+
225
+ return $notices;
226
+ }, 9999, 2);
227
+
228
+ /**
229
+ * Remove adverts widgets for premium users
230
+ */
231
+ add_action('wp_dashboard_setup', function () {
232
+ global $wp_meta_boxes;
233
+
234
+ if( WCL_Plugin::app()->premium->is_activate() ) {
235
+ if( isset($wp_meta_boxes['dashboard']) ) {
236
+ if( isset($wp_meta_boxes['dashboard']['normal']) && isset($wp_meta_boxes['dashboard']['normal']['core']) && isset($wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget']) ) {
237
+ unset($wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget']);
238
+ }
239
+ if( isset($wp_meta_boxes['dashboard']['side']) && isset($wp_meta_boxes['dashboard']['side']['core']) && isset($wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget']) ) {
240
+ unset($wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget']);
241
+ }
242
+ }
243
+ }
244
+ }, 9999);
245
+
246
+ // add widget scripts on all clearfy pages
247
+ add_action('wbcr/clearfy/page_assets', function ($id, $scripts, $styles) {
248
+ $scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/widgets.js', array('jquery'));
249
+ }, 10, 3);
admin/includes/classes/class.delete-plugins-button.php CHANGED
@@ -1,50 +1,50 @@
1
- <?php
2
-
3
- /**
4
- * This file groups the settings for quick setup
5
- *
6
- * @author Webcraftic <wordpress.webraftic@gmail.com>
7
- * @copyright (c) 16.09.2017, Webcraftic
8
- * @version 1.0
9
- */
10
-
11
- // Exit if accessed directly
12
- if ( ! defined( 'ABSPATH' ) ) {
13
- exit;
14
- }
15
-
16
- require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php';
17
-
18
- class WCL_DeletePluginsButton extends WCL_InstallPluginsButton {
19
-
20
- /**
21
- * @throws Exception
22
- */
23
- protected function build_wordpress() {
24
- parent::build_wordpress();
25
-
26
- $this->action = 'delete';
27
- $this->addData( 'plugin-action', $this->action );
28
- $this->removeClass( 'button-primary' );
29
- }
30
-
31
- protected function build_internal() {
32
- // nothing
33
- }
34
-
35
- /**
36
- * @param bool $echo
37
- *
38
- * @return string|void
39
- */
40
- public function getButton() {
41
- $button = '<a href="#" class="' . implode( ' ', $this->get_classes() ) . '" ' . implode( ' ', $this->get_data() ) . '><span class="dashicons dashicons-trash"></span></a>';
42
-
43
- if ( $this->type == 'internal' || ! $this->isPluginInstall() || $this->isPluginActivate() ) {
44
- $button = '';
45
- }
46
-
47
- return $button;
48
- }
49
- }
50
-
1
+ <?php
2
+
3
+ /**
4
+ * This file groups the settings for quick setup
5
+ *
6
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
7
+ * @copyright (c) 16.09.2017, Webcraftic
8
+ * @version 1.0
9
+ */
10
+
11
+ // Exit if accessed directly
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
+
16
+ require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php';
17
+
18
+ class WCL_DeletePluginsButton extends WCL_InstallPluginsButton {
19
+
20
+ /**
21
+ * @throws Exception
22
+ */
23
+ protected function build_wordpress() {
24
+ parent::build_wordpress();
25
+
26
+ $this->action = 'delete';
27
+ $this->addData( 'plugin-action', $this->action );
28
+ $this->removeClass( 'button-primary' );
29
+ }
30
+
31
+ protected function build_internal() {
32
+ // nothing
33
+ }
34
+
35
+ /**
36
+ * @param bool $echo
37
+ *
38
+ * @return string|void
39
+ */
40
+ public function getButton() {
41
+ $button = '<a href="#" class="' . implode( ' ', $this->get_classes() ) . '" ' . implode( ' ', $this->get_data() ) . '><span class="dashicons dashicons-trash"></span></a>';
42
+
43
+ if ( $this->type == 'internal' || ! $this->isPluginInstall() || $this->isPluginActivate() ) {
44
+ $button = '';
45
+ }
46
+
47
+ return $button;
48
+ }
49
+ }
50
+
admin/includes/classes/class.group.php CHANGED
@@ -1,65 +1,65 @@
1
- <?php
2
-
3
- /**
4
- * This file groups the settings for quick setup
5
- * @author Webcraftic <wordpress.webraftic@gmail.com>
6
- * @copyright (c) 16.09.2017, Webcraftic
7
- * @version 1.0
8
- */
9
-
10
- // Exit if accessed directly
11
- if( !defined('ABSPATH') ) {
12
- exit;
13
- }
14
-
15
- class WCL_Group {
16
-
17
- private $group_name;
18
-
19
- /**
20
- * @param string $group_name
21
- * @throws Exception
22
- */
23
- public function __construct($group_name)
24
- {
25
- if( empty($group_name) || !is_string($group_name) ) {
26
- throw new Exception('Empty group_name attribute.');
27
- }
28
- $this->group_name = $group_name;
29
- }
30
-
31
- /**
32
- * @param string $group_name
33
- * @return WCL_Group
34
- */
35
- public static function getInstance($group_name)
36
- {
37
- return new WCL_Group($group_name);
38
- }
39
-
40
- /**
41
- * @return string
42
- */
43
- public function getName()
44
- {
45
- return $this->group_name;
46
- }
47
-
48
- /**
49
- * @return WCL_Option[]
50
- */
51
- public function getOptions()
52
- {
53
- $options = WCL_Option::getAllOptions();
54
- $filter = array();
55
-
56
- foreach($options as $option) {
57
- if( $option->hasGroup($this->group_name) ) {
58
- $filter[] = $option;
59
- }
60
- }
61
-
62
- return $filter;
63
- }
64
- }
65
-
1
+ <?php
2
+
3
+ /**
4
+ * This file groups the settings for quick setup
5
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
6
+ * @copyright (c) 16.09.2017, Webcraftic
7
+ * @version 1.0
8
+ */
9
+
10
+ // Exit if accessed directly
11
+ if( !defined('ABSPATH') ) {
12
+ exit;
13
+ }
14
+
15
+ class WCL_Group {
16
+
17
+ private $group_name;
18
+
19
+ /**
20
+ * @param string $group_name
21
+ * @throws Exception
22
+ */
23
+ public function __construct($group_name)
24
+ {
25
+ if( empty($group_name) || !is_string($group_name) ) {
26
+ throw new Exception('Empty group_name attribute.');
27
+ }
28
+ $this->group_name = $group_name;
29
+ }
30
+
31
+ /**
32
+ * @param string $group_name
33
+ * @return WCL_Group
34
+ */
35
+ public static function getInstance($group_name)
36
+ {
37
+ return new WCL_Group($group_name);
38
+ }
39
+
40
+ /**
41
+ * @return string
42
+ */
43
+ public function getName()
44
+ {
45
+ return $this->group_name;
46
+ }
47
+
48
+ /**
49
+ * @return WCL_Option[]
50
+ */
51
+ public function getOptions()
52
+ {
53
+ $options = WCL_Option::getAllOptions();
54
+ $filter = array();
55
+
56
+ foreach($options as $option) {
57
+ if( $option->hasGroup($this->group_name) ) {
58
+ $filter[] = $option;
59
+ }
60
+ }
61
+
62
+ return $filter;
63
+ }
64
+ }
65
+
admin/includes/classes/class.install-plugins-button.php CHANGED
@@ -1,370 +1,370 @@
1
- <?php
2
-
3
- /**
4
- * This file groups the settings for quick setup
5
- *
6
- * @author Webcraftic <wordpress.webraftic@gmail.com>
7
- * @copyright (c) 16.09.2017, Webcraftic
8
- * @version 1.0
9
- */
10
-
11
- // Exit if accessed directly
12
- if( !defined('ABSPATH') ) {
13
- exit;
14
- }
15
-
16
- class WCL_InstallPluginsButton {
17
-
18
- protected $type;
19
- protected $plugin_slug;
20
-
21
- protected $classes = [
22
- 'button',
23
- 'wbcr-clr-proccess-button',
24
- 'wbcr-clr-update-component-button'
25
- ];
26
- protected $data = [];
27
- protected $base_path;
28
-
29
- protected $action;
30
-
31
- protected $url;
32
-
33
- /**
34
- * @param string $group_name
35
- *
36
- * @throws Exception
37
- */
38
- public function __construct($type, $plugin_slug)
39
- {
40
- if( empty($type) || !is_string($plugin_slug) ) {
41
- throw new Exception('Empty type or plugin_slug attribute.');
42
- }
43
- $this->type = $type;
44
- $this->plugin_slug = $plugin_slug;
45
-
46
- if( $this->type == 'wordpress' || $this->type == 'creativemotion' ) {
47
- if( strpos(rtrim(trim($this->plugin_slug)), '/') !== false ) {
48
- $this->base_path = $this->plugin_slug;
49
- $base_path_parts = explode('/', $this->base_path);
50
- if( sizeof($base_path_parts) === 2 ) {
51
- $this->plugin_slug = $base_path_parts[0];
52
- }
53
- } else {
54
- $this->base_path = $this->get_plugin_base_path_by_slug($this->plugin_slug);
55
- }
56
-
57
- $this->build_wordpress();
58
- } else if( $this->type == 'internal' ) {
59
- $this->build_internal();
60
- } else {
61
- throw new Exception('Invalid button type.');
62
- }
63
-
64
- // Set default data
65
- $this->addData('storage', $this->type);
66
- $this->addData('i18n', WCL_Helper::getEscapeJson($this->get_i18n()));
67
- $this->addData('wpnonce', wp_create_nonce('updates'));
68
- }
69
-
70
- /**
71
- * @return bool
72
- */
73
- public function isPluginActivate()
74
- {
75
- if( ($this->type == 'wordpress' || $this->type == 'creativemotion') && $this->isPluginInstall() ) {
76
- require_once ABSPATH . '/wp-admin/includes/plugin.php';
77
-
78
- return is_plugin_active($this->base_path);
79
- } else if( $this->type == 'internal' ) {
80
- $preinsatall_components = WCL_Plugin::app()->getPopulateOption('deactive_preinstall_components', []);
81
-
82
- return !in_array($this->plugin_slug, $preinsatall_components);
83
- }
84
-
85
- return false;
86
- }
87
-
88
- /**
89
- * @return bool
90
- */
91
- public function isPluginInstall()
92
- {
93
- if( $this->type == 'wordpress' || $this->type == 'creativemotion' ) {
94
- if( empty($this->base_path) ) {
95
- return false;
96
- }
97
-
98
- // Check if the function get_plugins() is registered. It is necessary for the front-end
99
- // usually get_plugins() only works in the admin panel.
100
- if( !function_exists('get_plugins') ) {
101
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
102
- }
103
-
104
- $plugins = get_plugins();
105
-
106
- if( isset($plugins[$this->base_path]) ) {
107
- return true;
108
- }
109
- } else if( $this->type == 'internal' ) {
110
- return true;
111
- }
112
-
113
- return false;
114
- }
115
-
116
- /**
117
- * @param $class
118
- *
119
- * @throws Exception
120
- */
121
- public function addClass($class)
122
- {
123
- if( !is_string($class) ) {
124
- throw new Exception('Attribute class must be a string.');
125
- }
126
- $this->classes[] = $class;
127
- }
128
-
129
- /**
130
- * @param $class
131
- *
132
- * @return bool
133
- * @throws Exception
134
- */
135
- public function removeClass($class)
136
- {
137
- if( !is_string($class) ) {
138
- throw new Exception('Attribute class must be a string.');
139
- }
140
- $key = array_search($class, $this->classes);
141
- if( isset($this->classes[$key]) ) {
142
- unset($this->classes[$key]);
143
-
144
- return true;
145
- }
146
-
147
- return false;
148
- }
149
-
150
- /**
151
- * @param $name
152
- * @param $value
153
- *
154
- * @throws Exception
155
- */
156
- public function addData($name, $value)
157
- {
158
- if( !is_string($name) || !is_string($value) ) {
159
- throw new Exception('Attributes name and value must be a string.');
160
- }
161
-
162
- $this->data[$name] = $value;
163
- }
164
-
165
- /**
166
- * @param $name
167
- *
168
- * @return bool
169
- * @throws Exception
170
- */
171
- public function removeData($name)
172
- {
173
- if( !is_string($name) ) {
174
- throw new Exception('Attribute name must be a string.');
175
- }
176
-
177
- if( isset($this->data[$name]) ) {
178
- unset($this->data[$name]);
179
-
180
- return true;
181
- }
182
-
183
- return false;
184
- }
185
-
186
- /**
187
- * Print an install button
188
- *
189
- * @throws \Exception
190
- * @since 1.5.0
191
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
192
- */
193
- public function renderButton()
194
- {
195
- echo $this->getButton();
196
- }
197
-
198
- /**
199
- * @return string
200
- */
201
- public function getButton()
202
- {
203
- $i18n = $this->get_i18n();
204
-
205
- $button = '<a href="#" class="' . implode(' ', $this->get_classes()) . '" ' . implode(' ', $this->get_data()) . '>' . $i18n[$this->action] . '</a>';
206
-
207
- return $button;
208
- }
209
-
210
- /**
211
- * @return string
212
- * @throws Exception
213
- */
214
- public function getLink()
215
- {
216
- $this->removeClass('button');
217
- $this->removeClass('button-default');
218
- $this->removeClass('button-primary');
219
-
220
- //$this->addClass('link');
221
- $this->addClass('button-link');
222
-
223
- return $this->getButton();
224
- }
225
-
226
- /**
227
- * Print an install a link
228
- *
229
- * @throws \Exception
230
- * @since 1.5.0
231
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
232
- */
233
- public function renderLink()
234
- {
235
- echo $this->getLink();
236
- }
237
-
238
- /**
239
- * @return array
240
- * @since 1.5.0
241
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
242
- */
243
- protected function get_data()
244
- {
245
- $data_to_print = [];
246
-
247
- foreach((array)$this->data as $key => $value) {
248
- $data_to_print[$key] = 'data-' . esc_attr($key) . '="' . esc_attr($value) . '"';
249
- }
250
-
251
- return $data_to_print;
252
- }
253
-
254
- /**
255
- * @return array
256
- * @since 1.5.0
257
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
258
- */
259
- protected function get_classes()
260
- {
261
- return array_map('esc_attr', $this->classes);
262
- }
263
-
264
- /**
265
- * @throws \Exception
266
- * @since 1.5.0
267
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
268
- */
269
- protected function build_wordpress()
270
- {
271
- if( ('wordpress' === $this->type || 'creativemotion' === $this->type) && !empty($this->base_path) ) {
272
-
273
- $this->action = 'install';
274
-
275
- if( $this->isPluginInstall() ) {
276
- $this->action = 'deactivate';
277
- if( !$this->isPluginActivate() ) {
278
- $this->action = 'activate';
279
- }
280
- }
281
-
282
- $this->addData('plugin-action', $this->action);
283
- $this->addData('slug', $this->plugin_slug);
284
- $this->addData('plugin', $this->base_path);
285
-
286
- if( $this->action == 'activate' ) {
287
- $this->addClass('button-primary');
288
- } else {
289
- $this->addClass('button-default');
290
- }
291
- }
292
- }
293
-
294
- /**
295
- * Configurate button of internal components
296
- *
297
- * @throws \Exception
298
- * @since 1.5.0
299
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
300
- */
301
- protected function build_internal()
302
- {
303
- if( $this->type != 'internal' ) {
304
- return;
305
- }
306
-
307
- $this->action = 'activate';
308
-
309
- if( $this->isPluginActivate() ) {
310
- $this->action = 'deactivate';
311
- }
312
-
313
- $this->addData('plugin-action', $this->action);
314
- $this->addData('plugin', $this->plugin_slug);
315
-
316
- if( $this->action == 'activate' ) {
317
- $this->addClass('button-primary');
318
- } else {
319
- $this->addClass('button-default');
320
- }
321
- }
322
-
323
- /**
324
- * Internalization for action buttons
325
- *
326
- * @return array
327
- * @since 1.5.0
328
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
329
- */
330
- protected function get_i18n()
331
- {
332
- return [
333
- 'activate' => __('Activate', 'clearfy'),
334
- 'install' => __('Install', 'clearfy'),
335
- 'deactivate' => __('Deactivate', 'clearfy'),
336
- 'delete' => __('Delete', 'clearfy'),
337
- 'loading' => __('Please wait...', 'clearfy'),
338
- 'preparation' => __('Preparation...', 'clearfy'),
339
- 'read' => __('Read more', 'clearfy')
340
- ];
341
- }
342
-
343
-
344
- /**
345
- * Allows you to get the base path to the plugin in the directory wp-content/plugins/
346
- *
347
- * @param $slug - slug for example "clearfy", "hide-login-page"
348
- *
349
- * @return int|null|string - "clearfy/clearfy.php"
350
- */
351
- protected function get_plugin_base_path_by_slug($slug)
352
- {
353
- // Check if the function get_plugins() is registered. It is necessary for the front-end
354
- // usually get_plugins() only works in the admin panel.
355
- if( !function_exists('get_plugins') ) {
356
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
357
- }
358
-
359
- $plugins = get_plugins();
360
-
361
- foreach($plugins as $base_path => $plugin) {
362
- if( strpos($base_path, rtrim(trim($slug))) !== false ) {
363
- return $base_path;
364
- }
365
- }
366
-
367
- return null;
368
- }
369
- }
370
-
1
+ <?php
2
+
3
+ /**
4
+ * This file groups the settings for quick setup
5
+ *
6
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
7
+ * @copyright (c) 16.09.2017, Webcraftic
8
+ * @version 1.0
9
+ */
10
+
11
+ // Exit if accessed directly
12
+ if( !defined('ABSPATH') ) {
13
+ exit;
14
+ }
15
+
16
+ class WCL_InstallPluginsButton {
17
+
18
+ protected $type;
19
+ protected $plugin_slug;
20
+
21
+ protected $classes = [
22
+ 'button',
23
+ 'wbcr-clr-proccess-button',
24
+ 'wbcr-clr-update-component-button'
25
+ ];
26
+ protected $data = [];
27
+ protected $base_path;
28
+
29
+ protected $action;
30
+
31
+ protected $url;
32
+
33
+ /**
34
+ * @param string $group_name
35
+ *
36
+ * @throws Exception
37
+ */
38
+ public function __construct($type, $plugin_slug)
39
+ {
40
+ if( empty($type) || !is_string($plugin_slug) ) {
41
+ throw new Exception('Empty type or plugin_slug attribute.');
42
+ }
43
+ $this->type = $type;
44
+ $this->plugin_slug = $plugin_slug;
45
+
46
+ if( $this->type == 'wordpress' || $this->type == 'creativemotion' ) {
47
+ if( strpos(rtrim(trim($this->plugin_slug)), '/') !== false ) {
48
+ $this->base_path = $this->plugin_slug;
49
+ $base_path_parts = explode('/', $this->base_path);
50
+ if( sizeof($base_path_parts) === 2 ) {
51
+ $this->plugin_slug = $base_path_parts[0];
52
+ }
53
+ } else {
54
+ $this->base_path = $this->get_plugin_base_path_by_slug($this->plugin_slug);
55
+ }
56
+
57
+ $this->build_wordpress();
58
+ } else if( $this->type == 'internal' ) {
59
+ $this->build_internal();
60
+ } else {
61
+ throw new Exception('Invalid button type.');
62
+ }
63
+
64
+ // Set default data
65
+ $this->addData('storage', $this->type);
66
+ $this->addData('i18n', WCL_Helper::getEscapeJson($this->get_i18n()));
67
+ $this->addData('wpnonce', wp_create_nonce('updates'));
68
+ }
69
+
70
+ /**
71
+ * @return bool
72
+ */
73
+ public function isPluginActivate()
74
+ {
75
+ if( ($this->type == 'wordpress' || $this->type == 'creativemotion') && $this->isPluginInstall() ) {
76
+ require_once ABSPATH . '/wp-admin/includes/plugin.php';
77
+
78
+ return is_plugin_active($this->base_path);
79
+ } else if( $this->type == 'internal' ) {
80
+ $preinsatall_components = WCL_Plugin::app()->getPopulateOption('deactive_preinstall_components', []);
81
+
82
+ return !in_array($this->plugin_slug, $preinsatall_components);
83
+ }
84
+
85
+ return false;
86
+ }
87
+
88
+ /**
89
+ * @return bool
90
+ */
91
+ public function isPluginInstall()
92
+ {
93
+ if( $this->type == 'wordpress' || $this->type == 'creativemotion' ) {
94
+ if( empty($this->base_path) ) {
95
+ return false;
96
+ }
97
+
98
+ // Check if the function get_plugins() is registered. It is necessary for the front-end
99
+ // usually get_plugins() only works in the admin panel.
100
+ if( !function_exists('get_plugins') ) {
101
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
102
+ }
103
+
104
+ $plugins = get_plugins();
105
+
106
+ if( isset($plugins[$this->base_path]) ) {
107
+ return true;
108
+ }
109
+ } else if( $this->type == 'internal' ) {
110
+ return true;
111
+ }
112
+
113
+ return false;
114
+ }
115
+
116
+ /**
117
+ * @param $class
118
+ *
119
+ * @throws Exception
120
+ */
121
+ public function addClass($class)
122
+ {
123
+ if( !is_string($class) ) {
124
+ throw new Exception('Attribute class must be a string.');
125
+ }
126
+ $this->classes[] = $class;
127
+ }
128
+
129
+ /**
130
+ * @param $class
131
+ *
132
+ * @return bool
133
+ * @throws Exception
134
+ */
135
+ public function removeClass($class)
136
+ {
137
+ if( !is_string($class) ) {
138
+ throw new Exception('Attribute class must be a string.');
139
+ }
140
+ $key = array_search($class, $this->classes);
141
+ if( isset($this->classes[$key]) ) {
142
+ unset($this->classes[$key]);
143
+
144
+ return true;
145
+ }
146
+
147
+ return false;
148
+ }
149
+
150
+ /**
151
+ * @param $name
152
+ * @param $value
153
+ *
154
+ * @throws Exception
155
+ */
156
+ public function addData($name, $value)
157
+ {
158
+ if( !is_string($name) || !is_string($value) ) {
159
+ throw new Exception('Attributes name and value must be a string.');
160
+ }
161
+
162
+ $this->data[$name] = $value;
163
+ }
164
+
165
+ /**
166
+ * @param $name
167
+ *
168
+ * @return bool
169
+ * @throws Exception
170
+ */
171
+ public function removeData($name)
172
+ {
173
+ if( !is_string($name) ) {
174
+ throw new Exception('Attribute name must be a string.');
175
+ }
176
+
177
+ if( isset($this->data[$name]) ) {
178
+ unset($this->data[$name]);
179
+
180
+ return true;
181
+ }
182
+
183
+ return false;
184
+ }
185
+
186
+ /**
187
+ * Print an install button
188
+ *
189
+ * @throws \Exception
190
+ * @since 1.5.0
191
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
192
+ */
193
+ public function renderButton()
194
+ {
195
+ echo $this->getButton();
196
+ }
197
+
198
+ /**
199
+ * @return string
200
+ */
201
+ public function getButton()
202
+ {
203
+ $i18n = $this->get_i18n();
204
+
205
+ $button = '<a href="#" class="' . implode(' ', $this->get_classes()) . '" ' . implode(' ', $this->get_data()) . '>' . $i18n[$this->action] . '</a>';
206
+
207
+ return $button;
208
+ }
209
+
210
+ /**
211
+ * @return string
212
+ * @throws Exception
213
+ */
214
+ public function getLink()
215
+ {
216
+ $this->removeClass('button');
217
+ $this->removeClass('button-default');
218
+ $this->removeClass('button-primary');
219
+
220
+ //$this->addClass('link');
221
+ $this->addClass('button-link');
222
+
223
+ return $this->getButton();
224
+ }
225
+
226
+ /**
227
+ * Print an install a link
228
+ *
229
+ * @throws \Exception
230
+ * @since 1.5.0
231
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
232
+ */
233
+ public function renderLink()
234
+ {
235
+ echo $this->getLink();
236
+ }
237
+
238
+ /**
239
+ * @return array
240
+ * @since 1.5.0
241
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
242
+ */
243
+ protected function get_data()
244
+ {
245
+ $data_to_print = [];
246
+
247
+ foreach((array)$this->data as $key => $value) {
248
+ $data_to_print[$key] = 'data-' . esc_attr($key) . '="' . esc_attr($value) . '"';
249
+ }
250
+
251
+ return $data_to_print;
252
+ }
253
+
254
+ /**
255
+ * @return array
256
+ * @since 1.5.0
257
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
258
+ */
259
+ protected function get_classes()
260
+ {
261
+ return array_map('esc_attr', $this->classes);
262
+ }
263
+
264
+ /**
265
+ * @throws \Exception
266
+ * @since 1.5.0
267
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
268
+ */
269
+ protected function build_wordpress()
270
+ {
271
+ if( ('wordpress' === $this->type || 'creativemotion' === $this->type) && !empty($this->base_path) ) {
272
+
273
+ $this->action = 'install';
274
+
275
+ if( $this->isPluginInstall() ) {
276
+ $this->action = 'deactivate';
277
+ if( !$this->isPluginActivate() ) {
278
+ $this->action = 'activate';
279
+ }
280
+ }
281
+
282
+ $this->addData('plugin-action', $this->action);
283
+ $this->addData('slug', $this->plugin_slug);
284
+ $this->addData('plugin', $this->base_path);
285
+
286
+ if( $this->action == 'activate' ) {
287
+ $this->addClass('button-primary');
288
+ } else {
289
+ $this->addClass('button-default');
290
+ }
291
+ }
292
+ }
293
+
294
+ /**
295
+ * Configurate button of internal components
296
+ *
297
+ * @throws \Exception
298
+ * @since 1.5.0
299
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
300
+ */
301
+ protected function build_internal()
302
+ {
303
+ if( $this->type != 'internal' ) {
304
+ return;
305
+ }
306
+
307
+ $this->action = 'activate';
308
+
309
+ if( $this->isPluginActivate() ) {
310
+ $this->action = 'deactivate';
311
+ }
312
+
313
+ $this->addData('plugin-action', $this->action);
314
+ $this->addData('plugin', $this->plugin_slug);
315
+
316
+ if( $this->action == 'activate' ) {
317
+ $this->addClass('button-primary');
318
+ } else {
319
+ $this->addClass('button-default');
320
+ }
321
+ }
322
+
323
+ /**
324
+ * Internalization for action buttons
325
+ *
326
+ * @return array
327
+ * @since 1.5.0
328
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
329
+ */
330
+ protected function get_i18n()
331
+ {
332
+ return [
333
+ 'activate' => __('Activate', 'clearfy'),
334
+ 'install' => __('Install', 'clearfy'),
335
+ 'deactivate' => __('Deactivate', 'clearfy'),
336
+ 'delete' => __('Delete', 'clearfy'),
337
+ 'loading' => __('Please wait...', 'clearfy'),
338
+ 'preparation' => __('Preparation...', 'clearfy'),
339
+ 'read' => __('Read more', 'clearfy')
340
+ ];
341
+ }
342
+
343
+
344
+ /**
345
+ * Allows you to get the base path to the plugin in the directory wp-content/plugins/
346
+ *
347
+ * @param $slug - slug for example "clearfy", "hide-login-page"
348
+ *
349
+ * @return int|null|string - "clearfy/clearfy.php"
350
+ */
351
+ protected function get_plugin_base_path_by_slug($slug)
352
+ {
353
+ // Check if the function get_plugins() is registered. It is necessary for the front-end
354
+ // usually get_plugins() only works in the admin panel.
355
+ if( !function_exists('get_plugins') ) {
356
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
357
+ }
358
+
359
+ $plugins = get_plugins();
360
+
361
+ foreach($plugins as $base_path => $plugin) {
362
+ if( strpos($base_path, rtrim(trim($slug))) !== false ) {
363
+ return $base_path;
364
+ }
365
+ }
366
+
367
+ return null;
368
+ }
369
+ }
370
+
admin/includes/classes/class.option.php CHANGED
@@ -1,110 +1,110 @@
1
- <?php
2
-
3
- /**
4
- * This file groups the settings for quick setup
5
- * @author Webcraftic <wordpress.webraftic@gmail.com>
6
- * @copyright (c) 16.09.2017, Webcraftic
7
- * @version 1.0
8
- */
9
-
10
- // Exit if accessed directly
11
- if( !defined('ABSPATH') ) {
12
- exit;
13
- }
14
-
15
- class WCL_Option {
16
-
17
- private $name;
18
- private $title;
19
- private $values;
20
- private $tags;
21
-
22
- /**
23
- * @param array $option_data
24
- * @throws Exception
25
- */
26
- public function __construct(array $option_data)
27
- {
28
- if( empty($option_data) ) {
29
- throw new Exception('Empty group_name attribute.');
30
- }
31
-
32
- foreach($option_data as $key => $value) {
33
- $this->$key = $value;
34
- }
35
- }
36
-
37
- /**
38
- * @return mixed
39
- */
40
- public function getName()
41
- {
42
- return $this->name;
43
- }
44
-
45
- /**
46
- * @return mixed
47
- */
48
- public function getTitle()
49
- {
50
- return $this->title;
51
- }
52
-
53
- /**
54
- * @param null $group_name
55
- * @return array
56
- */
57
- public function getValue($group_name = null)
58
- {
59
- if(
60
- !empty($group_name)
61
- && is_array($this->values)
62
- && isset($this->values[$group_name])
63
- ) {
64
- return $this->values[$group_name];
65
- }
66
-
67
- return !empty($this->values)
68
- ? $this->values
69
- : array();
70
- }
71
-
72
- /**
73
- * @return mixed
74
- */
75
- public function getTags()
76
- {
77
- return $this->tags;
78
- }
79
-
80
- /**
81
- * @param $group_name
82
- * @return bool
83
- */
84
- public function hasGroup($group_name)
85
- {
86
- if( !empty($this->tags) && in_array($group_name, $this->tags) ) {
87
- return true;
88
- }
89
-
90
- return false;
91
- }
92
-
93
- /**
94
- * @return WCL_Option[]
95
- */
96
- public static function getAllOptions()
97
- {
98
- $all_options = require(WCL_PLUGIN_DIR . '/admin/includes/options.php');
99
- $result = array();
100
-
101
- if( !empty($all_options) ) {
102
- foreach($all_options as $option_data) {
103
- $result[] = new WCL_Option($option_data);
104
- }
105
- }
106
-
107
- return $result;
108
- }
109
- }
110
-
1
+ <?php
2
+
3
+ /**
4
+ * This file groups the settings for quick setup
5
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
6
+ * @copyright (c) 16.09.2017, Webcraftic
7
+ * @version 1.0
8
+ */
9
+
10
+ // Exit if accessed directly
11
+ if( !defined('ABSPATH') ) {
12
+ exit;
13
+ }
14
+
15
+ class WCL_Option {
16
+
17
+ private $name;
18
+ private $title;
19
+ private $values;
20
+ private $tags;
21
+
22
+ /**
23
+ * @param array $option_data
24
+ * @throws Exception
25
+ */
26
+ public function __construct(array $option_data)
27
+ {
28
+ if( empty($option_data) ) {
29
+ throw new Exception('Empty group_name attribute.');
30
+ }
31
+
32
+ foreach($option_data as $key => $value) {
33
+ $this->$key = $value;
34
+ }
35
+ }
36
+
37
+ /**
38
+ * @return mixed
39
+ */
40
+ public function getName()
41
+ {
42
+ return $this->name;
43
+ }
44
+
45
+ /**
46
+ * @return mixed
47
+ */
48
+ public function getTitle()
49
+ {
50
+ return $this->title;
51
+ }
52
+
53
+ /**
54
+ * @param null $group_name
55
+ * @return array
56
+ */
57
+ public function getValue($group_name = null)
58
+ {
59
+ if(
60
+ !empty($group_name)
61
+ && is_array($this->values)
62
+ && isset($this->values[$group_name])
63
+ ) {
64
+ return $this->values[$group_name];
65
+ }
66
+
67
+ return !empty($this->values)
68
+ ? $this->values
69
+ : array();
70
+ }
71
+
72
+ /**
73
+ * @return mixed
74
+ */
75
+ public function getTags()
76
+ {
77
+ return $this->tags;
78
+ }
79
+
80
+ /**
81
+ * @param $group_name
82
+ * @return bool
83
+ */
84
+ public function hasGroup($group_name)
85
+ {
86
+ if( !empty($this->tags) && in_array($group_name, $this->tags) ) {
87
+ return true;
88
+ }
89
+
90
+ return false;
91
+ }
92
+
93
+ /**
94
+ * @return WCL_Option[]
95
+ */
96
+ public static function getAllOptions()
97
+ {
98
+ $all_options = require(WCL_PLUGIN_DIR . '/admin/includes/options.php');
99
+ $result = array();
100
+
101
+ if( !empty($all_options) ) {
102
+ foreach($all_options as $option_data) {
103
+ $result[] = new WCL_Option($option_data);
104
+ }
105
+ }
106
+
107
+ return $result;
108
+ }
109
+ }
110
+
admin/includes/compatibility.php CHANGED
@@ -1,96 +1,96 @@
1
- <?php
2
- /**
3
- * Compatibility with Clearfy old components
4
- *
5
- * @author Webcraftic <wordpress.webraftic@gmail.com>
6
- * @copyright (c) 22.10.2018, Webcraftic
7
- * @version 1.0
8
- */
9
-
10
- add_action( 'plugins_loaded', function () {
11
- if ( defined( 'WIO_PLUGIN_ACTIVE' ) ) {
12
- if ( ! file_exists( WP_PLUGIN_DIR . '/robin-image-optimizer/robin-image-optimizer.php' ) ) {
13
- return;
14
- }
15
-
16
- $plugin = get_plugin_data( WP_PLUGIN_DIR . '/robin-image-optimizer/robin-image-optimizer.php' );
17
-
18
- if ( isset( $plugin['Version'] ) && version_compare( $plugin['Version'], '1.0.8', '<=' ) ) {
19
- $notice = __( 'Please update the plugin Robin image Optimizer to the latest version, as it may not work correctly with the new version of Clearfy!', 'clearfy' );
20
- /**
21
- * Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина.
22
- * Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
23
- * иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
24
- *
25
- * @param Wbcr_Factory441_Plugin $plugin
26
- * @param Wbcr_FactoryPages440_ImpressiveThemplate $obj
27
- *
28
- * @return bool
29
- */
30
- add_action( 'wbcr/factory/pages/impressive/print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
31
- $obj->printErrorNotice( $notice );
32
- }, 10, 2 );
33
-
34
- // Специально для преидущей версии фреймворка (407)
35
- add_action( 'wbcr_factory_pages_407_imppage_print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
36
- $obj->printErrorNotice( $notice );
37
- }, 10, 2 );
38
- }
39
- }
40
-
41
- if ( defined( 'WHLP_PLUGIN_ACTIVE' ) ) {
42
- if ( ! file_exists( WP_PLUGIN_DIR . '/hide-login-page/hide-login-page.php' ) ) {
43
- return;
44
- }
45
-
46
- $plugin = get_plugin_data( WP_PLUGIN_DIR . '/hide-login-page/hide-login-page.php' );
47
-
48
- if ( isset( $plugin['Version'] ) && version_compare( $plugin['Version'], '1.0.5', '<=' ) ) {
49
- $notice = __( 'Please update the plugin Hide login page to the latest version, as it may not work correctly with the new version of Clearfy!', 'clearfy' );
50
- /**
51
- * Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина.
52
- * Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
53
- * иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
54
- *
55
- * @param Wbcr_Factory441_Plugin $plugin
56
- * @param Wbcr_FactoryPages440_ImpressiveThemplate $obj
57
- *
58
- * @return bool
59
- */
60
- add_action( 'wbcr/factory/pages/impressive/print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
61
- $obj->printErrorNotice( $notice );
62
- }, 10, 2 );
63
-
64
- // Специально для преидущей версии фреймворка (407)
65
- add_action( 'wbcr_factory_pages_407_imppage_print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
66
- $obj->printErrorNotice( $notice );
67
- }, 10, 2 );
68
- }
69
- }
70
-
71
- if ( defined( 'WCLRP_PLUGIN_ACTIVE' ) ) {
72
- add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) {
73
- if ( $plugin_name != WGZ_Plugin::app()->getPluginName() ) {
74
- return $notices;
75
- }
76
-
77
- if ( ! current_user_can( 'update_plugins' ) ) {
78
- return $notices;
79
- }
80
-
81
- $nonce_action = 'upgrade-plugin_' . WCLRP_PLUGIN_BASE;
82
- $upgrade_url = wp_nonce_url( self_admin_url( "update.php?action=upgrade-plugin&plugin=" . urlencode( WCLRP_PLUGIN_BASE ) ), $nonce_action );
83
- $notice_text = sprintf( __( 'You must <a href="%s">upgrade the premium version</a> of the Clearfy plugin to version 1.1.2, since the new Clearfy release isn\'t compatible with the previous version of the premium plugin.', 'clearfy' ), $upgrade_url );
84
-
85
- $notices[] = [
86
- 'id' => 'clearfy-package_-compatibility-113',
87
- 'type' => 'error',
88
- 'dismissible' => false,
89
- 'dismiss_expires' => 0,
90
- 'text' => '<p><b>' . __( 'Clearfy', 'clearfy' ) . ': </b>' . $notice_text . '</p>'
91
- ];
92
-
93
- return $notices;
94
- }, 10, 2 );
95
- }
96
  }, 30 );
1
+ <?php
2
+ /**
3
+ * Compatibility with Clearfy old components
4
+ *
5
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
6
+ * @copyright (c) 22.10.2018, Webcraftic
7
+ * @version 1.0
8
+ */
9
+
10
+ add_action( 'plugins_loaded', function () {
11
+ if ( defined( 'WIO_PLUGIN_ACTIVE' ) ) {
12
+ if ( ! file_exists( WP_PLUGIN_DIR . '/robin-image-optimizer/robin-image-optimizer.php' ) ) {
13
+ return;
14
+ }
15
+
16
+ $plugin = get_plugin_data( WP_PLUGIN_DIR . '/robin-image-optimizer/robin-image-optimizer.php' );
17
+
18
+ if ( isset( $plugin['Version'] ) && version_compare( $plugin['Version'], '1.0.8', '<=' ) ) {
19
+ $notice = __( 'Please update the plugin Robin image Optimizer to the latest version, as it may not work correctly with the new version of Clearfy!', 'clearfy' );
20
+ /**
21
+ * Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина.
22
+ * Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
23
+ * иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
24
+ *
25
+ * @param Wbcr_Factory444_Plugin $plugin
26
+ * @param Wbcr_FactoryPages443_ImpressiveThemplate $obj
27
+ *
28
+ * @return bool
29
+ */
30
+ add_action( 'wbcr/factory/pages/impressive/print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
31
+ $obj->printErrorNotice( $notice );
32
+ }, 10, 2 );
33
+
34
+ // Специально для преидущей версии фреймворка (407)
35
+ add_action( 'wbcr_factory_pages_407_imppage_print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
36
+ $obj->printErrorNotice( $notice );
37
+ }, 10, 2 );
38
+ }
39
+ }
40
+
41
+ if ( defined( 'WHLP_PLUGIN_ACTIVE' ) ) {
42
+ if ( ! file_exists( WP_PLUGIN_DIR . '/hide-login-page/hide-login-page.php' ) ) {
43
+ return;
44
+ }
45
+
46
+ $plugin = get_plugin_data( WP_PLUGIN_DIR . '/hide-login-page/hide-login-page.php' );
47
+
48
+ if ( isset( $plugin['Version'] ) && version_compare( $plugin['Version'], '1.0.5', '<=' ) ) {
49
+ $notice = __( 'Please update the plugin Hide login page to the latest version, as it may not work correctly with the new version of Clearfy!', 'clearfy' );
50
+ /**
51
+ * Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина.
52
+ * Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
53
+ * иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
54
+ *
55
+ * @param Wbcr_Factory444_Plugin $plugin
56
+ * @param Wbcr_FactoryPages443_ImpressiveThemplate $obj
57
+ *
58
+ * @return bool
59
+ */
60
+ add_action( 'wbcr/factory/pages/impressive/print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
61
+ $obj->printErrorNotice( $notice );
62
+ }, 10, 2 );
63
+
64
+ // Специально для преидущей версии фреймворка (407)
65
+ add_action( 'wbcr_factory_pages_407_imppage_print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
66
+ $obj->printErrorNotice( $notice );
67
+ }, 10, 2 );
68
+ }
69
+ }
70
+
71
+ if ( defined( 'WCLRP_PLUGIN_ACTIVE' ) ) {
72
+ add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) {
73
+ if ( $plugin_name != WGZ_Plugin::app()->getPluginName() ) {
74
+ return $notices;
75
+ }
76
+
77
+ if ( ! current_user_can( 'update_plugins' ) ) {
78
+ return $notices;
79
+ }
80
+
81
+ $nonce_action = 'upgrade-plugin_' . WCLRP_PLUGIN_BASE;
82
+ $upgrade_url = wp_nonce_url( self_admin_url( "update.php?action=upgrade-plugin&plugin=" . urlencode( WCLRP_PLUGIN_BASE ) ), $nonce_action );
83
+ $notice_text = sprintf( __( 'You must <a href="%s">upgrade the premium version</a> of the Clearfy plugin to version 1.1.2, since the new Clearfy release isn\'t compatible with the previous version of the premium plugin.', 'clearfy' ), $upgrade_url );
84
+
85
+ $notices[] = [
86
+ 'id' => 'clearfy-package_-compatibility-113',
87
+ 'type' => 'error',
88
+ 'dismissible' => false,
89
+ 'dismiss_expires' => 0,
90
+ 'text' => '<p><b>' . __( 'Clearfy', 'clearfy' ) . ': </b>' . $notice_text . '</p>'
91
+ ];
92
+
93
+ return $notices;
94
+ }, 10, 2 );
95
+ }
96
  }, 30 );
admin/includes/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
admin/includes/options.php CHANGED
@@ -1,398 +1,398 @@
1
- <?php
2
- /**
3
- * * This file groups the settings for quick setup
4
- * @author Webcraftic <wordpress.webraftic@gmail.com>
5
- * @copyright (c) 18.09.2017, Webcraftic
6
- * @version 1.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if( !defined('ABSPATH') ) {
11
- exit;
12
- }
13
-
14
- return apply_filters('wbcr_clearfy_group_options', array(
15
- /** ------------------------ Google services ----------------------------- */
16
- array(
17
- 'name' => 'lazy_load_google_fonts',
18
- 'title' => __('Google Fonts asynchronous', 'clearfy'),
19
- 'tags' => array()
20
- ),
21
- array(
22
- 'name' => 'disable_google_fonts',
23
- 'title' => __('Disable Google Fonts', 'clearfy'),
24
- 'tags' => array()
25
- ),
26
- array(
27
- 'name' => 'remove_iframe_google_maps',
28
- 'title' => __('Remove iframe Google maps', 'clearfy'),
29
- 'tags' => array()
30
- ),
31
- array(
32
- 'name' => 'exclude_from_disable_google_maps',
33
- 'title' => __('Exclude pages from Disable Google Maps filter', 'clearfy'),
34
- 'tags' => array()
35
- ),
36
- /** ------------------------ End google services ----------------------------- */
37
- array(
38
- 'name' => 'disable_google_maps',
39
- 'title' => __('Disable Google maps', 'clearfy'),
40
- 'tags' => array()
41
- ),
42
- /** ------------------------ Performance page ----------------------------- */
43
- array(
44
- 'name' => 'remove_xfn_link',
45
- 'title' => __('Removing XFN (XHTML Friends Network) Profile Link', 'clearfy'),
46
- 'tags' => array()
47
- ),
48
- array(
49
- 'name' => 'lazy_load_font_awesome',
50
- 'title' => __('Font Awesome asynchronous', 'clearfy'),
51
- 'tags' => array()
52
- ),
53
- array(
54
- 'name' => 'disable_dashicons',
55
- 'title' => __('Disable Dashicons', 'clearfy'),
56
- 'tags' => array('hide_my_wp')
57
- ),
58
- array(
59
- 'name' => 'disable_gravatars',
60
- 'title' => __('Disable gravatars', 'clearfy'),
61
- 'tags' => array()
62
- ),
63
- array(
64
- 'name' => 'disable_json_rest_api',
65
- 'title' => __('Remove REST API Links', 'clearfy'),
66
- 'tags' => array()
67
- ),
68
- array(
69
- 'name' => 'disable_emoji',
70
- 'title' => __('Disable Emojis', 'clearfy'),
71
- 'tags' => array('clear_code', 'hide_my_wp')
72
- ),
73
- /*array(
74
- 'name' => 'remove_dns_prefetch',
75
- 'title' => __('Remove dns-prefetch', 'clearfy'),
76
- 'tags' => array('clear_code')
77
- ),*/
78
-
79
- array(
80
- 'name' => 'remove_rsd_link',
81
- 'title' => __('Remove RSD Link', 'clearfy'),
82
- 'tags' => array('clear_code', 'hide_my_wp')
83
- ),
84
- array(
85
- 'name' => 'remove_wlw_link',
86
- 'title' => __('Remove wlwmanifest Link', 'clearfy'),
87
- 'tags' => array('clear_code', 'hide_my_wp')
88
- ),
89
- array(
90
- 'name' => 'remove_shortlink_link',
91
- 'title' => __('Remove Shortlink', 'clearfy'),
92
- 'tags' => array('clear_code', 'hide_my_wp')
93
- ),
94
- array(
95
- 'name' => 'remove_adjacent_posts_link',
96
- 'title' => __('Remove links to previous, next post', 'clearfy'),
97
- 'tags' => array('clear_code', 'hide_my_wp')
98
- ),
99
- array(
100
- 'name' => 'remove_recent_comments_style',
101
- 'title' => __('Remove .recentcomments styles', 'clearfy'),
102
- 'tags' => array('clear_code', 'hide_my_wp')
103
- ),
104
- /** ------------------------ End Performance page ----------------------------- */
105
- array(
106
- 'name' => 'content_image_auto_alt',
107
- 'title' => __('Automatically set the alt attribute', 'clearfy'),
108
- 'tags' => array('seo_optimize')
109
- ),
110
- array(
111
- 'name' => 'set_last_modified_headers',
112
- 'title' => __('Automatically insert the Last Modified header', 'clearfy'),
113
- 'tags' => array('seo_optimize')
114
- ),
115
- array(
116
- 'name' => 'if_modified_since_headers',
117
- 'title' => __('Return an If-Modified-Since responce', 'clearfy'),
118
- 'tags' => array('seo_optimize')
119
- ),
120
- array(
121
- 'name' => 'remove_last_item_breadcrumb_yoast',
122
- 'title' => __('Remove duplicate names in breadcrumbs WP SEO by Yoast', 'clearfy'),
123
- 'tags' => array('seo_optimize')
124
- ),
125
- array(
126
- 'name' => 'yoast_remove_image_from_xml_sitemap',
127
- 'title' => sprintf(__('Remove the tag %s from XML site map', 'clearfy'), 'image:image'),
128
- 'tags' => get_locale() == 'ru_RU' ? array('clear_code') : array()
129
- ),
130
- array(
131
- 'name' => 'yoast_remove_json_ld_search',
132
- 'title' => __('Disable JSON-LD sitelinks searchbox', 'clearfy'),
133
- 'tags' => array()
134
- ),
135
- array(
136
- 'name' => 'yoast_remove_json_ld_output',
137
- 'title' => __('Disable Yoast Structured Data', 'clearfy'),
138
- 'tags' => array()
139
- ),
140
- array(
141
- 'name' => 'yoast_remove_head_comment',
142
- 'title' => sprintf(__('Remove comment from %s section', 'clearfy'), 'head'),
143
- 'tags' => array('clear_code')
144
- ),
145
- array(
146
- 'name' => 'redirect_archives_date',
147
- 'title' => __('Remove archives date', 'clearfy'),
148
- 'tags' => array('seo_optimize')
149
- ),
150
- array(
151
- 'name' => 'redirect_archives_author',
152
- 'title' => __('Remove author archives ', 'clearfy'),
153
- 'tags' => array('seo_optimize')
154
- ),
155
- array(
156
- 'name' => 'redirect_archives_tag',
157
- 'title' => __('Remove archives tag', 'clearfy'),
158
- 'tags' => array()
159
- ),
160
- array(
161
- 'name' => 'attachment_pages_redirect',
162
- 'title' => __('Remove attachment pages', 'clearfy'),
163
- 'tags' => array('seo_optimize')
164
- ),
165
- array(
166
- 'name' => 'remove_single_pagination_duplicate',
167
- 'title' => __('Remove post pagination', 'clearfy'),
168
- 'tags' => array('recommended')
169
- ),
170
- array(
171
- 'name' => 'remove_replytocom',
172
- 'title' => __('Remove ?replytocom', 'clearfy'),
173
- 'tags' => array('seo_optimize')
174
- ),
175
- array(
176
- 'name' => 'remove_meta_generator',
177
- 'title' => __('Remove meta generator', 'clearfy'),
178
- 'tags' => array('clear_code', 'defence', 'hide_my_wp')
179
- ),
180
- array(
181
- 'name' => 'protect_author_get',
182
- 'title' => __('Hide author login', 'clearfy'),
183
- 'tags' => array('defence', 'hide_my_wp')
184
- ),
185
- array(
186
- 'name' => 'change_login_errors',
187
- 'title' => __('Hide errors when logging into the site', 'clearfy', 'hide_my_wp'),
188
- 'tags' => array('defence', 'hide_my_wp')
189
- ),
190
- array(
191
- 'name' => 'remove_style_version',
192
- 'title' => __('Remove Version from Stylesheet', 'clearfy', 'hide_my_wp'),
193
- 'tags' => array('clear_code', 'defence', 'hide_my_wp')
194
- ),
195
- array(
196
- 'name' => 'remove_js_version',
197
- 'title' => __('Remove Version from Script', 'clearfy'),
198
- 'tags' => array('clear_code', 'defence', 'hide_my_wp')
199
- ),
200
- array(
201
- 'name' => 'remove_unneeded_widget_page',
202
- 'title' => __('Remove the "Pages" widget', 'clearfy'),
203
- 'tags' => array('remove_default_widgets')
204
- ),
205
- array(
206
- 'name' => 'remove_unneeded_widget_calendar',
207
- 'title' => __('Remove calendar widget', 'clearfy'),
208
- 'tags' => array('remove_default_widgets')
209
- ),
210
- array(
211
- 'name' => 'remove_unneeded_widget_tag_cloud',
212
- 'title' => __('Remove the "Cloud of tags" widget', 'clearfy'),
213
- 'tags' => array('remove_default_widgets')
214
- ),
215
- array(
216
- 'name' => 'remove_unneeded_widget_archives',
217
- 'title' => __('Remove the "Archives" widget', 'clearfy'),
218
- 'tags' => array('remove_default_widgets')
219
- ),
220
- array(
221
- 'name' => 'remove_unneeded_widget_links',
222
- 'title' => __('Remove the "Links" widget', 'clearfy'),
223
- 'tags' => array('remove_default_widgets')
224
- ),
225
- array(
226
- 'name' => 'remove_unneeded_widget_meta',
227
- 'title' => __('Remove the "Meta" widget', 'clearfy'),
228
- 'tags' => array('remove_default_widgets')
229
- ),
230
- array(
231
- 'name' => 'remove_unneeded_widget_search',
232
- 'title' => __('Remove the "Search" widget', 'clearfy'),
233
- 'tags' => array('remove_default_widgets')
234
- ),
235
- array(
236
- 'name' => 'remove_unneeded_widget_text',
237
- 'title' => __('Remove the "Text" widget', 'clearfy'),
238
- 'tags' => array('remove_default_widgets')
239
- ),
240
- array(
241
- 'name' => 'remove_unneeded_widget_categories',
242
- 'title' => __('Remove the "Categories" widget', 'clearfy'),
243
- 'tags' => array('remove_default_widgets')
244
- ),
245
- array(
246
- 'name' => 'remove_unneeded_widget_recent_posts',
247
- 'title' => __('Remove the "Recent Posts" widget', 'clearfy'),
248
- 'tags' => array('remove_default_widgets')
249
- ),
250
- array(
251
- 'name' => 'remove_unneeded_widget_recent_comments',
252
- 'title' => __('Remove the "Recent Comments" widget', 'clearfy'),
253
- 'tags' => array('remove_default_widgets')
254
- ),
255
- array(
256
- 'name' => 'remove_unneeded_widget_text',
257
- 'title' => __('Remove the "Text" widget', 'clearfy'),
258
- 'tags' => array('remove_default_widgets')
259
- ),
260
- array(
261
- 'name' => 'remove_unneeded_widget_rss',
262
- 'title' => __('Remove the "RSS" widget', 'clearfy'),
263
- 'tags' => array('remove_default_widgets')
264
- ),
265
- array(
266
- 'name' => 'remove_unneeded_widget_menu',
267
- 'title' => __('Remove the "Menu" widget', 'clearfy'),
268
- 'tags' => array('remove_default_widgets')
269
- ),
270
- array(
271
- 'name' => 'remove_unneeded_widget_twenty_eleven_ephemera',
272
- 'title' => __('Remove the "Twenty Eleven Ephemera" widget', 'clearfy'),
273
- 'tags' => array('remove_default_widgets')
274
- ),
275
- array('name' => 'revisions_disable', 'title' => __('Disable revision', 'clearfy'), 'tags' => array()),
276
- array('name' => 'revision_limit', 'title' => __('Limit Post Revisions', 'clearfy'), 'tags' => array()),
277
- array('name' => 'last_modified_exclude', 'title' => __('Exclude pages:', 'clearfy'), 'tags' => array()),
278
- array(
279
- 'name' => 'right_robots_txt',
280
- 'title' => __('Create right robots.txt', 'clearfy'),
281
- 'tags' => array()
282
- ),
283
- array(
284
- 'name' => 'robots_txt_text',
285
- 'title' => __('You can edit the robots.txt file in the box below:', 'clearfy'),
286
- 'tags' => array()
287
- ),
288
- array('name' => 'quick_modes', 'title' => __('Quick mode', 'clearfy'), 'tags' => array()),
289
- array(
290
- 'name' => 'remove_jquery_migrate',
291
- 'title' => __('Remove jQuery Migrate', 'clearfy'),
292
- 'tags' => array()
293
- ),
294
- array('name' => 'disable_embeds', 'title' => __('Disable Embeds', 'clearfy'), 'tags' => array()),
295
- array('name' => 'disable_feed', 'title' => __('Disable RSS feeds', 'clearfy'), 'tags' => array()),
296
- array(
297
- 'name' => 'remove_unnecessary_link_admin_bar',
298
- 'title' => __('Removes links to wordpress.org site from the admin bar', 'clearfy'),
299
- 'tags' => array()
300
- ),
301
- array(
302
- 'name' => 'remove_style_version',
303
- 'title' => __('Remove Version from Stylesheet', 'clearfy'),
304
- 'tags' => array('hide_my_wp')
305
- ),
306
- array(
307
- 'name' => 'remove_js_version',
308
- 'title' => __('Remove Version from Script', 'clearfy'),
309
- 'tags' => array('hide_my_wp')
310
- ),
311
- array(
312
- 'name' => 'remove_version_exclude',
313
- 'title' => __('Eclude stylesheet/script file names', 'clearfy'),
314
- 'tags' => array()
315
- ),
316
- array(
317
- 'name' => 'enable_wordpres_sanitize',
318
- 'title' => __('Enable Sanitization of WordPress', 'clearfy'),
319
- 'tags' => array()
320
- ),
321
- array(
322
- 'name' => 'disable_admin_bar',
323
- 'title' => __('Disable admin top bar', 'clearfy'),
324
- 'tags' => array()
325
- ),
326
- array(
327
- 'name' => 'disable_admin_bar_logo',
328
- 'title' => __('Remove admin bar WP logo', 'clearfy'),
329
- 'tags' => array()
330
- ),
331
- array(
332
- 'name' => 'replace_howdy_welcome',
333
- 'title' => __('Replace "Howdy" text with "Welcome"', 'clearfy'),
334
- 'tags' => array()
335
- ),
336
- array(
337
- 'name' => 'revisions_disable',
338
- 'title' => __('Disable revision', 'clearfy'),
339
- 'tags' => array()
340
- ),
341
- array(
342
- 'name' => 'revision_limit',
343
- 'title' => __('Limit Post Revisions', 'update-services'),
344
- 'tags' => array()
345
- ),
346
- array(
347
- 'name' => 'disable_post_autosave',
348
- 'title' => __('Disable autosave', 'clearfy'),
349
- 'tags' => array()
350
- ),
351
- array(
352
- 'name' => 'disable_texturization',
353
- 'title' => __('Disable Texturization - Smart Quotes', 'clearfy'),
354
- 'tags' => array()
355
- ),
356
- array(
357
- 'name' => 'disable_auto_correct_dangit',
358
- 'title' => __('Disable capitalization in Wordpress branding', 'clearfy'),
359
- 'tags' => array()
360
- ),
361
- array(
362
- 'name' => 'disable_auto_paragraph',
363
- 'title' => __('Disable auto inserted paragraphs (i.e. p tags)', 'clearfy'),
364
- 'tags' => array()
365
- ),
366
- array(
367
- 'name' => 'disable_heartbeat',
368
- 'title' => __('Disable Heartbeat', 'update-services'),
369
- 'tags' => array()
370
- ),
371
- array(
372
- 'name' => 'heartbeat_frequency',
373
- 'title' => __('Heartbeat frequency', 'update-services'),
374
- 'tags' => array()
375
- ),
376
- array(
377
- 'name' => 'remove_html_comments',
378
- 'title' => __('Remove html comments', 'clearfy'),
379
- 'tags' => array()
380
- ),
381
- array(
382
- 'name' => 'deactive_preinstall_components',
383
- 'title' => __('Deactivate preinstall components', 'clearfy'),
384
- 'tags' => array()
385
- ),
386
- array(
387
- 'name' => 'freemius_activated_addons',
388
- 'title' => __('Freemius activated addons', 'clearfy'),
389
- 'tags' => array()
390
- ),
391
- /** ------------------------ Clearfy settings ----------------------------- */
392
- array(
393
- 'name' => 'disable_clearfy_extra_menu',
394
- 'title' => __('Disable menu in adminbar', 'clearfy'),
395
- 'tags' => array()
396
- )
397
-
398
- ));
1
+ <?php
2
+ /**
3
+ * * This file groups the settings for quick setup
4
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
5
+ * @copyright (c) 18.09.2017, Webcraftic
6
+ * @version 1.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if( !defined('ABSPATH') ) {
11
+ exit;
12
+ }
13
+
14
+ return apply_filters('wbcr_clearfy_group_options', array(
15
+ /** ------------------------ Google services ----------------------------- */
16
+ array(
17
+ 'name' => 'lazy_load_google_fonts',
18
+ 'title' => __('Google Fonts asynchronous', 'clearfy'),
19
+ 'tags' => array()
20
+ ),
21
+ array(
22
+ 'name' => 'disable_google_fonts',
23
+ 'title' => __('Disable Google Fonts', 'clearfy'),
24
+ 'tags' => array()
25
+ ),
26
+ array(
27
+ 'name' => 'remove_iframe_google_maps',
28
+ 'title' => __('Remove iframe Google maps', 'clearfy'),
29
+ 'tags' => array()
30
+ ),
31
+ array(
32
+ 'name' => 'exclude_from_disable_google_maps',
33
+ 'title' => __('Exclude pages from Disable Google Maps filter', 'clearfy'),
34
+ 'tags' => array()
35
+ ),
36
+ /** ------------------------ End google services ----------------------------- */
37
+ array(
38
+ 'name' => 'disable_google_maps',
39
+ 'title' => __('Disable Google maps', 'clearfy'),
40
+ 'tags' => array()
41
+ ),
42
+ /** ------------------------ Performance page ----------------------------- */
43
+ array(
44
+ 'name' => 'remove_xfn_link',
45
+ 'title' => __('Removing XFN (XHTML Friends Network) Profile Link', 'clearfy'),
46
+ 'tags' => array()
47
+ ),
48
+ array(
49
+ 'name' => 'lazy_load_font_awesome',
50
+ 'title' => __('Font Awesome asynchronous', 'clearfy'),
51
+ 'tags' => array()
52
+ ),
53
+ array(
54
+ 'name' => 'disable_dashicons',
55
+ 'title' => __('Disable Dashicons', 'clearfy'),
56
+ 'tags' => array('hide_my_wp')
57
+ ),
58
+ array(
59
+ 'name' => 'disable_gravatars',
60
+ 'title' => __('Disable gravatars', 'clearfy'),
61
+ 'tags' => array()
62
+ ),
63
+ array(
64
+ 'name' => 'disable_json_rest_api',
65
+ 'title' => __('Remove REST API Links', 'clearfy'),
66
+ 'tags' => array()
67
+ ),
68
+ array(
69
+ 'name' => 'disable_emoji',
70
+ 'title' => __('Disable Emojis', 'clearfy'),
71
+ 'tags' => array('clear_code', 'hide_my_wp')
72
+ ),
73
+ /*array(
74
+ 'name' => 'remove_dns_prefetch',
75
+ 'title' => __('Remove dns-prefetch', 'clearfy'),
76
+ 'tags' => array('clear_code')
77
+ ),*/
78
+
79
+ array(
80
+ 'name' => 'remove_rsd_link',
81
+ 'title' => __('Remove RSD Link', 'clearfy'),
82
+ 'tags' => array('clear_code', 'hide_my_wp')
83
+ ),
84
+ array(
85
+ 'name' => 'remove_wlw_link',
86
+ 'title' => __('Remove wlwmanifest Link', 'clearfy'),
87
+ 'tags' => array('clear_code', 'hide_my_wp')
88
+ ),
89
+ array(
90
+ 'name' => 'remove_shortlink_link',
91
+ 'title' => __('Remove Shortlink', 'clearfy'),
92
+ 'tags' => array('clear_code', 'hide_my_wp')
93
+ ),
94
+ array(
95
+ 'name' => 'remove_adjacent_posts_link',
96
+ 'title' => __('Remove links to previous, next post', 'clearfy'),
97
+ 'tags' => array('clear_code', 'hide_my_wp')
98
+ ),
99
+ array(
100
+ 'name' => 'remove_recent_comments_style',
101
+ 'title' => __('Remove .recentcomments styles', 'clearfy'),
102
+ 'tags' => array('clear_code', 'hide_my_wp')
103
+ ),
104
+ /** ------------------------ End Performance page ----------------------------- */
105
+ array(
106
+ 'name' => 'content_image_auto_alt',
107
+ 'title' => __('Automatically set the alt attribute', 'clearfy'),
108
+ 'tags' => array('seo_optimize')
109
+ ),
110
+ array(
111
+ 'name' => 'set_last_modified_headers',
112
+ 'title' => __('Automatically insert the Last Modified header', 'clearfy'),
113
+ 'tags' => array('seo_optimize')
114
+ ),
115
+ array(
116
+ 'name' => 'if_modified_since_headers',
117
+ 'title' => __('Return an If-Modified-Since responce', 'clearfy'),
118
+ 'tags' => array('seo_optimize')
119
+ ),
120
+ array(
121
+ 'name' => 'remove_last_item_breadcrumb_yoast',
122
+ 'title' => __('Remove duplicate names in breadcrumbs WP SEO by Yoast', 'clearfy'),
123
+ 'tags' => array('seo_optimize')
124
+ ),
125
+ array(
126
+ 'name' => 'yoast_remove_image_from_xml_sitemap',
127
+ 'title' => sprintf(__('Remove the tag %s from XML site map', 'clearfy'), 'image:image'),
128
+ 'tags' => get_locale() == 'ru_RU' ? array('clear_code') : array()
129
+ ),
130
+ array(
131
+ 'name' => 'yoast_remove_json_ld_search',
132
+ 'title' => __('Disable JSON-LD sitelinks searchbox', 'clearfy'),
133
+ 'tags' => array()
134
+ ),
135
+ array(
136
+ 'name' => 'yoast_remove_json_ld_output',
137
+ 'title' => __('Disable Yoast Structured Data', 'clearfy'),
138
+ 'tags' => array()
139
+ ),
140
+ array(
141
+ 'name' => 'yoast_remove_head_comment',
142
+ 'title' => sprintf(__('Remove comment from %s section', 'clearfy'), 'head'),
143
+ 'tags' => array('clear_code')
144
+ ),
145
+ array(
146
+ 'name' => 'redirect_archives_date',
147
+ 'title' => __('Remove archives date', 'clearfy'),
148
+ 'tags' => array('seo_optimize')
149
+ ),
150
+ array(
151
+ 'name' => 'redirect_archives_author',
152
+ 'title' => __('Remove author archives ', 'clearfy'),
153
+ 'tags' => array('seo_optimize')
154
+ ),
155
+ array(
156
+ 'name' => 'redirect_archives_tag',
157
+ 'title' => __('Remove archives tag', 'clearfy'),
158
+ 'tags' => array()
159
+ ),
160
+ array(
161
+ 'name' => 'attachment_pages_redirect',
162
+ 'title' => __('Remove attachment pages', 'clearfy'),
163
+ 'tags' => array('seo_optimize')
164
+ ),
165
+ array(
166
+ 'name' => 'remove_single_pagination_duplicate',
167
+ 'title' => __('Remove post pagination', 'clearfy'),
168
+ 'tags' => array('recommended')
169
+ ),
170
+ array(
171
+ 'name' => 'remove_replytocom',
172
+ 'title' => __('Remove ?replytocom', 'clearfy'),
173
+ 'tags' => array('seo_optimize')
174
+ ),
175
+ array(
176
+ 'name' => 'remove_meta_generator',
177
+ 'title' => __('Remove meta generator', 'clearfy'),
178
+ 'tags' => array('clear_code', 'defence', 'hide_my_wp')
179
+ ),
180
+ array(
181
+ 'name' => 'protect_author_get',
182
+ 'title' => __('Hide author login', 'clearfy'),
183
+ 'tags' => array('defence', 'hide_my_wp')
184
+ ),
185
+ array(
186
+ 'name' => 'change_login_errors',
187
+ 'title' => __('Hide errors when logging into the site', 'clearfy', 'hide_my_wp'),
188
+ 'tags' => array('defence', 'hide_my_wp')
189
+ ),
190
+ array(
191
+ 'name' => 'remove_style_version',
192
+ 'title' => __('Remove Version from Stylesheet', 'clearfy', 'hide_my_wp'),
193
+ 'tags' => array('clear_code', 'defence', 'hide_my_wp')
194
+ ),
195
+ array(
196
+ 'name' => 'remove_js_version',
197
+ 'title' => __('Remove Version from Script', 'clearfy'),
198
+ 'tags' => array('clear_code', 'defence', 'hide_my_wp')
199
+ ),
200
+ array(
201
+ 'name' => 'remove_unneeded_widget_page',
202
+ 'title' => __('Remove the "Pages" widget', 'clearfy'),
203
+ 'tags' => array('remove_default_widgets')
204
+ ),
205
+ array(
206
+ 'name' => 'remove_unneeded_widget_calendar',
207
+ 'title' => __('Remove calendar widget', 'clearfy'),
208
+ 'tags' => array('remove_default_widgets')
209
+ ),
210
+ array(
211
+ 'name' => 'remove_unneeded_widget_tag_cloud',
212
+ 'title' => __('Remove the "Cloud of tags" widget', 'clearfy'),
213
+ 'tags' => array('remove_default_widgets')
214
+ ),
215
+ array(
216
+ 'name' => 'remove_unneeded_widget_archives',
217
+ 'title' => __('Remove the "Archives" widget', 'clearfy'),
218
+ 'tags' => array('remove_default_widgets')
219
+ ),
220
+ array(
221
+ 'name' => 'remove_unneeded_widget_links',
222
+ 'title' => __('Remove the "Links" widget', 'clearfy'),
223
+ 'tags' => array('remove_default_widgets')
224
+ ),
225
+ array(
226
+ 'name' => 'remove_unneeded_widget_meta',
227
+ 'title' => __('Remove the "Meta" widget', 'clearfy'),
228
+ 'tags' => array('remove_default_widgets')
229
+ ),
230
+ array(
231
+ 'name' => 'remove_unneeded_widget_search',
232
+ 'title' => __('Remove the "Search" widget', 'clearfy'),
233
+ 'tags' => array('remove_default_widgets')
234
+ ),
235
+ array(
236
+ 'name' => 'remove_unneeded_widget_text',
237
+ 'title' => __('Remove the "Text" widget', 'clearfy'),
238
+ 'tags' => array('remove_default_widgets')
239
+ ),
240
+ array(
241
+ 'name' => 'remove_unneeded_widget_categories',
242
+ 'title' => __('Remove the "Categories" widget', 'clearfy'),
243
+ 'tags' => array('remove_default_widgets')
244
+ ),
245
+ array(
246
+ 'name' => 'remove_unneeded_widget_recent_posts',
247
+ 'title' => __('Remove the "Recent Posts" widget', 'clearfy'),
248
+ 'tags' => array('remove_default_widgets')
249
+ ),
250
+ array(
251
+ 'name' => 'remove_unneeded_widget_recent_comments',
252
+ 'title' => __('Remove the "Recent Comments" widget', 'clearfy'),
253
+ 'tags' => array('remove_default_widgets')
254
+ ),
255
+ array(
256
+ 'name' => 'remove_unneeded_widget_text',
257
+ 'title' => __('Remove the "Text" widget', 'clearfy'),
258
+ 'tags' => array('remove_default_widgets')
259
+ ),
260
+ array(
261
+ 'name' => 'remove_unneeded_widget_rss',
262
+ 'title' => __('Remove the "RSS" widget', 'clearfy'),
263
+ 'tags' => array('remove_default_widgets')
264
+ ),
265
+ array(
266
+ 'name' => 'remove_unneeded_widget_menu',
267
+ 'title' => __('Remove the "Menu" widget', 'clearfy'),
268
+ 'tags' => array('remove_default_widgets')
269
+ ),
270
+ array(
271
+ 'name' => 'remove_unneeded_widget_twenty_eleven_ephemera',
272
+ 'title' => __('Remove the "Twenty Eleven Ephemera" widget', 'clearfy'),
273
+ 'tags' => array('remove_default_widgets')
274
+ ),
275
+ array('name' => 'revisions_disable', 'title' => __('Disable revision', 'clearfy'), 'tags' => array()),
276
+ array('name' => 'revision_limit', 'title' => __('Limit Post Revisions', 'clearfy'), 'tags' => array()),
277
+ array('name' => 'last_modified_exclude', 'title' => __('Exclude pages:', 'clearfy'), 'tags' => array()),
278
+ array(
279
+ 'name' => 'right_robots_txt',
280
+ 'title' => __('Create right robots.txt', 'clearfy'),
281
+ 'tags' => array()
282
+ ),
283
+ array(
284
+ 'name' => 'robots_txt_text',
285
+ 'title' => __('You can edit the robots.txt file in the box below:', 'clearfy'),
286
+ 'tags' => array()
287
+ ),
288
+ array('name' => 'quick_modes', 'title' => __('Quick mode', 'clearfy'), 'tags' => array()),
289
+ array(
290
+ 'name' => 'remove_jquery_migrate',
291
+ 'title' => __('Remove jQuery Migrate', 'clearfy'),
292
+ 'tags' => array()
293
+ ),
294
+ array('name' => 'disable_embeds', 'title' => __('Disable Embeds', 'clearfy'), 'tags' => array()),
295
+ array('name' => 'disable_feed', 'title' => __('Disable RSS feeds', 'clearfy'), 'tags' => array()),
296
+ array(
297
+ 'name' => 'remove_unnecessary_link_admin_bar',
298
+ 'title' => __('Removes links to wordpress.org site from the admin bar', 'clearfy'),
299
+ 'tags' => array()
300
+ ),
301
+ array(
302
+ 'name' => 'remove_style_version',
303
+ 'title' => __('Remove Version from Stylesheet', 'clearfy'),
304
+ 'tags' => array('hide_my_wp')
305
+ ),
306
+ array(
307
+ 'name' => 'remove_js_version',
308
+ 'title' => __('Remove Version from Script', 'clearfy'),
309
+ 'tags' => array('hide_my_wp')
310
+ ),
311
+ array(
312
+ 'name' => 'remove_version_exclude',
313
+ 'title' => __('Eclude stylesheet/script file names', 'clearfy'),
314
+ 'tags' => array()
315
+ ),
316
+ array(
317
+ 'name' => 'enable_wordpres_sanitize',
318
+ 'title' => __('Enable Sanitization of WordPress', 'clearfy'),
319
+ 'tags' => array()
320
+ ),
321
+ array(
322
+ 'name' => 'disable_admin_bar',
323
+ 'title' => __('Disable admin top bar', 'clearfy'),
324
+ 'tags' => array()
325
+ ),
326
+ array(
327
+ 'name' => 'disable_admin_bar_logo',
328
+ 'title' => __('Remove admin bar WP logo', 'clearfy'),
329
+ 'tags' => array()
330
+ ),
331
+ array(
332
+ 'name' => 'replace_howdy_welcome',
333
+ 'title' => __('Replace "Howdy" text with "Welcome"', 'clearfy'),
334
+ 'tags' => array()
335
+ ),
336
+ array(
337
+ 'name' => 'revisions_disable',
338
+ 'title' => __('Disable revision', 'clearfy'),
339
+ 'tags' => array()
340
+ ),
341
+ array(
342
+ 'name' => 'revision_limit',
343
+ 'title' => __('Limit Post Revisions', 'update-services'),
344
+ 'tags' => array()
345
+ ),
346
+ array(
347
+ 'name' => 'disable_post_autosave',
348
+ 'title' => __('Disable autosave', 'clearfy'),
349
+ 'tags' => array()
350
+ ),
351
+ array(
352
+ 'name' => 'disable_texturization',
353
+ 'title' => __('Disable Texturization - Smart Quotes', 'clearfy'),
354
+ 'tags' => array()
355
+ ),
356
+ array(
357
+ 'name' => 'disable_auto_correct_dangit',
358
+ 'title' => __('Disable capitalization in Wordpress branding', 'clearfy'),
359
+ 'tags' => array()
360
+ ),
361
+ array(
362
+ 'name' => 'disable_auto_paragraph',
363
+ 'title' => __('Disable auto inserted paragraphs (i.e. p tags)', 'clearfy'),
364
+ 'tags' => array()
365
+ ),
366
+ array(
367
+ 'name' => 'disable_heartbeat',
368
+ 'title' => __('Disable Heartbeat', 'update-services'),
369
+ 'tags' => array()
370
+ ),
371
+ array(
372
+ 'name' => 'heartbeat_frequency',
373
+ 'title' => __('Heartbeat frequency', 'update-services'),
374
+ 'tags' => array()
375
+ ),
376
+ array(
377
+ 'name' => 'remove_html_comments',
378
+ 'title' => __('Remove html comments', 'clearfy'),
379
+ 'tags' => array()
380
+ ),
381
+ array(
382
+ 'name' => 'deactive_preinstall_components',
383
+ 'title' => __('Deactivate preinstall components', 'clearfy'),
384
+ 'tags' => array()
385
+ ),
386
+ array(
387
+ 'name' => 'freemius_activated_addons',
388
+ 'title' => __('Freemius activated addons', 'clearfy'),
389
+ 'tags' => array()
390
+ ),
391
+ /** ------------------------ Clearfy settings ----------------------------- */
392
+ array(
393
+ 'name' => 'disable_clearfy_extra_menu',
394
+ 'title' => __('Disable menu in adminbar', 'clearfy'),
395
+ 'tags' => array()
396
+ )
397
+
398
+ ));
admin/includes/sidebar-widgets.php CHANGED
@@ -1,85 +1,85 @@
1
- <?php
2
- /**
3
- * Sidebar widgets
4
- *
5
- * @author Webcraftic <wordpress.webraftic@gmail.com>
6
- * @copyright (c) 01.12.2018, Webcraftic
7
- * @version 1.0
8
- */
9
-
10
- /**
11
- * Return premium widget markup
12
- *
13
- * @return string
14
- */
15
- function wbcr_clearfy_get_sidebar_premium_widget()
16
- {
17
-
18
- $buy_premium_url = WCL_Plugin::app()->get_support()->get_pricing_url(true, 'license_page');
19
-
20
- ob_start();
21
- ?>
22
- <div id="wbcr-clr-go-to-premium-widget" class="wbcr-factory-sidebar-widget">
23
- <p>
24
- <strong><?php _e('Activation Clearfy Business', 'clearfy'); ?></strong>
25
- </p>
26
- <div class="wbcr-clr-go-to-premium-widget-body">
27
- <p><?php _e('<b>Clearfy Business</b> is a paid package of components for the popular free WordPress plugin named Clearfy. You get access to all paid components at one price.', 'clearfy') ?></p>
28
- <p><?php _e('Paid license guarantees that you can download and update existing and future paid components of the plugin.', 'clearfy') ?></p>
29
- <a href="<?= $buy_premium_url ?>" class="wbcr-clr-purchase-premium" target="_blank" rel="noopener">
30
- <span class="btn btn-gold btn-inner-wrap">
31
- <i class="fa fa-star"></i> <?php _e('Upgrade to Clearfy Business', 'clearfy') ?>
32
- <i class="fa fa-star"></i>
33
- </span>
34
- </a>
35
- </div>
36
- </div>
37
- <?php
38
-
39
- $output = ob_get_contents();
40
-
41
- ob_end_clean();
42
-
43
- return $output;
44
- }
45
-
46
- /**
47
- * Return support widget markup
48
- *
49
- * @return string
50
- */
51
- function wbcr_clearfy_get_sidebar_support_widget()
52
- {
53
-
54
- $free_support_url = WCL_Plugin::app()->get_support()->get_contacts_url(true, 'support_widget');
55
- $page_hot_support_url = WCL_Plugin::app()->get_support()->get_tracking_page_url('hot-support', 'support_widget');
56
-
57
- ob_start();
58
- ?>
59
- <div id="wbcr-clr-support-widget" class="wbcr-factory-sidebar-widget">
60
- <p><strong><?php _e('Having Issues?', 'clearfy'); ?></strong></p>
61
- <div class="wbcr-clr-support-widget-body">
62
- <p>
63
- <?php _e('We provide free support for this plugin. If you are pushed with a problem, just create a new ticket. We will definitely help you!', 'clearfy'); ?>
64
- </p>
65
- <ul>
66
- <li><span class="dashicons dashicons-sos"></span>
67
- <a href="<?= $free_support_url ?>" target="_blank"
68
- rel="noopener"><?php _e('Get starting free support', 'clearfy'); ?></a>
69
- </li>
70
- <li style="margin-top: 15px;background: #fff4f1;padding: 10px;color: #a58074;">
71
- <span class="dashicons dashicons-warning"></span>
72
- <?php printf(__('If you find a php error or a vulnerability in plugin, you can <a href="%s" target="_blank" rel="noopener">create ticket</a> in hot support that we responded instantly.', 'clearfy'), $page_hot_support_url); ?>
73
- </li>
74
- </ul>
75
- </div>
76
- </div>
77
- <?php
78
-
79
- $output = ob_get_contents();
80
-
81
- ob_end_clean();
82
-
83
- return $output;
84
- }
85
-
1
+ <?php
2
+ /**
3
+ * Sidebar widgets
4
+ *
5
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
6
+ * @copyright (c) 01.12.2018, Webcraftic
7
+ * @version 1.0
8
+ */
9
+
10
+ /**
11
+ * Return premium widget markup
12
+ *
13
+ * @return string
14
+ */
15
+ function wbcr_clearfy_get_sidebar_premium_widget()
16
+ {
17
+
18
+ $buy_premium_url = WCL_Plugin::app()->get_support()->get_pricing_url(true, 'license_page');
19
+
20
+ ob_start();
21
+ ?>
22
+ <div id="wbcr-clr-go-to-premium-widget" class="wbcr-factory-sidebar-widget">
23
+ <p>
24
+ <strong><?php _e('Activation Clearfy Business', 'clearfy'); ?></strong>
25
+ </p>
26
+ <div class="wbcr-clr-go-to-premium-widget-body">
27
+ <p><?php _e('<b>Clearfy Business</b> is a paid package of components for the popular free WordPress plugin named Clearfy. You get access to all paid components at one price.', 'clearfy') ?></p>
28
+ <p><?php _e('Paid license guarantees that you can download and update existing and future paid components of the plugin.', 'clearfy') ?></p>
29
+ <a href="<?= $buy_premium_url ?>" class="wbcr-clr-purchase-premium" target="_blank" rel="noopener">
30
+ <span class="btn btn-gold btn-inner-wrap">
31
+ <i class="fa fa-star"></i> <?php _e('Upgrade to Clearfy Business', 'clearfy') ?>
32
+ <i class="fa fa-star"></i>
33
+ </span>
34
+ </a>
35
+ </div>
36
+ </div>
37
+ <?php
38
+
39
+ $output = ob_get_contents();
40
+
41
+ ob_end_clean();
42
+
43
+ return $output;
44
+ }
45
+
46
+ /**
47
+ * Return support widget markup
48
+ *
49
+ * @return string
50
+ */
51
+ function wbcr_clearfy_get_sidebar_support_widget()
52
+ {
53
+
54
+ $free_support_url = WCL_Plugin::app()->get_support()->get_contacts_url(true, 'support_widget');
55
+ $page_hot_support_url = WCL_Plugin::app()->get_support()->get_tracking_page_url('hot-support', 'support_widget');
56
+
57
+ ob_start();
58
+ ?>
59
+ <div id="wbcr-clr-support-widget" class="wbcr-factory-sidebar-widget">
60
+ <p><strong><?php _e('Having Issues?', 'clearfy'); ?></strong></p>
61
+ <div class="wbcr-clr-support-widget-body">
62
+ <p>
63
+ <?php _e('We provide free support for this plugin. If you are pushed with a problem, just create a new ticket. We will definitely help you!', 'clearfy'); ?>
64
+ </p>
65
+ <ul>
66
+ <li><span class="dashicons dashicons-sos"></span>
67
+ <a href="<?= $free_support_url ?>" target="_blank"
68
+ rel="noopener"><?php _e('Get starting free support', 'clearfy'); ?></a>
69
+ </li>
70
+ <li style="margin-top: 15px;background: #fff4f1;padding: 10px;color: #a58074;">
71
+ <span class="dashicons dashicons-warning"></span>
72
+ <?php printf(__('If you find a php error or a vulnerability in plugin, you can <a href="%s" target="_blank" rel="noopener">create ticket</a> in hot support that we responded instantly.', 'clearfy'), $page_hot_support_url); ?>
73
+ </li>
74
+ </ul>
75
+ </div>
76
+ </div>
77
+ <?php
78
+
79
+ $output = ob_get_contents();
80
+
81
+ ob_end_clean();
82
+
83
+ return $output;
84
+ }
85
+
admin/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
admin/pages/class-page.php CHANGED
@@ -1,45 +1,45 @@
1
- <?php
2
- /**
3
- * Default page
4
- *
5
- * @author Webcraftic <wordpress.webraftic@gmail.com>, Alexander Kovalev <alex.kovalevv@gmail.com>
6
- * @copyright (c) 17.08.2019, Webcraftic
7
- * @version 1.0
8
- */
9
-
10
- class WCL_Page extends Wbcr_FactoryClearfy232_PageBase {
11
-
12
- /**
13
- * Действие выполняется для всех страниц Clearfy и его компонентах.
14
- * Это простое предложение перейти на PRO версию.
15
- */
16
- public function multisiteProAction()
17
- {
18
- if( is_multisite() && $this->plugin->isNetworkActive() ) {
19
-
20
- $license_page_url = $this->getBaseUrl('clearfy_license');
21
- $upgrade_url = $this->plugin->get_support()->get_pricing_url(true, 'multisite_save_settings');
22
-
23
- $html = '<div class="wbcr-factory-clearfy-232-multisite-suggetion">';
24
- $html .= '<div class="wbcr-factory-inner-contanier">';
25
- $html .= '<h3>' . __('Upgrade to Clearfy Business', 'wbcr_factory_clearfy_232') . '</h3>';
26
- $html .= '<p>' . __('Oops... Sorry for the inconvenience caused!', 'wbcr_factory_clearfy_232') . '</p>';
27
- $html .= '<p>' . __('Complete multisite support is available in Clearfy Business and Clearfy Business Revolution packages only!', 'wbcr_factory_clearfy_232') . '</p>';
28
- $html .= '<p>' . __('You can activate the plugin on each website and use it with zero limitations. But you can’t save the plugin’s settings under the Super Administrator role!', 'wbcr_factory_clearfy_232') . '</p>';
29
- $html .= '<p style="margin-top:20px">';
30
- $html .= '<a href="' . $license_page_url . '" class="wbcr-factory-activate-premium" rel="noopener">' . __('Activate license ', 'wbcr_factory_clearfy_232') . '</a> ';
31
- $html .= '<a href="' . $upgrade_url . '" class="wbcr-factory-purchase-premium" target="_blank" rel="noopener">' . __('Upgrade to Clearfy Business', 'wbcr_factory_clearfy_232') . '</a>';
32
- $html .= '</p>';
33
- $html .= '</div>';
34
- $html .= '</div>';
35
-
36
- $this->showPage($html);
37
-
38
- return;
39
- }
40
-
41
- $this->redirectToAction('index');
42
- }
43
-
44
-
45
  }
1
+ <?php
2
+ /**
3
+ * Default page
4
+ *
5
+ * @author Webcraftic <wordpress.webraftic@gmail.com>, Alexander Kovalev <alex.kovalevv@gmail.com>
6
+ * @copyright (c) 17.08.2019, Webcraftic
7
+ * @version 1.0
8
+ */
9
+
10
+ class WCL_Page extends Wbcr_FactoryClearfy235_PageBase {
11
+
12
+ /**
13
+ * Действие выполняется для всех страниц Clearfy и его компонентах.
14
+ * Это простое предложение перейти на PRO версию.
15
+ */
16
+ public function multisiteProAction()
17
+ {
18
+ if( is_multisite() && $this->plugin->isNetworkActive() ) {
19
+
20
+ $license_page_url = $this->getBaseUrl('clearfy_license');
21
+ $upgrade_url = $this->plugin->get_support()->get_pricing_url(true, 'multisite_save_settings');
22
+
23
+ $html = '<div class="wbcr-factory-clearfy-235-multisite-suggetion">';
24
+ $html .= '<div class="wbcr-factory-inner-contanier">';
25
+ $html .= '<h3>' . __('Upgrade to Clearfy Business', 'wbcr_factory_clearfy_235') . '</h3>';
26
+ $html .= '<p>' . __('Oops... Sorry for the inconvenience caused!', 'wbcr_factory_clearfy_235') . '</p>';
27
+ $html .= '<p>' . __('Complete multisite support is available in Clearfy Business and Clearfy Business Revolution packages only!', 'wbcr_factory_clearfy_235') . '</p>';
28
+ $html .= '<p>' . __('You can activate the plugin on each website and use it with zero limitations. But you can’t save the plugin’s settings under the Super Administrator role!', 'wbcr_factory_clearfy_235') . '</p>';
29
+ $html .= '<p style="margin-top:20px">';
30
+ $html .= '<a href="' . $license_page_url . '" class="wbcr-factory-activate-premium" rel="noopener">' . __('Activate license ', 'wbcr_factory_clearfy_235') . '</a> ';
31
+ $html .= '<a href="' . $upgrade_url . '" class="wbcr-factory-purchase-premium" target="_blank" rel="noopener">' . __('Upgrade to Clearfy Business', 'wbcr_factory_clearfy_235') . '</a>';
32
+ $html .= '</p>';
33
+ $html .= '</div>';
34
+ $html .= '</div>';
35
+
36
+ $this->showPage($html);
37
+
38
+ return;
39
+ }
40
+
41
+ $this->redirectToAction('index');
42
+ }
43
+
44
+
45
  }
admin/pages/class-pages-advanced.php CHANGED
@@ -1,96 +1,96 @@
1
- <?php
2
-
3
- /**
4
- * The page Settings.
5
- *
6
- * @since 1.0.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if( !defined('ABSPATH') ) {
11
- exit;
12
- }
13
-
14
- class WCL_AdvancedPage extends WCL_Page {
15
-
16
- /**
17
- * The id of the page in the admin menu.
18
- *
19
- * Mainly used to navigate between pages.
20
- * @see FactoryPages440_AdminPage
21
- *
22
- * @since 1.0.0
23
- * @var string
24
- */
25
- public $id = "advanced";
26
-
27
- public $page_menu_dashicon = 'dashicons-list-view';
28
-
29
- public $page_menu_position = 1;
30
-
31
- public $available_for_multisite = true;
32
-
33
- /**
34
- * @param WCL_Plugin $plugin
35
- */
36
- public function __construct(WCL_Plugin $plugin)
37
- {
38
- $this->menu_title = __('Advanced', 'clearfy');
39
- $this->page_menu_short_description = __('Useful tweaks', 'clearfy');
40
-
41
- parent::__construct($plugin);
42
-
43
- $this->plugin = $plugin;
44
- }
45
-
46
- /**
47
- * Permalinks options.
48
- *
49
- * @return mixed[]
50
- * @since 1.0.0
51
- */
52
- public function getPageOptions()
53
- {
54
-
55
- $options = array();
56
-
57
- //============================================================
58
- // ADMINBAR MANAGER COMPONENT
59
- //============================================================
60
-
61
- if( $this->plugin->isActivateComponent('adminbar_manager') ) {
62
- $options[] = array(
63
- 'type' => 'html',
64
- 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Admin bar', 'clearfy') . '</strong>' . '<p>' . __('In this group of settings, you can manage the adminbar.', 'clearfy') . '</p>' . '</div>'
65
- );
66
-
67
- $options[] = array(
68
- 'type' => 'dropdown',
69
- 'name' => 'disable_admin_bar',
70
- 'way' => 'buttons',
71
- 'title' => __('Disable admin top bar', 'clearfy'),
72
- 'data' => array(
73
- array('enable', __('Default enable', 'clearfy')),
74
- array('for_all_users', __('For all users', 'clearfy')),
75
- array(
76
- 'for_all_users_except_administrator',
77
- __('For all users except administrator', 'clearfy')
78
- )
79
- ),
80
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
81
- 'hint' => __('In some cases, you need to disable the floating top admin panel. You can disable this panel.', 'clearfy') . '<br><b>Clearfy</b>: ' . __('Disable admin top bar.', 'clearfy'),
82
- 'default' => 'enable',
83
- );
84
- }
85
-
86
- $formOptions = array();
87
-
88
- $formOptions[] = array(
89
- 'type' => 'form-group',
90
- 'items' => $options,
91
- //'cssClass' => 'postbox'
92
- );
93
-
94
- return apply_filters('wbcr_clr_additionally_form_options', $formOptions, $this);
95
- }
96
- }
1
+ <?php
2
+
3
+ /**
4
+ * The page Settings.
5
+ *
6
+ * @since 1.0.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if( !defined('ABSPATH') ) {
11
+ exit;
12
+ }
13
+
14
+ class WCL_AdvancedPage extends WCL_Page {
15
+
16
+ /**
17
+ * The id of the page in the admin menu.
18
+ *
19
+ * Mainly used to navigate between pages.
20
+ * @see FactoryPages443_AdminPage
21
+ *
22
+ * @since 1.0.0
23
+ * @var string
24
+ */
25
+ public $id = "advanced";
26
+
27
+ public $page_menu_dashicon = 'dashicons-list-view';
28
+
29
+ public $page_menu_position = 1;
30
+
31
+ public $available_for_multisite = true;
32
+
33
+ /**
34
+ * @param WCL_Plugin $plugin
35
+ */
36
+ public function __construct(WCL_Plugin $plugin)
37
+ {
38
+ $this->menu_title = __('Advanced', 'clearfy');
39
+ $this->page_menu_short_description = __('Useful tweaks', 'clearfy');
40
+
41
+ parent::__construct($plugin);
42
+
43
+ $this->plugin = $plugin;
44
+ }
45
+
46
+ /**
47
+ * Permalinks options.
48
+ *
49
+ * @return mixed[]
50
+ * @since 1.0.0
51
+ */
52
+ public function getPageOptions()
53
+ {
54
+
55
+ $options = array();
56
+
57
+ //============================================================
58
+ // ADMINBAR MANAGER COMPONENT
59
+ //============================================================
60
+
61
+ if( $this->plugin->isActivateComponent('adminbar_manager') ) {
62
+ $options[] = array(
63
+ 'type' => 'html',
64
+ 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Admin bar', 'clearfy') . '</strong>' . '<p>' . __('In this group of settings, you can manage the adminbar.', 'clearfy') . '</p>' . '</div>'
65
+ );
66
+
67
+ $options[] = array(
68
+ 'type' => 'dropdown',
69
+ 'name' => 'disable_admin_bar',
70
+ 'way' => 'buttons',
71
+ 'title' => __('Disable admin top bar', 'clearfy'),
72
+ 'data' => array(
73
+ array('enable', __('Default enable', 'clearfy')),
74
+ array('for_all_users', __('For all users', 'clearfy')),
75
+ array(
76
+ 'for_all_users_except_administrator',
77
+ __('For all users except administrator', 'clearfy')
78
+ )
79
+ ),
80
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
81
+ 'hint' => __('In some cases, you need to disable the floating top admin panel. You can disable this panel.', 'clearfy') . '<br><b>Clearfy</b>: ' . __('Disable admin top bar.', 'clearfy'),
82
+ 'default' => 'enable',
83
+ );
84
+ }
85
+
86
+ $formOptions = array();
87
+
88
+ $formOptions[] = array(
89
+ 'type' => 'form-group',
90
+ 'items' => $options,
91
+ //'cssClass' => 'postbox'
92
+ );
93
+
94
+ return apply_filters('wbcr_clr_additionally_form_options', $formOptions, $this);
95
+ }
96
+ }
admin/pages/class-pages-cache.php ADDED
@@ -0,0 +1,292 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The page Settings.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+
8
+ // Exit if accessed directly
9
+ if( !defined('ABSPATH') ) {
10
+ exit;
11
+ }
12
+
13
+ class WCL_CachePage extends WCL_Page {
14
+
15
+ /**
16
+ * @see {@inheritDoc}
17
+ *
18
+ * @var string
19
+ */
20
+ public $id = "clearfy_cache";
21
+
22
+ /**
23
+ * @var string
24
+ */
25
+ public $page_parent_page = 'performance';
26
+
27
+ /**
28
+ * @see {@inheritDoc}
29
+ *
30
+ * @var string
31
+ */
32
+ public $page_menu_dashicon = 'dashicons-performance';
33
+
34
+ /**
35
+ * @see {@inheritDoc}
36
+ *
37
+ * @var int
38
+ */
39
+ public $page_menu_position = 20;
40
+
41
+ /**
42
+ * @see {@inheritDoc}
43
+ *
44
+ * @var bool
45
+ */
46
+ public $available_for_multisite = true;
47
+
48
+ /**
49
+ * @param WCL_Plugin $plugin
50
+ */
51
+ public function __construct(WCL_Plugin $plugin)
52
+ {
53
+ $this->menu_title = __('Cache', 'clearfy');
54
+ $this->page_menu_short_description = __('Cache pages', 'clearfy');
55
+
56
+ if( $plugin->premium->is_activate() && $plugin->premium->is_install_package() && !WCL_Plugin::app()->isActivateComponent('cache') ) {
57
+ $this->type = 'page';
58
+ }
59
+
60
+ parent::__construct($plugin);
61
+
62
+ $this->plugin = $plugin;
63
+ }
64
+
65
+ /**
66
+ * Permalinks options.
67
+ *
68
+ * @return mixed[]
69
+ * @since 1.0.0
70
+ */
71
+ public function getPageOptions()
72
+ {
73
+ $options = [];
74
+
75
+ $options[] = [
76
+ 'type' => 'html',
77
+ 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Cache settings</strong>', 'clearfy') . '<p>' . __('A very fast caching engine for WordPress that produces static html files. You can configure caching in this section.', 'clearfy') . '</p></div>'
78
+ ];
79
+
80
+ $options[] = [
81
+ 'type' => 'checkbox',
82
+ 'way' => 'buttons',
83
+ 'name' => 'enable_cache',
84
+ 'title' => __('Enable cache', 'clearfy'),
85
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'],
86
+ 'hint' => __('This option enable cache to generates static html files from your dynamic WordPress blog. After a html file is generated your webserver will serve that file instead of processing the comparatively heavier and more expensive WordPress PHP scripts.', 'clearfy'),
87
+ 'cssClass' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['factory-checkbox-disabled wbcr-factory-clearfy-icon-pro'] : [],
88
+ 'default' => false
89
+ ];
90
+
91
+ $options[] = [
92
+ 'type' => 'checkbox',
93
+ 'way' => 'buttons',
94
+ 'name' => 'cache_mobile',
95
+ 'title' => __('Mobile', 'clearfy'),
96
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
97
+ 'hint' => __("Don't show the cached version for desktop to mobile devices", 'clearfy'),
98
+ 'cssClass' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['factory-checkbox-disabled wbcr-factory-clearfy-icon-pro'] : [],
99
+ 'default' => false
100
+ ];
101
+
102
+ $options[] = [
103
+ 'type' => 'checkbox',
104
+ 'way' => 'buttons',
105
+ 'name' => 'cache_mobile_theme',
106
+ 'title' => __('Create cache for mobile theme', 'clearfy'),
107
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
108
+ 'hint' => __('If you use a mobile theme, you should enable both “Mobile” and “Create cache for mobile theme” options. If you use a responsive theme, no need to use the mobile cache feature. You should disable “Mobile” and “Create cache for mobile theme” options.', 'clearfy'),
109
+ 'cssClass' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['factory-checkbox-disabled wbcr-factory-clearfy-icon-pro'] : [],
110
+ 'default' => false,
111
+ ];
112
+
113
+ $options[] = [
114
+ 'type' => 'checkbox',
115
+ 'way' => 'buttons',
116
+ 'name' => 'widget_cache',
117
+ 'title' => __('Widget Cache', 'clearfy'),
118
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
119
+ 'hint' => __('You can reduce the number of sql queries with this feature.
120
+
121
+ When “Cache System” is enabled, the page is saved as a static html file, thus PHP and MySQL does not work for the page which has been cached. MySQL and PHP work to generate the html of the other pages which have not been cached yet.
122
+
123
+ Every time before the cache is created, the same widgets are generated again and again. This feature avoids generating the widgets again and again to reduce the sql queries.', 'clearfy'),
124
+ 'cssClass' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['factory-checkbox-disabled wbcr-factory-clearfy-icon-pro'] : [],
125
+ 'default' => false,
126
+ ];
127
+
128
+ $options[] = [
129
+ 'type' => 'checkbox',
130
+ 'way' => 'buttons',
131
+ 'name' => 'preload_cache',
132
+ 'title' => __('Preload cache', 'clearfy'),
133
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
134
+ 'hint' => __('The preload feature stars to work after delete cache.
135
+
136
+ When the Preload feature calls the urls, the cache of urls are created automatically. When all the pages are cached, the preload stops working. When the cache is clear, it starts working again.
137
+
138
+ The Preload runs every 5 minutes. If you want set a specific interval. Note: The preload feature works with the WP_CRON system.', 'clearfy'),
139
+ 'cssClass' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['factory-checkbox-disabled wbcr-factory-clearfy-icon-pro'] : [],
140
+ 'default' => false
141
+ ];
142
+
143
+ $options[] = [
144
+ 'type' => 'checkbox',
145
+ 'way' => 'buttons',
146
+ 'name' => 'dont_cache_for_logged_in_users',
147
+ 'title' => __('Don\'t cache for logged-in users', 'clearfy'),
148
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'],
149
+ 'hint' => __('Don\'t show the cached version for logged-in users', 'clearfy'),
150
+ 'cssClass' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['factory-checkbox-disabled wbcr-factory-clearfy-icon-pro'] : [],
151
+ 'default' => false
152
+ ];
153
+
154
+ $options[] = [
155
+ 'type' => 'checkbox',
156
+ 'way' => 'buttons',
157
+ 'name' => 'clear_cache_for_newpost',
158
+ 'title' => __('Clear cache for new post', 'clearfy'),
159
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
160
+ 'hint' => __('Clear cache files when a post or page is published', 'clearfy'),
161
+ 'cssClass' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['factory-checkbox-disabled wbcr-factory-clearfy-icon-pro'] : [],
162
+ 'default' => false
163
+ ];
164
+
165
+ $options[] = [
166
+ 'type' => 'checkbox',
167
+ 'way' => 'buttons',
168
+ 'name' => 'clear_cache_for_updated_post',
169
+ 'title' => __('Clear cache for updated Post', 'clearfy'),
170
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
171
+ 'hint' => __('Clear cache files when a post or page is updated', 'clearfy'),
172
+ 'cssClass' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['factory-checkbox-disabled wbcr-factory-clearfy-icon-pro'] : [],
173
+ 'default' => false
174
+ ];
175
+
176
+ $options[] = [
177
+ 'type' => 'checkbox',
178
+ 'way' => 'buttons',
179
+ 'name' => 'gzip',
180
+ 'title' => __('Gzip', 'clearfy'),
181
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'],
182
+ 'hint' => __('Reduce the size of page decrease the page load time a lot. You can reduce the size of page with GZIP compression feature.
183
+
184
+ If the size of requested files are big, loading takes time so in this case there is needed to reduce the size of files. Gzip Compression feature compresses the pages and resources before sending so the transfer time is reduced.', 'clearfy'),
185
+ 'cssClass' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['factory-checkbox-disabled wbcr-factory-clearfy-icon-pro'] : [],
186
+ 'default' => false
187
+ ];
188
+
189
+ $options[] = [
190
+ 'type' => 'checkbox',
191
+ 'way' => 'buttons',
192
+ 'name' => 'browser_caching',
193
+ 'title' => __('Browser Caching', 'clearfy'),
194
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'],
195
+ 'hint' => __('Reduce the load times of pages by storing commonly used files from your website on your visitors browser.
196
+
197
+ A browser loads the css, js, images resources to display the web page to the visitors. This process is always performed.
198
+
199
+ If the commonly used files are cached by browser, the visitors’ browsers do not have to load them evert time so the load times of pages are reduced.', 'clearfy'),
200
+ 'cssClass' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['factory-checkbox-disabled wbcr-factory-clearfy-icon-pro'] : [],
201
+ 'default' => false
202
+ ];
203
+
204
+ $options[] = [
205
+ 'type' => 'textarea',
206
+ 'name' => 'exclude_files',
207
+ 'title' => __('Filenames that can be cached', 'clearfy'),
208
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
209
+ 'hint' => __('Add here those filenames that can be cached, even if they match one of the rejected substring specified above.', 'clearfy'),
210
+ 'htmlAttrs' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['disabled' => 'disabled'] : [],
211
+ 'default' => 'wp-comments-popup.php
212
+ wp-links-opml.php
213
+ wp-locations.php
214
+ '
215
+ ];
216
+ $options[] = [
217
+ 'type' => 'textarea',
218
+ 'name' => 'exclude_pages',
219
+ 'title' => __('Rejected User Agents', 'clearfy'),
220
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
221
+ 'hint' => __('Strings in the HTTP ’User Agent’ header that prevent WP-Cache from caching bot, spiders, and crawlers’ requests. Note that super cached files are still sent to these agents if they already exists.', 'clearfy'),
222
+ 'htmlAttrs' => !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ? ['disabled' => 'disabled'] : [],
223
+ 'default' => 'bot
224
+ ia_archive
225
+ slurp
226
+ crawl
227
+ spider
228
+ Yandex
229
+ '
230
+ ];
231
+
232
+ $form_options = [];
233
+
234
+ if( !defined('WCLEARFY_CACHEPRO_PLUGIN_ACTIVE') ) {
235
+ foreach($options as &$option) {
236
+ if( 'checkbox' === $option['type'] ) {
237
+ $option['value'] = false;
238
+ }
239
+ }
240
+ }
241
+
242
+ $form_options[] = [
243
+ 'type' => 'form-group',
244
+ 'items' => $options,
245
+ //'cssClass' => 'postbox'
246
+ ];
247
+
248
+ return apply_filters('wbcr_clr_code_clean_form_options', $form_options, $this);
249
+ }
250
+
251
+
252
+ /**
253
+ * Содержание страницы
254
+ */
255
+ public function showPageContent()
256
+ {
257
+ require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php';
258
+ $install_button = $this->plugin->get_install_component_button('internal', 'cache');
259
+ $install_button->add_class('wbcr-factory-purchase-premium');
260
+ ?>
261
+ <script>
262
+ jQuery(document).ready(function($) {
263
+ $.wfactory_444.hooks.add('core/components/updated', function(button, data) {
264
+ console.log(data);
265
+
266
+ if( data.plugin_action === 'install' ) {
267
+ button.removeClass('wbcr-factory-purchase-premium');
268
+ button.addClass('wbcr-factory-activate-premium');
269
+ }
270
+
271
+ });
272
+
273
+ $.wfactory_444.hooks.add('core/components/activated', function(button, data) {
274
+ button.remove();
275
+ window.location.href = '<?php echo $this->getBaseUrl('clearfy_cache'); ?>';
276
+
277
+ });
278
+ });
279
+ </script>
280
+ <div class="wbcr-factory-clearfy-235-multisite-suggetion">
281
+ <div class="wbcr-factory-inner-contanier">
282
+ <h3><?php _e('Install Page Cache component', 'clearfy') ?></h3>
283
+ <p><?php _e('To start page caching, you need to install the additional component Cache!', 'clearfy') ?></p>
284
+ <p><?php _e('Installing the component will not take you long, just click the install button, then activate.', 'clearfy') ?></p>
285
+ <p style="margin-top:20px">
286
+ <?php $install_button->render_link(); ?>
287
+ </p>
288
+ </div>
289
+ </div>
290
+ <?php
291
+ }
292
+ }
admin/pages/class-pages-clearfy-settings.php CHANGED
@@ -1,258 +1,258 @@
1
- <?php
2
-
3
- /**
4
- * The page Settings.
5
- *
6
- * @since 1.0.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if( !defined('ABSPATH') ) {
11
- exit;
12
- }
13
-
14
- class WCL_ClearfySettingsPage extends WCL_Page {
15
-
16
- /**
17
- * The id of the page in the admin menu.
18
- *
19
- * Mainly used to navigate between pages.
20
- *
21
- * @since 1.0.0
22
- * @see FactoryPages440_AdminPage
23
- *
24
- * @var string
25
- */
26
- public $id = "clearfy_settings";
27
-
28
- /**
29
- * @var string
30
- */
31
- public $page_parent_page = 'none';
32
-
33
- /**
34
- * @var string
35
- */
36
- public $page_menu_dashicon = 'dashicons-list-view';
37
-
38
- /**
39
- * @var bool
40
- */
41
- public $available_for_multisite = true;
42
-
43
- /**
44
- * @param WCL_Plugin $plugin
45
- */
46
- public function __construct(WCL_Plugin $plugin)
47
- {
48
- $this->menu_title = __('Clearfy Settings', 'clearfy');
49
- $this->page_menu_short_description = __('Useful tweaks', 'clearfy');
50
-
51
- parent::__construct($plugin);
52
-
53
- $this->plugin = $plugin;
54
- }
55
-
56
-
57
- /**
58
- * Requests assets (js and css) for the page.
59
- *
60
- * @return void
61
- * @since 1.0.0
62
- * @see FactoryPages440_AdminPage
63
- *
64
- */
65
- public function assets($scripts, $styles)
66
- {
67
- parent::assets($scripts, $styles);
68
-
69
- $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/general.js');
70
-
71
- $params = [
72
- 'import_options_nonce' => wp_create_nonce('wbcr_clearfy_import_options'),
73
- 'i18n' => [
74
- 'success_update_settings' => __('Settings successfully updated!', 'clearfy'),
75
- 'unknown_error' => __('During the setup, an unknown error occurred, please try again or contact the plugin support.', 'clearfy'),
76
- ]
77
- ];
78
-
79
- $this->scripts->localize('wbcr_clearfy_ajax', $params);
80
- }
81
-
82
- /**
83
- * Permalinks options.
84
- *
85
- * @return mixed[]
86
- * @since 1.0.0
87
- */
88
- public function getPageOptions()
89
- {
90
-
91
- $options = [];
92
-
93
- $options[] = [
94
- 'type' => 'html',
95
- 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Advanced settings', 'clearfy') . '</strong>' . '<p>' . __('This group of settings allows you to configure the work of the Clearfy plugin.', 'clearfy') . '</p>' . '</div>'
96
- ];
97
-
98
- $options[] = [
99
- 'type' => 'checkbox',
100
- 'way' => 'buttons',
101
- 'name' => 'disable_clearfy_extra_menu',
102
- 'title' => __('Disable menu in adminbar', 'clearfy'),
103
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'red'],
104
- 'hint' => __('This setting allows you to disable the additional menu of the Clearfy plugin, in the admin bar. This menu is required to work with the Minify and Combine and Assets Manager components.', 'clearfy'),
105
- 'default' => false
106
- ];
107
-
108
- $options[] = [
109
- 'type' => 'checkbox',
110
- 'way' => 'buttons',
111
- 'name' => 'complete_uninstall',
112
- 'title' => __('Complete Uninstall', 'clearfy'),
113
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
114
- 'hint' => __("When the plugin is deleted from the Plugins menu, also delete all plugin settings.", 'clearfy'),
115
- 'default' => false
116
- ];
117
-
118
- $options[] = [
119
- 'type' => 'html',
120
- 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Import/Export', 'clearfy') . '</strong>' . '<p>' . __('This group of settings allows you to configure the work of the Clearfy plugin.', 'clearfy') . '</p>' . '</div>'
121
- ];
122
-
123
- $options[] = [
124
- 'type' => 'html',
125
- 'html' => [$this, 'export']
126
- ];
127
-
128
- $options[] = [
129
- 'type' => 'html',
130
- 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Support', 'clearfy') . '</strong>' . '<p>' . __('This group of settings allows you to configure the work of the Clearfy plugin.', 'clearfy') . '</p>' . '</div>'
131
- ];
132
-
133
- $options[] = [
134
- 'type' => 'html',
135
- 'html' => [$this, 'supports']
136
- ];
137
-
138
- $formOptions = [];
139
-
140
- $formOptions[] = [
141
- 'type' => 'form-group',
142
- 'items' => $options,
143
- //'cssClass' => 'postbox'
144
- ];
145
-
146
- return apply_filters('wbcr/clearfy/settings_form_options', $formOptions, $this);
147
- }
148
-
149
- public function export()
150
- {
151
- ?>
152
- <div class="wbcr-clearfy-export-import">
153
- <p>
154
- <label for="wbcr-clearfy-import-export">
155
- <strong><?php _e('Import/Export settings', 'clearfy') ?></strong>
156
- </label>
157
- <textarea id="wbcr-clearfy-import-export"><?= WCL_Helper::getExportOptions(); ?></textarea>
158
- <button class="button wbcr-clearfy-import-options-button"><?php _e('Import options', 'clearfy') ?></button>
159
- </p>
160
- </div>
161
- <?php
162
- }
163
-
164
- public function supports()
165
- {
166
- ?>
167
- <div class="wbcr-clearfy-troubleshooting">
168
- <p><?php _e('If you faced with any issues, please follow the steps below to get quickly quality support:', 'clearfy') ?></p>
169
- <ol>
170
- <li>
171
- <p><?php _e('Generate a debug report which will contains inforamtion about your configuratin and installed plugins', 'clearfy') ?></p>
172
- <p>
173
- <a href="<?= $this->getActionUrl('gererate_report'); ?>" class="button"><?php _e('Generate Debug Report', 'clearfy') ?></a>
174
- </p>
175
- </li>
176
- <li>
177
- <p><?php printf(__('Create a new ticket in our <a href="%s" target="_blank">support forum</a>, include the debug report into the message body.', 'clearfy'), "https://forum.webcraftic.com"); ?></p>
178
- </li>
179
- </ol>
180
- <p style="margin-bottom: 0px;"><?php _e('We guarantee to respond you within 7 business day.', 'clearfy') ?></p>
181
- </div>
182
- <?php
183
- }
184
-
185
- /**
186
- * Collects error and system error data
187
- *
188
- * @return string
189
- */
190
- public function getDebugReport()
191
- {
192
- $run_time = number_format(microtime(true), 3);
193
- $pps = number_format(1 / floatval($run_time), 0);
194
- $memory_avail = ini_get('memory_limit');
195
- $memory_used = number_format(memory_get_usage(true) / (1024 * 1024), 2);
196
- $memory_peak = number_format(memory_get_peak_usage(true) / (1024 * 1024), 2);
197
-
198
- $debug = '';
199
- if( PHP_SAPI == 'cli' ) {
200
- // if run for command line, display some info
201
- $debug = PHP_EOL . "======================================================================================" . PHP_EOL . " Config: php " . phpversion() . " " . php_sapi_name() . " / zend engine " . zend_version() . PHP_EOL . " Load: {$memory_avail} (avail) / {$memory_used}M (used) / {$memory_peak}M (peak)" . " | Time: {$run_time}s | {$pps} req/sec" . PHP_EOL . " | Server Timezone: " . date_default_timezone_get() . " | Agent: CLI" . PHP_EOL . "======================================================================================" . PHP_EOL;
202
- } else {
203
- // if not run from command line, only display if debug is enabled
204
- $debug = "" //<hr />"
205
- . "<div style=\"text-align: left;\">" . "<hr />" . " Config: " . "<br />" . " &nbsp;&nbsp; | php " . phpversion() . " " . php_sapi_name() . " / zend engine " . zend_version() . "<br />" . " &nbsp;&nbsp; | Server Timezone: " . date_default_timezone_get() . "<br />" . " Load: " . "<br />" . " &nbsp;&nbsp; | Memory: {$memory_avail} (avail) / {$memory_used}M (used) / {$memory_peak}M (peak)" . "<br />" . " &nbsp;&nbsp; | Time: {$run_time}s &nbsp;&nbsp; | {$pps} req/sec" . "<br />" . "Url: " . "<br />" . " &nbsp;&nbsp; |" . "<br />" . " &nbsp;&nbsp; | Agent: " . (@$_SERVER["HTTP_USER_AGENT"]) . "<br />" . "Version Control: " . "<br />" . " &nbsp;&nbsp; </div>" . "<br />";
206
- }
207
-
208
- $debug .= "Plugins<br>";
209
- $debug .= "=====================<br>";
210
-
211
- $plugins = get_plugins();
212
-
213
- require_once ABSPATH . '/wp-admin/includes/plugin.php';
214
-
215
- foreach($plugins as $path => $plugin) {
216
- if( is_plugin_active($path) ) {
217
- $debug .= $plugin['Name'] . '<br>';
218
- }
219
- }
220
-
221
- return $debug;
222
- }
223
-
224
- /**
225
- * Generates a report about the system and plug-in error
226
- *
227
- * @return string
228
- */
229
- public function gererateReportAction()
230
- {
231
- require_once(WCL_PLUGIN_DIR . '/includes/classes/class.zip-archive.php');
232
-
233
- $reposts_dir = WCL_PLUGIN_DIR . '/reports';
234
- $reports_temp = $reposts_dir . '/temp';
235
-
236
- if( !file_exists($reposts_dir) ) {
237
- mkdir($reposts_dir, 0777, true);
238
- }
239
-
240
- if( !file_exists($reports_temp) ) {
241
- mkdir($reports_temp, 0777, true);
242
- }
243
-
244
- $file = fopen($reports_temp . '/site-info.html', 'w+');
245
- fputs($file, $this->getDebugReport());
246
- fclose($file);
247
-
248
- $download_file_name = 'webcraftic-clearfy-report-' . date('Y.m.d-H.i.s') . '.zip';
249
- $download_file_path = WCL_PLUGIN_DIR . '/reports/' . $download_file_name;
250
-
251
- Wbcr_ExtendedZip::zipTree(WCL_PLUGIN_DIR . '/reports/temp', $download_file_path, ZipArchive::CREATE);
252
-
253
- array_map('unlink', glob(WCL_PLUGIN_DIR . "/reports/temp/*"));
254
-
255
- wp_redirect(WCL_PLUGIN_URL . '/reports/' . $download_file_name);
256
- exit;
257
- }
258
- }
1
+ <?php
2
+
3
+ /**
4
+ * The page Settings.
5
+ *
6
+ * @since 1.0.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if( !defined('ABSPATH') ) {
11
+ exit;
12
+ }
13
+
14
+ class WCL_ClearfySettingsPage extends WCL_Page {
15
+
16
+ /**
17
+ * The id of the page in the admin menu.
18
+ *
19
+ * Mainly used to navigate between pages.
20
+ *
21
+ * @since 1.0.0
22
+ * @see FactoryPages443_AdminPage
23
+ *
24
+ * @var string
25
+ */
26
+ public $id = "clearfy_settings";
27
+
28
+ /**
29
+ * @var string
30
+ */
31
+ public $page_parent_page = 'none';
32
+
33
+ /**
34
+ * @var string
35
+ */
36
+ public $page_menu_dashicon = 'dashicons-list-view';
37
+
38
+ /**
39
+ * @var bool
40
+ */
41
+ public $available_for_multisite = true;
42
+
43
+ /**
44
+ * @param WCL_Plugin $plugin
45
+ */
46
+ public function __construct(WCL_Plugin $plugin)
47
+ {
48
+ $this->menu_title = __('Clearfy Settings', 'clearfy');
49
+ $this->page_menu_short_description = __('Useful tweaks', 'clearfy');
50
+
51
+ parent::__construct($plugin);
52
+
53
+ $this->plugin = $plugin;
54
+ }
55
+
56
+
57
+ /**
58
+ * Requests assets (js and css) for the page.
59
+ *
60
+ * @return void
61
+ * @since 1.0.0
62
+ * @see FactoryPages443_AdminPage
63
+ *
64
+ */
65
+ public function assets($scripts, $styles)
66
+ {
67
+ parent::assets($scripts, $styles);
68
+
69
+ $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/general.js');
70
+
71
+ $params = [
72
+ 'import_options_nonce' => wp_create_nonce('wbcr_clearfy_import_options'),
73
+ 'i18n' => [
74
+ 'success_update_settings' => __('Settings successfully updated!', 'clearfy'),
75
+ 'unknown_error' => __('During the setup, an unknown error occurred, please try again or contact the plugin support.', 'clearfy'),
76
+ ]
77
+ ];
78
+
79
+ $this->scripts->localize('wbcr_clearfy_ajax', $params);
80
+ }
81
+
82
+ /**
83
+ * Permalinks options.
84
+ *
85
+ * @return mixed[]
86
+ * @since 1.0.0
87
+ */
88
+ public function getPageOptions()
89
+ {
90
+
91
+ $options = [];
92
+
93
+ $options[] = [
94
+ 'type' => 'html',
95
+ 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Advanced settings', 'clearfy') . '</strong>' . '<p>' . __('This group of settings allows you to configure the work of the Clearfy plugin.', 'clearfy') . '</p>' . '</div>'
96
+ ];
97
+
98
+ $options[] = [
99
+ 'type' => 'checkbox',
100
+ 'way' => 'buttons',
101
+ 'name' => 'disable_clearfy_extra_menu',
102
+ 'title' => __('Disable menu in adminbar', 'clearfy'),
103
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'red'],
104
+ 'hint' => __('This setting allows you to disable the additional menu of the Clearfy plugin, in the admin bar. This menu is required to work with the Minify and Combine and Assets Manager components.', 'clearfy'),
105
+ 'default' => false
106
+ ];
107
+
108
+ $options[] = [
109
+ 'type' => 'checkbox',
110
+ 'way' => 'buttons',
111
+ 'name' => 'complete_uninstall',
112
+ 'title' => __('Complete Uninstall', 'clearfy'),
113
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
114
+ 'hint' => __("When the plugin is deleted from the Plugins menu, also delete all plugin settings.", 'clearfy'),
115
+ 'default' => false
116
+ ];
117
+
118
+ $options[] = [
119
+ 'type' => 'html',
120
+ 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Import/Export', 'clearfy') . '</strong>' . '<p>' . __('This group of settings allows you to configure the work of the Clearfy plugin.', 'clearfy') . '</p>' . '</div>'
121
+ ];
122
+
123
+ $options[] = [
124
+ 'type' => 'html',
125
+ 'html' => [$this, 'export']
126
+ ];
127
+
128
+ $options[] = [
129
+ 'type' => 'html',
130
+ 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Support', 'clearfy') . '</strong>' . '<p>' . __('This group of settings allows you to configure the work of the Clearfy plugin.', 'clearfy') . '</p>' . '</div>'
131
+ ];
132
+
133
+ $options[] = [
134
+ 'type' => 'html',
135
+ 'html' => [$this, 'supports']
136
+ ];
137
+
138
+ $formOptions = [];
139
+
140
+ $formOptions[] = [
141
+ 'type' => 'form-group',
142
+ 'items' => $options,
143
+ //'cssClass' => 'postbox'
144
+ ];
145
+
146
+ return apply_filters('wbcr/clearfy/settings_form_options', $formOptions, $this);
147
+ }
148
+
149
+ public function export()
150
+ {
151
+ ?>
152
+ <div class="wbcr-clearfy-export-import">
153
+ <p>
154
+ <label for="wbcr-clearfy-import-export">
155
+ <strong><?php _e('Import/Export settings', 'clearfy') ?></strong>
156
+ </label>
157
+ <textarea id="wbcr-clearfy-import-export"><?= WCL_Helper::getExportOptions(); ?></textarea>
158
+ <button class="button wbcr-clearfy-import-options-button"><?php _e('Import options', 'clearfy') ?></button>
159
+ </p>
160
+ </div>
161
+ <?php
162
+ }
163
+
164
+ public function supports()
165
+ {
166
+ ?>
167
+ <div class="wbcr-clearfy-troubleshooting">
168
+ <p><?php _e('If you faced with any issues, please follow the steps below to get quickly quality support:', 'clearfy') ?></p>
169
+ <ol>
170
+ <li>
171
+ <p><?php _e('Generate a debug report which will contains inforamtion about your configuratin and installed plugins', 'clearfy') ?></p>
172
+ <p>
173
+ <a href="<?= $this->getActionUrl('gererate_report'); ?>" class="button"><?php _e('Generate Debug Report', 'clearfy') ?></a>
174
+ </p>
175
+ </li>
176
+ <li>
177
+ <p><?php printf(__('Create a new ticket in our <a href="%s" target="_blank">support forum</a>, include the debug report into the message body.', 'clearfy'), "https://forum.webcraftic.com"); ?></p>
178
+ </li>
179
+ </ol>
180
+ <p style="margin-bottom: 0px;"><?php _e('We guarantee to respond you within 7 business day.', 'clearfy') ?></p>
181
+ </div>
182
+ <?php
183
+ }
184
+
185
+ /**
186
+ * Collects error and system error data
187
+ *
188
+ * @return string
189
+ */
190
+ public function getDebugReport()
191
+ {
192
+ $run_time = number_format(microtime(true), 3);
193
+ $pps = number_format(1 / floatval($run_time), 0);
194
+ $memory_avail = ini_get('memory_limit');
195
+ $memory_used = number_format(memory_get_usage(true) / (1024 * 1024), 2);
196
+ $memory_peak = number_format(memory_get_peak_usage(true) / (1024 * 1024), 2);
197
+
198
+ $debug = '';
199
+ if( PHP_SAPI == 'cli' ) {
200
+ // if run for command line, display some info
201
+ $debug = PHP_EOL . "======================================================================================" . PHP_EOL . " Config: php " . phpversion() . " " . php_sapi_name() . " / zend engine " . zend_version() . PHP_EOL . " Load: {$memory_avail} (avail) / {$memory_used}M (used) / {$memory_peak}M (peak)" . " | Time: {$run_time}s | {$pps} req/sec" . PHP_EOL . " | Server Timezone: " . date_default_timezone_get() . " | Agent: CLI" . PHP_EOL . "======================================================================================" . PHP_EOL;
202
+ } else {
203
+ // if not run from command line, only display if debug is enabled
204
+ $debug = "" //<hr />"
205
+ . "<div style=\"text-align: left;\">" . "<hr />" . " Config: " . "<br />" . " &nbsp;&nbsp; | php " . phpversion() . " " . php_sapi_name() . " / zend engine " . zend_version() . "<br />" . " &nbsp;&nbsp; | Server Timezone: " . date_default_timezone_get() . "<br />" . " Load: " . "<br />" . " &nbsp;&nbsp; | Memory: {$memory_avail} (avail) / {$memory_used}M (used) / {$memory_peak}M (peak)" . "<br />" . " &nbsp;&nbsp; | Time: {$run_time}s &nbsp;&nbsp; | {$pps} req/sec" . "<br />" . "Url: " . "<br />" . " &nbsp;&nbsp; |" . "<br />" . " &nbsp;&nbsp; | Agent: " . (@$_SERVER["HTTP_USER_AGENT"]) . "<br />" . "Version Control: " . "<br />" . " &nbsp;&nbsp; </div>" . "<br />";
206
+ }
207
+
208
+ $debug .= "Plugins<br>";
209
+ $debug .= "=====================<br>";
210
+
211
+ $plugins = get_plugins();
212
+
213
+ require_once ABSPATH . '/wp-admin/includes/plugin.php';
214
+
215
+ foreach($plugins as $path => $plugin) {
216
+ if( is_plugin_active($path) ) {
217
+ $debug .= $plugin['Name'] . '<br>';
218
+ }
219
+ }
220
+
221
+ return $debug;
222
+ }
223
+
224
+ /**
225
+ * Generates a report about the system and plug-in error
226
+ *
227
+ * @return string
228
+ */
229
+ public function gererateReportAction()
230
+ {
231
+ require_once(WCL_PLUGIN_DIR . '/includes/classes/class.zip-archive.php');
232
+
233
+ $reposts_dir = WCL_PLUGIN_DIR . '/reports';
234
+ $reports_temp = $reposts_dir . '/temp';
235
+
236
+ if( !file_exists($reposts_dir) ) {
237
+ mkdir($reposts_dir, 0777, true);
238
+ }
239
+
240
+ if( !file_exists($reports_temp) ) {
241
+ mkdir($reports_temp, 0777, true);
242
+ }
243
+
244
+ $file = fopen($reports_temp . '/site-info.html', 'w+');
245
+ fputs($file, $this->getDebugReport());
246
+ fclose($file);
247
+
248
+ $download_file_name = 'webcraftic-clearfy-report-' . date('Y.m.d-H.i.s') . '.zip';
249
+ $download_file_path = WCL_PLUGIN_DIR . '/reports/' . $download_file_name;
250
+
251
+ Wbcr_ExtendedZip::zipTree(WCL_PLUGIN_DIR . '/reports/temp', $download_file_path, ZipArchive::CREATE);
252
+
253
+ array_map('unlink', glob(WCL_PLUGIN_DIR . "/reports/temp/*"));
254
+
255
+ wp_redirect(WCL_PLUGIN_URL . '/reports/' . $download_file_name);
256
+ exit;
257
+ }
258
+ }
admin/pages/class-pages-components-license.php CHANGED
@@ -1,189 +1,189 @@
1
- <?php
2
- // Exit if accessed directly
3
- if( !defined('ABSPATH') ) {
4
- exit;
5
- }
6
-
7
- /**
8
- * Страница лицензирования плагина.
9
- *
10
- * Поддерживает режим работы с мультисаймами. Вы можете увидеть эту страницу в панели настройки сети.
11
- *
12
- * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
13
- *
14
- * @copyright (c) 2018 Webraftic Ltd
15
- */
16
- class WCL_ComponentsLicensePage extends WCL_Page {
17
-
18
- /**
19
- * {@inheritdoc}
20
- *
21
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
22
- * @since 1.6.0
23
- * @var string
24
- */
25
- public $id = 'clearfy_components_license';
26
-
27
- /**
28
- * {@inheritdoc}
29
- *
30
- * @var string
31
- */
32
- public $type = 'page';
33
-
34
- /**
35
- * {@inheritdoc}
36
- *
37
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
38
- * @since 1.6.0
39
- * @var string
40
- */
41
- public $page_parent_page;
42
-
43
- /**
44
- * @var int
45
- */
46
- public $page_menu_position = 0;
47
-
48
- /**
49
- * {@inheritdoc}
50
- *
51
- * @var bool
52
- */
53
- public $show_right_sidebar_in_options = false;
54
-
55
- /**
56
- * WCL_LicensePage constructor.
57
- *
58
- * @param \Wbcr_Factory441_Plugin $plugin
59
- *
60
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
61
- *
62
- */
63
- public function __construct(Wbcr_Factory441_Plugin $plugin)
64
- {
65
- $this->menu_title = __('License', 'robin-image-optimizer');
66
- $this->page_menu_short_description = __('Product activation', 'robin-image-optimizer');
67
- $this->plan_name = __('Clearfy Business', 'robin-image-optimizer');
68
-
69
- parent::__construct($plugin);
70
- }
71
-
72
- /**
73
- * Requests assets (js and css) for the page.
74
- *
75
- * @return void
76
- * @since 1.0.0
77
- * @see FactoryPages440_AdminPage
78
- *
79
- */
80
- public function assets($scripts, $styles)
81
- {
82
- parent::assets($scripts, $styles);
83
-
84
- $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/components.css');
85
-
86
- /**
87
- * @param Wbcr_Factory441_StyleList $styles
88
- * @param Wbcr_Factory441_ScriptList $scripts
89
- *
90
- * @since 1.4.0
91
- *
92
- */
93
- do_action('wbcr/clearfy/components/page_assets', $scripts, $styles);
94
- }
95
-
96
- /**
97
- * This method simply show contents of the component page.
98
- *
99
- * @throws Exception
100
- */
101
- public function showPageContent()
102
- {
103
-
104
- /**
105
- * @since 1.4.0
106
- *
107
- */
108
- $components = apply_filters('wbcr/clearfy/license/list_components', []);
109
-
110
- ?>
111
- <div class="wbcr-factory-page-group-header"><?php _e('<strong>Products activation</strong>.', 'clearfy') ?>
112
- <p>
113
- <?php _e('These are components of the plugin bundle. When you activate the plugin, all the components turned on by default. If you don’t need some function, you can easily turn it off on this page.', 'clearfy') ?>
114
- </p>
115
- </div>
116
- <div class="wbcr-clearfy-components">
117
- <?php
118
- /**
119
- * @param array $components
120
- *
121
- * @since 1.6.2
122
- */
123
- do_action('wbcr/clearfy/license/custom_plugins_card', $components);
124
- ?>
125
-
126
- <?php foreach((array)$components as $component): ?>
127
- <div class="plugin-card">
128
- <div class="plugin-card-top">
129
- <div class="name column-name">
130
- <h3>
131
- <a href="<?php echo esc_url($component['url']) ?>"
132
- class="thickbox open-plugin-details-modal">
133
- You use <?php echo esc_html($component['title']) ?>
134
- <img src="<?php echo esc_attr($component['icon']) ?>" class="plugin-icon"
135
- alt="<?php echo esc_attr($component['title']) ?>">
136
- </a>
137
- </h3>
138
- </div>
139
- <div class="desc column-description">
140
- <?php if( 'premium' === $component['build'] ): ?>
141
- <ul>
142
- <?php if( !empty($component['key']) ): ?>
143
- <li>
144
- <strong><?php _e('License key', 'clearfy') ?>:
145
- </strong> <?php echo esc_html($component['key']) ?>
146
- </li>
147
- <?php endif; ?>
148
- <?php if( !empty($component['plan']) ): ?>
149
- <li>
150
- <strong><?php _e('Plan', 'clearfy') ?>:</strong>
151
- <?php echo esc_html($component['plan']) ?>
152
- </li>
153
- <?php endif; ?>
154
- <?php if( !empty($component['subscription']) ): ?>
155
- <li>
156
- <strong><?php _e('Type', 'clearfy') ?>:</strong>
157
- <?php echo esc_html($component['subscription']) ?>
158
- </li>
159
- <?php endif; ?>
160
- <?php if( !empty($component['plan']) ): ?>
161
- <li>
162
- <strong><?php _e('Expired', 'clearfy') ?>:
163
- </strong> <?php echo esc_html($component['expiration_days']) ?> <?php _e('days remained', 'clearfy') ?>
164
- </li>
165
- <?php endif; ?>
166
- </ul>
167
- <?php else: ?>
168
- <p><?php echo esc_html($component['description']); ?></p>
169
- <?php endif; ?>
170
- </div>
171
- </div>
172
- <div class="plugin-card-bottom">
173
- <a href="<?php echo $this->getBaseUrl($component['license_page_id']); ?>"
174
- class="button">
175
- <?php if( 'premium' === $component['build'] ): ?>
176
- <?php _e('License details') ?>
177
- <?php else: ?>
178
- <?php _e('Activate Premium License') ?>
179
- <?php endif; ?>
180
- </a>
181
- </div>
182
- </div>
183
- <?php endforeach; ?>
184
- <div class="clearfix"></div>
185
- </div>
186
- <?php
187
- }
188
-
189
  }
1
+ <?php
2
+ // Exit if accessed directly
3
+ if( !defined('ABSPATH') ) {
4
+ exit;
5
+ }
6
+
7
+ /**
8
+ * Страница лицензирования плагина.
9
+ *
10
+ * Поддерживает режим работы с мультисаймами. Вы можете увидеть эту страницу в панели настройки сети.
11
+ *
12
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
13
+ *
14
+ * @copyright (c) 2018 Webraftic Ltd
15
+ */
16
+ class WCL_ComponentsLicensePage extends WCL_Page {
17
+
18
+ /**
19
+ * {@inheritdoc}
20
+ *
21
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
22
+ * @since 1.6.0
23
+ * @var string
24
+ */
25
+ public $id = 'clearfy_components_license';
26
+
27
+ /**
28
+ * {@inheritdoc}
29
+ *
30
+ * @var string
31
+ */
32
+ public $type = 'page';
33
+
34
+ /**
35
+ * {@inheritdoc}
36
+ *
37
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
38
+ * @since 1.6.0
39
+ * @var string
40
+ */
41
+ public $page_parent_page;
42
+
43
+ /**
44
+ * @var int
45
+ */
46
+ public $page_menu_position = 0;
47
+
48
+ /**
49
+ * {@inheritdoc}
50
+ *
51
+ * @var bool
52
+ */
53
+ public $show_right_sidebar_in_options = false;
54
+
55
+ /**
56
+ * WCL_LicensePage constructor.
57
+ *
58
+ * @param \Wbcr_Factory444_Plugin $plugin
59
+ *
60
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
61
+ *
62
+ */
63
+ public function __construct(Wbcr_Factory444_Plugin $plugin)
64
+ {
65
+ $this->menu_title = __('License', 'robin-image-optimizer');
66
+ $this->page_menu_short_description = __('Product activation', 'robin-image-optimizer');
67
+ $this->plan_name = __('Clearfy Business', 'robin-image-optimizer');
68
+
69
+ parent::__construct($plugin);
70
+ }
71
+
72
+ /**
73
+ * Requests assets (js and css) for the page.
74
+ *
75
+ * @return void
76
+ * @since 1.0.0
77
+ * @see FactoryPages443_AdminPage
78
+ *
79
+ */
80
+ public function assets($scripts, $styles)
81
+ {
82
+ parent::assets($scripts, $styles);
83
+
84
+ $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/components.css');
85
+
86
+ /**
87
+ * @param Wbcr_Factory444_StyleList $styles
88
+ * @param Wbcr_Factory444_ScriptList $scripts
89
+ *
90
+ * @since 1.4.0
91
+ *
92
+ */
93
+ do_action('wbcr/clearfy/components/page_assets', $scripts, $styles);
94
+ }
95
+
96
+ /**
97
+ * This method simply show contents of the component page.
98
+ *
99
+ * @throws Exception
100
+ */
101
+ public function showPageContent()
102
+ {
103
+
104
+ /**
105
+ * @since 1.4.0
106
+ *
107
+ */
108
+ $components = apply_filters('wbcr/clearfy/license/list_components', []);
109
+
110
+ ?>
111
+ <div class="wbcr-factory-page-group-header"><?php _e('<strong>Products activation</strong>.', 'clearfy') ?>
112
+ <p>
113
+ <?php _e('These are components of the plugin bundle. When you activate the plugin, all the components turned on by default. If you don’t need some function, you can easily turn it off on this page.', 'clearfy') ?>
114
+ </p>
115
+ </div>
116
+ <div class="wbcr-clearfy-components">
117
+ <?php
118
+ /**
119
+ * @param array $components
120
+ *
121
+ * @since 1.6.2
122
+ */
123
+ do_action('wbcr/clearfy/license/custom_plugins_card', $components);
124
+ ?>
125
+
126
+ <?php foreach((array)$components as $component): ?>
127
+ <div class="plugin-card">
128
+ <div class="plugin-card-top">
129
+ <div class="name column-name">
130
+ <h3>
131
+ <a href="<?php echo esc_url($component['url']) ?>"
132
+ class="thickbox open-plugin-details-modal">
133
+ You use <?php echo esc_html($component['title']) ?>
134
+ <img src="<?php echo esc_attr($component['icon']) ?>" class="plugin-icon"
135
+ alt="<?php echo esc_attr($component['title']) ?>">
136
+ </a>
137
+ </h3>
138
+ </div>
139
+ <div class="desc column-description">
140
+ <?php if( 'premium' === $component['build'] ): ?>
141
+ <ul>
142
+ <?php if( !empty($component['key']) ): ?>
143
+ <li>
144
+ <strong><?php _e('License key', 'clearfy') ?>:
145
+ </strong> <?php echo esc_html($component['key']) ?>
146
+ </li>
147
+ <?php endif; ?>
148
+ <?php if( !empty($component['plan']) ): ?>
149
+ <li>
150
+ <strong><?php _e('Plan', 'clearfy') ?>:</strong>
151
+ <?php echo esc_html($component['plan']) ?>
152
+ </li>
153
+ <?php endif; ?>
154
+ <?php if( !empty($component['subscription']) ): ?>
155
+ <li>
156
+ <strong><?php _e('Type', 'clearfy') ?>:</strong>
157
+ <?php echo esc_html($component['subscription']) ?>
158
+ </li>
159
+ <?php endif; ?>
160
+ <?php if( !empty($component['plan']) ): ?>
161
+ <li>
162
+ <strong><?php _e('Expired', 'clearfy') ?>:
163
+ </strong> <?php echo esc_html($component['expiration_days']) ?> <?php _e('days remained', 'clearfy') ?>
164
+ </li>
165
+ <?php endif; ?>
166
+ </ul>
167
+ <?php else: ?>
168
+ <p><?php echo esc_html($component['description']); ?></p>
169
+ <?php endif; ?>
170
+ </div>
171
+ </div>
172
+ <div class="plugin-card-bottom">
173
+ <a href="<?php echo $this->getBaseUrl($component['license_page_id']); ?>"
174
+ class="button">
175
+ <?php if( 'premium' === $component['build'] ): ?>
176
+ <?php _e('License details') ?>
177
+ <?php else: ?>
178
+ <?php _e('Activate Premium License') ?>
179
+ <?php endif; ?>
180
+ </a>
181
+ </div>
182
+ </div>
183
+ <?php endforeach; ?>
184
+ <div class="clearfix"></div>
185
+ </div>
186
+ <?php
187
+ }
188
+
189
  }
admin/pages/class-pages-components.php CHANGED
@@ -1,208 +1,210 @@
1
- <?php
2
- /**
3
- * This file is the add-ons page.
4
- *
5
- * @author Alex Kovalev <alex@byonepress.com>
6
- * @since 1.0.0
7
- * @copyright (c) 2017, OnePress Ltd
8
- *
9
- */
10
-
11
- // Exit if accessed directly
12
- if( !defined('ABSPATH') ) {
13
- exit;
14
- }
15
-
16
- class WCL_ComponentsPage extends \WBCR\FactoryClearfy232\Pages\Components {
17
-
18
- public function get_components()
19
- {
20
- $default_image = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMzYwIiB2aWV3Ym94PSIwIDAgMzYwIDM2MCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0icmdiKDcwLCA4MSwgOTMpIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wNTQ2NjY2NjY2NjY2NjciIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4wNDYiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDU0NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsIDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjAyODY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4xMDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgNjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA5OCIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIwLCA2MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDYzMzMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0MCwgNjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjE0MTMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDEyMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDg5MzMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wODkzMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4wODA2NjY2NjY2NjY2NjciIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAxMjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDEyMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDk4IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDE4MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMTgwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMTgwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjA1NDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgMjQwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4xMDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDI0MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDcyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsIDI0MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMTE1MzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMjQwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAyNDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA4MDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAyNDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjEzMjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAzMDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjAzNzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMTI0IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDcyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDMwMCkiIC8+PC9zdmc+';
21
-
22
- $components = [];
23
- $components = array_merge($components, [
24
- [
25
- 'name' => 'cache',
26
- 'title' => __('Cache', 'clearfy'),
27
- 'type' => 'internal',
28
- 'build' => 'premium',
29
- 'url' => 'https://clearfy.pro/cache/',
30
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/cache-icon-128x128.png',
31
- 'description' => __('A very fast caching engine for WordPress that produces static html files.', 'clearfy')
32
- ],
33
- [
34
- 'name' => 'hide_my_wp',
35
- 'title' => __('Hide my wp', 'clearfy'),
36
- 'type' => 'internal',
37
- 'build' => 'premium',
38
- 'url' => 'http://clearfy.pro/hide-my-wp/',
39
- 'icon' => '//s3-us-west-2.amazonaws.com/freemius/plugins/2318/icons/db36219969de82e3d07042cc03eb53b0.png',
40
- 'description' => __('You can protect your WP by preventing the hacker from knowing which CMS, plugins, themes you use. It disables identification of your CMS.', 'clearfy')
41
- ],
42
- [
43
- 'name' => 'seo_friendly_images',
44
- 'title' => __('Seo friendly images', 'clearfy'),
45
- 'type' => 'internal',
46
- 'build' => 'premium',
47
- 'url' => 'https://clearfy.pro/',
48
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/sfi-icon-256x256.png',
49
- 'description' => __('Automatically assign alt and title for images, flexibly customize the template.', 'clearfy')
50
- ],
51
- [
52
- 'name' => 'async_js',
53
- 'title' => __('Async JS', 'clearfy'),
54
- 'type' => 'internal',
55
- 'build' => 'premium',
56
- 'url' => 'https://clearfy.pro/',
57
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/async-js-icon-128x128.png',
58
- 'description' => __('Async Javascript lets you add async or defer attribute to scripts to exclude to help increase the performance of your WordPres…', 'clearfy')
59
- ],
60
- [
61
- 'name' => 'robin_image_optimizer',
62
- 'title' => __('Robin image optimizer', 'clearfy'),
63
- 'url' => 'https://wordpress.org/plugins/robin-image-optimizer/',
64
- 'type' => 'wordpress',
65
- 'build' => 'freemium',
66
- 'base_path' => 'robin-image-optimizer/robin-image-optimizer.php',
67
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/rio-icon-128x128.png',
68
- 'description' => __('Automatic image optimization without any quality loss. No limitations, no paid plans. The best Wordpress image optimization plugin allows optimizing any amount of images for free!', 'clearfy')
69
- ],
70
- [
71
- 'name' => 'titan_security',
72
- 'title' => __('Firewall and Malware scanner', 'clearfy'),
73
- 'url' => 'https://wordpress.org/plugins/titan-security/',
74
- 'type' => 'creativemotion',
75
- 'build' => 'freemium',
76
- 'base_path' => 'anti-spam/anti-spam.php',
77
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/titan-icon-256x256.jpg',
78
- 'description' => __('Titan Security - Anti-virus, Firewall and Malware Scan', 'clearfy')
79
- ],
80
- [
81
- 'name' => 'hide_login_page',
82
- 'title' => __('Hide login page', 'clearfy'),
83
- 'url' => 'https://wordpress.org/plugins/hide-login-page/',
84
- 'type' => 'wordpress',
85
- 'build' => 'free',
86
- 'base_path' => 'hide-login-page/hide-login-page.php',
87
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/hlp-icon-128x128.png',
88
- 'description' => __('Hide Login Page is a very light plugin that lets you easily and safely change the url of the login form page to anything you want.', 'clearfy')
89
- ],
90
- [
91
- 'name' => 'html_minify',
92
- 'title' => __('Html minify', 'clearfy'),
93
- 'url' => '#',
94
- 'type' => 'internal',
95
- 'build' => 'free',
96
- 'icon' => $default_image,
97
- 'description' => __('Ever look at the HTML markup of your website and notice how sloppy and amateurish it looks? The Minify HTML options cleans up sloppy looking markup and minifies, which also speeds up download', 'clearfy')
98
- ],
99
- [
100
- 'name' => 'minify_and_combine',
101
- 'title' => __('Minify and combine (JS, CSS)', 'clearfy'),
102
- 'url' => '#',
103
- 'type' => 'internal',
104
- 'build' => 'free',
105
- 'icon' => $default_image,
106
- 'description' => __('Improve your speed score on GTmetrix, Pingdom Tools and Google PageSpeed Insights by merging and minifying CSS, JavaScript.', 'clearfy')
107
- ],
108
- [
109
- 'name' => 'ga_cache',
110
- 'title' => __('Google Analytics Cache', 'clearfy'),
111
- 'url' => 'https://wordpress.org/plugins/simple-google-analytics/',
112
- 'type' => 'internal',
113
- 'build' => 'free',
114
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/gac-icon-128x128.jpg',
115
- 'description' => __('To improve Google Page Speed indicators Analytics caching is needed. However, it can also slightly increase your website loading speed, because Analytics js files will load locally.', 'clearfy')
116
- ],
117
- [
118
- 'name' => 'updates_manager',
119
- 'title' => __('Updates manager', 'clearfy'),
120
- 'url' => 'https://wordpress.org/plugins/webcraftic-updates-manager/',
121
- 'type' => 'internal',
122
- 'build' => 'freemium',
123
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/upm-icon-128x128.png',
124
- 'description' => __('Disable updates enable auto updates for themes, plugins and WordPress.', 'clearfy')
125
- ],
126
- [
127
- 'name' => 'comments_tools',
128
- 'title' => __('Comments tools', 'clearfy'),
129
- 'url' => '#',
130
- 'type' => 'internal',
131
- 'build' => 'free',
132
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/dic-icon-128x128.png',
133
- 'description' => __('Bulk disable and remove comments, disable “Website” field, hides external links, disable XML-RPC.', 'clearfy')
134
- ],
135
- [
136
- 'name' => 'widget_tools',
137
- 'title' => __('Widgets tools', 'clearfy'),
138
- 'url' => '#',
139
- 'type' => 'internal',
140
- 'build' => 'free',
141
- 'icon' => $default_image,
142
- 'description' => __('Disable unused widgets such as tag cloud, links, calendar etc.', 'clearfy')
143
- ],
144
- [
145
- 'name' => 'disable_notices',
146
- 'title' => __('Disable admin notices', 'clearfy'),
147
- 'url' => '#',
148
- 'type' => 'internal',
149
- 'build' => 'free',
150
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/dan-icon-128x128.png',
151
- 'description' => __('Disables admin notices bulk or individually. Collects notices into the admin bar.', 'clearfy')
152
- ],
153
- [
154
- 'name' => 'adminbar_manager',
155
- 'title' => __('Admin bar manager', 'clearfy'),
156
- 'url' => '#',
157
- 'type' => 'internal',
158
- 'build' => 'free',
159
- 'icon' => $default_image,
160
- 'description' => __('Disables admin bar. Allows to change and remove admin bar elements.', 'clearfy')
161
- ],
162
- [
163
- 'name' => 'yoast_seo',
164
- 'title' => __('Yoast SEO optimization', 'clearfy'),
165
- 'url' => '#',
166
- 'type' => 'internal',
167
- 'build' => 'free',
168
- 'icon' => $default_image,
169
- 'description' => __('Set of optimization functions for the popular Yoast SEO plugin.', 'clearfy')
170
- ]
171
- ]);
172
-
173
- if( !is_plugin_active('gonzales/gonzales.php') ) {
174
- array_unshift($components, [
175
- 'name' => 'assets_manager',
176
- 'title' => __('Asset manager', 'clearfy'),
177
- 'url' => '#',
178
- 'type' => 'internal',
179
- 'build' => 'freemium',
180
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png',
181
- 'description' => __('Selectively disable unused scripts and styles on the pages of your website.', 'clearfy')
182
- ]);
183
- } else {
184
- array_unshift($components, [
185
- 'name' => 'gonzales',
186
- 'title' => __('Asset manager', 'clearfy'),
187
- 'url' => 'https://wordpress.org/plugins/robin-image-optimizer/',
188
- 'type' => 'wordpress',
189
- 'build' => 'freemium',
190
- 'base_path' => 'gonzales/gonzales.php',
191
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png',
192
- 'description' => __('Selectively disable unused scripts and styles on the pages of your website.', 'clearfy')
193
- ]);
194
- }
195
-
196
- $components[] = [
197
- 'name' => 'cyrlitera',
198
- 'title' => __('Transliteration of Cyrillic alphabet', 'clearfy'),
199
- 'type' => 'internal',
200
- 'build' => 'free',
201
- 'url' => 'https://wordpress.org/plugins/cyrlitera/',
202
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/ctr-icon-128x128.png',
203
- 'description' => __('Converts Cyrillic permalinks of post, pages, taxonomies and media files to the Latin alphabet. Supports Russian, Ukrainian, Georgian, Bulgarian languages.', 'clearfy')
204
- ];
205
-
206
- return $components;
207
- }
208
- }
 
 
1
+ <?php
2
+ /**
3
+ * This file is the add-ons page.
4
+ *
5
+ * @author Alex Kovalev <alex@byonepress.com>
6
+ * @since 1.0.0
7
+ * @copyright (c) 2017, OnePress Ltd
8
+ *
9
+ */
10
+
11
+ // Exit if accessed directly
12
+ if( !defined('ABSPATH') ) {
13
+ exit;
14
+ }
15
+
16
+ class WCL_ComponentsPage extends \WBCR\FactoryClearfy235\Pages\Components {
17
+
18
+ public function get_components()
19
+ {
20
+ $default_image = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMzYwIiB2aWV3Ym94PSIwIDAgMzYwIDM2MCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0icmdiKDcwLCA4MSwgOTMpIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wNTQ2NjY2NjY2NjY2NjciIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4wNDYiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDU0NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsIDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjAyODY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4xMDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgNjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA5OCIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIwLCA2MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDYzMzMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0MCwgNjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjE0MTMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDEyMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDg5MzMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wODkzMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4wODA2NjY2NjY2NjY2NjciIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAxMjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDEyMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDk4IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDE4MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMTgwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMTgwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjA1NDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgMjQwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4xMDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDI0MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDcyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsIDI0MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMTE1MzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMjQwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAyNDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA4MDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAyNDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjEzMjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAzMDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjAzNzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMTI0IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDcyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDMwMCkiIC8+PC9zdmc+';
21
+
22
+ $components = [];
23
+ $components = array_merge($components, [
24
+ [
25
+ 'name' => 'cache',
26
+ 'title' => __('Cache', 'clearfy'),
27
+ 'type' => 'internal',
28
+ 'build' => 'premium',
29
+ 'disable_button' => is_plugin_active('wp-rocket/wp-rocket.php'),
30
+ 'disable_button_reason' => __('You cannot activate the component while the wp rocket plugin is active!', 'clearfy'),
31
+ 'url' => 'https://clearfy.pro/cache/',
32
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/cache-icon-128x128.png',
33
+ 'description' => __('A very fast caching engine for WordPress that produces static html files.', 'clearfy')
34
+ ],
35
+ [
36
+ 'name' => 'hide_my_wp',
37
+ 'title' => __('Hide my wp', 'clearfy'),
38
+ 'type' => 'internal',
39
+ 'build' => 'premium',
40
+ 'url' => 'http://clearfy.pro/hide-my-wp/',
41
+ 'icon' => '//s3-us-west-2.amazonaws.com/freemius/plugins/2318/icons/db36219969de82e3d07042cc03eb53b0.png',
42
+ 'description' => __('You can protect your WP by preventing the hacker from knowing which CMS, plugins, themes you use. It disables identification of your CMS.', 'clearfy')
43
+ ],
44
+ [
45
+ 'name' => 'seo_friendly_images',
46
+ 'title' => __('Seo friendly images', 'clearfy'),
47
+ 'type' => 'internal',
48
+ 'build' => 'premium',
49
+ 'url' => 'https://clearfy.pro/',
50
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/sfi-icon-256x256.png',
51
+ 'description' => __('Automatically assign alt and title for images, flexibly customize the template.', 'clearfy')
52
+ ],
53
+ [
54
+ 'name' => 'async_js',
55
+ 'title' => __('Async JS', 'clearfy'),
56
+ 'type' => 'internal',
57
+ 'build' => 'premium',
58
+ 'url' => 'https://clearfy.pro/',
59
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/async-js-icon-128x128.png',
60
+ 'description' => __('Async Javascript lets you add async or defer attribute to scripts to exclude to help increase the performance of your WordPres…', 'clearfy')
61
+ ],
62
+ [
63
+ 'name' => 'robin_image_optimizer',
64
+ 'title' => __('Robin image optimizer', 'clearfy'),
65
+ 'url' => 'https://wordpress.org/plugins/robin-image-optimizer/',
66
+ 'type' => 'wordpress',
67
+ 'build' => 'freemium',
68
+ 'base_path' => 'robin-image-optimizer/robin-image-optimizer.php',
69
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/rio-icon-128x128.png',
70
+ 'description' => __('Automatic image optimization without any quality loss. No limitations, no paid plans. The best Wordpress image optimization plugin allows optimizing any amount of images for free!', 'clearfy')
71
+ ],
72
+ [
73
+ 'name' => 'titan_security',
74
+ 'title' => __('Firewall and Malware scanner', 'clearfy'),
75
+ 'url' => 'https://wordpress.org/plugins/titan-security/',
76
+ 'type' => 'creativemotion',
77
+ 'build' => 'freemium',
78
+ 'base_path' => 'anti-spam/anti-spam.php',
79
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/titan-icon-256x256.jpg',
80
+ 'description' => __('Titan Security - Anti-virus, Firewall and Malware Scan', 'clearfy')
81
+ ],
82
+ [
83
+ 'name' => 'hide_login_page',
84
+ 'title' => __('Hide login page', 'clearfy'),
85
+ 'url' => 'https://wordpress.org/plugins/hide-login-page/',
86
+ 'type' => 'wordpress',
87
+ 'build' => 'free',
88
+ 'base_path' => 'hide-login-page/hide-login-page.php',
89
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/hlp-icon-128x128.png',
90
+ 'description' => __('Hide Login Page is a very light plugin that lets you easily and safely change the url of the login form page to anything you want.', 'clearfy')
91
+ ],
92
+ [
93
+ 'name' => 'html_minify',
94
+ 'title' => __('Html minify', 'clearfy'),
95
+ 'url' => '#',
96
+ 'type' => 'internal',
97
+ 'build' => 'free',
98
+ 'icon' => $default_image,
99
+ 'description' => __('Ever look at the HTML markup of your website and notice how sloppy and amateurish it looks? The Minify HTML options cleans up sloppy looking markup and minifies, which also speeds up download', 'clearfy')
100
+ ],
101
+ [
102
+ 'name' => 'minify_and_combine',
103
+ 'title' => __('Minify and combine (JS, CSS)', 'clearfy'),
104
+ 'url' => '#',
105
+ 'type' => 'internal',
106
+ 'build' => 'free',
107
+ 'icon' => $default_image,
108
+ 'description' => __('Improve your speed score on GTmetrix, Pingdom Tools and Google PageSpeed Insights by merging and minifying CSS, JavaScript.', 'clearfy')
109
+ ],
110
+ [
111
+ 'name' => 'ga_cache',
112
+ 'title' => __('Google Analytics Cache', 'clearfy'),
113
+ 'url' => 'https://wordpress.org/plugins/simple-google-analytics/',
114
+ 'type' => 'internal',
115
+ 'build' => 'free',
116
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/gac-icon-128x128.jpg',
117
+ 'description' => __('To improve Google Page Speed indicators Analytics caching is needed. However, it can also slightly increase your website loading speed, because Analytics js files will load locally.', 'clearfy')
118
+ ],
119
+ [
120
+ 'name' => 'updates_manager',
121
+ 'title' => __('Updates manager', 'clearfy'),
122
+ 'url' => 'https://wordpress.org/plugins/webcraftic-updates-manager/',
123
+ 'type' => 'internal',
124
+ 'build' => 'freemium',
125
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/upm-icon-128x128.png',
126
+ 'description' => __('Disable updates enable auto updates for themes, plugins and WordPress.', 'clearfy')
127
+ ],
128
+ [
129
+ 'name' => 'comments_tools',
130
+ 'title' => __('Comments tools', 'clearfy'),
131
+ 'url' => '#',
132
+ 'type' => 'internal',
133
+ 'build' => 'free',
134
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/dic-icon-128x128.png',
135
+ 'description' => __('Bulk disable and remove comments, disable “Website” field, hides external links, disable XML-RPC.', 'clearfy')
136
+ ],
137
+ [
138
+ 'name' => 'widget_tools',
139
+ 'title' => __('Widgets tools', 'clearfy'),
140
+ 'url' => '#',
141
+ 'type' => 'internal',
142
+ 'build' => 'free',
143
+ 'icon' => $default_image,
144
+ 'description' => __('Disable unused widgets such as tag cloud, links, calendar etc.', 'clearfy')
145
+ ],
146
+ [
147
+ 'name' => 'disable_notices',
148
+ 'title' => __('Disable admin notices', 'clearfy'),
149
+ 'url' => '#',
150
+ 'type' => 'internal',
151
+ 'build' => 'free',
152
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/dan-icon-128x128.png',
153
+ 'description' => __('Disables admin notices bulk or individually. Collects notices into the admin bar.', 'clearfy')
154
+ ],
155
+ [
156
+ 'name' => 'adminbar_manager',
157
+ 'title' => __('Admin bar manager', 'clearfy'),
158
+ 'url' => '#',
159
+ 'type' => 'internal',
160
+ 'build' => 'free',
161
+ 'icon' => $default_image,
162
+ 'description' => __('Disables admin bar. Allows to change and remove admin bar elements.', 'clearfy')
163
+ ],
164
+ [
165
+ 'name' => 'yoast_seo',
166
+ 'title' => __('Yoast SEO optimization', 'clearfy'),
167
+ 'url' => '#',
168
+ 'type' => 'internal',
169
+ 'build' => 'free',
170
+ 'icon' => $default_image,
171
+ 'description' => __('Set of optimization functions for the popular Yoast SEO plugin.', 'clearfy')
172
+ ]
173
+ ]);
174
+
175
+ if( !is_plugin_active('gonzales/gonzales.php') ) {
176
+ array_unshift($components, [
177
+ 'name' => 'assets_manager',
178
+ 'title' => __('Asset manager', 'clearfy'),
179
+ 'url' => '#',
180
+ 'type' => 'internal',
181
+ 'build' => 'freemium',
182
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png',
183
+ 'description' => __('Selectively disable unused scripts and styles on the pages of your website.', 'clearfy')
184
+ ]);
185
+ } else {
186
+ array_unshift($components, [
187
+ 'name' => 'gonzales',
188
+ 'title' => __('Asset manager', 'clearfy'),
189
+ 'url' => 'https://wordpress.org/plugins/robin-image-optimizer/',
190
+ 'type' => 'wordpress',
191
+ 'build' => 'freemium',
192
+ 'base_path' => 'gonzales/gonzales.php',
193
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png',
194
+ 'description' => __('Selectively disable unused scripts and styles on the pages of your website.', 'clearfy')
195
+ ]);
196
+ }
197
+
198
+ $components[] = [
199
+ 'name' => 'cyrlitera',
200
+ 'title' => __('Transliteration of Cyrillic alphabet', 'clearfy'),
201
+ 'type' => 'internal',
202
+ 'build' => 'free',
203
+ 'url' => 'https://wordpress.org/plugins/cyrlitera/',
204
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/ctr-icon-128x128.png',
205
+ 'description' => __('Converts Cyrillic permalinks of post, pages, taxonomies and media files to the Latin alphabet. Supports Russian, Ukrainian, Georgian, Bulgarian languages.', 'clearfy')
206
+ ];
207
+
208
+ return $components;
209
+ }
210
+ }
admin/pages/class-pages-defence-titan.php CHANGED
@@ -1,119 +1,119 @@
1
- <?php
2
-
3
- /**
4
- * The page Settings.
5
- *
6
- * @since 1.0.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if( !defined('ABSPATH') ) {
11
- exit;
12
- }
13
-
14
- class WCL_TitanSecurityPage extends WCL_Page {
15
-
16
- /**
17
- * The id of the page in the admin menu.
18
- *
19
- * Mainly used to navigate between pages.
20
- *
21
- * @since 1.0.0
22
- * @see FactoryPages440_AdminPage
23
- *
24
- * @var string
25
- */
26
- public $id = "clearfy_titan";
27
-
28
- public $page_parent_page = "defence";
29
-
30
- /**
31
- * @var string
32
- */
33
- //public $page_parent_page = 'defence';
34
-
35
- /**
36
- * Тип страницы
37
- * options - предназначена для создании страниц с набором опций и настроек.
38
- * page - произвольный контент, любой html код
39
- *
40
- * @var string
41
- */
42
- public $type = 'page';
43
-
44
- /**
45
- * Позиция закладки в меню плагина.
46
- * 0 - в самом конце, 100 - в самом начале
47
- *
48
- * @var int
49
- */
50
- //public $page_menu_position = 20;
51
-
52
- /**
53
- * @var string
54
- */
55
- public $page_menu_dashicon = 'dashicons-shield-alt';
56
-
57
- /**
58
- * @var bool
59
- */
60
- public $available_for_multisite = true;
61
-
62
- /**
63
- * @param WCL_Plugin $plugin
64
- */
65
- public function __construct(WCL_Plugin $plugin)
66
- {
67
- $this->menu_title = __('Malware Scanner, Firewall', 'clearfy');
68
- $this->page_menu_short_description = __('Firewall and Anti-virus', 'clearfy');
69
-
70
- parent::__construct($plugin);
71
-
72
- $this->plugin = $plugin;
73
- }
74
-
75
- /**
76
- * Содержание страницы
77
- */
78
- public function showPageContent()
79
- {
80
- require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php';
81
- $install_button = $this->plugin->get_install_component_button('creativemotion', 'anti-spam/anti-spam.php');
82
- $install_button->add_class('wbcr-factory-purchase-premium');
83
- ?>
84
- <script>
85
- jQuery(document).ready(function($) {
86
- $.wfactory_441.hooks.add('core/components/updated', function(button, component_name) {
87
- if( component_name.plugin_action === 'install' ) {
88
- button.removeClass('wbcr-factory-purchase-premium');
89
- button.addClass('wbcr-factory-activate-premium');
90
- }
91
-
92
- if( component_name.plugin_action === 'activate' ) {
93
- button.remove();
94
- window.location.href = '<?= admin_url('admin.php?page=dashboard-titan_security'); ?>';
95
- }
96
- });
97
- });
98
- </script>
99
- <div class="wbcr-factory-clearfy-232-multisite-suggetion">
100
- <div class="wbcr-factory-inner-contanier">
101
- <h3>
102
- <a href="https://wordpress.org/plugins/anti-spam" target="_blank"><?php _e('Install Firewall and Malware scanner (Titan sucurity) component', 'clearfy') ?></a>
103
- </h3>
104
-
105
- <p><?php _e('Titan includes anti-spam, firewall, malware scanner, site accessibility checking, security and threats audits for WordPress websites. Our security functions provide Titan with the latest firewall rules, malware signatures, and database of malicious IP addresses – all you need to ensure the security of your website.', 'clearfy') ?></p>
106
- <p>
107
- <?php _e('Titan is a comprehensive WordPress security solution, completed by a set of additional features as add-ons, which was placed into a simple and intuitive interface.', 'clearfy') ?>
108
- <a href="https://wordpress.org/plugins/anti-spam" target="_blank"><?php _e('Read more', 'clearfy'); ?></a>
109
- </p>
110
-
111
- <p style="color:#ff4d00"><?php _e('Installing the component will not take you long, just click the install button, then activate.', 'clearfy') ?></p>
112
- <p style="margin-top:20px">
113
- <?php $install_button->render_link(); ?>
114
- </p>
115
- </div>
116
- </div>
117
- <?php
118
- }
119
- }
1
+ <?php
2
+
3
+ /**
4
+ * The page Settings.
5
+ *
6
+ * @since 1.0.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if( !defined('ABSPATH') ) {
11
+ exit;
12
+ }
13
+
14
+ class WCL_TitanSecurityPage extends WCL_Page {
15
+
16
+ /**
17
+ * The id of the page in the admin menu.
18
+ *
19
+ * Mainly used to navigate between pages.
20
+ *
21
+ * @since 1.0.0
22
+ * @see FactoryPages443_AdminPage
23
+ *
24
+ * @var string
25
+ */
26
+ public $id = "clearfy_titan";
27
+
28
+ public $page_parent_page = "defence";
29
+
30
+ /**
31
+ * @var string
32
+ */
33
+ //public $page_parent_page = 'defence';
34
+
35
+ /**
36
+ * Тип страницы
37
+ * options - предназначена для создании страниц с набором опций и настроек.
38
+ * page - произвольный контент, любой html код
39
+ *
40
+ * @var string
41
+ */
42
+ public $type = 'page';
43
+
44
+ /**
45
+ * Позиция закладки в меню плагина.
46
+ * 0 - в самом конце, 100 - в самом начале
47
+ *
48
+ * @var int
49
+ */
50
+ //public $page_menu_position = 20;
51
+
52
+ /**
53
+ * @var string
54
+ */
55
+ public $page_menu_dashicon = 'dashicons-shield-alt';
56
+
57
+ /**
58
+ * @var bool
59
+ */
60
+ public $available_for_multisite = true;
61
+
62
+ /**
63
+ * @param WCL_Plugin $plugin
64
+ */
65
+ public function __construct(WCL_Plugin $plugin)
66
+ {
67
+ $this->menu_title = __('Malware Scanner, Firewall', 'clearfy');
68
+ $this->page_menu_short_description = __('Firewall and Anti-virus', 'clearfy');
69
+
70
+ parent::__construct($plugin);
71
+
72
+ $this->plugin = $plugin;
73
+ }
74
+
75
+ /**
76
+ * Содержание страницы
77
+ */
78
+ public function showPageContent()
79
+ {
80
+ require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php';
81
+ $install_button = $this->plugin->get_install_component_button('creativemotion', 'anti-spam/anti-spam.php');
82
+ $install_button->add_class('wbcr-factory-purchase-premium');
83
+ ?>
84
+ <script>
85
+ jQuery(document).ready(function($) {
86
+ $.wfactory_444.hooks.add('core/components/updated', function(button, component_name) {
87
+ if( component_name.plugin_action === 'install' ) {
88
+ button.removeClass('wbcr-factory-purchase-premium');
89
+ button.addClass('wbcr-factory-activate-premium');
90
+ }
91
+
92
+ if( component_name.plugin_action === 'activate' ) {
93
+ button.remove();
94
+ window.location.href = '<?= admin_url('admin.php?page=dashboard-titan_security'); ?>';
95
+ }
96
+ });
97
+ });
98
+ </script>
99
+ <div class="wbcr-factory-clearfy-235-multisite-suggetion">
100
+ <div class="wbcr-factory-inner-contanier">
101
+ <h3>
102
+ <a href="https://wordpress.org/plugins/anti-spam" target="_blank"><?php _e('Install Firewall and Malware scanner (Titan sucurity) component', 'clearfy') ?></a>
103
+ </h3>
104
+
105
+ <p><?php _e('Titan includes anti-spam, firewall, malware scanner, site accessibility checking, security and threats audits for WordPress websites. Our security functions provide Titan with the latest firewall rules, malware signatures, and database of malicious IP addresses – all you need to ensure the security of your website.', 'clearfy') ?></p>
106
+ <p>
107
+ <?php _e('Titan is a comprehensive WordPress security solution, completed by a set of additional features as add-ons, which was placed into a simple and intuitive interface.', 'clearfy') ?>
108
+ <a href="https://wordpress.org/plugins/anti-spam" target="_blank"><?php _e('Read more', 'clearfy'); ?></a>
109
+ </p>
110
+
111
+ <p style="color:#ff4d00"><?php _e('Installing the component will not take you long, just click the install button, then activate.', 'clearfy') ?></p>
112
+ <p style="margin-top:20px">
113
+ <?php $install_button->render_link(); ?>
114
+ </p>
115
+ </div>
116
+ </div>
117
+ <?php
118
+ }
119
+ }
admin/pages/class-pages-defence.php CHANGED
@@ -1,156 +1,156 @@
1
- <?php
2
-
3
- /**
4
- * The page Settings.
5
- *
6
- * @since 1.0.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if ( ! defined( 'ABSPATH' ) ) {
11
- exit;
12
- }
13
-
14
- class WCL_DefencePage extends WCL_Page {
15
-
16
- /**
17
- * The id of the page in the admin menu.
18
- *
19
- * Mainly used to navigate between pages.
20
- * @see FactoryPages440_AdminPage
21
- *
22
- * @since 1.0.0
23
- * @var string
24
- */
25
- public $id = "defence";
26
-
27
- public $page_menu_dashicon = 'dashicons-shield-alt';
28
-
29
- public $available_for_multisite = true;
30
-
31
- /**
32
- * @param WCL_Plugin $plugin
33
- */
34
- public function __construct( WCL_Plugin $plugin ) {
35
- $this->menu_title = __( 'Defence', 'clearfy' );
36
- $this->page_menu_short_description = __( 'Protective hacks, privacy', 'clearfy' );
37
-
38
- parent::__construct( $plugin );
39
-
40
- $this->plugin = $plugin;
41
- }
42
-
43
- /**
44
- * Permalinks options.
45
- *
46
- * @since 1.0.0
47
- * @return mixed[]
48
- */
49
- public function getPageOptions() {
50
- $options = array();
51
-
52
- $options[] = array(
53
- 'type' => 'html',
54
- 'html' => '<div class="wbcr-factory-page-group-header">' . __( '<strong>Base settings</strong>.', 'clearfy' ) . '<p>' . __( 'Basic recommended security settings.', 'clearfy' ) . '</p></div>'
55
- );
56
-
57
- $options[] = array(
58
- 'type' => 'checkbox',
59
- 'way' => 'buttons',
60
- 'name' => 'protect_author_get',
61
- 'title' => __( 'Hide author login', 'clearfy' ),
62
- 'layout' => array( 'hint-type' => 'icon' ),
63
- 'hint' => __( 'An attacker can find out the author\'s login, using a similar request to get your site. mysite.com/?author=1', 'clearfy' ) . '<br><b>Clearfy: </b>' . __( 'Sets the redirect to exclude the possibility of obtaining a login.', 'clearfy' ),
64
- 'default' => false
65
- );
66
-
67
- $options[] = array(
68
- 'type' => 'checkbox',
69
- 'way' => 'buttons',
70
- 'name' => 'change_login_errors',
71
- 'title' => __( 'Hide errors when logging into the site', 'clearfy' ),
72
- 'layout' => array( 'hint-type' => 'icon' ),
73
- 'hint' => __( 'WP by default shows whether you entered a wrong login or incorrect password, which allows attackers to understand if there is a certain user on the site, and then start searching through the passwords.', 'clearfy' ) . '<br><b>Clearfy: </b>' . __( 'Changes in the text of the error so that attackers could not find the login.', 'clearfy' ),
74
- 'default' => false
75
- );
76
-
77
- $options[] = array(
78
- 'type' => 'checkbox',
79
- 'way' => 'buttons',
80
- 'name' => 'remove_x_pingback',
81
- 'title' => __( 'Disable XML-RPC', 'clearfy' ),
82
- 'layout' => array( 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ),
83
- 'hint' => __( 'A pingback is basically an automated comment that gets created when another blog links to you. A self-pingback is created when you link to an article within your own blog. Pingbacks are essentially nothing more than spam and simply waste resources.', 'clearfy' ) . '<br><b>Clearfy: </b>' . __( 'Removes the server responses a reference to the xmlrpc file.', 'clearfy' ),
84
- 'default' => false,
85
- 'eventsOn' => array(
86
- 'show' => '#wbcr-clearfy-xml-rpc-danger-message'
87
- ),
88
- 'eventsOff' => array(
89
- 'hide' => '#wbcr-clearfy-xml-rpc-danger-message'
90
- )
91
- );
92
-
93
- $options[] = array(
94
- 'type' => 'html',
95
- 'html' => array( $this, 'xmlRpcDangerMessage' )
96
- );
97
-
98
- //block_xml_rpc
99
- //disable_xml_rpc_auth
100
- //remove_xml_rpc_tag
101
-
102
- $options[] = array(
103
- 'type' => 'html',
104
- 'html' => '<div class="wbcr-factory-page-group-header">' . __( '<strong>Hide WordPress versions</strong>', 'clearfy' ) . '<p>' . __( 'WordPress itself and many plugins shows their version at the public areas of your site. An attacker received this information may be aware of the vulnerabilities found in the version of the WordPress core or plugins.', 'clearfy' ) . '</p></div>'
105
- );
106
-
107
- $options[] = array(
108
- 'type' => 'checkbox',
109
- 'way' => 'buttons',
110
- 'name' => 'remove_html_comments',
111
- 'title' => __( 'Remove html comments', 'clearfy' ),
112
- 'layout' => array( 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ),
113
- 'hint' => __( 'This function will remove all html comments in the source code, except for special and hidden comments. This is necessary to hide the version of installed plugins.', 'clearfy' ) . '<br><br><b>Clearfy: </b>' . __( 'Remove html comments in source code.', 'clearfy' ),
114
- 'default' => false
115
- );
116
-
117
- $options[] = array(
118
- 'type' => 'checkbox',
119
- 'way' => 'buttons',
120
- 'name' => 'remove_meta_generator',
121
- 'title' => __( 'Remove meta generator', 'clearfy' ) . ' <span class="wbcr-clearfy-recomended-text">(' . __( 'Recommended', 'clearfy' ) . ')</span>',
122
- 'layout' => array( 'hint-type' => 'icon' ),
123
- 'hint' => __( 'Allows attacker to learn the version of WP installed on the site. This meta tag has no useful function.', 'clearfy' ) . '<br><b>Clearfy: </b>' . sprintf( __( 'Removes the meta tag from the %s section', 'clearfy' ), '&lt;head&gt;' ),
124
- 'default' => false
125
- );
126
-
127
- $form_options = array();
128
-
129
- $form_options[] = array(
130
- 'type' => 'form-group',
131
- 'items' => apply_filters( 'wbcr_clearfy_defence_form_options', $options, $this ),
132
- //'cssClass' => 'postbox'
133
- );
134
-
135
- return wbcr_factory_441_apply_filters_deprecated( 'wbcr_clr_defence_form_options', array(
136
- $form_options,
137
- $this
138
- ), '1.3.1', 'wbcr_clearfy_defence_form_options' );
139
- }
140
-
141
- /**
142
- * Adds an html warning notification html markup.
143
- */
144
- public function xmlRpcDangerMessage() {
145
- ?>
146
- <div class="form-group">
147
- <label class="col-sm-4 control-label"></label>
148
- <div class="control-group col-sm-8">
149
- <div id="wbcr-clearfy-xml-rpc-danger-message" class="wbcr-clearfy-danger-message">
150
- <?php _e( '<b>Use this option carefully!</b><br> Plugins like jetpack may have problems using this option.', 'clearfy' ) ?>
151
- </div>
152
- </div>
153
- </div>
154
- <?php
155
- }
156
- }
1
+ <?php
2
+
3
+ /**
4
+ * The page Settings.
5
+ *
6
+ * @since 1.0.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if ( ! defined( 'ABSPATH' ) ) {
11
+ exit;
12
+ }
13
+
14
+ class WCL_DefencePage extends WCL_Page {
15
+
16
+ /**
17
+ * The id of the page in the admin menu.
18
+ *
19
+ * Mainly used to navigate between pages.
20
+ * @see FactoryPages443_AdminPage
21
+ *
22
+ * @since 1.0.0
23
+ * @var string
24
+ */
25
+ public $id = "defence";
26
+
27
+ public $page_menu_dashicon = 'dashicons-shield-alt';
28
+
29
+ public $available_for_multisite = true;
30
+
31
+ /**
32
+ * @param WCL_Plugin $plugin
33
+ */
34
+ public function __construct( WCL_Plugin $plugin ) {
35
+ $this->menu_title = __( 'Defence', 'clearfy' );
36
+ $this->page_menu_short_description = __( 'Protective hacks, privacy', 'clearfy' );
37
+
38
+ parent::__construct( $plugin );
39
+
40
+ $this->plugin = $plugin;
41
+ }
42
+
43
+ /**
44
+ * Permalinks options.
45
+ *
46
+ * @since 1.0.0
47
+ * @return mixed[]
48
+ */
49
+ public function getPageOptions() {
50
+ $options = array();
51
+
52
+ $options[] = array(
53
+ 'type' => 'html',
54
+ 'html' => '<div class="wbcr-factory-page-group-header">' . __( '<strong>Base settings</strong>.', 'clearfy' ) . '<p>' . __( 'Basic recommended security settings.', 'clearfy' ) . '</p></div>'
55
+ );
56
+
57
+ $options[] = array(
58
+ 'type' => 'checkbox',
59
+ 'way' => 'buttons',
60
+ 'name' => 'protect_author_get',
61
+ 'title' => __( 'Hide author login', 'clearfy' ),
62
+ 'layout' => array( 'hint-type' => 'icon' ),
63
+ 'hint' => __( 'An attacker can find out the author\'s login, using a similar request to get your site. mysite.com/?author=1', 'clearfy' ) . '<br><b>Clearfy: </b>' . __( 'Sets the redirect to exclude the possibility of obtaining a login.', 'clearfy' ),
64
+ 'default' => false
65
+ );
66
+
67
+ $options[] = array(
68
+ 'type' => 'checkbox',
69
+ 'way' => 'buttons',
70
+ 'name' => 'change_login_errors',
71
+ 'title' => __( 'Hide errors when logging into the site', 'clearfy' ),
72
+ 'layout' => array( 'hint-type' => 'icon' ),
73
+ 'hint' => __( 'WP by default shows whether you entered a wrong login or incorrect password, which allows attackers to understand if there is a certain user on the site, and then start searching through the passwords.', 'clearfy' ) . '<br><b>Clearfy: </b>' . __( 'Changes in the text of the error so that attackers could not find the login.', 'clearfy' ),
74
+ 'default' => false
75
+ );
76
+
77
+ $options[] = array(
78
+ 'type' => 'checkbox',
79
+ 'way' => 'buttons',
80
+ 'name' => 'remove_x_pingback',
81
+ 'title' => __( 'Disable XML-RPC', 'clearfy' ),
82
+ 'layout' => array( 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ),
83
+ 'hint' => __( 'A pingback is basically an automated comment that gets created when another blog links to you. A self-pingback is created when you link to an article within your own blog. Pingbacks are essentially nothing more than spam and simply waste resources.', 'clearfy' ) . '<br><b>Clearfy: </b>' . __( 'Removes the server responses a reference to the xmlrpc file.', 'clearfy' ),
84
+ 'default' => false,
85
+ 'eventsOn' => array(
86
+ 'show' => '#wbcr-clearfy-xml-rpc-danger-message'
87
+ ),
88
+ 'eventsOff' => array(
89
+ 'hide' => '#wbcr-clearfy-xml-rpc-danger-message'
90
+ )
91
+ );
92
+
93
+ $options[] = array(
94
+ 'type' => 'html',
95
+ 'html' => array( $this, 'xmlRpcDangerMessage' )
96
+ );
97
+
98
+ //block_xml_rpc
99
+ //disable_xml_rpc_auth
100
+ //remove_xml_rpc_tag
101
+
102
+ $options[] = array(
103
+ 'type' => 'html',
104
+ 'html' => '<div class="wbcr-factory-page-group-header">' . __( '<strong>Hide WordPress versions</strong>', 'clearfy' ) . '<p>' . __( 'WordPress itself and many plugins shows their version at the public areas of your site. An attacker received this information may be aware of the vulnerabilities found in the version of the WordPress core or plugins.', 'clearfy' ) . '</p></div>'
105
+ );
106
+
107
+ $options[] = array(
108
+ 'type' => 'checkbox',
109
+ 'way' => 'buttons',
110
+ 'name' => 'remove_html_comments',
111
+ 'title' => __( 'Remove html comments', 'clearfy' ),
112
+ 'layout' => array( 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ),
113
+ 'hint' => __( 'This function will remove all html comments in the source code, except for special and hidden comments. This is necessary to hide the version of installed plugins.', 'clearfy' ) . '<br><br><b>Clearfy: </b>' . __( 'Remove html comments in source code.', 'clearfy' ),
114
+ 'default' => false
115
+ );
116
+
117
+ $options[] = array(
118
+ 'type' => 'checkbox',
119
+ 'way' => 'buttons',
120
+ 'name' => 'remove_meta_generator',
121
+ 'title' => __( 'Remove meta generator', 'clearfy' ) . ' <span class="wbcr-clearfy-recomended-text">(' . __( 'Recommended', 'clearfy' ) . ')</span>',
122
+ 'layout' => array( 'hint-type' => 'icon' ),
123
+ 'hint' => __( 'Allows attacker to learn the version of WP installed on the site. This meta tag has no useful function.', 'clearfy' ) . '<br><b>Clearfy: </b>' . sprintf( __( 'Removes the meta tag from the %s section', 'clearfy' ), '&lt;head&gt;' ),
124
+ 'default' => false
125
+ );
126
+
127
+ $form_options = array();
128
+
129
+ $form_options[] = array(
130
+ 'type' => 'form-group',
131
+ 'items' => apply_filters( 'wbcr_clearfy_defence_form_options', $options, $this ),
132
+ //'cssClass' => 'postbox'
133
+ );
134
+
135
+ return wbcr_factory_444_apply_filters_deprecated( 'wbcr_clr_defence_form_options', array(
136
+ $form_options,
137
+ $this
138
+ ), '1.3.1', 'wbcr_clearfy_defence_form_options' );
139
+ }
140
+
141
+ /**
142
+ * Adds an html warning notification html markup.
143
+ */
144
+ public function xmlRpcDangerMessage() {
145
+ ?>
146
+ <div class="form-group">
147
+ <label class="col-sm-4 control-label"></label>
148
+ <div class="control-group col-sm-8">
149
+ <div id="wbcr-clearfy-xml-rpc-danger-message" class="wbcr-clearfy-danger-message">
150
+ <?php _e( '<b>Use this option carefully!</b><br> Plugins like jetpack may have problems using this option.', 'clearfy' ) ?>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ <?php
155
+ }
156
+ }
admin/pages/class-pages-hide-login-page.php CHANGED
@@ -1,109 +1,109 @@
1
- <?php
2
-
3
- /**
4
- * The page Settings.
5
- *
6
- * @since 1.0.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if( !defined('ABSPATH') ) {
11
- exit;
12
- }
13
-
14
- class WCL_HideLoginPage extends WCL_Page {
15
-
16
- /**
17
- * The id of the page in the admin menu.
18
- *
19
- * Mainly used to navigate between pages.
20
- * @see FactoryPages440_AdminPage
21
- *
22
- * @since 1.0.0
23
- * @var string
24
- */
25
- public $id = "clrf_hide_login";
26
-
27
- /**
28
- * @var string
29
- */
30
- public $page_parent_page = 'defence';
31
-
32
- /**
33
- * Тип страницы
34
- * options - предназначена для создании страниц с набором опций и настроек.
35
- * page - произвольный контент, любой html код
36
- *
37
- * @var string
38
- */
39
- public $type = 'page';
40
-
41
- /**
42
- * Позиция закладки в меню плагина.
43
- * 0 - в самом конце, 100 - в самом начале
44
- *
45
- * @var int
46
- */
47
- public $page_menu_position = 30;
48
-
49
- /**
50
- * @var string
51
- */
52
- public $page_menu_dashicon = 'dashicons-images-alt2';
53
-
54
- /**
55
- * @var bool
56
- */
57
- public $available_for_multisite = true;
58
-
59
- /**
60
- * @param WCL_Plugin $plugin
61
- */
62
- public function __construct(WCL_Plugin $plugin)
63
- {
64
- $this->menu_title = __('Hide login page', 'clearfy');
65
- parent::__construct($plugin);
66
-
67
- $this->plugin = $plugin;
68
- }
69
-
70
- /**
71
- * Содержание страницы
72
- */
73
- public function showPageContent()
74
- {
75
- require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php';
76
- $install_button = $this->plugin->get_install_component_button('wordpress', 'hide-login-page/hide-login-page.php');
77
- $install_button->add_class('wbcr-factory-purchase-premium');
78
- ?>
79
- <script>
80
- jQuery(document).ready(function($) {
81
- $.wfactory_441.hooks.add('core/components/updated', function(button, component_name) {
82
- if( component_name.plugin_action === 'install' ) {
83
- button.removeClass('wbcr-factory-purchase-premium');
84
- button.addClass('wbcr-factory-activate-premium');
85
- }
86
-
87
- if( component_name.plugin_action === 'activate' ) {
88
- button.remove();
89
- window.location.href = '<?= $this->getBaseUrl('hlp_hide_login'); ?>';
90
- }
91
- });
92
- });
93
- </script>
94
- <div class="wbcr-factory-clearfy-232-multisite-suggetion">
95
- <div class="wbcr-factory-inner-contanier">
96
- <h3><?php _e('Install Hide login page component', 'clearfy') ?></h3>
97
-
98
- <p><?php _e('To start protect login page, you need to install the additional component Hide login page!', 'clearfy') ?></p>
99
-
100
- <p><?php _e('Installing the component will not take you long, just click the install button, then activate.', 'clearfy') ?></p>
101
-
102
- <p style="margin-top:20px">
103
- <?php $install_button->render_link(); ?>
104
- </p>
105
- </div>
106
- </div>
107
- <?php
108
- }
109
- }
1
+ <?php
2
+
3
+ /**
4
+ * The page Settings.
5
+ *
6
+ * @since 1.0.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if( !defined('ABSPATH') ) {
11
+ exit;
12
+ }
13
+
14
+ class WCL_HideLoginPage extends WCL_Page {
15
+
16
+ /**
17
+ * The id of the page in the admin menu.
18
+ *
19
+ * Mainly used to navigate between pages.
20
+ * @see FactoryPages443_AdminPage
21
+ *
22
+ * @since 1.0.0
23
+ * @var string
24
+ */
25
+ public $id = "clrf_hide_login";
26
+
27
+ /**
28
+ * @var string
29
+ */
30
+ public $page_parent_page = 'defence';
31
+
32
+ /**
33
+ * Тип страницы
34
+ * options - предназначена для создании страниц с набором опций и настроек.
35
+ * page - произвольный контент, любой html код
36
+ *
37
+ * @var string
38
+ */
39
+ public $type = 'page';
40
+
41
+ /**
42
+ * Позиция закладки в меню плагина.
43
+ * 0 - в самом конце, 100 - в самом начале
44
+ *
45
+ * @var int
46
+ */
47
+ public $page_menu_position = 30;
48
+
49
+ /**
50
+ * @var string
51
+ */
52
+ public $page_menu_dashicon = 'dashicons-images-alt2';
53
+
54
+ /**
55
+ * @var bool
56
+ */
57
+ public $available_for_multisite = true;
58
+
59
+ /**
60
+ * @param WCL_Plugin $plugin
61
+ */
62
+ public function __construct(WCL_Plugin $plugin)
63
+ {
64
+ $this->menu_title = __('Hide login page', 'clearfy');
65
+ parent::__construct($plugin);
66
+
67
+ $this->plugin = $plugin;
68
+ }
69
+
70
+ /**
71
+ * Содержание страницы
72
+ */
73
+ public function showPageContent()
74
+ {
75
+ require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php';
76
+ $install_button = $this->plugin->get_install_component_button('wordpress', 'hide-login-page/hide-login-page.php');
77
+ $install_button->add_class('wbcr-factory-purchase-premium');
78
+ ?>
79
+ <script>
80
+ jQuery(document).ready(function($) {
81
+ $.wfactory_444.hooks.add('core/components/updated', function(button, component_name) {
82
+ if( component_name.plugin_action === 'install' ) {
83
+ button.removeClass('wbcr-factory-purchase-premium');
84
+ button.addClass('wbcr-factory-activate-premium');
85
+ }
86
+
87
+ if( component_name.plugin_action === 'activate' ) {
88
+ button.remove();
89
+ window.location.href = '<?= $this->getBaseUrl('hlp_hide_login'); ?>';
90
+ }
91
+ });
92
+ });
93
+ </script>
94
+ <div class="wbcr-factory-clearfy-235-multisite-suggetion">
95
+ <div class="wbcr-factory-inner-contanier">
96
+ <h3><?php _e('Install Hide login page component', 'clearfy') ?></h3>
97
+
98
+ <p><?php _e('To start protect login page, you need to install the additional component Hide login page!', 'clearfy') ?></p>
99
+
100
+ <p><?php _e('Installing the component will not take you long, just click the install button, then activate.', 'clearfy') ?></p>
101
+
102
+ <p style="margin-top:20px">
103
+ <?php $install_button->render_link(); ?>
104
+ </p>
105
+ </div>
106
+ </div>
107
+ <?php
108
+ }
109
+ }
admin/pages/class-pages-image-optimization.php CHANGED
@@ -1,107 +1,107 @@
1
- <?php
2
-
3
- /**
4
- * The page Settings.
5
- *
6
- * @since 1.0.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if ( ! defined( 'ABSPATH' ) ) {
11
- exit;
12
- }
13
-
14
- class WCL_ImageOptimizationPage extends WCL_Page {
15
-
16
- /**
17
- * The id of the page in the admin menu.
18
- *
19
- * Mainly used to navigate between pages.
20
- *
21
- * @since 1.0.0
22
- * @see FactoryPages440_AdminPage
23
- *
24
- * @var string
25
- */
26
- public $id = "clearfy_rio";
27
-
28
- /**
29
- * @var string
30
- */
31
- public $page_parent_page = 'performance';
32
-
33
- /**
34
- * Тип страницы
35
- * options - предназначена для создании страниц с набором опций и настроек.
36
- * page - произвольный контент, любой html код
37
- *
38
- * @var string
39
- */
40
- public $type = 'page';
41
-
42
- /**
43
- * Позиция закладки в меню плагина.
44
- * 0 - в самом конце, 100 - в самом начале
45
- *
46
- * @var int
47
- */
48
- public $page_menu_position = 30;
49
-
50
- /**
51
- * @var string
52
- */
53
- public $page_menu_dashicon = 'dashicons-images-alt2';
54
-
55
- /**
56
- * @var bool
57
- */
58
- public $available_for_multisite = true;
59
-
60
- /**
61
- * @param WCL_Plugin $plugin
62
- */
63
- public function __construct( WCL_Plugin $plugin ) {
64
- $this->menu_title = __( 'Image optimization', 'clearfy' );
65
- $this->page_menu_short_description = __( 'Compress bulk of images', 'clearfy' );
66
-
67
- parent::__construct( $plugin );
68
-
69
- $this->plugin = $plugin;
70
- }
71
-
72
- /**
73
- * Содержание страницы
74
- */
75
- public function showPageContent() {
76
- require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php';
77
- $install_button = $this->plugin->get_install_component_button( 'wordpress', 'robin-image-optimizer/robin-image-optimizer.php' );
78
- $install_button->add_class( 'wbcr-factory-purchase-premium' );
79
- ?>
80
- <script>
81
- jQuery(document).ready(function($) {
82
- $.wfactory_441.hooks.add('core/components/updated', function(button, component_name) {
83
- if( component_name.plugin_action === 'install' ) {
84
- button.removeClass('wbcr-factory-purchase-premium');
85
- button.addClass('wbcr-factory-activate-premium');
86
- }
87
-
88
- if( component_name.plugin_action === 'activate' ) {
89
- button.remove();
90
- window.location.href = '<?= $this->getBaseUrl( 'rio_general' ); ?>';
91
- }
92
- });
93
- });
94
- </script>
95
- <div class="wbcr-factory-clearfy-232-multisite-suggetion">
96
- <div class="wbcr-factory-inner-contanier">
97
- <h3><?php _e( 'Install Robin Image Optimizer component', 'clearfy' ) ?></h3>
98
- <p><?php _e( 'To start optimizing images, you need to install the additional component Robin image optimizer!', 'clearfy' ) ?></p>
99
- <p><?php _e( 'Installing the component will not take you long, just click the install button, then activate.', 'clearfy' ) ?></p>
100
- <p style="margin-top:20px">
101
- <?php $install_button->render_link(); ?>
102
- </p>
103
- </div>
104
- </div>
105
- <?php
106
- }
107
- }
1
+ <?php
2
+
3
+ /**
4
+ * The page Settings.
5
+ *
6
+ * @since 1.0.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if ( ! defined( 'ABSPATH' ) ) {
11
+ exit;
12
+ }
13
+
14
+ class WCL_ImageOptimizationPage extends WCL_Page {
15
+
16
+ /**
17
+ * The id of the page in the admin menu.
18
+ *
19
+ * Mainly used to navigate between pages.
20
+ *
21
+ * @since 1.0.0
22
+ * @see FactoryPages443_AdminPage
23
+ *
24
+ * @var string
25
+ */
26
+ public $id = "clearfy_rio";
27
+
28
+ /**
29
+ * @var string
30
+ */
31
+ public $page_parent_page = 'performance';
32
+
33
+ /**
34
+ * Тип страницы
35
+ * options - предназначена для создании страниц с набором опций и настроек.
36
+ * page - произвольный контент, любой html код
37
+ *
38
+ * @var string
39
+ */
40
+ public $type = 'page';
41
+
42
+ /**
43
+ * Позиция закладки в меню плагина.
44
+ * 0 - в самом конце, 100 - в самом начале
45
+ *
46
+ * @var int
47
+ */
48
+ public $page_menu_position = 30;
49
+
50
+ /**
51
+ * @var string
52
+ */
53
+ public $page_menu_dashicon = 'dashicons-images-alt2';
54
+
55
+ /**
56
+ * @var bool
57
+ */
58
+ public $available_for_multisite = true;
59
+
60
+ /**
61
+ * @param WCL_Plugin $plugin
62
+ */
63
+ public function __construct( WCL_Plugin $plugin ) {
64
+ $this->menu_title = __( 'Image optimization', 'clearfy' );
65
+ $this->page_menu_short_description = __( 'Compress bulk of images', 'clearfy' );
66
+
67
+ parent::__construct( $plugin );
68
+
69
+ $this->plugin = $plugin;
70
+ }
71
+
72
+ /**
73
+ * Содержание страницы
74
+ */
75
+ public function showPageContent() {
76
+ require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php';
77
+ $install_button = $this->plugin->get_install_component_button( 'wordpress', 'robin-image-optimizer/robin-image-optimizer.php' );
78
+ $install_button->add_class( 'wbcr-factory-purchase-premium' );
79
+ ?>
80
+ <script>
81
+ jQuery(document).ready(function($) {
82
+ $.wfactory_444.hooks.add('core/components/updated', function(button, component_name) {
83
+ if( component_name.plugin_action === 'install' ) {
84
+ button.removeClass('wbcr-factory-purchase-premium');
85
+ button.addClass('wbcr-factory-activate-premium');
86
+ }
87
+
88
+ if( component_name.plugin_action === 'activate' ) {
89
+ button.remove();
90
+ window.location.href = '<?= $this->getBaseUrl( 'rio_general' ); ?>';
91
+ }
92
+ });
93
+ });
94
+ </script>
95
+ <div class="wbcr-factory-clearfy-235-multisite-suggetion">
96
+ <div class="wbcr-factory-inner-contanier">
97
+ <h3><?php _e( 'Install Robin Image Optimizer component', 'clearfy' ) ?></h3>
98
+ <p><?php _e( 'To start optimizing images, you need to install the additional component Robin image optimizer!', 'clearfy' ) ?></p>
99
+ <p><?php _e( 'Installing the component will not take you long, just click the install button, then activate.', 'clearfy' ) ?></p>
100
+ <p style="margin-top:20px">
101
+ <?php $install_button->render_link(); ?>
102
+ </p>
103
+ </div>
104
+ </div>
105
+ <?php
106
+ }
107
+ }
admin/pages/class-pages-license.php CHANGED
@@ -1,103 +1,103 @@
1
- <?php
2
- // Exit if accessed directly
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit;
5
- }
6
-
7
- /**
8
- * Страница лицензирования плагина.
9
- *
10
- * Поддерживает режим работы с мультисаймами. Вы можете увидеть эту страницу в панели настройки сети.
11
- *
12
- * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
13
- *
14
- * @copyright (c) 2018 Webraftic Ltd
15
- */
16
- class WCL_LicensePage extends Wbcr_FactoryClearfy232_LicensePage {
17
-
18
- /**
19
- * {@inheritdoc}
20
- *
21
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
22
- * @since 1.6.0
23
- * @var string
24
- */
25
- public $id = 'clearfy_license';
26
-
27
- /**
28
- * {@inheritdoc}
29
- *
30
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
31
- * @since 1.6.0
32
- * @var string
33
- */
34
- public $page_parent_page;
35
-
36
- /**
37
- * WCL_LicensePage constructor.
38
- *
39
- * @param \Wbcr_Factory441_Plugin $plugin
40
- *
41
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
42
- *
43
- */
44
- public function __construct( Wbcr_Factory441_Plugin $plugin ) {
45
- $this->menu_title = __( 'License', 'robin-image-optimizer' );
46
- $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
47
- $this->plan_name = __( 'Clearfy Business', 'robin-image-optimizer' );
48
-
49
- if ( defined( 'WIO_PLUGIN_ACTIVE' ) && ! wrio_is_clearfy_license_activate() ) {
50
- $this->page_parent_page = 'none';
51
- }
52
-
53
- parent::__construct( $plugin );
54
-
55
- /**
56
- * Adds a new plugin card to license components page
57
- *
58
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
59
- * @since 1.6.2
60
- */
61
- add_filter( 'wbcr/clearfy/license/list_components', function ( $components ) {
62
- $title = 'Free';
63
- $icon = 'clearfy-premium-icon-256x256--lock.png';
64
-
65
- if ( $this->is_premium ) {
66
- $title = 'Premium';
67
- $icon = 'clearfy-premium-icon-256x256--default.png';
68
- }
69
-
70
- $components[] = [
71
- 'name' => 'clearfy',
72
- 'title' => sprintf( __( 'Clearfy [%s]', 'clearfy' ), $title ),
73
- 'type' => 'internal',
74
- 'build' => $this->is_premium ? 'premium' : 'free',
75
- 'key' => $this->get_hidden_license_key(),
76
- 'plan' => $this->get_plan(),
77
- 'expiration_days' => $this->get_expiration_days(),
78
- 'quota' => $this->is_premium ? $this->premium_license->get_count_active_sites() . ' ' . __( 'of', 'clearfy' ) . ' ' . $this->premium_license->get_sites_quota() : null,
79
- 'subscription' => $this->is_premium && $this->premium_has_subscription ? sprintf( __( 'Automatic renewal, every %s', '' ), esc_attr( $this->get_billing_cycle_readable() ) ) : null,
80
- 'url' => 'https://clearfy.pro/',
81
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/' . $icon,
82
- 'description' => __( 'Public License is a GPLv3 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'clearfy' ),
83
- 'license_page_id' => 'clearfy_license'
84
- ];
85
-
86
- return $components;
87
- } );
88
- }
89
-
90
- /**
91
- * {@inheritdoc}
92
- *
93
- * @return string
94
- * @since 1.6.0
95
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
96
- */
97
- public function get_plan_description() {
98
- $description = '<p style="font-size: 16px;">' . __( '<b>Clearfy Business</b> is a paid package of components for the popular free WordPress plugin named Clearfy. You get access to all paid components at one price.', 'clearfy' ) . '</p>';
99
- $description .= '<p style="font-size: 16px;">' . __( 'Paid license guarantees that you can download and update existing and future paid components of the plugin.', 'clearfy' ) . '</p>';
100
-
101
- return $description;
102
- }
103
  }
1
+ <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ /**
8
+ * Страница лицензирования плагина.
9
+ *
10
+ * Поддерживает режим работы с мультисаймами. Вы можете увидеть эту страницу в панели настройки сети.
11
+ *
12
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
13
+ *
14
+ * @copyright (c) 2018 Webraftic Ltd
15
+ */
16
+ class WCL_LicensePage extends Wbcr_FactoryClearfy235_LicensePage {
17
+
18
+ /**
19
+ * {@inheritdoc}
20
+ *
21
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
22
+ * @since 1.6.0
23
+ * @var string
24
+ */
25
+ public $id = 'clearfy_license';
26
+
27
+ /**
28
+ * {@inheritdoc}
29
+ *
30
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
31
+ * @since 1.6.0
32
+ * @var string
33
+ */
34
+ public $page_parent_page;
35
+
36
+ /**
37
+ * WCL_LicensePage constructor.
38
+ *
39
+ * @param \Wbcr_Factory444_Plugin $plugin
40
+ *
41
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
42
+ *
43
+ */
44
+ public function __construct( Wbcr_Factory444_Plugin $plugin ) {
45
+ $this->menu_title = __( 'License', 'robin-image-optimizer' );
46
+ $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
47
+ $this->plan_name = __( 'Clearfy Business', 'robin-image-optimizer' );
48
+
49
+ if ( defined( 'WIO_PLUGIN_ACTIVE' ) && ! wrio_is_clearfy_license_activate() ) {
50
+ $this->page_parent_page = 'none';
51
+ }
52
+
53
+ parent::__construct( $plugin );
54
+
55
+ /**
56
+ * Adds a new plugin card to license components page
57
+ *
58
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
59
+ * @since 1.6.2
60
+ */
61
+ add_filter( 'wbcr/clearfy/license/list_components', function ( $components ) {
62
+ $title = 'Free';
63
+ $icon = 'clearfy-premium-icon-256x256--lock.png';
64
+
65
+ if ( $this->is_premium ) {
66
+ $title = 'Premium';
67
+ $icon = 'clearfy-premium-icon-256x256--default.png';
68
+ }
69
+
70
+ $components[] = [
71
+ 'name' => 'clearfy',
72
+ 'title' => sprintf( __( 'Clearfy [%s]', 'clearfy' ), $title ),
73
+ 'type' => 'internal',
74
+ 'build' => $this->is_premium ? 'premium' : 'free',
75
+ 'key' => $this->get_hidden_license_key(),
76
+ 'plan' => $this->get_plan(),
77
+ 'expiration_days' => $this->get_expiration_days(),
78
+ 'quota' => $this->is_premium ? $this->premium_license->get_count_active_sites() . ' ' . __( 'of', 'clearfy' ) . ' ' . $this->premium_license->get_sites_quota() : null,
79
+ 'subscription' => $this->is_premium && $this->premium_has_subscription ? sprintf( __( 'Automatic renewal, every %s', '' ), esc_attr( $this->get_billing_cycle_readable() ) ) : null,
80
+ 'url' => 'https://clearfy.pro/',
81
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/' . $icon,
82
+ 'description' => __( 'Public License is a GPLv3 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'clearfy' ),
83
+ 'license_page_id' => 'clearfy_license'
84
+ ];
85
+
86
+ return $components;
87
+ } );
88
+ }
89
+
90
+ /**
91
+ * {@inheritdoc}
92
+ *
93
+ * @return string
94
+ * @since 1.6.0
95
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
96
+ */
97
+ public function get_plan_description() {
98
+ $description = '<p style="font-size: 16px;">' . __( '<b>Clearfy Business</b> is a paid package of components for the popular free WordPress plugin named Clearfy. You get access to all paid components at one price.', 'clearfy' ) . '</p>';
99
+ $description .= '<p style="font-size: 16px;">' . __( 'Paid license guarantees that you can download and update existing and future paid components of the plugin.', 'clearfy' ) . '</p>';
100
+
101
+ return $description;
102
+ }
103
  }
admin/pages/class-pages-performance-google.php CHANGED
@@ -1,156 +1,156 @@
1
- <?php
2
- /**
3
- * The page Settings.
4
- *
5
- * @since 1.0.0
6
- */
7
-
8
- // Exit if accessed directly
9
- if( !defined('ABSPATH') ) {
10
- exit;
11
- }
12
-
13
- class WCL_PerformanceGooglePage extends WCL_Page {
14
-
15
- /**
16
- * The id of the page in the admin menu.
17
- *
18
- * Mainly used to navigate between pages.
19
- * @see FactoryPages440_AdminPage
20
- *
21
- * @since 1.0.0
22
- * @var string
23
- */
24
- public $id = "performance_google";
25
-
26
- /**
27
- * @var string
28
- */
29
- public $page_parent_page = 'performance';
30
-
31
- /**
32
- * @var string
33
- */
34
- public $page_menu_dashicon = 'dashicons-performance';
35
-
36
- /**
37
- * @var int
38
- */
39
- public $page_menu_position = 20;
40
-
41
- public $available_for_multisite = true;
42
-
43
- /**
44
- * @param WCL_Plugin $plugin
45
- */
46
- public function __construct(WCL_Plugin $plugin)
47
- {
48
- $this->menu_title = __('Google services', 'clearfy');
49
-
50
- parent::__construct($plugin);
51
-
52
- $this->plugin = $plugin;
53
- }
54
-
55
- public function afterFormSave()
56
- {
57
- $ga_cache = $this->getPopulateOption('ga_cache');
58
- $ga_caos_remove_wp_cron = $this->getPopulateOption('ga_caos_remove_wp_cron');
59
-
60
- if( $ga_cache ) {
61
- if( !$ga_caos_remove_wp_cron ) {
62
- if( !wp_next_scheduled('wbcr_clearfy_update_local_ga') ) {
63
- wp_schedule_event(time(), 'daily', 'wbcr_clearfy_update_local_ga');
64
- }
65
-
66
- return;
67
- }
68
- }
69
-
70
- if( (!$ga_cache || $ga_caos_remove_wp_cron) && wp_next_scheduled('wbcr_clearfy_update_local_ga') ) {
71
- wp_clear_scheduled_hook('wbcr_clearfy_update_local_ga');
72
- }
73
- }
74
-
75
- /**
76
- * Permalinks options.
77
- *
78
- * @since 1.0.0
79
- * @return mixed[]
80
- */
81
- public function getPageOptions()
82
- {
83
- $options = array();
84
-
85
- $options[] = array(
86
- 'type' => 'html',
87
- 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Fonts and Maps</strong>.', 'clearfy') . '<p>' . __('Google Fonts and Maps strongly affect your website loading speed. Use settings below to disable or optimize Google fonts and Maps.', 'clearfy') . '</p></div>'
88
- );
89
-
90
- $options[] = array(
91
- 'type' => 'checkbox',
92
- 'way' => 'buttons',
93
- 'name' => 'lazy_load_google_fonts',
94
- 'title' => __('Google Fonts asynchronous', 'clearfy'),
95
- 'layout' => array('hint-type' => 'icon'),
96
- 'hint' => __('By default, WordPress loads Google fonts synchronously, that is, your page will not be fully loaded until Google Fonts are loaded. This algorithm slows down the loading of your page and leads to errors when checking the site in Google Page Speed. Using this option, your Google Fonts will be loaded after your page is fully loaded. This method has a negative — you and visitors of your site will see how the font changes while loading a page, from the system to the downloadable one.', 'clearfy'),
97
- 'default' => false
98
- );
99
-
100
- $options[] = array(
101
- 'type' => 'checkbox',
102
- 'way' => 'buttons',
103
- 'name' => 'disable_google_fonts',
104
- 'title' => __('Disable Google Fonts', 'clearfy'),
105
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
106
- 'hint' => __('This function stops loading of Open Sans and other fonts used by WordPress and bundled themes (Twenty Twelve, Twenty Thirteen, Twenty Fourteen, Twenty Fifteen, Twenty Sixteen, Twenty Seventeen) from Google Fonts.
107
- Reasons for not using Google Fonts might be privacy and security, local development or production, blocking of Google’s servers, characters not supported by font, performance.', 'clearfy'),
108
- 'default' => false
109
- );
110
-
111
- $options[] = array(
112
- 'type' => 'checkbox',
113
- 'way' => 'buttons',
114
- 'name' => 'disable_google_maps',
115
- 'title' => __('Disable Google maps', 'clearfy'),
116
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
117
- 'hint' => __('This function stops loading of Google Maps used by some themes or plugins.
118
- Reasons for not using Google Maps might be privacy and security, local development or production, blocking of Google’s servers, performance, not necessary, etc.', 'clearfy'),
119
- 'default' => false,
120
- 'eventsOn' => array(
121
- 'show' => '.factory-control-exclude_from_disable_google_maps,.factory-control-remove_iframe_google_maps'
122
- ),
123
- 'eventsOff' => array(
124
- 'hide' => '.factory-control-exclude_from_disable_google_maps,.factory-control-remove_iframe_google_maps'
125
- )
126
- );
127
-
128
- $options[] = array(
129
- 'type' => 'checkbox',
130
- 'way' => 'buttons',
131
- 'name' => 'remove_iframe_google_maps',
132
- 'title' => __('Remove iframe Google maps', 'clearfy'),
133
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
134
- 'hint' => __('By default, the "Disable Google Maps" option removes maps inserted with the SCRIPT tag from the page source code. However, you can also cut out all maps inserted via the iframe by enabling this option.', 'clearfy'),
135
- 'default' => false
136
- );
137
-
138
- $options[] = array(
139
- 'type' => 'textbox',
140
- 'way' => 'buttons',
141
- 'name' => 'exclude_from_disable_google_maps',
142
- 'title' => __('Exclude pages from Disable Google Maps filter', 'clearfy'),
143
- 'hint' => __('Posts or Pages IDs separated by a ,', 'clearfy')
144
- );
145
-
146
- $form_options = array();
147
-
148
- $form_options[] = array(
149
- 'type' => 'form-group',
150
- 'items' => $options,
151
- //'cssClass' => 'postbox'
152
- );
153
-
154
- return apply_filters('wbcr_clr_google_performance_form_options', $form_options, $this);
155
- }
156
- }
1
+ <?php
2
+ /**
3
+ * The page Settings.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+
8
+ // Exit if accessed directly
9
+ if( !defined('ABSPATH') ) {
10
+ exit;
11
+ }
12
+
13
+ class WCL_PerformanceGooglePage extends WCL_Page {
14
+
15
+ /**
16
+ * The id of the page in the admin menu.
17
+ *
18
+ * Mainly used to navigate between pages.
19
+ * @see FactoryPages443_AdminPage
20
+ *
21
+ * @since 1.0.0
22
+ * @var string
23
+ */
24
+ public $id = "performance_google";
25
+
26
+ /**
27
+ * @var string
28
+ */
29
+ public $page_parent_page = 'performance';
30
+
31
+ /**
32
+ * @var string
33
+ */
34
+ public $page_menu_dashicon = 'dashicons-performance';
35
+
36
+ /**
37
+ * @var int
38
+ */
39
+ public $page_menu_position = 20;
40
+
41
+ public $available_for_multisite = true;
42
+
43
+ /**
44
+ * @param WCL_Plugin $plugin
45
+ */
46
+ public function __construct(WCL_Plugin $plugin)
47
+ {
48
+ $this->menu_title = __('Google services', 'clearfy');
49
+
50
+ parent::__construct($plugin);
51
+
52
+ $this->plugin = $plugin;
53
+ }
54
+
55
+ public function afterFormSave()
56
+ {
57
+ $ga_cache = $this->getPopulateOption('ga_cache');
58
+ $ga_caos_remove_wp_cron = $this->getPopulateOption('ga_caos_remove_wp_cron');
59
+
60
+ if( $ga_cache ) {
61
+ if( !$ga_caos_remove_wp_cron ) {
62
+ if( !wp_next_scheduled('wbcr_clearfy_update_local_ga') ) {
63
+ wp_schedule_event(time(), 'daily', 'wbcr_clearfy_update_local_ga');
64
+ }
65
+
66
+ return;
67
+ }
68
+ }
69
+
70
+ if( (!$ga_cache || $ga_caos_remove_wp_cron) && wp_next_scheduled('wbcr_clearfy_update_local_ga') ) {
71
+ wp_clear_scheduled_hook('wbcr_clearfy_update_local_ga');
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Permalinks options.
77
+ *
78
+ * @since 1.0.0
79
+ * @return mixed[]
80
+ */
81
+ public function getPageOptions()
82
+ {
83
+ $options = array();
84
+
85
+ $options[] = array(
86
+ 'type' => 'html',
87
+ 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Fonts and Maps</strong>.', 'clearfy') . '<p>' . __('Google Fonts and Maps strongly affect your website loading speed. Use settings below to disable or optimize Google fonts and Maps.', 'clearfy') . '</p></div>'
88
+ );
89
+
90
+ $options[] = array(
91
+ 'type' => 'checkbox',
92
+ 'way' => 'buttons',
93
+ 'name' => 'lazy_load_google_fonts',
94
+ 'title' => __('Google Fonts asynchronous', 'clearfy'),
95
+ 'layout' => array('hint-type' => 'icon'),
96
+ 'hint' => __('By default, WordPress loads Google fonts synchronously, that is, your page will not be fully loaded until Google Fonts are loaded. This algorithm slows down the loading of your page and leads to errors when checking the site in Google Page Speed. Using this option, your Google Fonts will be loaded after your page is fully loaded. This method has a negative — you and visitors of your site will see how the font changes while loading a page, from the system to the downloadable one.', 'clearfy'),
97
+ 'default' => false
98
+ );
99
+
100
+ $options[] = array(
101
+ 'type' => 'checkbox',
102
+ 'way' => 'buttons',
103
+ 'name' => 'disable_google_fonts',
104
+ 'title' => __('Disable Google Fonts', 'clearfy'),
105
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
106
+ 'hint' => __('This function stops loading of Open Sans and other fonts used by WordPress and bundled themes (Twenty Twelve, Twenty Thirteen, Twenty Fourteen, Twenty Fifteen, Twenty Sixteen, Twenty Seventeen) from Google Fonts.
107
+ Reasons for not using Google Fonts might be privacy and security, local development or production, blocking of Google’s servers, characters not supported by font, performance.', 'clearfy'),
108
+ 'default' => false
109
+ );
110
+
111
+ $options[] = array(
112
+ 'type' => 'checkbox',
113
+ 'way' => 'buttons',
114
+ 'name' => 'disable_google_maps',
115
+ 'title' => __('Disable Google maps', 'clearfy'),
116
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
117
+ 'hint' => __('This function stops loading of Google Maps used by some themes or plugins.
118
+ Reasons for not using Google Maps might be privacy and security, local development or production, blocking of Google’s servers, performance, not necessary, etc.', 'clearfy'),
119
+ 'default' => false,
120
+ 'eventsOn' => array(
121
+ 'show' => '.factory-control-exclude_from_disable_google_maps,.factory-control-remove_iframe_google_maps'
122
+ ),
123
+ 'eventsOff' => array(
124
+ 'hide' => '.factory-control-exclude_from_disable_google_maps,.factory-control-remove_iframe_google_maps'
125
+ )
126
+ );
127
+
128
+ $options[] = array(
129
+ 'type' => 'checkbox',
130
+ 'way' => 'buttons',
131
+ 'name' => 'remove_iframe_google_maps',
132
+ 'title' => __('Remove iframe Google maps', 'clearfy'),
133
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
134
+ 'hint' => __('By default, the "Disable Google Maps" option removes maps inserted with the SCRIPT tag from the page source code. However, you can also cut out all maps inserted via the iframe by enabling this option.', 'clearfy'),
135
+ 'default' => false
136
+ );
137
+
138
+ $options[] = array(
139
+ 'type' => 'textbox',
140
+ 'way' => 'buttons',
141
+ 'name' => 'exclude_from_disable_google_maps',
142
+ 'title' => __('Exclude pages from Disable Google Maps filter', 'clearfy'),
143
+ 'hint' => __('Posts or Pages IDs separated by a ,', 'clearfy')
144
+ );
145
+
146
+ $form_options = array();
147
+
148
+ $form_options[] = array(
149
+ 'type' => 'form-group',
150
+ 'items' => $options,
151
+ //'cssClass' => 'postbox'
152
+ );
153
+
154
+ return apply_filters('wbcr_clr_google_performance_form_options', $form_options, $this);
155
+ }
156
+ }
admin/pages/class-pages-performance.php CHANGED
@@ -1,500 +1,500 @@
1
- <?php
2
- /**
3
- * The page Settings.
4
- *
5
- * @since 1.0.0
6
- */
7
-
8
- // Exit if accessed directly
9
- if( !defined('ABSPATH') ) {
10
- exit;
11
- }
12
-
13
- class WCL_PerformancePage extends WCL_Page {
14
-
15
- /**
16
- * @see {@inheritDoc}
17
- *
18
- * @var string
19
- */
20
- public $id = "performance";
21
-
22
- /**
23
- * @see {@inheritDoc}
24
- *
25
- * @var string
26
- */
27
- public $page_menu_dashicon = 'dashicons-performance';
28
-
29
- /**
30
- * @see {@inheritDoc}
31
- *
32
- * @var int
33
- */
34
- public $page_menu_position = 20;
35
-
36
- /**
37
- * @see {@inheritDoc}
38
- *
39
- * @var bool
40
- */
41
- public $available_for_multisite = true;
42
-
43
- /**
44
- * @param WCL_Plugin $plugin
45
- */
46
- public function __construct(WCL_Plugin $plugin)
47
- {
48
- $this->menu_title = __('Performance', 'clearfy');
49
- $this->page_menu_short_description = __('Optimization js, css, fonts', 'clearfy');
50
-
51
- parent::__construct($plugin);
52
-
53
- $this->plugin = $plugin;
54
- }
55
-
56
- public function afterFormSave()
57
- {
58
- if( $this->getPopulateOption('disable_gravatars') ) {
59
- update_option('show_avatars', false);
60
- } else {
61
- update_option('show_avatars', true);
62
- }
63
- }
64
-
65
- public function warningNotice()
66
- {
67
- parent::warningNotice();
68
-
69
- if( !$this->plugin->getPopulateOption('revisions_disable') && $this->is_post_revision_constant() ) {
70
- $this->printWarningNotice(__('Warning! In the wp-config.php file, a constant WP_POST_REVISIONS is found, it determines the number of revisions. Delete it so you can change this value through the admin panel.', 'clearfy'));
71
- }
72
- }
73
-
74
- /**
75
- * Permalinks options.
76
- *
77
- * @return mixed[]
78
- * @since 1.0.0
79
- */
80
- public function getPageOptions()
81
- {
82
- $options = [];
83
-
84
- $options[] = [
85
- 'type' => 'html',
86
- 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Clear the unnecessary scripts</strong>', 'clearfy') . '<p>' . __('This set of settings will help you remove unnecessary links and code from the head section, as well as reduce your website\'s pages weight.', 'clearfy') . '</p></div>'
87
- ];
88
-
89
- $options[] = [
90
- 'type' => 'checkbox',
91
- 'way' => 'buttons',
92
- 'name' => 'disable_feed',
93
- 'title' => __('Disable RSS feeds', 'clearfy'),
94
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
95
- 'hint' => __('By default, WordPress generates all types of different RSS feeds for your site. While RSS feeds can be useful if you are running a blog, businesses might not always utilize these. Not every site out there has a blog.', 'clearfy') . '<br><b>Clearfy: </b>' . sprintf(__('Removes a link to the RSS-feed from the %s section, closes and puts the redirect from all RSS-feeds.', 'clearfy'), '&lt;head&gt;'),
96
- 'default' => false,
97
- 'eventsOn' => [
98
- 'show' => '.factory-control-disabled_feed_behaviour'
99
- ],
100
- 'eventsOff' => [
101
- 'hide' => '.factory-control-disabled_feed_behaviour'
102
- ]
103
- ];
104
-
105
- $options[] = [
106
- 'type' => 'dropdown',
107
- 'way' => 'buttons',
108
- 'name' => 'disabled_feed_behaviour',
109
- 'data' => [
110
- ['redirect_301', __('Redirect 301', 'clearfy')],
111
- ['redirect_404', __('Page 404', 'clearfy')],
112
- ],
113
- 'title' => __('Redirect feed requests', 'clearfy'),
114
- 'hint' => __('Forward all requests to page 404 or to the main page through 301 redirects.', 'clearfy'),
115
- //'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
116
- 'default' => 'redirect_301'
117
- ];
118
-
119
- $options[] = [
120
- 'type' => 'checkbox',
121
- 'way' => 'buttons',
122
- 'name' => 'disable_json_rest_api',
123
- 'title' => __('Remove REST API Links', 'clearfy'),
124
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'red'],
125
- 'hint' => __('The WordPress REST API provides API endpoints for WordPress data types that allow developers to interact with sites remotely by sending and receiving JSON (JavaScript Object Notation) objects. However, a lot of sites don’t use this, and therefore in most cases, it is just unnecessary code.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes REST API link tag from the front end and the REST API header link from page requests.', 'clearfy'),
126
- 'default' => false,
127
- 'eventsOn' => [
128
- 'show' => '#wbcr-clearfy-rest-api-danger-message'
129
- ],
130
- 'eventsOff' => [
131
- 'hide' => '#wbcr-clearfy-rest-api-danger-message'
132
- ]
133
- ];
134
-
135
- $options[] = [
136
- 'type' => 'html',
137
- 'html' => [$this, 'restApiDangerMessage']
138
- ];
139
-
140
- $options[] = [
141
- 'type' => 'checkbox',
142
- 'way' => 'buttons',
143
- 'name' => 'disable_emoji',
144
- 'title' => __('Disable Emojis', 'clearfy'),
145
- 'layout' => ['hint-type' => 'icon'],
146
- 'hint' => __('Emojis are fun and all, but if you are aren’t using them they actually load a JavaScript file (wp-emoji-release.min.js) on every page of your website. For a lot of businesses, this is not needed and simply adds load time to your site. So we recommend disabling this.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes WordPress Emojis JavaScript file (wp-emoji-release.min.js).', 'clearfy'),
147
- 'default' => false
148
- ];
149
-
150
- $options[] = [
151
- 'type' => 'checkbox',
152
- 'way' => 'buttons',
153
- 'name' => 'remove_jquery_migrate',
154
- 'title' => __('Remove jQuery Migrate', 'clearfy'),
155
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'red'],
156
- 'hint' => __('They started adding jQuery migrate in WordPress 3.6. Most up-to-date frontend code and plugins don’t require jquery-migrate.min.js. In most cases, this simply adds unnecessary load to your site. You can see this running if you launch Chrome Devtools console.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes jQuery Migrate JavaScript file (jquery-migrate.min.js).', 'clearfy') . '<br>--<br><span class="wbcr-factory-light-orange-color">' . __('Warning! If there is a broke on your site, disable this option!', 'clearfy') . '</span>',
157
- 'default' => false
158
- ];
159
-
160
- $options[] = [
161
- 'type' => 'checkbox',
162
- 'way' => 'buttons',
163
- 'name' => 'disable_embeds',
164
- 'title' => __('Disable Embeds', 'clearfy'),
165
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
166
- 'hint' => __('Embeds were released with WordPress 4.4. This is basically the magic that auto converts your YouTube videos, Tweets, and URLs into pretty previews while you are editing. However, this actually loads a JavaScript file (wp-embed.min.js) on every page of your website. If you don’t care about the auto converting preview (which we don’t), you can disable this across your site.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes WordPress Embed JavaScript file (wp-embed.min.js)', 'clearfy'),
167
- 'default' => false
168
- ];
169
-
170
- /*$options[] = array(
171
- 'type' => 'checkbox',
172
- 'way' => 'buttons',
173
- 'name' => 'remove_dns_prefetch',
174
- 'title' => __('Remove dns-prefetch', 'clearfy'),
175
- 'layout' => array('hint-type' => 'icon'),
176
- 'hint' => sprintf(__('Since version 4.6.1 in WordPress there are new links in the section %s this type of: ', 'clearfy'), 'head') . ' <code>link rel="dns-prefetch" href="//s.w.org"</code><br><br><b>Clearfy: </b>' . sprintf(__('Removes dns-prefetch links from the %s section', 'clearfy'), 'head'),
177
- 'default' => false
178
- );*/
179
- $options[] = [
180
- 'type' => 'checkbox',
181
- 'way' => 'buttons',
182
- 'name' => 'remove_rsd_link',
183
- 'title' => __('Remove RSD Link', 'clearfy'),
184
- 'layout' => ['hint-type' => 'icon'],
185
- 'hint' => __('The above link is used by blog clients. If you edit your site from your browser then you don’t need this. It is also used by some 3rd party applications that utilize XML-RPC requests. In most cases, this is just unnecessary code.', 'clearfy') . '<br><code>link rel="EditURI" type="application/rsd+xml" title="RSD"</code><br><br><b>Clearfy: </b>' . __('Remove RSD (Real Simple Discovery) link tag.', 'clearfy'),
186
- 'default' => false
187
- ];
188
- $options[] = [
189
- 'type' => 'checkbox',
190
- 'way' => 'buttons',
191
- 'name' => 'remove_xfn_link',
192
- 'title' => __('Removing XFN (XHTML Friends Network) Profile Link', 'clearfy'),
193
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
194
- 'hint' => __('The profile attribute specifies the metadata profile address. Usually, the browser recognizes the value of this attribute and executes some conventions related to the specified profile. Loading the document itself at the specified address does not really happen, moreover, it may not exist at all.
195
- In particular, the profile is used for the XFN microformat (XHTML Friends Network) - a way of representing relationships between people using links and rel attributes with different values. WordPress also actively uses profile in its templates.
196
- ', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Remove link tag', 'clearfy') . '<br><code>link rel="profile" href="http://gmpg.org/xfn/11"</code>',
197
- 'default' => false
198
- ];
199
-
200
- $options[] = [
201
- 'type' => 'checkbox',
202
- 'way' => 'buttons',
203
- 'name' => 'remove_wlw_link',
204
- 'title' => __('Remove wlwmanifest Link', 'clearfy'),
205
- 'layout' => ['hint-type' => 'icon'],
206
- 'hint' => '<code>link rel="wlwmanifest" type="application/wlwmanifest+xml"</code><br>' . __('This link is actually used by Windows Live Writer. If you don’t know use Windows Live Writer, which we are guessing you don’t, this is just unnecessary code.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Remove wlwmanifest (Windows Live Writer) link tag.', 'clearfy'),
207
- 'default' => false
208
- ];
209
-
210
- $options[] = [
211
- 'type' => 'checkbox',
212
- 'way' => 'buttons',
213
- 'name' => 'remove_shortlink_link',
214
- 'title' => __('Remove Shortlink', 'clearfy'),
215
- 'layout' => ['hint-type' => 'icon'],
216
- 'hint' => sprintf(__('By default, the following tag shows up in every WordPress install. %s This is used for a shortlink to your pages and posts. However, if you are already using pretty permalinks, such as domain.com/post, then there is no reason to keep this, it is just unnecessary code.', 'clearfy'), '<br><code>link rel="shortlink" href="https://domain.com?p=712"</code><br>') . '<br><br><b>Clearfy: </b>' . __('Remove Shortlink link tag.', 'clearfy'),
217
- 'default' => false
218
- ];
219
-
220
- $options[] = [
221
- 'type' => 'checkbox',
222
- 'way' => 'buttons',
223
- 'name' => 'remove_adjacent_posts_link',
224
- 'title' => __('Remove links to previous, next post', 'clearfy'),
225
- 'layout' => ['hint-type' => 'icon'],
226
- 'hint' => __('If you use Wordpress as a CMS, then you can delete these links, they can only come in handy for a blog.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Remove the previous and next post links within the wp_head of your wordpress theme.', 'clearfy'),
227
- 'default' => false
228
- ];
229
-
230
- $options[] = [
231
- 'type' => 'checkbox',
232
- 'way' => 'buttons',
233
- 'name' => 'remove_recent_comments_style',
234
- 'title' => __('Remove .recentcomments styles', 'clearfy'),
235
- 'layout' => ['hint-type' => 'icon'],
236
- 'hint' => __('WP by default for the widget "recent comments" prescribes in the code styles that are almost impossible to change, because to them apply! important.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes .recentcomments styles from head section.', 'clearfy'),
237
- 'default' => false
238
- ];
239
-
240
- $options[] = [
241
- 'type' => 'checkbox',
242
- 'way' => 'buttons',
243
- 'name' => 'lazy_load_font_awesome',
244
- 'title' => __('Font Awesome asynchronous', 'clearfy'),
245
- 'layout' => ['hint-type' => 'icon'],
246
- 'hint' => __('By default, WordPress loads Font Awesome icons synchronously, that is, your page will not be fully loaded until Font Awesome icons are loaded. This algorithm slows down the loading of your page and leads to errors when checking the site in Google Page Speed. Using this option, your Font Awesome icons will be loaded after your page is fully loaded. This method has a negative — you and visitors of your site will see changes while loading a page, from the placeholders to icons.', 'clearfy'),
247
- 'default' => false
248
- ];
249
-
250
- $options[] = [
251
- 'type' => 'checkbox',
252
- 'way' => 'buttons',
253
- 'name' => 'disable_dashicons',
254
- 'title' => __('Disable Dashicons', 'clearfy'),
255
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
256
- 'hint' => __('Dashicons is the official icon font of the WordPress admin as of 3.8. Some of you have requested that we add a feature to remove Dashicons. Some themes and developers utilize this (dashicons.min.css) on the front-end of their sites.', 'clearfy'),
257
- 'default' => false
258
- ];
259
-
260
- $options[] = [
261
- 'type' => 'checkbox',
262
- 'way' => 'buttons',
263
- 'name' => 'disable_gravatars',
264
- 'title' => __('Disable gravatars', 'clearfy'),
265
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
266
- 'hint' => __('This function that prevents the user’s gravatar being automatically obtained from gravatar.com based on their registered email. This would be useful for sites where users require an extra layer of privacy, or if you just want to prevent potentially silly or embarrasing avatar accidents.
267
- If you’re using Identicons or any other generated default avatar, the user should keep a consistent avatar unless they change their registered email.
268
- ', 'clearfy'),
269
- 'default' => false
270
- ];
271
-
272
- $options[] = [
273
- 'type' => 'html',
274
- 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Classic editor and Gutenberg', 'clearfy') . '</strong>' . '<p>' . __('In this group of options, you can manage revisions and post autosave.', 'clearfy') . '</p>' . '</div>'
275
- ];
276
-
277
- $options[] = [
278
- 'type' => 'checkbox',
279
- 'way' => 'buttons',
280
- 'name' => 'revisions_disable',
281
- 'title' => __('Disable revision', 'clearfy'),
282
- 'default' => false,
283
- 'eventsOn' => [
284
- 'hide' => '.factory-control-revision_limit'
285
- ],
286
- 'eventsOff' => [
287
- 'show' => '.factory-control-revision_limit'
288
- ],
289
- ];
290
-
291
- $options[] = [
292
- 'type' => 'dropdown',
293
- 'name' => 'revision_limit',
294
- 'title' => __('Limit Post Revisions', 'clearfy'),
295
- 'data' => [
296
- ['default', __('Wordpress default', 'clearfy')],
297
- ['15', '15 ' . __('revisions', 'clearfy')],
298
- ['20', '20 ' . __('revisions', 'clearfy')],
299
- ['25', '25 ' . __('revisions', 'clearfy')],
300
- ['30', '30 ' . __('revisions', 'clearfy')],
301
- ['35', '35 ' . __('revisions', 'clearfy')],
302
- ['40', '40 ' . __('revisions', 'clearfy')],
303
- ['45', '45 ' . __('revisions', 'clearfy')],
304
- ['50', '50 ' . __('revisions', 'clearfy')],
305
- ['55', '55 ' . __('revisions', 'clearfy')],
306
- ['60', '60 ' . __('revisions', 'clearfy')]
307
- ],
308
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
309
- 'hint' => __('WordPress automatically saves revisions when you are working on posts and pages. These can begin to add up pretty quick. By default, there is no limit in place. We have seen posts with over 1,000 revisions. Multiply this by 50 pages and suddenly you have over 50,000 revisions sitting in your database. The problem with this is that you will most likely never use them and they can start slowing down your database as well as using disk space.
310
- So we recommend either disabling or limiting your revisions. ', 'clearfy'),
311
- 'default' => 'default'
312
- ];
313
-
314
- if( version_compare(get_bloginfo('version'), '5.0', '>=') ) {
315
- $options[] = [
316
- 'type' => 'checkbox',
317
- 'way' => 'buttons',
318
- 'name' => 'gutenberg_autosave_control',
319
- 'title' => __('Gutenberg autosave control', 'clearfy'),
320
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
321
- 'hint' => __('By activating this option autosave feature in the Gutenberg editor will be disabled. Alternatively it also provides options in the editor to select a longer autosave interval time than the default 10 seconds.', 'clearfy'),
322
- 'default' => false
323
- ];
324
- } else {
325
- $options[] = [
326
- 'type' => 'checkbox',
327
- 'way' => 'buttons',
328
- 'name' => 'disable_post_autosave',
329
- 'title' => __('Disable autosave', 'clearfy'),
330
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
331
- 'hint' => __('WordPress by default automatically saves a draft every 60 seconds (1 minute). There are reasons why you might want to change this.', 'clearfy') . '<br><b>Clearfy</b>: ' . __('Disables automatic saving of drafts.', 'clearfy'),
332
- 'default' => false
333
- ];
334
- }
335
-
336
- $options[] = [
337
- 'type' => 'html',
338
- 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Remove query strings from static resources', 'clearfy') . '</strong>' . '<p>' . __('This funcitons will remove query strings from static resources like CSS & JS files inside the HTML <head> element to improve your speed scores in services like Pingdom, GTmetrix, PageSpeed and YSlow. <b style="color:#ff5722">Important:</b> This does not work for authorized users. To avoid problems after plugins update!', 'clearfy') . '</p>' . '</div>'
339
- ];
340
-
341
- $options[] = [
342
- 'type' => 'checkbox',
343
- 'way' => 'buttons',
344
- 'name' => 'remove_js_version',
345
- 'title' => __('Remove Version from Script', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
346
- 'layout' => ['hint-type' => 'icon'],
347
- 'hint' => __('To make it more difficult for others to hack your website you can remove the WordPress version number from your site, your css and js. Without that number it\'s not possible to see if you run not the current version to exploit bugs from the older versions. <br><br>
348
- Additionally it can improve the loading speed of your site, because without query strings in the URL the css and js files can be cached.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes wordpress version number from scripts (not logged in user only).', 'clearfy'),
349
- 'default' => false
350
- ];
351
-
352
- $options[] = [
353
- 'type' => 'checkbox',
354
- 'way' => 'buttons',
355
- 'name' => 'remove_style_version',
356
- 'title' => __('Remove Version from Stylesheet', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
357
- 'layout' => ['hint-type' => 'icon'],
358
- 'hint' => __('To make it more difficult for others to hack your website you can remove the WordPress version number from your site, your css and js. Without that number it\'s not possible to see if you run not the current version to exploit bugs from the older versions. <br><br>
359
- Additionally it can improve the loading speed of your site, because without query strings in the URL the css and js files can be cached.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes the wordpress version number from stylesheets (not logged in user only).', 'clearfy'),
360
- 'default' => false
361
- /*'eventsOn' => array(
362
- 'show' => '.factory-control-disable_remove_style_version_for_auth_users'
363
- ),
364
- 'eventsOff' => array(
365
- 'hide' => '.factory-control-disable_remove_style_version_for_auth_users'
366
- )*/
367
- ];
368
-
369
- /*$options[] = array(
370
- 'type' => 'checkbox',
371
- 'way' => 'buttons',
372
- 'name' => 'disable_remove_style_version_for_auth_users',
373
- 'title' => __( 'Disable remove versions for auth users', 'clearfy' ) . ' <span class="wbcr-clearfy-recomended-text">(' . __( 'Recommended', 'clearfy' ) . ')</span>',
374
- 'layout' => array( 'hint-type' => 'icon' ),
375
- 'default' => false
376
- );*/
377
-
378
- $options[] = [
379
- 'type' => 'textarea',
380
- 'name' => 'remove_version_exclude',
381
- 'height' => '120',
382
- 'title' => __('Exclude stylesheet/script file names', 'clearfy'),
383
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
384
- 'hint' => __('Enter Stylesheet/Script file names to exclude from version removal (each exclude file starts with a new line)', 'clearfy') . '<br><br><b>' . __('Example', 'clearfy') . ':</b>' . ' http://testwp.dev/wp-includes/js/jquery/jquery.js',
385
- ];
386
-
387
- $options[] = [
388
- 'type' => 'html',
389
- 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Heartbeat', 'clearfy') . '</strong>' . '<p>' . __('The WordPress Heartbeat API uses /wp-admin/admin-ajax.php to run AJAX calls from the web-browser. While this is great and all it can also cause high CPU usage and crazy amounts of PHP calls. For example, if you leave your dashboard open it will keep sending POST requests to this file on a regular interval, every 15 seconds. Here is an example below of it happening.', 'clearfy') . '</p>' . '</div>'
390
- ];
391
-
392
- $options[] = [
393
- 'type' => 'dropdown',
394
- 'name' => 'disable_heartbeat',
395
- 'way' => 'buttons',
396
- 'title' => __('Disable Heartbeat', 'clearfy'),
397
- 'data' => [
398
- ['default', __('Default', 'clearfy')],
399
- ['everywhere', __('Everywhere', 'clearfy')],
400
- ['on_dashboard_page', __('In admin panel', 'clearfy')],
401
- ['allow_only_on_post_edit_pages', __('Only allow when editing Posts/Pages', 'clearfy')]
402
- ],
403
- //'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
404
- //'hint' => __('You can disable all plugin updates or choose manual or automatic update mode.', 'clearfy'),
405
- 'events' => [
406
- 'default' => [
407
- 'show' => '.factory-control-heartbeat_frequency'
408
- ],
409
- 'on_dashboard_page' => [
410
- 'show' => '.factory-control-heartbeat_frequency'
411
- ],
412
- 'allow_only_on_post_edit_pages' => [
413
- 'show' => '.factory-control-heartbeat_frequency'
414
- ],
415
- 'everywhere' => [
416
- 'hide' => '.factory-control-heartbeat_frequency'
417
- ]
418
- ],
419
- 'default' => 'default',
420
- ];
421
-
422
- $options[] = [
423
- 'type' => 'dropdown',
424
- 'name' => 'heartbeat_frequency',
425
- 'title' => __('Heartbeat frequency', 'clearfy'),
426
- 'data' => [
427
- ['default', __('Wordpress default', 'clearfy')],
428
- ['20', '20 ' . __('seconds', 'clearfy')],
429
- ['25', '25 ' . __('seconds', 'clearfy')],
430
- ['30', '30 ' . __('seconds', 'clearfy')],
431
- ['35', '35 ' . __('seconds', 'clearfy')],
432
- ['40', '40 ' . __('seconds', 'clearfy')],
433
- ['45', '45 ' . __('seconds', 'clearfy')],
434
- ['50', '50 ' . __('seconds', 'clearfy')],
435
- ['55', '55 ' . __('seconds', 'clearfy')],
436
- ['60', '60 ' . __('seconds', 'clearfy')],
437
- ['80', '80 ' . __('seconds', 'clearfy')],
438
- ['120', '120 ' . __('seconds', 'clearfy')],
439
- ['150', '150 ' . __('seconds', 'clearfy')],
440
- ['200', '200 ' . __('seconds', 'clearfy')],
441
- ['250', '250 ' . __('seconds', 'clearfy')],
442
- ['300', '300 ' . __('seconds', 'clearfy')],
443
- ['400', '400 ' . __('seconds', 'clearfy')],
444
- ['500', '500 ' . __('seconds', 'clearfy')]
445
- ],
446
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
447
- 'hint' => __('Select the heartbeat frequency wordpress. We recommend you 60 seconds, default is 20 seconds.', 'clearfy'),
448
- 'default' => 'default'
449
- ];
450
-
451
- $form_options = [];
452
-
453
- $form_options[] = [
454
- 'type' => 'form-group',
455
- 'items' => $options,
456
- //'cssClass' => 'postbox'
457
- ];
458
-
459
- return apply_filters('wbcr_clr_code_clean_form_options', $form_options, $this);
460
- }
461
-
462
- /**
463
- * Adds an html warning notification html markup.
464
- */
465
- public function restApiDangerMessage()
466
- {
467
- ?>
468
- <div class="form-group">
469
- <label class="col-sm-4 control-label"></label>
470
- <div class="control-group col-sm-8">
471
- <div id="wbcr-clearfy-rest-api-danger-message" class="wbcr-clearfy-danger-message">
472
- <?php _e('<b>Use this option carefully!</b><br> Plugins like Contact form 7, Anycomments may have problems using this option.', 'clearfy') ?>
473
- </div>
474
- </div>
475
- </div>
476
- <?php
477
- }
478
-
479
- /**
480
- * Check if WP_POST_REVISIONS is installed in wp-config file
481
- *
482
- * @return bool
483
- */
484
- protected function is_post_revision_constant()
485
- {
486
- $config_path = ABSPATH . '/wp-config.php';
487
-
488
- if( file_exists($config_path) ) {
489
- $file = fopen($config_path, 'r');
490
- $content = fread($file, filesize($config_path));
491
- fclose($file);
492
-
493
- if( !empty($content) && preg_match('/define(.+?)WP_POST_REVISIONS/', $content) ) {
494
- return true;
495
- }
496
- }
497
-
498
- return false;
499
- }
500
- }
1
+ <?php
2
+ /**
3
+ * The page Settings.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+
8
+ // Exit if accessed directly
9
+ if( !defined('ABSPATH') ) {
10
+ exit;
11
+ }
12
+
13
+ class WCL_PerformancePage extends WCL_Page {
14
+
15
+ /**
16
+ * @see {@inheritDoc}
17
+ *
18
+ * @var string
19
+ */
20
+ public $id = "performance";
21
+
22
+ /**
23
+ * @see {@inheritDoc}
24
+ *
25
+ * @var string
26
+ */
27
+ public $page_menu_dashicon = 'dashicons-performance';
28
+
29
+ /**
30
+ * @see {@inheritDoc}
31
+ *
32
+ * @var int
33
+ */
34
+ public $page_menu_position = 20;
35
+
36
+ /**
37
+ * @see {@inheritDoc}
38
+ *
39
+ * @var bool
40
+ */
41
+ public $available_for_multisite = true;
42
+
43
+ /**
44
+ * @param WCL_Plugin $plugin
45
+ */
46
+ public function __construct(WCL_Plugin $plugin)
47
+ {
48
+ $this->menu_title = __('Performance', 'clearfy');
49
+ $this->page_menu_short_description = __('Optimization js, css, fonts', 'clearfy');
50
+
51
+ parent::__construct($plugin);
52
+
53
+ $this->plugin = $plugin;
54
+ }
55
+
56
+ public function afterFormSave()
57
+ {
58
+ if( $this->getPopulateOption('disable_gravatars') ) {
59
+ update_option('show_avatars', false);
60
+ } else {
61
+ update_option('show_avatars', true);
62
+ }
63
+ }
64
+
65
+ public function warningNotice()
66
+ {
67
+ parent::warningNotice();
68
+
69
+ if( !$this->plugin->getPopulateOption('revisions_disable') && $this->is_post_revision_constant() ) {
70
+ $this->printWarningNotice(__('Warning! In the wp-config.php file, a constant WP_POST_REVISIONS is found, it determines the number of revisions. Delete it so you can change this value through the admin panel.', 'clearfy'));
71
+ }
72
+ }
73
+
74
+ /**
75
+ * Permalinks options.
76
+ *
77
+ * @return mixed[]
78
+ * @since 1.0.0
79
+ */
80
+ public function getPageOptions()
81
+ {
82
+ $options = [];
83
+
84
+ $options[] = [
85
+ 'type' => 'html',
86
+ 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Clear the unnecessary scripts</strong>', 'clearfy') . '<p>' . __('This set of settings will help you remove unnecessary links and code from the head section, as well as reduce your website\'s pages weight.', 'clearfy') . '</p></div>'
87
+ ];
88
+
89
+ $options[] = [
90
+ 'type' => 'checkbox',
91
+ 'way' => 'buttons',
92
+ 'name' => 'disable_feed',
93
+ 'title' => __('Disable RSS feeds', 'clearfy'),
94
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
95
+ 'hint' => __('By default, WordPress generates all types of different RSS feeds for your site. While RSS feeds can be useful if you are running a blog, businesses might not always utilize these. Not every site out there has a blog.', 'clearfy') . '<br><b>Clearfy: </b>' . sprintf(__('Removes a link to the RSS-feed from the %s section, closes and puts the redirect from all RSS-feeds.', 'clearfy'), '&lt;head&gt;'),
96
+ 'default' => false,
97
+ 'eventsOn' => [
98
+ 'show' => '.factory-control-disabled_feed_behaviour'
99
+ ],
100
+ 'eventsOff' => [
101
+ 'hide' => '.factory-control-disabled_feed_behaviour'
102
+ ]
103
+ ];
104
+
105
+ $options[] = [
106
+ 'type' => 'dropdown',
107
+ 'way' => 'buttons',
108
+ 'name' => 'disabled_feed_behaviour',
109
+ 'data' => [
110
+ ['redirect_301', __('Redirect 301', 'clearfy')],
111
+ ['redirect_404', __('Page 404', 'clearfy')],
112
+ ],
113
+ 'title' => __('Redirect feed requests', 'clearfy'),
114
+ 'hint' => __('Forward all requests to page 404 or to the main page through 301 redirects.', 'clearfy'),
115
+ //'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
116
+ 'default' => 'redirect_301'
117
+ ];
118
+
119
+ $options[] = [
120
+ 'type' => 'checkbox',
121
+ 'way' => 'buttons',
122
+ 'name' => 'disable_json_rest_api',
123
+ 'title' => __('Remove REST API Links', 'clearfy'),
124
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'red'],
125
+ 'hint' => __('The WordPress REST API provides API endpoints for WordPress data types that allow developers to interact with sites remotely by sending and receiving JSON (JavaScript Object Notation) objects. However, a lot of sites don’t use this, and therefore in most cases, it is just unnecessary code.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes REST API link tag from the front end and the REST API header link from page requests.', 'clearfy'),
126
+ 'default' => false,
127
+ 'eventsOn' => [
128
+ 'show' => '#wbcr-clearfy-rest-api-danger-message'
129
+ ],
130
+ 'eventsOff' => [
131
+ 'hide' => '#wbcr-clearfy-rest-api-danger-message'
132
+ ]
133
+ ];
134
+
135
+ $options[] = [
136
+ 'type' => 'html',
137
+ 'html' => [$this, 'restApiDangerMessage']
138
+ ];
139
+
140
+ $options[] = [
141
+ 'type' => 'checkbox',
142
+ 'way' => 'buttons',
143
+ 'name' => 'disable_emoji',
144
+ 'title' => __('Disable Emojis', 'clearfy'),
145
+ 'layout' => ['hint-type' => 'icon'],
146
+ 'hint' => __('Emojis are fun and all, but if you are aren’t using them they actually load a JavaScript file (wp-emoji-release.min.js) on every page of your website. For a lot of businesses, this is not needed and simply adds load time to your site. So we recommend disabling this.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes WordPress Emojis JavaScript file (wp-emoji-release.min.js).', 'clearfy'),
147
+ 'default' => false
148
+ ];
149
+
150
+ $options[] = [
151
+ 'type' => 'checkbox',
152
+ 'way' => 'buttons',
153
+ 'name' => 'remove_jquery_migrate',
154
+ 'title' => __('Remove jQuery Migrate', 'clearfy'),
155
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'red'],
156
+ 'hint' => __('They started adding jQuery migrate in WordPress 3.6. Most up-to-date frontend code and plugins don’t require jquery-migrate.min.js. In most cases, this simply adds unnecessary load to your site. You can see this running if you launch Chrome Devtools console.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes jQuery Migrate JavaScript file (jquery-migrate.min.js).', 'clearfy') . '<br>--<br><span class="wbcr-factory-light-orange-color">' . __('Warning! If there is a broke on your site, disable this option!', 'clearfy') . '</span>',
157
+ 'default' => false
158
+ ];
159
+
160
+ $options[] = [
161
+ 'type' => 'checkbox',
162
+ 'way' => 'buttons',
163
+ 'name' => 'disable_embeds',
164
+ 'title' => __('Disable Embeds', 'clearfy'),
165
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
166
+ 'hint' => __('Embeds were released with WordPress 4.4. This is basically the magic that auto converts your YouTube videos, Tweets, and URLs into pretty previews while you are editing. However, this actually loads a JavaScript file (wp-embed.min.js) on every page of your website. If you don’t care about the auto converting preview (which we don’t), you can disable this across your site.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes WordPress Embed JavaScript file (wp-embed.min.js)', 'clearfy'),
167
+ 'default' => false
168
+ ];
169
+
170
+ /*$options[] = array(
171
+ 'type' => 'checkbox',
172
+ 'way' => 'buttons',
173
+ 'name' => 'remove_dns_prefetch',
174
+ 'title' => __('Remove dns-prefetch', 'clearfy'),
175
+ 'layout' => array('hint-type' => 'icon'),
176
+ 'hint' => sprintf(__('Since version 4.6.1 in WordPress there are new links in the section %s this type of: ', 'clearfy'), 'head') . ' <code>link rel="dns-prefetch" href="//s.w.org"</code><br><br><b>Clearfy: </b>' . sprintf(__('Removes dns-prefetch links from the %s section', 'clearfy'), 'head'),
177
+ 'default' => false
178
+ );*/
179
+ $options[] = [
180
+ 'type' => 'checkbox',
181
+ 'way' => 'buttons',
182
+ 'name' => 'remove_rsd_link',
183
+ 'title' => __('Remove RSD Link', 'clearfy'),
184
+ 'layout' => ['hint-type' => 'icon'],
185
+ 'hint' => __('The above link is used by blog clients. If you edit your site from your browser then you don’t need this. It is also used by some 3rd party applications that utilize XML-RPC requests. In most cases, this is just unnecessary code.', 'clearfy') . '<br><code>link rel="EditURI" type="application/rsd+xml" title="RSD"</code><br><br><b>Clearfy: </b>' . __('Remove RSD (Real Simple Discovery) link tag.', 'clearfy'),
186
+ 'default' => false
187
+ ];
188
+ $options[] = [
189
+ 'type' => 'checkbox',
190
+ 'way' => 'buttons',
191
+ 'name' => 'remove_xfn_link',
192
+ 'title' => __('Removing XFN (XHTML Friends Network) Profile Link', 'clearfy'),
193
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
194
+ 'hint' => __('The profile attribute specifies the metadata profile address. Usually, the browser recognizes the value of this attribute and executes some conventions related to the specified profile. Loading the document itself at the specified address does not really happen, moreover, it may not exist at all.
195
+ In particular, the profile is used for the XFN microformat (XHTML Friends Network) - a way of representing relationships between people using links and rel attributes with different values. WordPress also actively uses profile in its templates.
196
+ ', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Remove link tag', 'clearfy') . '<br><code>link rel="profile" href="http://gmpg.org/xfn/11"</code>',
197
+ 'default' => false
198
+ ];
199
+
200
+ $options[] = [
201
+ 'type' => 'checkbox',
202
+ 'way' => 'buttons',
203
+ 'name' => 'remove_wlw_link',
204
+ 'title' => __('Remove wlwmanifest Link', 'clearfy'),
205
+ 'layout' => ['hint-type' => 'icon'],
206
+ 'hint' => '<code>link rel="wlwmanifest" type="application/wlwmanifest+xml"</code><br>' . __('This link is actually used by Windows Live Writer. If you don’t know use Windows Live Writer, which we are guessing you don’t, this is just unnecessary code.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Remove wlwmanifest (Windows Live Writer) link tag.', 'clearfy'),
207
+ 'default' => false
208
+ ];
209
+
210
+ $options[] = [
211
+ 'type' => 'checkbox',
212
+ 'way' => 'buttons',
213
+ 'name' => 'remove_shortlink_link',
214
+ 'title' => __('Remove Shortlink', 'clearfy'),
215
+ 'layout' => ['hint-type' => 'icon'],
216
+ 'hint' => sprintf(__('By default, the following tag shows up in every WordPress install. %s This is used for a shortlink to your pages and posts. However, if you are already using pretty permalinks, such as domain.com/post, then there is no reason to keep this, it is just unnecessary code.', 'clearfy'), '<br><code>link rel="shortlink" href="https://domain.com?p=712"</code><br>') . '<br><br><b>Clearfy: </b>' . __('Remove Shortlink link tag.', 'clearfy'),
217
+ 'default' => false
218
+ ];
219
+
220
+ $options[] = [
221
+ 'type' => 'checkbox',
222
+ 'way' => 'buttons',
223
+ 'name' => 'remove_adjacent_posts_link',
224
+ 'title' => __('Remove links to previous, next post', 'clearfy'),
225
+ 'layout' => ['hint-type' => 'icon'],
226
+ 'hint' => __('If you use Wordpress as a CMS, then you can delete these links, they can only come in handy for a blog.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Remove the previous and next post links within the wp_head of your wordpress theme.', 'clearfy'),
227
+ 'default' => false
228
+ ];
229
+
230
+ $options[] = [
231
+ 'type' => 'checkbox',
232
+ 'way' => 'buttons',
233
+ 'name' => 'remove_recent_comments_style',
234
+ 'title' => __('Remove .recentcomments styles', 'clearfy'),
235
+ 'layout' => ['hint-type' => 'icon'],
236
+ 'hint' => __('WP by default for the widget "recent comments" prescribes in the code styles that are almost impossible to change, because to them apply! important.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes .recentcomments styles from head section.', 'clearfy'),
237
+ 'default' => false
238
+ ];
239
+
240
+ $options[] = [
241
+ 'type' => 'checkbox',
242
+ 'way' => 'buttons',
243
+ 'name' => 'lazy_load_font_awesome',
244
+ 'title' => __('Font Awesome asynchronous', 'clearfy'),
245
+ 'layout' => ['hint-type' => 'icon'],
246
+ 'hint' => __('By default, WordPress loads Font Awesome icons synchronously, that is, your page will not be fully loaded until Font Awesome icons are loaded. This algorithm slows down the loading of your page and leads to errors when checking the site in Google Page Speed. Using this option, your Font Awesome icons will be loaded after your page is fully loaded. This method has a negative — you and visitors of your site will see changes while loading a page, from the placeholders to icons.', 'clearfy'),
247
+ 'default' => false
248
+ ];
249
+
250
+ $options[] = [
251
+ 'type' => 'checkbox',
252
+ 'way' => 'buttons',
253
+ 'name' => 'disable_dashicons',
254
+ 'title' => __('Disable Dashicons', 'clearfy'),
255
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
256
+ 'hint' => __('Dashicons is the official icon font of the WordPress admin as of 3.8. Some of you have requested that we add a feature to remove Dashicons. Some themes and developers utilize this (dashicons.min.css) on the front-end of their sites.', 'clearfy'),
257
+ 'default' => false
258
+ ];
259
+
260
+ $options[] = [
261
+ 'type' => 'checkbox',
262
+ 'way' => 'buttons',
263
+ 'name' => 'disable_gravatars',
264
+ 'title' => __('Disable gravatars', 'clearfy'),
265
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
266
+ 'hint' => __('This function that prevents the user’s gravatar being automatically obtained from gravatar.com based on their registered email. This would be useful for sites where users require an extra layer of privacy, or if you just want to prevent potentially silly or embarrasing avatar accidents.
267
+ If you’re using Identicons or any other generated default avatar, the user should keep a consistent avatar unless they change their registered email.
268
+ ', 'clearfy'),
269
+ 'default' => false
270
+ ];
271
+
272
+ $options[] = [
273
+ 'type' => 'html',
274
+ 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Classic editor and Gutenberg', 'clearfy') . '</strong>' . '<p>' . __('In this group of options, you can manage revisions and post autosave.', 'clearfy') . '</p>' . '</div>'
275
+ ];
276
+
277
+ $options[] = [
278
+ 'type' => 'checkbox',
279
+ 'way' => 'buttons',
280
+ 'name' => 'revisions_disable',
281
+ 'title' => __('Disable revision', 'clearfy'),
282
+ 'default' => false,
283
+ 'eventsOn' => [
284
+ 'hide' => '.factory-control-revision_limit'
285
+ ],
286
+ 'eventsOff' => [
287
+ 'show' => '.factory-control-revision_limit'
288
+ ],
289
+ ];
290
+
291
+ $options[] = [
292
+ 'type' => 'dropdown',
293
+ 'name' => 'revision_limit',
294
+ 'title' => __('Limit Post Revisions', 'clearfy'),
295
+ 'data' => [
296
+ ['default', __('Wordpress default', 'clearfy')],
297
+ ['15', '15 ' . __('revisions', 'clearfy')],
298
+ ['20', '20 ' . __('revisions', 'clearfy')],
299
+ ['25', '25 ' . __('revisions', 'clearfy')],
300
+ ['30', '30 ' . __('revisions', 'clearfy')],
301
+ ['35', '35 ' . __('revisions', 'clearfy')],
302
+ ['40', '40 ' . __('revisions', 'clearfy')],
303
+ ['45', '45 ' . __('revisions', 'clearfy')],
304
+ ['50', '50 ' . __('revisions', 'clearfy')],
305
+ ['55', '55 ' . __('revisions', 'clearfy')],
306
+ ['60', '60 ' . __('revisions', 'clearfy')]
307
+ ],
308
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
309
+ 'hint' => __('WordPress automatically saves revisions when you are working on posts and pages. These can begin to add up pretty quick. By default, there is no limit in place. We have seen posts with over 1,000 revisions. Multiply this by 50 pages and suddenly you have over 50,000 revisions sitting in your database. The problem with this is that you will most likely never use them and they can start slowing down your database as well as using disk space.
310
+ So we recommend either disabling or limiting your revisions. ', 'clearfy'),
311
+ 'default' => 'default'
312
+ ];
313
+
314
+ if( version_compare(get_bloginfo('version'), '5.0', '>=') ) {
315
+ $options[] = [
316
+ 'type' => 'checkbox',
317
+ 'way' => 'buttons',
318
+ 'name' => 'gutenberg_autosave_control',
319
+ 'title' => __('Gutenberg autosave control', 'clearfy'),
320
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
321
+ 'hint' => __('By activating this option autosave feature in the Gutenberg editor will be disabled. Alternatively it also provides options in the editor to select a longer autosave interval time than the default 10 seconds.', 'clearfy'),
322
+ 'default' => false
323
+ ];
324
+ } else {
325
+ $options[] = [
326
+ 'type' => 'checkbox',
327
+ 'way' => 'buttons',
328
+ 'name' => 'disable_post_autosave',
329
+ 'title' => __('Disable autosave', 'clearfy'),
330
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
331
+ 'hint' => __('WordPress by default automatically saves a draft every 60 seconds (1 minute). There are reasons why you might want to change this.', 'clearfy') . '<br><b>Clearfy</b>: ' . __('Disables automatic saving of drafts.', 'clearfy'),
332
+ 'default' => false
333
+ ];
334
+ }
335
+
336
+ $options[] = [
337
+ 'type' => 'html',
338
+ 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Remove query strings from static resources', 'clearfy') . '</strong>' . '<p>' . __('This funcitons will remove query strings from static resources like CSS & JS files inside the HTML <head> element to improve your speed scores in services like Pingdom, GTmetrix, PageSpeed and YSlow. <b style="color:#ff5722">Important:</b> This does not work for authorized users. To avoid problems after plugins update!', 'clearfy') . '</p>' . '</div>'
339
+ ];
340
+
341
+ $options[] = [
342
+ 'type' => 'checkbox',
343
+ 'way' => 'buttons',
344
+ 'name' => 'remove_js_version',
345
+ 'title' => __('Remove Version from Script', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
346
+ 'layout' => ['hint-type' => 'icon'],
347
+ 'hint' => __('To make it more difficult for others to hack your website you can remove the WordPress version number from your site, your css and js. Without that number it\'s not possible to see if you run not the current version to exploit bugs from the older versions. <br><br>
348
+ Additionally it can improve the loading speed of your site, because without query strings in the URL the css and js files can be cached.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes wordpress version number from scripts (not logged in user only).', 'clearfy'),
349
+ 'default' => false
350
+ ];
351
+
352
+ $options[] = [
353
+ 'type' => 'checkbox',
354
+ 'way' => 'buttons',
355
+ 'name' => 'remove_style_version',
356
+ 'title' => __('Remove Version from Stylesheet', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
357
+ 'layout' => ['hint-type' => 'icon'],
358
+ 'hint' => __('To make it more difficult for others to hack your website you can remove the WordPress version number from your site, your css and js. Without that number it\'s not possible to see if you run not the current version to exploit bugs from the older versions. <br><br>
359
+ Additionally it can improve the loading speed of your site, because without query strings in the URL the css and js files can be cached.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes the wordpress version number from stylesheets (not logged in user only).', 'clearfy'),
360
+ 'default' => false
361
+ /*'eventsOn' => array(
362
+ 'show' => '.factory-control-disable_remove_style_version_for_auth_users'
363
+ ),
364
+ 'eventsOff' => array(
365
+ 'hide' => '.factory-control-disable_remove_style_version_for_auth_users'
366
+ )*/
367
+ ];
368
+
369
+ /*$options[] = array(
370
+ 'type' => 'checkbox',
371
+ 'way' => 'buttons',
372
+ 'name' => 'disable_remove_style_version_for_auth_users',
373
+ 'title' => __( 'Disable remove versions for auth users', 'clearfy' ) . ' <span class="wbcr-clearfy-recomended-text">(' . __( 'Recommended', 'clearfy' ) . ')</span>',
374
+ 'layout' => array( 'hint-type' => 'icon' ),
375
+ 'default' => false
376
+ );*/
377
+
378
+ $options[] = [
379
+ 'type' => 'textarea',
380
+ 'name' => 'remove_version_exclude',
381
+ 'height' => '120',
382
+ 'title' => __('Exclude stylesheet/script file names', 'clearfy'),
383
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
384
+ 'hint' => __('Enter Stylesheet/Script file names to exclude from version removal (each exclude file starts with a new line)', 'clearfy') . '<br><br><b>' . __('Example', 'clearfy') . ':</b>' . ' http://testwp.dev/wp-includes/js/jquery/jquery.js',
385
+ ];
386
+
387
+ $options[] = [
388
+ 'type' => 'html',
389
+ 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Heartbeat', 'clearfy') . '</strong>' . '<p>' . __('The WordPress Heartbeat API uses /wp-admin/admin-ajax.php to run AJAX calls from the web-browser. While this is great and all it can also cause high CPU usage and crazy amounts of PHP calls. For example, if you leave your dashboard open it will keep sending POST requests to this file on a regular interval, every 15 seconds. Here is an example below of it happening.', 'clearfy') . '</p>' . '</div>'
390
+ ];
391
+
392
+ $options[] = [
393
+ 'type' => 'dropdown',
394
+ 'name' => 'disable_heartbeat',
395
+ 'way' => 'buttons',
396
+ 'title' => __('Disable Heartbeat', 'clearfy'),
397
+ 'data' => [
398
+ ['default', __('Default', 'clearfy')],
399
+ ['everywhere', __('Everywhere', 'clearfy')],
400
+ ['on_dashboard_page', __('In admin panel', 'clearfy')],
401
+ ['allow_only_on_post_edit_pages', __('Only allow when editing Posts/Pages', 'clearfy')]
402
+ ],
403
+ //'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
404
+ //'hint' => __('You can disable all plugin updates or choose manual or automatic update mode.', 'clearfy'),
405
+ 'events' => [
406
+ 'default' => [
407
+ 'show' => '.factory-control-heartbeat_frequency'
408
+ ],
409
+ 'on_dashboard_page' => [
410
+ 'show' => '.factory-control-heartbeat_frequency'
411
+ ],
412
+ 'allow_only_on_post_edit_pages' => [
413
+ 'show' => '.factory-control-heartbeat_frequency'
414
+ ],
415
+ 'everywhere' => [
416
+ 'hide' => '.factory-control-heartbeat_frequency'
417
+ ]
418
+ ],
419
+ 'default' => 'default',
420
+ ];
421
+
422
+ $options[] = [
423
+ 'type' => 'dropdown',
424
+ 'name' => 'heartbeat_frequency',
425
+ 'title' => __('Heartbeat frequency', 'clearfy'),
426
+ 'data' => [
427
+ ['default', __('Wordpress default', 'clearfy')],
428
+ ['20', '20 ' . __('seconds', 'clearfy')],
429
+ ['25', '25 ' . __('seconds', 'clearfy')],
430
+ ['30', '30 ' . __('seconds', 'clearfy')],
431
+ ['35', '35 ' . __('seconds', 'clearfy')],
432
+ ['40', '40 ' . __('seconds', 'clearfy')],
433
+ ['45', '45 ' . __('seconds', 'clearfy')],
434
+ ['50', '50 ' . __('seconds', 'clearfy')],
435
+ ['55', '55 ' . __('seconds', 'clearfy')],
436
+ ['60', '60 ' . __('seconds', 'clearfy')],
437
+ ['80', '80 ' . __('seconds', 'clearfy')],
438
+ ['120', '120 ' . __('seconds', 'clearfy')],
439
+ ['150', '150 ' . __('seconds', 'clearfy')],
440
+ ['200', '200 ' . __('seconds', 'clearfy')],
441
+ ['250', '250 ' . __('seconds', 'clearfy')],
442
+ ['300', '300 ' . __('seconds', 'clearfy')],
443
+ ['400', '400 ' . __('seconds', 'clearfy')],
444
+ ['500', '500 ' . __('seconds', 'clearfy')]
445
+ ],
446
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
447
+ 'hint' => __('Select the heartbeat frequency wordpress. We recommend you 60 seconds, default is 20 seconds.', 'clearfy'),
448
+ 'default' => 'default'
449
+ ];
450
+
451
+ $form_options = [];
452
+
453
+ $form_options[] = [
454
+ 'type' => 'form-group',
455
+ 'items' => $options,
456
+ //'cssClass' => 'postbox'
457
+ ];
458
+
459
+ return apply_filters('wbcr_clr_code_clean_form_options', $form_options, $this);
460
+ }
461
+
462
+ /**
463
+ * Adds an html warning notification html markup.
464
+ */
465
+ public function restApiDangerMessage()
466
+ {
467
+ ?>
468
+ <div class="form-group">
469
+ <label class="col-sm-4 control-label"></label>
470
+ <div class="control-group col-sm-8">
471
+ <div id="wbcr-clearfy-rest-api-danger-message" class="wbcr-clearfy-danger-message">
472
+ <?php _e('<b>Use this option carefully!</b><br> Plugins like Contact form 7, Anycomments may have problems using this option.', 'clearfy') ?>
473
+ </div>
474
+ </div>
475
+ </div>
476
+ <?php
477
+ }
478
+
479
+ /**
480
+ * Check if WP_POST_REVISIONS is installed in wp-config file
481
+ *
482
+ * @return bool
483
+ */
484
+ protected function is_post_revision_constant()
485
+ {
486
+ $config_path = ABSPATH . '/wp-config.php';
487
+
488
+ if( file_exists($config_path) ) {
489
+ $file = fopen($config_path, 'r');
490
+ $content = fread($file, filesize($config_path));
491
+ fclose($file);
492
+
493
+ if( !empty($content) && preg_match('/define(.+?)WP_POST_REVISIONS/', $content) ) {
494
+ return true;
495
+ }
496
+ }
497
+
498
+ return false;
499
+ }
500
+ }
admin/pages/class-pages-quick-start.php CHANGED
@@ -1,241 +1,241 @@
1
- <?php
2
-
3
- /**
4
- * The page Settings.
5
- *
6
- * @since 1.0.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if( !defined('ABSPATH') ) {
11
- exit;
12
- }
13
-
14
- class WCL_QuickStartPage extends WCL_Page {
15
-
16
- /**
17
- * The id of the page in the admin menu.
18
- *
19
- * Mainly used to navigate between pages.
20
- * @see FactoryPages440_AdminPage
21
- *
22
- * @since 1.0.0
23
- * @var string
24
- */
25
- public $id = "quick_start";
26
-
27
- /**
28
- * @var string
29
- */
30
- public $page_menu_dashicon = 'dashicons-clock';
31
-
32
- /**
33
- * @var int
34
- */
35
- public $page_menu_position = 100;
36
-
37
- /**
38
- * @var bool
39
- */
40
- public $internal = false;
41
-
42
- /**
43
- * @var string
44
- */
45
- public $menu_target = 'options-general.php';
46
-
47
- /**
48
- * @var string
49
- */
50
- public $type = 'page';
51
-
52
- /**
53
- * @var bool
54
- */
55
- public $add_link_to_plugin_actions = true;
56
-
57
-
58
- public $available_for_multisite = true;
59
-
60
-
61
- /**
62
- * @param WCL_Plugin $plugin
63
- */
64
- public function __construct(WCL_Plugin $plugin)
65
- {
66
- $this->menu_title = __('Clearfy', 'clearfy');
67
- $this->page_menu_short_description = __('One-click settings', 'clearfy');
68
-
69
- parent::__construct($plugin);
70
-
71
- $this->plugin = $plugin;
72
- }
73
-
74
- public function getPageTitle()
75
- {
76
- return __('Quick start', 'clearfy');
77
- }
78
-
79
- /**
80
- * Requests assets (js and css) for the page.
81
- *
82
- * @return void
83
- * @since 1.0.0
84
- * @see FactoryPages440_AdminPage
85
- *
86
- */
87
- public function assets($scripts, $styles)
88
- {
89
- parent::assets($scripts, $styles);
90
-
91
- /**
92
- * Подгружаем стили для вижета оптимизации изображений, если не установли плагин оптимизации изображений
93
- */
94
- if( !defined('WIO_PLUGIN_ACTIVE') ) {
95
- $styles->add(WCL_PLUGIN_URL . '/admin/assets/css/base-statistic.css');
96
- }
97
-
98
- $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/general.js');
99
-
100
- $params = array(
101
- //'ajaxurl' => admin_url('admin-ajax.php'),
102
- 'flush_cache_url' => $this->getActionUrl('flush-cache-and-rules', array('_wpnonce' => wp_create_nonce('wbcr_factory_' . $this->getResultId() . '_flush_action'))),
103
- 'ajax_nonce' => wp_create_nonce('wbcr_clearfy_ajax_quick_start_nonce'),
104
- 'i18n' => array(
105
- 'success_update_settings' => __('Settings successfully updated!', 'clearfy'),
106
- 'unknown_error' => __('During the setup, an unknown error occurred, please try again or contact the plugin support.', 'clearfy')
107
- )
108
- );
109
- $this->scripts->localize('wbcr_clearfy_ajax', $params);
110
- }
111
-
112
- /**
113
- * Shows the description above the options.
114
- *
115
- * @return void
116
- * @since 1.0.0
117
- */
118
- public function _showHeader()
119
- {
120
- ?>
121
- <div class="wbcr-clearfy-header">
122
- <?php _e('On this page you can quickly configure the plug-in without going into details.', 'clearfy') ?>
123
- </div>
124
- <?php
125
- }
126
-
127
- public function showPageContent()
128
- {
129
- $allow_mods = apply_filters('wbcr_clearfy_allow_quick_mods', array(
130
- 'clear_code' => array('title' => __('One click code clearing', 'clearfy'), 'icon' => 'dashicons-yes'),
131
- 'defence' => array('title' => __('One click security', 'clearfy'), 'icon' => 'dashicons-shield'),
132
- 'seo_optimize' => array(
133
- 'title' => __('One click seo optimization', 'clearfy'),
134
- 'icon' => 'dashicons-star-empty'
135
- ),
136
- 'remove_default_widgets' => array(
137
- 'title' => __('One click remove default Widgets', 'clearfy'),
138
- 'icon' => 'dashicons-networking'
139
- ),
140
- ));
141
-
142
- if( !$this->plugin->isActivateComponent('widget_tools') ) {
143
- unset($allow_mods['remove_default_widgets']);
144
- }
145
-
146
- $allow_mods['reset'] = array(
147
- 'title' => __('Reset all settings', 'clearfy'),
148
- 'icon' => 'dashicons-backup',
149
- 'args' => array('flush_redirect' => 1)
150
- );
151
- ?>
152
- <div class="wbcr-clearfy-confirm-popup">
153
- <h3><?php _e('Are you sure you want to enable the this options?', 'clearfy') ?></h3>
154
-
155
- <div class="wbcr-clearfy-reset-warning-message">
156
- <?php _e('After confirmation, all the settings of the plug-in will return to the default state. Make backup settings by copying data from the export field.', 'clearfy') ?>
157
- </div>
158
- <ul class="wbcr-clearfy-list-options"></ul>
159
- <div class="wbcr-clearfy-popup-buttons">
160
- <button class="wbcr-clearfy-popup-button-ok"><?php _e('Confirm', 'clearfy') ?></button>
161
- <button class="wbcr-clearfy-popup-button-cancel"><?php _e('Cancel', 'clearfy') ?></button>
162
- </div>
163
- </div>
164
-
165
- <div class="wbcr-content-section">
166
- <div class="wbcr-factory-page-group-header" style="margin:0"><?php _e('<strong>Quick start</strong>.', 'clearfy') ?>
167
- <p><?php _e('These are quick optimization options for your website. You can activate the groups of necessary settings in one click. With the fast optimization mode, we are enable the only safe settings that do not break your website. That is why we recommend you to look at each setting of the plugin individually. The settings with grey and red question mark will not be active, until you do it yourself.', 'clearfy') ?></p>
168
- </div>
169
-
170
- <?php do_action('wbcr_clearfy_quick_boards'); ?>
171
-
172
- <div id="wbcr-clearfy-quick-mode-board">
173
- <h4 style="margin-top:10px;"><?php _e('Select what you need to do', 'clearfy') ?></h4>
174
-
175
- <p style="color:#9e9e9e"><?php _e('After selecting any optimization case, the plugin will automatically enable the necessary settings in safe mode and one click.', 'clearfy') ?></p>
176
-
177
- <ul>
178
- <?php foreach($allow_mods as $mode_name => $mode): ?>
179
- <?php
180
- $mode_title = $mode;
181
- $mode_icon = '';
182
- $mode_args = '';
183
-
184
- if( is_array($mode) ) {
185
- $mode_title = isset($mode['title']) ? $mode['title'] : '';
186
- $mode_icon = isset($mode['icon']) ? $mode['icon'] : '';
187
- $mode_args = isset($mode['args']) && is_array($mode['args']) ? WCL_Helper::getEscapeJson($mode['args']) : '';
188
- }
189
- ?>
190
-
191
- <li>
192
- <?php
193
- $group = WCL_Group::getInstance($mode_name);
194
-
195
- $filter_mode_options = array();
196
- foreach($group->getOptions() as $option) {
197
- $filter_mode_options[$option->getName()] = $option->getTitle();
198
- }
199
-
200
- $print_group_options = WCL_Helper::getEscapeJson($filter_mode_options);
201
- ?>
202
- <?php if( $mode_name == 'reset' ): ?>
203
- <h4><?php _e('Reset settings', 'clearfy') ?></h4>
204
- <p style="color:#9e9e9e"><?php _e('After confirmation, all the settings of the plug-in will return to the default state. Make backup settings by copying data from the export field.', 'clearfy') ?></p>
205
-
206
- <?php endif; ?>
207
- <div class="wbcr-clearfy-switch wbcr-clearfy-switch-mode-<?= $mode_name ?>" data-mode="<?= $mode_name ?>" data-mode-args="<?= $mode_args ?>" data-mode-options="<?= $print_group_options ?>">
208
- <?php if( !empty($mode_icon) ): ?>
209
- <i class="dashicons <?= $mode_icon; ?>"></i>
210
- <?php endif; ?>
211
- <span><?= $mode_title ?></span>
212
-
213
- <div class="wbcr-clearfy-switch-confirmation">
214
- <button class="wbcr-clearfy-button-activate-mode">
215
- <?php if( $mode_name == 'reset' ): ?>
216
- <?php _e('Reset', 'clearfy'); ?>
217
- <?php else: ?>
218
- <?php _e('Do It!', 'clearfy'); ?>
219
- <?php endif; ?>
220
- </button>
221
- </div>
222
-
223
- </li>
224
- <?php endforeach; ?>
225
- <li>
226
- <div class="wbcr-clearfy-switch">
227
- <i class="dashicons dashicons-admin-settings"></i>
228
- <span><?php _e('Configuration wizard', 'clearfy'); ?></span>
229
- <div class="wbcr-clearfy-switch-confirmation">
230
- <a href="<?php echo WCL_Plugin::app()->getPluginPageUrl('setup'); ?>" class="btn wbcr-clearfy-button-activate-wizard"><?php _e('Start', 'clearfy'); ?></a>
231
- </div>
232
- </div>
233
- </li>
234
- </ul>
235
- </div>
236
-
237
- </div>
238
-
239
- <?php
240
- }
241
- }
1
+ <?php
2
+
3
+ /**
4
+ * The page Settings.
5
+ *
6
+ * @since 1.0.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if( !defined('ABSPATH') ) {
11
+ exit;
12
+ }
13
+
14
+ class WCL_QuickStartPage extends WCL_Page {
15
+
16
+ /**
17
+ * The id of the page in the admin menu.
18
+ *
19
+ * Mainly used to navigate between pages.
20
+ * @see FactoryPages443_AdminPage
21
+ *
22
+ * @since 1.0.0
23
+ * @var string
24
+ */
25
+ public $id = "quick_start";
26
+
27
+ /**
28
+ * @var string
29
+ */
30
+ public $page_menu_dashicon = 'dashicons-clock';
31
+
32
+ /**
33
+ * @var int
34
+ */
35
+ public $page_menu_position = 100;
36
+
37
+ /**
38
+ * @var bool
39
+ */
40
+ public $internal = false;
41
+
42
+ /**
43
+ * @var string
44
+ */
45
+ public $menu_target = 'options-general.php';
46
+
47
+ /**
48
+ * @var string
49
+ */
50
+ public $type = 'page';
51
+
52
+ /**
53
+ * @var bool
54
+ */
55
+ public $add_link_to_plugin_actions = true;
56
+
57
+
58
+ public $available_for_multisite = true;
59
+
60
+
61
+ /**
62
+ * @param WCL_Plugin $plugin
63
+ */
64
+ public function __construct(WCL_Plugin $plugin)
65
+ {
66
+ $this->menu_title = __('Clearfy', 'clearfy');
67
+ $this->page_menu_short_description = __('One-click settings', 'clearfy');
68
+
69
+ parent::__construct($plugin);
70
+
71
+ $this->plugin = $plugin;
72
+ }
73
+
74
+ public function getPageTitle()
75
+ {
76
+ return __('Quick start', 'clearfy');
77
+ }
78
+
79
+ /**
80
+ * Requests assets (js and css) for the page.
81
+ *
82
+ * @return void
83
+ * @since 1.0.0
84
+ * @see FactoryPages443_AdminPage
85
+ *
86
+ */
87
+ public function assets($scripts, $styles)
88
+ {
89
+ parent::assets($scripts, $styles);
90
+
91
+ /**
92
+ * Подгружаем стили для вижета оптимизации изображений, если не установли плагин оптимизации изображений
93
+ */
94
+ if( !defined('WIO_PLUGIN_ACTIVE') ) {
95
+ $styles->add(WCL_PLUGIN_URL . '/admin/assets/css/base-statistic.css');
96
+ }
97
+
98
+ $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/general.js');
99
+
100
+ $params = array(
101
+ //'ajaxurl' => admin_url('admin-ajax.php'),
102
+ 'flush_cache_url' => $this->getActionUrl('flush-cache-and-rules', array('_wpnonce' => wp_create_nonce('wbcr_factory_' . $this->getResultId() . '_flush_action'))),
103
+ 'ajax_nonce' => wp_create_nonce('wbcr_clearfy_ajax_quick_start_nonce'),
104
+ 'i18n' => array(
105
+ 'success_update_settings' => __('Settings successfully updated!', 'clearfy'),
106
+ 'unknown_error' => __('During the setup, an unknown error occurred, please try again or contact the plugin support.', 'clearfy')
107
+ )
108
+ );
109
+ $this->scripts->localize('wbcr_clearfy_ajax', $params);
110
+ }
111
+
112
+ /**
113
+ * Shows the description above the options.
114
+ *
115
+ * @return void
116
+ * @since 1.0.0
117
+ */
118
+ public function _showHeader()
119
+ {
120
+ ?>
121
+ <div class="wbcr-clearfy-header">
122
+ <?php _e('On this page you can quickly configure the plug-in without going into details.', 'clearfy') ?>
123
+ </div>
124
+ <?php
125
+ }
126
+
127
+ public function showPageContent()
128
+ {
129
+ $allow_mods = apply_filters('wbcr_clearfy_allow_quick_mods', array(
130
+ 'clear_code' => array('title' => __('One click code clearing', 'clearfy'), 'icon' => 'dashicons-yes'),
131
+ 'defence' => array('title' => __('One click security', 'clearfy'), 'icon' => 'dashicons-shield'),
132
+ 'seo_optimize' => array(
133
+ 'title' => __('One click seo optimization', 'clearfy'),
134
+ 'icon' => 'dashicons-star-empty'
135
+ ),
136
+ 'remove_default_widgets' => array(
137
+ 'title' => __('One click remove default Widgets', 'clearfy'),
138
+ 'icon' => 'dashicons-networking'
139
+ ),
140
+ ));
141
+
142
+ if( !$this->plugin->isActivateComponent('widget_tools') ) {
143
+ unset($allow_mods['remove_default_widgets']);
144
+ }
145
+
146
+ $allow_mods['reset'] = array(
147
+ 'title' => __('Reset all settings', 'clearfy'),
148
+ 'icon' => 'dashicons-backup',
149
+ 'args' => array('flush_redirect' => 1)
150
+ );
151
+ ?>
152
+ <div class="wbcr-clearfy-confirm-popup">
153
+ <h3><?php _e('Are you sure you want to enable the this options?', 'clearfy') ?></h3>
154
+
155
+ <div class="wbcr-clearfy-reset-warning-message">
156
+ <?php _e('After confirmation, all the settings of the plug-in will return to the default state. Make backup settings by copying data from the export field.', 'clearfy') ?>
157
+ </div>
158
+ <ul class="wbcr-clearfy-list-options"></ul>
159
+ <div class="wbcr-clearfy-popup-buttons">
160
+ <button class="wbcr-clearfy-popup-button-ok"><?php _e('Confirm', 'clearfy') ?></button>
161
+ <button class="wbcr-clearfy-popup-button-cancel"><?php _e('Cancel', 'clearfy') ?></button>
162
+ </div>
163
+ </div>
164
+
165
+ <div class="wbcr-content-section">
166
+ <div class="wbcr-factory-page-group-header" style="margin:0"><?php _e('<strong>Quick start</strong>.', 'clearfy') ?>
167
+ <p><?php _e('These are quick optimization options for your website. You can activate the groups of necessary settings in one click. With the fast optimization mode, we are enable the only safe settings that do not break your website. That is why we recommend you to look at each setting of the plugin individually. The settings with grey and red question mark will not be active, until you do it yourself.', 'clearfy') ?></p>
168
+ </div>
169
+
170
+ <?php do_action('wbcr_clearfy_quick_boards'); ?>
171
+
172
+ <div id="wbcr-clearfy-quick-mode-board">
173
+ <h4 style="margin-top:10px;"><?php _e('Select what you need to do', 'clearfy') ?></h4>
174
+
175
+ <p style="color:#9e9e9e"><?php _e('After selecting any optimization case, the plugin will automatically enable the necessary settings in safe mode and one click.', 'clearfy') ?></p>
176
+
177
+ <ul>
178
+ <?php foreach($allow_mods as $mode_name => $mode): ?>
179
+ <?php
180
+ $mode_title = $mode;
181
+ $mode_icon = '';
182
+ $mode_args = '';
183
+
184
+ if( is_array($mode) ) {
185
+ $mode_title = isset($mode['title']) ? $mode['title'] : '';
186
+ $mode_icon = isset($mode['icon']) ? $mode['icon'] : '';
187
+ $mode_args = isset($mode['args']) && is_array($mode['args']) ? WCL_Helper::getEscapeJson($mode['args']) : '';
188
+ }
189
+ ?>
190
+
191
+ <li>
192
+ <?php
193
+ $group = WCL_Group::getInstance($mode_name);
194
+
195
+ $filter_mode_options = array();
196
+ foreach($group->getOptions() as $option) {
197
+ $filter_mode_options[$option->getName()] = $option->getTitle();
198
+ }
199
+
200
+ $print_group_options = WCL_Helper::getEscapeJson($filter_mode_options);
201
+ ?>
202
+ <?php if( $mode_name == 'reset' ): ?>
203
+ <h4><?php _e('Reset settings', 'clearfy') ?></h4>
204
+ <p style="color:#9e9e9e"><?php _e('After confirmation, all the settings of the plug-in will return to the default state. Make backup settings by copying data from the export field.', 'clearfy') ?></p>
205
+
206
+ <?php endif; ?>
207
+ <div class="wbcr-clearfy-switch wbcr-clearfy-switch-mode-<?= $mode_name ?>" data-mode="<?= $mode_name ?>" data-mode-args="<?= $mode_args ?>" data-mode-options="<?= $print_group_options ?>">
208
+ <?php if( !empty($mode_icon) ): ?>
209
+ <i class="dashicons <?= $mode_icon; ?>"></i>
210
+ <?php endif; ?>
211
+ <span><?= $mode_title ?></span>
212
+
213
+ <div class="wbcr-clearfy-switch-confirmation">
214
+ <button class="wbcr-clearfy-button-activate-mode">
215
+ <?php if( $mode_name == 'reset' ): ?>
216
+ <?php _e('Reset', 'clearfy'); ?>
217
+ <?php else: ?>
218
+ <?php _e('Do It!', 'clearfy'); ?>
219
+ <?php endif; ?>
220
+ </button>
221
+ </div>
222
+
223
+ </li>
224
+ <?php endforeach; ?>
225
+ <li>
226
+ <div class="wbcr-clearfy-switch">
227
+ <i class="dashicons dashicons-admin-settings"></i>
228
+ <span><?php _e('Configuration wizard', 'clearfy'); ?></span>
229
+ <div class="wbcr-clearfy-switch-confirmation">
230
+ <a href="<?php echo WCL_Plugin::app()->getPluginPageUrl('setup'); ?>" class="btn wbcr-clearfy-button-activate-wizard"><?php _e('Start', 'clearfy'); ?></a>
231
+ </div>
232
+ </div>
233
+ </li>
234
+ </ul>
235
+ </div>
236
+
237
+ </div>
238
+
239
+ <?php
240
+ }
241
+ }
admin/pages/class-pages-seo-double-pages.php CHANGED
@@ -1,157 +1,157 @@
1
- <?php
2
- /**
3
- * The page Settings.
4
- *
5
- * @since 1.0.0
6
- */
7
-
8
- // Exit if accessed directly
9
- if( !defined('ABSPATH') ) {
10
- exit;
11
- }
12
-
13
- class WCL_DoublePagesPage extends WCL_Page {
14
-
15
- /**
16
- * The id of the page in the admin menu.
17
- *
18
- * Mainly used to navigate between pages.
19
- * @see FactoryPages440_AdminPage
20
- *
21
- * @since 1.0.0
22
- * @var string
23
- */
24
- public $id = "double_pages";
25
-
26
- public $page_parent_page = 'seo';
27
-
28
- public $page_menu_dashicon = 'dashicons-admin-page';
29
-
30
- public $page_menu_position = 16;
31
-
32
- public $available_for_multisite = true;
33
-
34
- /**
35
- * @param WCL_Plugin $plugin
36
- */
37
- public function __construct(WCL_Plugin $plugin)
38
- {
39
- $this->menu_title = __('Duplicate pages', 'clearfy');
40
-
41
- parent::__construct($plugin);
42
-
43
- $this->plugin = $plugin;
44
- }
45
-
46
-
47
- /**
48
- * Permalinks options.
49
- *
50
- * @since 1.0.0
51
- * @return mixed[]
52
- */
53
- public function getPageOptions()
54
- {
55
- $options = array();
56
-
57
- /*$options[] = array(
58
- 'type' => 'html',
59
- 'html' => array($this, '_showHeader')
60
- );*/
61
-
62
- /*$options[] = array(
63
- 'type' => 'checkbox',
64
- 'way' => 'buttons',
65
- 'name' => 'redirect_archives_date',
66
- 'title' => __('Disable search', 'clearfy'),
67
- 'layout' => array('hint-type' => 'icon'),
68
- 'hint' => sprintf(__('Many duplicates in date archives. Imagine, in addition, that your article will be displayed in the main and in the category, you will still receive at least 3 duplicates: in archives by year, month and date, for example %s.', 'clearfy'), '/2016/2016/02 / /2016/02/15') . '<br><b>Clearfy: </b>' . __('Removes all pages with the date archives and puts a redirect.', 'clearfy'),
69
- 'default' => false
70
- );*/
71
-
72
- $options[] = array(
73
- 'type' => 'html',
74
- 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Delete duplicate pages.</strong>.', 'clearfy') . '<p>' . __('Search engines perceive these pages as website separate pages, therefore their content ceases to be unique because of duplication. In addition, page reference weight is reduced if it has a duplicate. A small number of duplicated pages will not be a serious problem, but if there are more than 50 percents of them - you urgently need to correct the situation.', 'clearfy') . '</p></div>'
75
- );
76
-
77
- $options[] = array(
78
- 'type' => 'checkbox',
79
- 'way' => 'buttons',
80
- 'name' => 'redirect_archives_date',
81
- 'title' => __('Remove archives date', 'clearfy'),
82
- 'layout' => array('hint-type' => 'icon'),
83
- 'hint' => sprintf(__('Many duplicates in date archives. Imagine, in addition, that your article will be displayed in the main and in the category, you will still receive at least 3 duplicates: in archives by year, month and date, for example %s.', 'clearfy'), '/2016/2016/02 / /2016/02/15') . '<br><b>Clearfy: </b>' . __('Removes all pages with the date archives and puts a redirect.', 'clearfy'),
84
- 'default' => false
85
- );
86
-
87
- $options[] = array(
88
- 'type' => 'checkbox',
89
- 'way' => 'buttons',
90
- 'name' => 'redirect_archives_author',
91
- 'title' => __('Remove author archives ', 'clearfy'),
92
- 'layout' => array('hint-type' => 'icon'),
93
- 'hint' => sprintf(__('If the site is only filled by you - a mandatory item. Allows you to get rid of duplicates on user archives, for example %s.', 'clearfy'), '/author/admin/') . '<br><b>Clearfy: </b>' . __('Removes all pages with the author archives and puts a redirect.', 'clearfy'),
94
- 'default' => false
95
- );
96
-
97
- $options[] = array(
98
- 'type' => 'checkbox',
99
- 'way' => 'buttons',
100
- 'name' => 'redirect_archives_tag',
101
- 'title' => __('Remove archives tag', 'clearfy'),
102
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
103
- 'hint' => __('If you use tags only for the block Similar records, or do not use them at all - it will be more correct to close them to avoid duplicates.', 'clearfy') . '<br><b>Clearfy: </b>' . __('Removes all pages with the tag archives and puts a redirect.', 'clearfy'),
104
- 'default' => false
105
- );
106
-
107
- $options[] = array(
108
- 'type' => 'checkbox',
109
- 'way' => 'buttons',
110
- 'name' => 'attachment_pages_redirect',
111
- 'title' => __('Remove attachment pages', 'clearfy'),
112
- 'layout' => array('hint-type' => 'icon'),
113
- 'hint' => __('Every of the pictures has its own page on the site. Such pages are successfully indexed and create duplicates. The site can have thousands of same-type attachment pages.', 'clearfy') . '<br><b>Clearfy: </b>' . __('Removes attachment pages and puts a redirect.', 'clearfy'),
114
- 'default' => false
115
- );
116
-
117
- $options[] = array(
118
- 'type' => 'checkbox',
119
- 'way' => 'buttons',
120
- 'name' => 'remove_single_pagination_duplicate',
121
- 'title' => __('Remove post pagination', 'clearfy'),
122
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
123
- 'hint' => sprintf(__('In WordPress, any post can be divided into parts (pages), each part will have its own address. But this functionality is rarely used, but it can create trouble for you. For example, you can add a number to the address of any entry of your blog, %s - the post itself will open, which will be a duplicate. You can substitute any number.', 'clearfy'), '/privet-mir/1/') . '<br><b>Clearfy: </b>' . sprintf(__('Removes the pagination from the post and puts a redirect. Example: %s', 'clearfy'), '/post-name/number'),
124
- 'default' => false
125
- );
126
-
127
- $options[] = array(
128
- 'type' => 'checkbox',
129
- 'way' => 'buttons',
130
- 'name' => 'remove_replytocom',
131
- 'title' => __('Remove ?replytocom', 'clearfy'),
132
- 'layout' => array('hint-type' => 'icon'),
133
- 'hint' => sprintf(__('WordPress adds %s to the link "Reply" in the comments, if you use hierarchical comments.', 'clearfy'), '?replytocom') . '<br><b>Clearfy: </b>' . __('?relpytocom remove and and puts a redirect.', 'clearfy'),
134
- 'default' => false
135
- );
136
-
137
- /*$options[] = array(
138
- 'type' => 'separator',
139
- 'cssClass' => 'factory-separator-dashed'
140
- );
141
-
142
- $options[] = array(
143
- 'type' => 'html',
144
- 'html' => array($this, '_showFormButton')
145
- );*/
146
-
147
- $form_options = array();
148
-
149
- $form_options[] = array(
150
- 'type' => 'form-group',
151
- 'items' => $options,
152
- //'cssClass' => 'postbox'
153
- );
154
-
155
- return apply_filters('wbcr_clr_double_form_options', $form_options, $this);
156
- }
157
- }
1
+ <?php
2
+ /**
3
+ * The page Settings.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+
8
+ // Exit if accessed directly
9
+ if( !defined('ABSPATH') ) {
10
+ exit;
11
+ }
12
+
13
+ class WCL_DoublePagesPage extends WCL_Page {
14
+
15
+ /**
16
+ * The id of the page in the admin menu.
17
+ *
18
+ * Mainly used to navigate between pages.
19
+ * @see FactoryPages443_AdminPage
20
+ *
21
+ * @since 1.0.0
22
+ * @var string
23
+ */
24
+ public $id = "double_pages";
25
+
26
+ public $page_parent_page = 'seo';
27
+
28
+ public $page_menu_dashicon = 'dashicons-admin-page';
29
+
30
+ public $page_menu_position = 16;
31
+
32
+ public $available_for_multisite = true;
33
+
34
+ /**
35
+ * @param WCL_Plugin $plugin
36
+ */
37
+ public function __construct(WCL_Plugin $plugin)
38
+ {
39
+ $this->menu_title = __('Duplicate pages', 'clearfy');
40
+
41
+ parent::__construct($plugin);
42
+
43
+ $this->plugin = $plugin;
44
+ }
45
+
46
+
47
+ /**
48
+ * Permalinks options.
49
+ *
50
+ * @since 1.0.0
51
+ * @return mixed[]
52
+ */
53
+ public function getPageOptions()
54
+ {
55
+ $options = array();
56
+
57
+ /*$options[] = array(
58
+ 'type' => 'html',
59
+ 'html' => array($this, '_showHeader')
60
+ );*/
61
+
62
+ /*$options[] = array(
63
+ 'type' => 'checkbox',
64
+ 'way' => 'buttons',
65
+ 'name' => 'redirect_archives_date',
66
+ 'title' => __('Disable search', 'clearfy'),
67
+ 'layout' => array('hint-type' => 'icon'),
68
+ 'hint' => sprintf(__('Many duplicates in date archives. Imagine, in addition, that your article will be displayed in the main and in the category, you will still receive at least 3 duplicates: in archives by year, month and date, for example %s.', 'clearfy'), '/2016/2016/02 / /2016/02/15') . '<br><b>Clearfy: </b>' . __('Removes all pages with the date archives and puts a redirect.', 'clearfy'),
69
+ 'default' => false
70
+ );*/
71
+
72
+ $options[] = array(
73
+ 'type' => 'html',
74
+ 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Delete duplicate pages.</strong>.', 'clearfy') . '<p>' . __('Search engines perceive these pages as website separate pages, therefore their content ceases to be unique because of duplication. In addition, page reference weight is reduced if it has a duplicate. A small number of duplicated pages will not be a serious problem, but if there are more than 50 percents of them - you urgently need to correct the situation.', 'clearfy') . '</p></div>'
75
+ );
76
+
77
+ $options[] = array(
78
+ 'type' => 'checkbox',
79
+ 'way' => 'buttons',
80
+ 'name' => 'redirect_archives_date',
81
+ 'title' => __('Remove archives date', 'clearfy'),
82
+ 'layout' => array('hint-type' => 'icon'),
83
+ 'hint' => sprintf(__('Many duplicates in date archives. Imagine, in addition, that your article will be displayed in the main and in the category, you will still receive at least 3 duplicates: in archives by year, month and date, for example %s.', 'clearfy'), '/2016/2016/02 / /2016/02/15') . '<br><b>Clearfy: </b>' . __('Removes all pages with the date archives and puts a redirect.', 'clearfy'),
84
+ 'default' => false
85
+ );
86
+
87
+ $options[] = array(
88
+ 'type' => 'checkbox',
89
+ 'way' => 'buttons',
90
+ 'name' => 'redirect_archives_author',
91
+ 'title' => __('Remove author archives ', 'clearfy'),
92
+ 'layout' => array('hint-type' => 'icon'),
93
+ 'hint' => sprintf(__('If the site is only filled by you - a mandatory item. Allows you to get rid of duplicates on user archives, for example %s.', 'clearfy'), '/author/admin/') . '<br><b>Clearfy: </b>' . __('Removes all pages with the author archives and puts a redirect.', 'clearfy'),
94
+ 'default' => false
95
+ );
96
+
97
+ $options[] = array(
98
+ 'type' => 'checkbox',
99
+ 'way' => 'buttons',
100
+ 'name' => 'redirect_archives_tag',
101
+ 'title' => __('Remove archives tag', 'clearfy'),
102
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
103
+ 'hint' => __('If you use tags only for the block Similar records, or do not use them at all - it will be more correct to close them to avoid duplicates.', 'clearfy') . '<br><b>Clearfy: </b>' . __('Removes all pages with the tag archives and puts a redirect.', 'clearfy'),
104
+ 'default' => false
105
+ );
106
+
107
+ $options[] = array(
108
+ 'type' => 'checkbox',
109
+ 'way' => 'buttons',
110
+ 'name' => 'attachment_pages_redirect',
111
+ 'title' => __('Remove attachment pages', 'clearfy'),
112
+ 'layout' => array('hint-type' => 'icon'),
113
+ 'hint' => __('Every of the pictures has its own page on the site. Such pages are successfully indexed and create duplicates. The site can have thousands of same-type attachment pages.', 'clearfy') . '<br><b>Clearfy: </b>' . __('Removes attachment pages and puts a redirect.', 'clearfy'),
114
+ 'default' => false
115
+ );
116
+
117
+ $options[] = array(
118
+ 'type' => 'checkbox',
119
+ 'way' => 'buttons',
120
+ 'name' => 'remove_single_pagination_duplicate',
121
+ 'title' => __('Remove post pagination', 'clearfy'),
122
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
123
+ 'hint' => sprintf(__('In WordPress, any post can be divided into parts (pages), each part will have its own address. But this functionality is rarely used, but it can create trouble for you. For example, you can add a number to the address of any entry of your blog, %s - the post itself will open, which will be a duplicate. You can substitute any number.', 'clearfy'), '/privet-mir/1/') . '<br><b>Clearfy: </b>' . sprintf(__('Removes the pagination from the post and puts a redirect. Example: %s', 'clearfy'), '/post-name/number'),
124
+ 'default' => false
125
+ );
126
+
127
+ $options[] = array(
128
+ 'type' => 'checkbox',
129
+ 'way' => 'buttons',
130
+ 'name' => 'remove_replytocom',
131
+ 'title' => __('Remove ?replytocom', 'clearfy'),
132
+ 'layout' => array('hint-type' => 'icon'),
133
+ 'hint' => sprintf(__('WordPress adds %s to the link "Reply" in the comments, if you use hierarchical comments.', 'clearfy'), '?replytocom') . '<br><b>Clearfy: </b>' . __('?relpytocom remove and and puts a redirect.', 'clearfy'),
134
+ 'default' => false
135
+ );
136
+
137
+ /*$options[] = array(
138
+ 'type' => 'separator',
139
+ 'cssClass' => 'factory-separator-dashed'
140
+ );
141
+
142
+ $options[] = array(
143
+ 'type' => 'html',
144
+ 'html' => array($this, '_showFormButton')
145
+ );*/
146
+
147
+ $form_options = array();
148
+
149
+ $form_options[] = array(
150
+ 'type' => 'form-group',
151
+ 'items' => $options,
152
+ //'cssClass' => 'postbox'
153
+ );
154
+
155
+ return apply_filters('wbcr_clr_double_form_options', $form_options, $this);
156
+ }
157
+ }
admin/pages/class-pages-seo.php CHANGED
@@ -1,245 +1,245 @@
1
- <?php
2
- /**
3
- * The page Settings.
4
- *
5
- * @since 1.0.0
6
- */
7
-
8
- // Exit if accessed directly
9
- if( !defined('ABSPATH') ) {
10
- exit;
11
- }
12
-
13
- class WCL_SeoPage extends WCL_Page {
14
-
15
- /**
16
- * The id of the page in the admin menu.
17
- *
18
- * Mainly used to navigate between pages.
19
- * @see FactoryPages440_AdminPage
20
- *
21
- * @since 1.0.0
22
- * @var string
23
- */
24
- public $id = "seo";
25
-
26
- public $page_menu_dashicon = 'dashicons-star-filled';
27
-
28
- public $page_menu_position = 16;
29
-
30
- public $available_for_multisite = true;
31
-
32
- /**
33
- * @param WCL_Plugin $plugin
34
- */
35
- public function __construct(WCL_Plugin $plugin)
36
- {
37
- $this->menu_title = __('SEO', 'clearfy');
38
- $this->page_menu_short_description = __('Additional small fixes SEO', 'clearfy');
39
-
40
- parent::__construct($plugin);
41
-
42
- $this->plugin = $plugin;
43
- }
44
-
45
- /**
46
- * Conflict notites
47
- */
48
- public function warningNotice()
49
- {
50
- $notices = apply_filters('wbcr_clr_seo_page_warnings', array());
51
-
52
- if( !empty($notices) ) {
53
- foreach($notices as $message) {
54
- $this->printWarningNotice($message);
55
- }
56
- }
57
- }
58
-
59
-
60
- /**
61
- * Permalinks options.
62
- *
63
- * @since 1.0.0
64
- * @return mixed[]
65
- */
66
- public function getPageOptions()
67
- {
68
- $options = array();
69
-
70
- $options[] = array(
71
- 'type' => 'html',
72
- 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Basic SEO optimization settings</strong>.', 'clearfy') . '<p>' . __('Recommended settings that can complement your SEO plugin.', 'clearfy') . '</p></div>'
73
- );
74
-
75
- $options[] = array(
76
- 'type' => 'checkbox',
77
- 'way' => 'buttons',
78
- 'name' => 'content_image_auto_alt',
79
- 'title' => __('Automatically set the alt attribute', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
80
- 'layout' => array('hint-type' => 'icon'),
81
- 'hint' => __('The alt attribute is mandatory, so most SEO experts say. If you missed or did not fill it at all, it will be automatically assigned and will be equal to the title of the article.', 'clearfy') . '<br><br><b>Clearfy: </b>' . sprintf(__('Replaces the %s, on attribute with an article name %s', 'clearfy'), '<code>img scr="" alt=""</code>', '<code>img scr="" alt="Hello world"</code>'),
82
- 'default' => false
83
- );
84
-
85
- $options[] = array(
86
- 'type' => 'checkbox',
87
- 'way' => 'buttons',
88
- 'name' => 'right_robots_txt',
89
- 'title' => __('Create right robots.txt', 'clearfy'),
90
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
91
- 'hint' => __('After installation, WP does not contain a robots.txt file and create it manually. We re-read about 30 different articles, instructions from Yandex and Google to create the perfect robots.txt', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Automatically creates the perfect robots.txt file', 'clearfy'),
92
- 'default' => false,
93
- 'eventsOn' => array(
94
- 'show' => '.factory-control-robots_txt_text'
95
- ),
96
- 'eventsOff' => array(
97
- 'hide' => '.factory-control-robots_txt_text'
98
- )
99
- );
100
-
101
- $options[] = array(
102
- 'type' => 'textarea',
103
- 'name' => 'robots_txt_text',
104
- 'title' => __('You can edit the robots.txt file in the box below:', 'clearfy'),
105
- 'default' => WCL_Helper::getRightRobotTxt(),
106
- 'height' => '300'
107
- );
108
-
109
- $options[] = array(
110
- 'type' => 'html',
111
- 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Server headers and response', 'clearfy') . '</strong>' . '<p>' . __('WordPress does not know how to give the Last Modified header in the server\'s responses. You can do this using the settings below.', 'clearfy') . '</p>' . '</div>'
112
- );
113
-
114
- $options[] = array(
115
- 'type' => 'checkbox',
116
- 'way' => 'buttons',
117
- 'name' => 'set_last_modified_headers',
118
- 'title' => __('Automatically insert the Last Modified header', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
119
- 'default' => false,
120
- 'eventsOn' => array(
121
- 'show' => '.factory-control-last_modified_exclude, .factory-control-disable_frontpage_last_modified_headers'
122
- ),
123
- 'eventsOff' => array(
124
- 'hide' => '.factory-control-last_modified_exclude, .factory-control-disable_frontpage_last_modified_headers'
125
- )
126
- );
127
-
128
- $options[] = array(
129
- 'type' => 'checkbox',
130
- 'way' => 'buttons',
131
- 'name' => 'disable_frontpage_last_modified_headers',
132
- 'title' => __('Disable Last Modified header on front page', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
133
- 'default' => true,
134
- );
135
-
136
- $options[] = array(
137
- 'type' => 'textarea',
138
- 'name' => 'last_modified_exclude',
139
- 'height' => '120',
140
- 'title' => __('Exclude pages:', 'clearfy'),
141
- 'layout' => array('hint-type' => 'icon'),
142
- 'hint' => sprintf(__('You can specify a page mask, for example: %s or %s. All pages that contain the string will be excluded. Each exclude must begin with a new line.', 'clearfy'), '/s=', '/manager/'),
143
- );
144
-
145
- $options[] = array(
146
- 'type' => 'checkbox',
147
- 'way' => 'buttons',
148
- 'name' => 'if_modified_since_headers',
149
- 'title' => __('Return an If-Modified-Since responce', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
150
- 'default' => false
151
- );
152
-
153
- if( $this->plugin->isActivateComponent('yoast_seo') ) {
154
- $options[] = array(
155
- 'type' => 'html',
156
- 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('For the Yoast SEO plugin', 'clearfy') . '</strong>' . '<p>' . __('These settings will help you eliminate some problems associated with the popular Yoast SEO plugin', 'clearfy') . '</p>' . '</div>'
157
- );
158
-
159
- $options[] = array(
160
- 'type' => 'checkbox',
161
- 'way' => 'buttons',
162
- 'name' => 'remove_last_item_breadcrumb_yoast',
163
- 'title' => __('Remove duplicate names in breadcrumbs WP SEO by Yoast', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
164
- 'layout' => array('hint-type' => 'icon'),
165
- 'hint' => __('The last element in the breadcrumbs in the Yoast SEO plugin duplicates the title of the article. Some SEO-specialists consider this duplication to be superfluous.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes duplication of the name in the breadcrumbs of the WP SEO plugin from Yoast.', 'clearfy'),
166
- 'default' => false
167
- );
168
-
169
- $options[] = array(
170
- 'type' => 'checkbox',
171
- 'way' => 'buttons',
172
- 'name' => 'yoast_remove_image_from_xml_sitemap',
173
- 'title' => sprintf(__('Remove the tag %s from XML site map', 'clearfy'), 'image:image') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
174
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'green'),
175
- 'hint' => __('Yandex.Webmaster swears on a standard XML card from the plugin Yoast, tk. it has a specific tag', 'clearfy') . 'image:image<br><br><b>Clearfy: </b>' . sprintf(__('Remove the tag %s from XML site map of the plugin Yoast SEO.', 'clearfy'), 'image:image') . '<br>--<br><span class="wbcr-factory-light-orange-color">' . __('Attention! After activation, turn off the site map and enable it back to regenerate it.', 'clearfy') . '</span>' . '<br><span class="wbcr-factory-light-orange-color">' . __('In older versions of Yoast SEO may not work - update the plugin Yoast', 'clearfy') . '</span>',
176
- 'default' => false,
177
- 'eventsOn' => array()
178
- );
179
-
180
- /*$options[] = array(
181
- 'type' => 'html',
182
- 'id' => 'wbcr-clearfy-image-xml-sitemap-warning',
183
- 'cssClass' => 'factory-hints',
184
- 'html' => array($this, 'sfsdfsdf')
185
- );*/
186
-
187
- $options[] = array(
188
- 'type' => 'checkbox',
189
- 'way' => 'buttons',
190
- 'name' => 'yoast_remove_json_ld_search',
191
- 'title' => __('Disable JSON-LD sitelinks searchbox', 'clearfy') . '</span>',
192
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
193
- 'hint' => __('If you’re not familiar with Search Action it’s the mark-up that helps search engines add a shiny Sitelinks Search Box below your search engine results. For the majority of webmasters the extra search box is an absolutely fantastic feature but for many it’s not required or wanted, especially if a site only has a few pages or if the site uses a customised search platform that only searches blog posts and not pages.', 'clearfy') . ' <br><b>Clearfy: </b>' . __('Disable JSON-LD sitelinks searchbox using WordPress in plugin Yoast SEO.', 'clearfy'),
194
- 'default' => false
195
- );
196
-
197
- $options[] = array(
198
- 'type' => 'checkbox',
199
- 'way' => 'buttons',
200
- 'name' => 'yoast_remove_json_ld_output',
201
- 'title' => __('Disable Yoast Structured Data', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text"></span>',
202
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
203
- 'hint' => __('Prevents output of the script tag of type application/ld+json containing
204
- schema.org data from the popular Yoast SEO and Yoast SEO Premium plugins.
205
- There is currently no UI to do so.', 'clearfy') . ' <br><b>Clearfy: </b>' . __('Disable Structured Data in plugin Yoast SEO.', 'clearfy'),
206
- 'default' => false
207
- );
208
-
209
- /*$options[] = array(
210
- 'type' => 'checkbox',
211
- 'way' => 'buttons',
212
- 'name' => 'yoast_canonical_pagination',
213
- 'title' => sprintf(__('Canonical on pagination pages', 'clearfy'), 'head'),
214
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
215
- 'hint' => __('It’s a well-known fact, that the Yoast SEO plugin outputs canonical links on pagination pages, such as /page/2/, /page/3/ and so on. While various search engines treat canonical links differently, it is always better to replace them with the link leading to the main pagination page.
216
- If enabled, this feature changes the canonical link to the main page or category link.
217
- When you deactivate some components, permanent links may work incorrectly. If this happens, please, update the structure of the permanent links, so you could complete the deactivation.
218
- ', 'clearfy'),
219
- 'default' => false
220
- );*/
221
-
222
- $options[] = array(
223
- 'type' => 'checkbox',
224
- 'way' => 'buttons',
225
- 'name' => 'yoast_remove_head_comment',
226
- 'title' => sprintf(__('Remove comment from %s section', 'clearfy'), 'head') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
227
- 'layout' => array('hint-type' => 'icon'),
228
- 'hint' => sprintf(__('The Yoast SEO plugin displays a comment of the form %s in %s section', 'clearfy'), '!-- This site is optimized with the Yoast SEO plugin v3.1.1 - https://yoast.com/wordpress/plugins/seo/ --', 'head') . '<br><br><b>Clearfy: </b>' . sprintf(__('Removes the Yoast SEO plugin comment of their section %s', 'clearfy'), 'head'),
229
- 'default' => false
230
- );
231
- }
232
-
233
- $form_options = array();
234
-
235
- $form_options[] = array(
236
- 'type' => 'form-group',
237
- 'items' => $options,
238
- //'cssClass' => 'postbox'
239
- );
240
-
241
- return apply_filters('wbcr_clr_seo_form_options', $form_options, $this);
242
- }
243
- }
244
-
245
-
1
+ <?php
2
+ /**
3
+ * The page Settings.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+
8
+ // Exit if accessed directly
9
+ if( !defined('ABSPATH') ) {
10
+ exit;
11
+ }
12
+
13
+ class WCL_SeoPage extends WCL_Page {
14
+
15
+ /**
16
+ * The id of the page in the admin menu.
17
+ *
18
+ * Mainly used to navigate between pages.
19
+ * @see FactoryPages443_AdminPage
20
+ *
21
+ * @since 1.0.0
22
+ * @var string
23
+ */
24
+ public $id = "seo";
25
+
26
+ public $page_menu_dashicon = 'dashicons-star-filled';
27
+
28
+ public $page_menu_position = 16;
29
+
30
+ public $available_for_multisite = true;
31
+
32
+ /**
33
+ * @param WCL_Plugin $plugin
34
+ */
35
+ public function __construct(WCL_Plugin $plugin)
36
+ {
37
+ $this->menu_title = __('SEO', 'clearfy');
38
+ $this->page_menu_short_description = __('Additional small fixes SEO', 'clearfy');
39
+
40
+ parent::__construct($plugin);
41
+
42
+ $this->plugin = $plugin;
43
+ }
44
+
45
+ /**
46
+ * Conflict notites
47
+ */
48
+ public function warningNotice()
49
+ {
50
+ $notices = apply_filters('wbcr_clr_seo_page_warnings', array());
51
+
52
+ if( !empty($notices) ) {
53
+ foreach($notices as $message) {
54
+ $this->printWarningNotice($message);
55
+ }
56
+ }
57
+ }
58
+
59
+
60
+ /**
61
+ * Permalinks options.
62
+ *
63
+ * @since 1.0.0
64
+ * @return mixed[]
65
+ */
66
+ public function getPageOptions()
67
+ {
68
+ $options = array();
69
+
70
+ $options[] = array(
71
+ 'type' => 'html',
72
+ 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Basic SEO optimization settings</strong>.', 'clearfy') . '<p>' . __('Recommended settings that can complement your SEO plugin.', 'clearfy') . '</p></div>'
73
+ );
74
+
75
+ $options[] = array(
76
+ 'type' => 'checkbox',
77
+ 'way' => 'buttons',
78
+ 'name' => 'content_image_auto_alt',
79
+ 'title' => __('Automatically set the alt attribute', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
80
+ 'layout' => array('hint-type' => 'icon'),
81
+ 'hint' => __('The alt attribute is mandatory, so most SEO experts say. If you missed or did not fill it at all, it will be automatically assigned and will be equal to the title of the article.', 'clearfy') . '<br><br><b>Clearfy: </b>' . sprintf(__('Replaces the %s, on attribute with an article name %s', 'clearfy'), '<code>img scr="" alt=""</code>', '<code>img scr="" alt="Hello world"</code>'),
82
+ 'default' => false
83
+ );
84
+
85
+ $options[] = array(
86
+ 'type' => 'checkbox',
87
+ 'way' => 'buttons',
88
+ 'name' => 'right_robots_txt',
89
+ 'title' => __('Create right robots.txt', 'clearfy'),
90
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
91
+ 'hint' => __('After installation, WP does not contain a robots.txt file and create it manually. We re-read about 30 different articles, instructions from Yandex and Google to create the perfect robots.txt', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Automatically creates the perfect robots.txt file', 'clearfy'),
92
+ 'default' => false,
93
+ 'eventsOn' => array(
94
+ 'show' => '.factory-control-robots_txt_text'
95
+ ),
96
+ 'eventsOff' => array(
97
+ 'hide' => '.factory-control-robots_txt_text'
98
+ )
99
+ );
100
+
101
+ $options[] = array(
102
+ 'type' => 'textarea',
103
+ 'name' => 'robots_txt_text',
104
+ 'title' => __('You can edit the robots.txt file in the box below:', 'clearfy'),
105
+ 'default' => WCL_Helper::getRightRobotTxt(),
106
+ 'height' => '300'
107
+ );
108
+
109
+ $options[] = array(
110
+ 'type' => 'html',
111
+ 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('Server headers and response', 'clearfy') . '</strong>' . '<p>' . __('WordPress does not know how to give the Last Modified header in the server\'s responses. You can do this using the settings below.', 'clearfy') . '</p>' . '</div>'
112
+ );
113
+
114
+ $options[] = array(
115
+ 'type' => 'checkbox',
116
+ 'way' => 'buttons',
117
+ 'name' => 'set_last_modified_headers',
118
+ 'title' => __('Automatically insert the Last Modified header', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
119
+ 'default' => false,
120
+ 'eventsOn' => array(
121
+ 'show' => '.factory-control-last_modified_exclude, .factory-control-disable_frontpage_last_modified_headers'
122
+ ),
123
+ 'eventsOff' => array(
124
+ 'hide' => '.factory-control-last_modified_exclude, .factory-control-disable_frontpage_last_modified_headers'
125
+ )
126
+ );
127
+
128
+ $options[] = array(
129
+ 'type' => 'checkbox',
130
+ 'way' => 'buttons',
131
+ 'name' => 'disable_frontpage_last_modified_headers',
132
+ 'title' => __('Disable Last Modified header on front page', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
133
+ 'default' => true,
134
+ );
135
+
136
+ $options[] = array(
137
+ 'type' => 'textarea',
138
+ 'name' => 'last_modified_exclude',
139
+ 'height' => '120',
140
+ 'title' => __('Exclude pages:', 'clearfy'),
141
+ 'layout' => array('hint-type' => 'icon'),
142
+ 'hint' => sprintf(__('You can specify a page mask, for example: %s or %s. All pages that contain the string will be excluded. Each exclude must begin with a new line.', 'clearfy'), '/s=', '/manager/'),
143
+ );
144
+
145
+ $options[] = array(
146
+ 'type' => 'checkbox',
147
+ 'way' => 'buttons',
148
+ 'name' => 'if_modified_since_headers',
149
+ 'title' => __('Return an If-Modified-Since responce', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
150
+ 'default' => false
151
+ );
152
+
153
+ if( $this->plugin->isActivateComponent('yoast_seo') ) {
154
+ $options[] = array(
155
+ 'type' => 'html',
156
+ 'html' => '<div class="wbcr-clearfy-group-header">' . '<strong>' . __('For the Yoast SEO plugin', 'clearfy') . '</strong>' . '<p>' . __('These settings will help you eliminate some problems associated with the popular Yoast SEO plugin', 'clearfy') . '</p>' . '</div>'
157
+ );
158
+
159
+ $options[] = array(
160
+ 'type' => 'checkbox',
161
+ 'way' => 'buttons',
162
+ 'name' => 'remove_last_item_breadcrumb_yoast',
163
+ 'title' => __('Remove duplicate names in breadcrumbs WP SEO by Yoast', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
164
+ 'layout' => array('hint-type' => 'icon'),
165
+ 'hint' => __('The last element in the breadcrumbs in the Yoast SEO plugin duplicates the title of the article. Some SEO-specialists consider this duplication to be superfluous.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes duplication of the name in the breadcrumbs of the WP SEO plugin from Yoast.', 'clearfy'),
166
+ 'default' => false
167
+ );
168
+
169
+ $options[] = array(
170
+ 'type' => 'checkbox',
171
+ 'way' => 'buttons',
172
+ 'name' => 'yoast_remove_image_from_xml_sitemap',
173
+ 'title' => sprintf(__('Remove the tag %s from XML site map', 'clearfy'), 'image:image') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
174
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'green'),
175
+ 'hint' => __('Yandex.Webmaster swears on a standard XML card from the plugin Yoast, tk. it has a specific tag', 'clearfy') . 'image:image<br><br><b>Clearfy: </b>' . sprintf(__('Remove the tag %s from XML site map of the plugin Yoast SEO.', 'clearfy'), 'image:image') . '<br>--<br><span class="wbcr-factory-light-orange-color">' . __('Attention! After activation, turn off the site map and enable it back to regenerate it.', 'clearfy') . '</span>' . '<br><span class="wbcr-factory-light-orange-color">' . __('In older versions of Yoast SEO may not work - update the plugin Yoast', 'clearfy') . '</span>',
176
+ 'default' => false,
177
+ 'eventsOn' => array()
178
+ );
179
+
180
+ /*$options[] = array(
181
+ 'type' => 'html',
182
+ 'id' => 'wbcr-clearfy-image-xml-sitemap-warning',
183
+ 'cssClass' => 'factory-hints',
184
+ 'html' => array($this, 'sfsdfsdf')
185
+ );*/
186
+
187
+ $options[] = array(
188
+ 'type' => 'checkbox',
189
+ 'way' => 'buttons',
190
+ 'name' => 'yoast_remove_json_ld_search',
191
+ 'title' => __('Disable JSON-LD sitelinks searchbox', 'clearfy') . '</span>',
192
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
193
+ 'hint' => __('If you’re not familiar with Search Action it’s the mark-up that helps search engines add a shiny Sitelinks Search Box below your search engine results. For the majority of webmasters the extra search box is an absolutely fantastic feature but for many it’s not required or wanted, especially if a site only has a few pages or if the site uses a customised search platform that only searches blog posts and not pages.', 'clearfy') . ' <br><b>Clearfy: </b>' . __('Disable JSON-LD sitelinks searchbox using WordPress in plugin Yoast SEO.', 'clearfy'),
194
+ 'default' => false
195
+ );
196
+
197
+ $options[] = array(
198
+ 'type' => 'checkbox',
199
+ 'way' => 'buttons',
200
+ 'name' => 'yoast_remove_json_ld_output',
201
+ 'title' => __('Disable Yoast Structured Data', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text"></span>',
202
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
203
+ 'hint' => __('Prevents output of the script tag of type application/ld+json containing
204
+ schema.org data from the popular Yoast SEO and Yoast SEO Premium plugins.
205
+ There is currently no UI to do so.', 'clearfy') . ' <br><b>Clearfy: </b>' . __('Disable Structured Data in plugin Yoast SEO.', 'clearfy'),
206
+ 'default' => false
207
+ );
208
+
209
+ /*$options[] = array(
210
+ 'type' => 'checkbox',
211
+ 'way' => 'buttons',
212
+ 'name' => 'yoast_canonical_pagination',
213
+ 'title' => sprintf(__('Canonical on pagination pages', 'clearfy'), 'head'),
214
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
215
+ 'hint' => __('It’s a well-known fact, that the Yoast SEO plugin outputs canonical links on pagination pages, such as /page/2/, /page/3/ and so on. While various search engines treat canonical links differently, it is always better to replace them with the link leading to the main pagination page.
216
+ If enabled, this feature changes the canonical link to the main page or category link.
217
+ When you deactivate some components, permanent links may work incorrectly. If this happens, please, update the structure of the permanent links, so you could complete the deactivation.
218
+ ', 'clearfy'),
219
+ 'default' => false
220
+ );*/
221
+
222
+ $options[] = array(
223
+ 'type' => 'checkbox',
224
+ 'way' => 'buttons',
225
+ 'name' => 'yoast_remove_head_comment',
226
+ 'title' => sprintf(__('Remove comment from %s section', 'clearfy'), 'head') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
227
+ 'layout' => array('hint-type' => 'icon'),
228
+ 'hint' => sprintf(__('The Yoast SEO plugin displays a comment of the form %s in %s section', 'clearfy'), '!-- This site is optimized with the Yoast SEO plugin v3.1.1 - https://yoast.com/wordpress/plugins/seo/ --', 'head') . '<br><br><b>Clearfy: </b>' . sprintf(__('Removes the Yoast SEO plugin comment of their section %s', 'clearfy'), 'head'),
229
+ 'default' => false
230
+ );
231
+ }
232
+
233
+ $form_options = array();
234
+
235
+ $form_options[] = array(
236
+ 'type' => 'form-group',
237
+ 'items' => $options,
238
+ //'cssClass' => 'postbox'
239
+ );
240
+
241
+ return apply_filters('wbcr_clr_seo_form_options', $form_options, $this);
242
+ }
243
+ }
244
+
245
+
admin/pages/class-pages-widgets.php CHANGED
@@ -1,196 +1,196 @@
1
- <?php
2
- /**
3
- * The page Settings.
4
- *
5
- * @since 1.0.0
6
- */
7
-
8
- // Exit if accessed directly
9
- if( !defined('ABSPATH') ) {
10
- exit;
11
- }
12
-
13
- class WCL_WidgetsPage extends WCL_Page {
14
-
15
- /**
16
- * The id of the page in the admin menu.
17
- *
18
- * Mainly used to navigate between pages.
19
- * @see FactoryPages440_AdminPage
20
- *
21
- * @since 1.0.0
22
- * @var string
23
- */
24
- public $id = "widgets";
25
-
26
- public $page_parent_page = "advanced";
27
-
28
- public $page_menu_dashicon = 'dashicons-networking';
29
-
30
- public $available_for_multisite = true;
31
-
32
- /**
33
- * @param WCL_Plugin $plugin
34
- */
35
- public function __construct(WCL_Plugin $plugin)
36
- {
37
- $this->menu_title = __('Widgets', 'clearfy');
38
- $this->page_menu_short_description = __('Disable unused widgets', 'clearfy');
39
-
40
- parent::__construct($plugin);
41
-
42
- $this->plugin = $plugin;
43
- }
44
-
45
- /**
46
- * Permalinks options.
47
- *
48
- * @return mixed[]
49
- * @since 1.0.0
50
- */
51
- public function getPageOptions()
52
- {
53
- $options = array();
54
-
55
- $options[] = array(
56
- 'type' => 'html',
57
- 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Disable unused widgets</strong>.', 'clearfy') . '<p>' . __('Some widgets, such as the Calendar or Tag Cloud, create an extra query to the database, even if they are not displayed on the website. Of course, a couple of hits to the database will not do much harm to the whole site. However, if the resource contains a huge amount of content, and the speed of its work above all else, disabling unused functionality is the first step to optimizing and accelerating it.', 'clearfy') . '</p></div>'
58
- );
59
-
60
- $options[] = array(
61
- 'type' => 'checkbox',
62
- 'way' => 'buttons',
63
- 'name' => 'remove_unneeded_widget_page',
64
- 'title' => __('Remove the "Pages" widget', 'clearfy'),
65
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
66
- 'default' => false
67
- );
68
-
69
- $options[] = array(
70
- 'type' => 'checkbox',
71
- 'way' => 'buttons',
72
- 'name' => 'remove_unneeded_widget_calendar',
73
- 'title' => __('Remove calendar widget', 'clearfy'),
74
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
75
- 'default' => false
76
- );
77
-
78
- $options[] = array(
79
- 'type' => 'checkbox',
80
- 'way' => 'buttons',
81
- 'name' => 'remove_unneeded_widget_tag_cloud',
82
- 'title' => __('Remove the "Cloud of tags" widget', 'clearfy'),
83
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
84
- 'default' => false
85
- );
86
-
87
- $options[] = array(
88
- 'type' => 'checkbox',
89
- 'way' => 'buttons',
90
- 'name' => 'remove_unneeded_widget_archives',
91
- 'title' => __('Remove the "Archives" widget', 'clearfy'),
92
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
93
- 'default' => false
94
- );
95
-
96
- $options[] = array(
97
- 'type' => 'checkbox',
98
- 'way' => 'buttons',
99
- 'name' => 'remove_unneeded_widget_links',
100
- 'title' => __('Remove the "Links" widget', 'clearfy'),
101
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
102
- 'default' => false
103
- );
104
-
105
- $options[] = array(
106
- 'type' => 'checkbox',
107
- 'way' => 'buttons',
108
- 'name' => 'remove_unneeded_widget_meta',
109
- 'title' => __('Remove the "Meta" widget', 'clearfy'),
110
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
111
- 'default' => false
112
- );
113
-
114
- $options[] = array(
115
- 'type' => 'checkbox',
116
- 'way' => 'buttons',
117
- 'name' => 'remove_unneeded_widget_search',
118
- 'title' => __('Remove the "Search" widget', 'clearfy'),
119
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
120
- 'default' => false
121
- );
122
-
123
- $options[] = array(
124
- 'type' => 'checkbox',
125
- 'way' => 'buttons',
126
- 'name' => 'remove_unneeded_widget_text',
127
- 'title' => __('Remove the "Text" widget', 'clearfy'),
128
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
129
- 'default' => false
130
- );
131
-
132
- $options[] = array(
133
- 'type' => 'checkbox',
134
- 'way' => 'buttons',
135
- 'name' => 'remove_unneeded_widget_categories',
136
- 'title' => __('Remove the "Categories" widget', 'clearfy'),
137
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
138
- 'default' => false
139
- );
140
-
141
- $options[] = array(
142
- 'type' => 'checkbox',
143
- 'way' => 'buttons',
144
- 'name' => 'remove_unneeded_widget_recent_posts',
145
- 'title' => __('Remove the "Recent Posts" widget', 'clearfy'),
146
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
147
- 'default' => false
148
- );
149
-
150
- $options[] = array(
151
- 'type' => 'checkbox',
152
- 'way' => 'buttons',
153
- 'name' => 'remove_unneeded_widget_recent_comments',
154
- 'title' => __('Remove the "Recent Comments" widget', 'clearfy'),
155
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
156
- 'default' => false
157
- );
158
-
159
- $options[] = array(
160
- 'type' => 'checkbox',
161
- 'way' => 'buttons',
162
- 'name' => 'remove_unneeded_widget_rss',
163
- 'title' => __('Remove the "RSS" widget', 'clearfy'),
164
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
165
- 'default' => false
166
- );
167
-
168
- $options[] = array(
169
- 'type' => 'checkbox',
170
- 'way' => 'buttons',
171
- 'name' => 'remove_unneeded_widget_menu',
172
- 'title' => __('Remove the "Menu" widget', 'clearfy'),
173
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
174
- 'default' => false
175
- );
176
-
177
- $options[] = array(
178
- 'type' => 'checkbox',
179
- 'way' => 'buttons',
180
- 'name' => 'remove_unneeded_widget_twenty_eleven_ephemera',
181
- 'title' => __('Remove the "Twenty Eleven Ephemera" widget', 'clearfy'),
182
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
183
- 'default' => false
184
- );
185
-
186
- $form_options = array();
187
-
188
- $form_options[] = array(
189
- 'type' => 'form-group',
190
- 'items' => $options,
191
- //'cssClass' => 'postbox'
192
- );
193
-
194
- return apply_filters('wbcr_clr_widgets_form_options', $form_options, $this);
195
- }
196
- }
1
+ <?php
2
+ /**
3
+ * The page Settings.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+
8
+ // Exit if accessed directly
9
+ if( !defined('ABSPATH') ) {
10
+ exit;
11
+ }
12
+
13
+ class WCL_WidgetsPage extends WCL_Page {
14
+
15
+ /**
16
+ * The id of the page in the admin menu.
17
+ *
18
+ * Mainly used to navigate between pages.
19
+ * @see FactoryPages443_AdminPage
20
+ *
21
+ * @since 1.0.0
22
+ * @var string
23
+ */
24
+ public $id = "widgets";
25
+
26
+ public $page_parent_page = "advanced";
27
+
28
+ public $page_menu_dashicon = 'dashicons-networking';
29
+
30
+ public $available_for_multisite = true;
31
+
32
+ /**
33
+ * @param WCL_Plugin $plugin
34
+ */
35
+ public function __construct(WCL_Plugin $plugin)
36
+ {
37
+ $this->menu_title = __('Widgets', 'clearfy');
38
+ $this->page_menu_short_description = __('Disable unused widgets', 'clearfy');
39
+
40
+ parent::__construct($plugin);
41
+
42
+ $this->plugin = $plugin;
43
+ }
44
+
45
+ /**
46
+ * Permalinks options.
47
+ *
48
+ * @return mixed[]
49
+ * @since 1.0.0
50
+ */
51
+ public function getPageOptions()
52
+ {
53
+ $options = array();
54
+
55
+ $options[] = array(
56
+ 'type' => 'html',
57
+ 'html' => '<div class="wbcr-factory-page-group-header">' . __('<strong>Disable unused widgets</strong>.', 'clearfy') . '<p>' . __('Some widgets, such as the Calendar or Tag Cloud, create an extra query to the database, even if they are not displayed on the website. Of course, a couple of hits to the database will not do much harm to the whole site. However, if the resource contains a huge amount of content, and the speed of its work above all else, disabling unused functionality is the first step to optimizing and accelerating it.', 'clearfy') . '</p></div>'
58
+ );
59
+
60
+ $options[] = array(
61
+ 'type' => 'checkbox',
62
+ 'way' => 'buttons',
63
+ 'name' => 'remove_unneeded_widget_page',
64
+ 'title' => __('Remove the "Pages" widget', 'clearfy'),
65
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
66
+ 'default' => false
67
+ );
68
+
69
+ $options[] = array(
70
+ 'type' => 'checkbox',
71
+ 'way' => 'buttons',
72
+ 'name' => 'remove_unneeded_widget_calendar',
73
+ 'title' => __('Remove calendar widget', 'clearfy'),
74
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
75
+ 'default' => false
76
+ );
77
+
78
+ $options[] = array(
79
+ 'type' => 'checkbox',
80
+ 'way' => 'buttons',
81
+ 'name' => 'remove_unneeded_widget_tag_cloud',
82
+ 'title' => __('Remove the "Cloud of tags" widget', 'clearfy'),
83
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
84
+ 'default' => false
85
+ );
86
+
87
+ $options[] = array(
88
+ 'type' => 'checkbox',
89
+ 'way' => 'buttons',
90
+ 'name' => 'remove_unneeded_widget_archives',
91
+ 'title' => __('Remove the "Archives" widget', 'clearfy'),
92
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
93
+ 'default' => false
94
+ );
95
+
96
+ $options[] = array(
97
+ 'type' => 'checkbox',
98
+ 'way' => 'buttons',
99
+ 'name' => 'remove_unneeded_widget_links',
100
+ 'title' => __('Remove the "Links" widget', 'clearfy'),
101
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
102
+ 'default' => false
103
+ );
104
+
105
+ $options[] = array(
106
+ 'type' => 'checkbox',
107
+ 'way' => 'buttons',
108
+ 'name' => 'remove_unneeded_widget_meta',
109
+ 'title' => __('Remove the "Meta" widget', 'clearfy'),
110
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
111
+ 'default' => false
112
+ );
113
+
114
+ $options[] = array(
115
+ 'type' => 'checkbox',
116
+ 'way' => 'buttons',
117
+ 'name' => 'remove_unneeded_widget_search',
118
+ 'title' => __('Remove the "Search" widget', 'clearfy'),
119
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
120
+ 'default' => false
121
+ );
122
+
123
+ $options[] = array(
124
+ 'type' => 'checkbox',
125
+ 'way' => 'buttons',
126
+ 'name' => 'remove_unneeded_widget_text',
127
+ 'title' => __('Remove the "Text" widget', 'clearfy'),
128
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
129
+ 'default' => false
130
+ );
131
+
132
+ $options[] = array(
133
+ 'type' => 'checkbox',
134
+ 'way' => 'buttons',
135
+ 'name' => 'remove_unneeded_widget_categories',
136
+ 'title' => __('Remove the "Categories" widget', 'clearfy'),
137
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
138
+ 'default' => false
139
+ );
140
+
141
+ $options[] = array(
142
+ 'type' => 'checkbox',
143
+ 'way' => 'buttons',
144
+ 'name' => 'remove_unneeded_widget_recent_posts',
145
+ 'title' => __('Remove the "Recent Posts" widget', 'clearfy'),
146
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
147
+ 'default' => false
148
+ );
149
+
150
+ $options[] = array(
151
+ 'type' => 'checkbox',
152
+ 'way' => 'buttons',
153
+ 'name' => 'remove_unneeded_widget_recent_comments',
154
+ 'title' => __('Remove the "Recent Comments" widget', 'clearfy'),
155
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
156
+ 'default' => false
157
+ );
158
+
159
+ $options[] = array(
160
+ 'type' => 'checkbox',
161
+ 'way' => 'buttons',
162
+ 'name' => 'remove_unneeded_widget_rss',
163
+ 'title' => __('Remove the "RSS" widget', 'clearfy'),
164
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
165
+ 'default' => false
166
+ );
167
+
168
+ $options[] = array(
169
+ 'type' => 'checkbox',
170
+ 'way' => 'buttons',
171
+ 'name' => 'remove_unneeded_widget_menu',
172
+ 'title' => __('Remove the "Menu" widget', 'clearfy'),
173
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
174
+ 'default' => false
175
+ );
176
+
177
+ $options[] = array(
178
+ 'type' => 'checkbox',
179
+ 'way' => 'buttons',
180
+ 'name' => 'remove_unneeded_widget_twenty_eleven_ephemera',
181
+ 'title' => __('Remove the "Twenty Eleven Ephemera" widget', 'clearfy'),
182
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
183
+ 'default' => false
184
+ );
185
+
186
+ $form_options = array();
187
+
188
+ $form_options[] = array(
189
+ 'type' => 'form-group',
190
+ 'items' => $options,
191
+ //'cssClass' => 'postbox'
192
+ );
193
+
194
+ return apply_filters('wbcr_clr_widgets_form_options', $form_options, $this);
195
+ }
196
+ }
admin/pages/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
admin/pages/setup/class-pages-setup.php CHANGED
@@ -1,69 +1,69 @@
1
- <?php
2
-
3
- /**
4
- * The page Settings.
5
- *
6
- * @since 1.0.0
7
- */
8
-
9
- // Exit if accessed directly
10
- if( !defined('ABSPATH') ) {
11
- exit;
12
- }
13
-
14
- class WCL_Setup extends WBCR\FactoryClearfy232\Pages\Setup {
15
-
16
- /**
17
- * @param \Wbcr_Factory441_Plugin $plugin
18
- */
19
- public function __construct(\Wbcr_Factory441_Plugin $plugin)
20
- {
21
- parent::__construct($plugin);
22
-
23
- $path = WCL_PLUGIN_DIR . '/admin/pages/setup/steps';
24
-
25
- #Step 1
26
- $this->register_step($path . '/class-step-default.php', '\WBCR\Clearfy\Pages\Step_Default');
27
-
28
- #Step 2
29
- $this->register_step($path . '/class-step-google-page-speed-before.php', '\WBCR\Clearfy\Pages\Step_Google_Page_Speed_Before');
30
-
31
- #Step 3
32
- $this->register_step($path . '/class-step-plugins.php', '\WBCR\Clearfy\Pages\Step_Plugins');
33
-
34
- #Step 4
35
- $this->register_step($path . '/class-step-setting-speed-optimize.php', '\WBCR\Clearfy\Pages\Step_Setting_Speed_Optimize');
36
-
37
- #Step 5
38
- $this->register_step($path . '/class-step-setting-seo-optimize.php', '\WBCR\Clearfy\Pages\Step_Setting_Seo');
39
-
40
- #Step 6
41
- $this->register_step($path . '/class-step-optimize-images.php', '\WBCR\Clearfy\Pages\Step_Optimize_Images');
42
-
43
- #Step 7
44
- $this->register_step($path . '/class-step-google-page-speed-after.php', '\WBCR\Clearfy\Pages\Step_Google_Page_Speed_After');
45
-
46
- #Step 8
47
- $this->register_step($path . '/class-step-congratulation.php', '\WBCR\Clearfy\Pages\Step_Congratulation');
48
- }
49
-
50
-
51
- /**
52
- * Requests assets (js and css) for the page.
53
- *
54
- * @return void
55
- * @since 1.0.0
56
- * @see FactoryPages440_AdminPage
57
- *
58
- */
59
- public function assets($scripts, $styles)
60
- {
61
- parent::assets($scripts, $styles);
62
-
63
- $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/circular-progress.js');
64
- $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/setup.js');
65
-
66
- $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/setup/page-setup.css');
67
- }
68
-
69
- }
1
+ <?php
2
+
3
+ /**
4
+ * The page Settings.
5
+ *
6
+ * @since 1.0.0
7
+ */
8
+
9
+ // Exit if accessed directly
10
+ if( !defined('ABSPATH') ) {
11
+ exit;
12
+ }
13
+
14
+ class WCL_Setup extends WBCR\FactoryClearfy235\Pages\Setup {
15
+
16
+ /**
17
+ * @param \Wbcr_Factory444_Plugin $plugin
18
+ */
19
+ public function __construct(\Wbcr_Factory444_Plugin $plugin)
20
+ {
21
+ parent::__construct($plugin);
22
+
23
+ $path = WCL_PLUGIN_DIR . '/admin/pages/setup/steps';
24
+
25
+ #Step 1
26
+ $this->register_step($path . '/class-step-default.php', '\WBCR\Clearfy\Pages\Step_Default');
27
+
28
+ #Step 2
29
+ $this->register_step($path . '/class-step-google-page-speed-before.php', '\WBCR\Clearfy\Pages\Step_Google_Page_Speed_Before');
30
+
31
+ #Step 3
32
+ $this->register_step($path . '/class-step-plugins.php', '\WBCR\Clearfy\Pages\Step_Plugins');
33
+
34
+ #Step 4
35
+ $this->register_step($path . '/class-step-setting-speed-optimize.php', '\WBCR\Clearfy\Pages\Step_Setting_Speed_Optimize');
36
+
37
+ #Step 5
38
+ $this->register_step($path . '/class-step-setting-seo-optimize.php', '\WBCR\Clearfy\Pages\Step_Setting_Seo');
39
+
40
+ #Step 6
41
+ $this->register_step($path . '/class-step-optimize-images.php', '\WBCR\Clearfy\Pages\Step_Optimize_Images');
42
+
43
+ #Step 7
44
+ $this->register_step($path . '/class-step-google-page-speed-after.php', '\WBCR\Clearfy\Pages\Step_Google_Page_Speed_After');
45
+
46
+ #Step 8
47
+ $this->register_step($path . '/class-step-congratulation.php', '\WBCR\Clearfy\Pages\Step_Congratulation');
48
+ }
49
+
50
+
51
+ /**
52
+ * Requests assets (js and css) for the page.
53
+ *
54
+ * @return void
55
+ * @since 1.0.0
56
+ * @see FactoryPages443_AdminPage
57
+ *
58
+ */
59
+ public function assets($scripts, $styles)
60
+ {
61
+ parent::assets($scripts, $styles);
62
+
63
+ $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/circular-progress.js');
64
+ $this->scripts->add(WCL_PLUGIN_URL . '/admin/assets/js/setup.js');
65
+
66
+ $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/setup/page-setup.css');
67
+ }
68
+
69
+ }
admin/pages/setup/steps/class-step-congratulation.php CHANGED
@@ -1,157 +1,157 @@
1
- <?php
2
-
3
- namespace WBCR\Clearfy\Pages;
4
-
5
- /**
6
- * Step
7
- * @author Webcraftic <wordpress.webraftic@gmail.com>
8
- * @copyright (c) 23.07.2020, Webcraftic
9
- * @version 1.0
10
- */
11
- class Step_Congratulation extends \WBCR\FactoryClearfy232\Pages\Step_Custom {
12
-
13
- protected $prev_id = 'step6';
14
- protected $id = 'step7';
15
-
16
- //protected $next_id = 'step2';
17
-
18
- public function get_title()
19
- {
20
- return __("Finish", "clearfy");
21
- }
22
-
23
- public function html()
24
- {
25
- $pricing_page_url = $this->plugin->get_support()->get_pricing_url(true, 'setup_wizard');
26
- ?>
27
- <div class="w-factory-clearfy-232-setup__inner-wrap">
28
- <h3><?php echo __("Congratulations, the plugin configuration is complete!", "clearfy"); ?></h3>
29
- <p style="text-align: left;">
30
- <?php _e('You have successfully completed the basic plugin setup! You can go to the general plugin settings to enable other options that we did not offer you.', 'clearfy'); ?>
31
- </p>
32
- <hr>
33
- <div>
34
- <p style="text-align: left;">
35
- <?php _e("However, you can still improve your site's Google Page Speed score by simply purchasing the Pro version of our plugin.", "clearfy") ?>
36
- </p>
37
- <table style="width: 100%">
38
- <thead>
39
- <tr>
40
- <th></th>
41
- <th>Free</th>
42
- <th>PRO</th>
43
- </tr>
44
- </thead>
45
- <tbody>
46
- <tr>
47
- <td><a href="https://wordpress.org/plugins/cyrlitera/" target="_blank">
48
- Transliteration of links and file names</a></td>
49
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
50
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
51
- </tr>
52
- <tr>
53
- <td>Optimize Yoast Seo</td>
54
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
55
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
56
- </tr>
57
- <tr>
58
- <td>Post tools</td>
59
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
60
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
61
- </tr>
62
- <tr>
63
- <td>Admin bar managers</td>
64
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
65
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
66
- </tr>
67
- <tr>
68
- <td><a href="https://wordpress.org/plugins/disable-admin-notices/" target="_blank">Disable admin
69
- notices</a></td>
70
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
71
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
72
- </tr>
73
- <tr>
74
- <td>Disable widgets</td>
75
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
76
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
77
- </tr>
78
- <tr>
79
- <td>
80
- <a href="https://wordpress.org/plugins/comments-plus/" target="_blank">Disable comments</a>
81
- </td>
82
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
83
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
84
- </tr>
85
- <tr>
86
- <td><a href="https://wordpress.org/plugins/gonzales/" target="_blank">Assets Manager</a></td>
87
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
88
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
89
- </tr>
90
- <tr>
91
- <td>Minify and combine (JS, CSS)</td>
92
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
93
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
94
- </tr>
95
- <tr>
96
- <td>Html minify</td>
97
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
98
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
99
- </tr>
100
- <tr>
101
- <td><a href="https://robinoptimizer.com/" target="_blank">Image optimizer</a></td>
102
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
103
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
104
- </tr>
105
- <tr>
106
- <td>Hide login page</td>
107
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
108
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
109
- </tr>
110
- <tr>
111
- <td><a href="https://clearfy.pro/hide-my-wp/" target="_blank">Hide My Wp PRO</a></td>
112
- <td class="wclearfy-setup__color--red"><span class="dashicons dashicons-minus"></span></td>
113
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
114
- </tr>
115
- <tr>
116
- <td><a href="https://clearfy.pro/assets-manager/" target="_blank">Assets Manager PRO</a></td>
117
- <td class="wclearfy-setup__color--red"><span class="dashicons dashicons-minus"></span></td>
118
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
119
- </tr>
120
- <tr>
121
- <td>Multisite control</td>
122
- <td class="wclearfy-setup__color--red"><span class="dashicons dashicons-minus"></span></td>
123
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
124
- </tr>
125
- <tr>
126
- <td>Update manager PRO</td>
127
- <td class="wclearfy-setup__color--red"><span class="dashicons dashicons-minus"></span></td>
128
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
129
- </tr>
130
- <tr>
131
- <td>SEO friendly images PRO</td>
132
- <td class="wclearfy-setup__color--red"><span class="dashicons dashicons-minus"></span></td>
133
- <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
134
- </tr>
135
- </tbody>
136
- </table>
137
- <p>
138
- <a href="<?php echo esc_url($pricing_page_url); ?>" class="wclearfy-setup__install-component-button" target="_blank"><?php _e('Go Pro', 'clearfy') ?></a>
139
- </p>
140
- </div>
141
- </div>
142
- <?php $this->render_button();
143
- ?>
144
- <?php
145
- }
146
-
147
- protected function continue_step($skip = false)
148
- {
149
- $next_id = $this->get_next_id();
150
- if( !$next_id ) {
151
- wp_safe_redirect($this->plugin->getPluginPageUrl('quick_start'));
152
- die();
153
- }
154
- wp_safe_redirect($this->page->getActionUrl($next_id));
155
- die();
156
- }
157
  }
1
+ <?php
2
+
3
+ namespace WBCR\Clearfy\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ class Step_Congratulation extends \WBCR\FactoryClearfy235\Pages\Step_Custom {
12
+
13
+ protected $prev_id = 'step6';
14
+ protected $id = 'step7';
15
+
16
+ //protected $next_id = 'step2';
17
+
18
+ public function get_title()
19
+ {
20
+ return __("Finish", "clearfy");
21
+ }
22
+
23
+ public function html()
24
+ {
25
+ $pricing_page_url = $this->plugin->get_support()->get_pricing_url(true, 'setup_wizard');
26
+ ?>
27
+ <div class="w-factory-clearfy-235-setup__inner-wrap">
28
+ <h3><?php echo __("Congratulations, the plugin configuration is complete!", "clearfy"); ?></h3>
29
+ <p style="text-align: left;">
30
+ <?php _e('You have successfully completed the basic plugin setup! You can go to the general plugin settings to enable other options that we did not offer you.', 'clearfy'); ?>
31
+ </p>
32
+ <hr>
33
+ <div>
34
+ <p style="text-align: left;">
35
+ <?php _e("However, you can still improve your site's Google Page Speed score by simply purchasing the Pro version of our plugin.", "clearfy") ?>
36
+ </p>
37
+ <table style="width: 100%">
38
+ <thead>
39
+ <tr>
40
+ <th></th>
41
+ <th>Free</th>
42
+ <th>PRO</th>
43
+ </tr>
44
+ </thead>
45
+ <tbody>
46
+ <tr>
47
+ <td><a href="https://wordpress.org/plugins/cyrlitera/" target="_blank">
48
+ Transliteration of links and file names</a></td>
49
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
50
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
51
+ </tr>
52
+ <tr>
53
+ <td>Optimize Yoast Seo</td>
54
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
55
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
56
+ </tr>
57
+ <tr>
58
+ <td>Post tools</td>
59
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
60
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
61
+ </tr>
62
+ <tr>
63
+ <td>Admin bar managers</td>
64
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
65
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
66
+ </tr>
67
+ <tr>
68
+ <td><a href="https://wordpress.org/plugins/disable-admin-notices/" target="_blank">Disable admin
69
+ notices</a></td>
70
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
71
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
72
+ </tr>
73
+ <tr>
74
+ <td>Disable widgets</td>
75
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
76
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
77
+ </tr>
78
+ <tr>
79
+ <td>
80
+ <a href="https://wordpress.org/plugins/comments-plus/" target="_blank">Disable comments</a>
81
+ </td>
82
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
83
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
84
+ </tr>
85
+ <tr>
86
+ <td><a href="https://wordpress.org/plugins/gonzales/" target="_blank">Assets Manager</a></td>
87
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
88
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
89
+ </tr>
90
+ <tr>
91
+ <td>Minify and combine (JS, CSS)</td>
92
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
93
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
94
+ </tr>
95
+ <tr>
96
+ <td>Html minify</td>
97
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
98
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
99
+ </tr>
100
+ <tr>
101
+ <td><a href="https://robinoptimizer.com/" target="_blank">Image optimizer</a></td>
102
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
103
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
104
+ </tr>
105
+ <tr>
106
+ <td>Hide login page</td>
107
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
108
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
109
+ </tr>
110
+ <tr>
111
+ <td><a href="https://clearfy.pro/hide-my-wp/" target="_blank">Hide My Wp PRO</a></td>
112
+ <td class="wclearfy-setup__color--red"><span class="dashicons dashicons-minus"></span></td>
113
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
114
+ </tr>
115
+ <tr>
116
+ <td><a href="https://clearfy.pro/assets-manager/" target="_blank">Assets Manager PRO</a></td>
117
+ <td class="wclearfy-setup__color--red"><span class="dashicons dashicons-minus"></span></td>
118
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
119
+ </tr>
120
+ <tr>
121
+ <td>Multisite control</td>
122
+ <td class="wclearfy-setup__color--red"><span class="dashicons dashicons-minus"></span></td>
123
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
124
+ </tr>
125
+ <tr>
126
+ <td>Update manager PRO</td>
127
+ <td class="wclearfy-setup__color--red"><span class="dashicons dashicons-minus"></span></td>
128
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
129
+ </tr>
130
+ <tr>
131
+ <td>SEO friendly images PRO</td>
132
+ <td class="wclearfy-setup__color--red"><span class="dashicons dashicons-minus"></span></td>
133
+ <td class="wclearfy-setup__color--green"><span class="dashicons dashicons-yes"></span></td>
134
+ </tr>
135
+ </tbody>
136
+ </table>
137
+ <p>
138
+ <a href="<?php echo esc_url($pricing_page_url); ?>" class="wclearfy-setup__install-component-button" target="_blank"><?php _e('Go Pro', 'clearfy') ?></a>
139
+ </p>
140
+ </div>
141
+ </div>
142
+ <?php $this->render_button();
143
+ ?>
144
+ <?php
145
+ }
146
+
147
+ protected function continue_step($skip = false)
148
+ {
149
+ $next_id = $this->get_next_id();
150
+ if( !$next_id ) {
151
+ wp_safe_redirect($this->plugin->getPluginPageUrl('quick_start'));
152
+ die();
153
+ }
154
+ wp_safe_redirect($this->page->getActionUrl($next_id));
155
+ die();
156
+ }
157
  }
admin/pages/setup/steps/class-step-default.php CHANGED
@@ -1,37 +1,37 @@
1
- <?php
2
-
3
- namespace WBCR\Clearfy\Pages;
4
-
5
- /**
6
- * Step
7
- * @author Webcraftic <wordpress.webraftic@gmail.com>
8
- * @copyright (c) 23.07.2020, Webcraftic
9
- * @version 1.0
10
- */
11
- class Step_Default extends \WBCR\FactoryClearfy232\Pages\Step_Custom {
12
-
13
- protected $id = 'step0';
14
- protected $next_id = 'step1';
15
-
16
- public function get_title()
17
- {
18
- return __("Welcome", 'clearfy');
19
- }
20
-
21
- public function html()
22
- {
23
- ?>
24
- <div class="w-factory-clearfy-232-setup__inner-wrap">
25
- <div class="w-factory-clearfy-232-setup-step__new_onboarding-wrapper">
26
- <p class="w-factory-clearfy-232-setup-step__new_onboarding-welcome">Welcome to</p>
27
- <h1 class="w-factory-clearfy-232-logo">
28
- <img src="<?php echo WCL_PLUGIN_URL ?>/admin/assets/img/clearfylogo-768x300.png" alt="Clearfy">
29
- </h1>
30
- <p><?php _e('Optimize your site even faster using the setup wizard!', 'clearfy') ?></p>
31
- </div>
32
-
33
- </div>
34
- <?php $this->render_button(true, false, __('Yes, I want to try the wizard'), 'center'); ?>
35
- <?php
36
- }
37
  }
1
+ <?php
2
+
3
+ namespace WBCR\Clearfy\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ class Step_Default extends \WBCR\FactoryClearfy235\Pages\Step_Custom {
12
+
13
+ protected $id = 'step0';
14
+ protected $next_id = 'step1';
15
+
16
+ public function get_title()
17
+ {
18
+ return __("Welcome", 'clearfy');
19
+ }
20
+
21
+ public function html()
22
+ {
23
+ ?>
24
+ <div class="w-factory-clearfy-235-setup__inner-wrap">
25
+ <div class="w-factory-clearfy-235-setup-step__new_onboarding-wrapper">
26
+ <p class="w-factory-clearfy-235-setup-step__new_onboarding-welcome">Welcome to</p>
27
+ <h1 class="w-factory-clearfy-235-logo">
28
+ <img src="<?php echo WCL_PLUGIN_URL ?>/admin/assets/img/clearfylogo-768x300.png" alt="Clearfy">
29
+ </h1>
30
+ <p><?php _e('Optimize your site even faster using the setup wizard!', 'clearfy') ?></p>
31
+ </div>
32
+
33
+ </div>
34
+ <?php $this->render_button(true, false, __('Yes, I want to try the wizard'), 'center'); ?>
35
+ <?php
36
+ }
37
  }
admin/pages/setup/steps/class-step-google-page-speed-after.php CHANGED
@@ -1,98 +1,98 @@
1
- <?php
2
-
3
- namespace WBCR\Clearfy\Pages;
4
-
5
- /**
6
- * Step
7
- * @author Webcraftic <wordpress.webraftic@gmail.com>
8
- * @copyright (c) 23.07.2020, Webcraftic
9
- * @version 1.0
10
- */
11
- class Step_Google_Page_Speed_After extends \WBCR\FactoryClearfy232\Pages\Step_Custom {
12
-
13
- protected $prev_id = 'step5';
14
- protected $id = 'step6';
15
- protected $next_id = 'step7';
16
-
17
- public function get_title()
18
- {
19
- return "Site test #2";
20
- }
21
-
22
- public function html()
23
- {
24
- $site_url = get_home_url();
25
- ?>
26
- <script>
27
- jQuery(document).ready(function($) {
28
- wclearfy_fetch_google_pagespeed_audit("<?php echo wp_create_nonce('fetch_google_page_speed_audit') ?>", true);
29
- });
30
- </script>
31
- <div class="w-factory-clearfy-232-setup__inner-wrap">
32
- <h3>Google Page Speed</h3>
33
- <p style="text-align: left;">
34
- We analyzed your site on the Google Page Speed service. You can see the test results below. Our plugin
35
- is to
36
- improve the score of your site on Google Page Speed. Memorize the results to make a comparison after
37
- optimization by the Clearfy plugin.
38
- </p>
39
- <div class="wclearfy-gogle-page-speed-audit__errors">Memorize the results to make a comparison after
40
- optimization by the Clearfy plugin.
41
- </div>
42
- <div class="wclearfy-gogle-page-speed-audit__preloader"></div>
43
- <div class="wclearfy-gogle-page-speed-audit" style="display: none;">
44
- <div class="wclearfy-score">
45
- <!-- Desktop -->
46
- <div class="wclearfy-desktop-score">
47
- <h3><?php _e('Desktop score', 'clearfy'); ?></h3>
48
- <div class="wclearfy-desktop-score__circle-wrap">
49
- <div id="wclearfy-desktop-score__circle" class="wclearfy-score-circle"></div>
50
- </div>
51
- </div>
52
-
53
- <!-- Mobile -->
54
- <div class="wclearfy-mobile-score">
55
- <h3><?php _e('Mobile score', 'clearfy'); ?></h3>
56
- <div class="wclearfy-mobile-score__circle-wrap">
57
- <div id="wclearfy-mobile-score__circle" class="wclearfy-score-circle"></div>
58
- </div>
59
- </div>
60
- </div>
61
-
62
-
63
- <!-- Statistics -->
64
- <div class="wclearfy-statistic">
65
- <div class="wclearfy-statistic__line">
66
- <span><?php _e('First Contentful Paint', 'clearfy'); ?></span>
67
- <div class="wclearfy-statistic__results">
68
- <span id="wclearfy-statistic__desktop-first-contentful-paint">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-first-contentful-paint">??&nbsp;s</span>
69
- </div>
70
- </div>
71
- <div class="wclearfy-statistic__line">
72
- <span><?php _e('Speed Index', 'clearfy'); ?></span>
73
- <div class="wclearfy-statistic__results">
74
- <span id="wclearfy-statistic__desktop-speed-index">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-speed-index">??&nbsp;s</span>
75
- </div>
76
- </div>
77
- <div class="wclearfy-statistic__line">
78
- <span><?php _e('Time to Interactive', 'clearfy'); ?></span>
79
- <div class="wclearfy-statistic__results">
80
- <span id="wclearfy-statistic__desktop-interactive">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-interactive">??&nbsp;s</span>
81
- </div>
82
- </div>
83
-
84
- <?php
85
- $site_url = get_home_url();
86
- $google_page_speed_call = "https://developers.google.com/speed/pagespeed/insights/?url=" . $site_url;
87
- ?>
88
-
89
- <div style="margin-top: 5px;font-size:12px;">
90
- <a href="<?php echo $google_page_speed_call; ?>" target="_blank" style="outline: 0;text-decoration: none;"><?php _e('View complete results', 'clearfy'); ?></a> <?php _e('on Google PageSpeed Insights.', 'clearfy'); ?>
91
- </div>
92
- </div>
93
- </div>
94
- </div>
95
- <?php $this->render_button(); ?>
96
- <?php
97
- }
98
  }
1
+ <?php
2
+
3
+ namespace WBCR\Clearfy\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ class Step_Google_Page_Speed_After extends \WBCR\FactoryClearfy235\Pages\Step_Custom {
12
+
13
+ protected $prev_id = 'step5';
14
+ protected $id = 'step6';
15
+ protected $next_id = 'step7';
16
+
17
+ public function get_title()
18
+ {
19
+ return "Site test #2";
20
+ }
21
+
22
+ public function html()
23
+ {
24
+ $site_url = get_home_url();
25
+ ?>
26
+ <script>
27
+ jQuery(document).ready(function($) {
28
+ wclearfy_fetch_google_pagespeed_audit("<?php echo wp_create_nonce('fetch_google_page_speed_audit') ?>", true);
29
+ });
30
+ </script>
31
+ <div class="w-factory-clearfy-235-setup__inner-wrap">
32
+ <h3>Google Page Speed</h3>
33
+ <p style="text-align: left;">
34
+ We analyzed your site on the Google Page Speed service. You can see the test results below. Our plugin
35
+ is to
36
+ improve the score of your site on Google Page Speed. Memorize the results to make a comparison after
37
+ optimization by the Clearfy plugin.
38
+ </p>
39
+ <div class="wclearfy-gogle-page-speed-audit__errors">Memorize the results to make a comparison after
40
+ optimization by the Clearfy plugin.
41
+ </div>
42
+ <div class="wclearfy-gogle-page-speed-audit__preloader"></div>
43
+ <div class="wclearfy-gogle-page-speed-audit" style="display: none;">
44
+ <div class="wclearfy-score">
45
+ <!-- Desktop -->
46
+ <div class="wclearfy-desktop-score">
47
+ <h3><?php _e('Desktop score', 'clearfy'); ?></h3>
48
+ <div class="wclearfy-desktop-score__circle-wrap">
49
+ <div id="wclearfy-desktop-score__circle" class="wclearfy-score-circle"></div>
50
+ </div>
51
+ </div>
52
+
53
+ <!-- Mobile -->
54
+ <div class="wclearfy-mobile-score">
55
+ <h3><?php _e('Mobile score', 'clearfy'); ?></h3>
56
+ <div class="wclearfy-mobile-score__circle-wrap">
57
+ <div id="wclearfy-mobile-score__circle" class="wclearfy-score-circle"></div>
58
+ </div>
59
+ </div>
60
+ </div>
61
+
62
+
63
+ <!-- Statistics -->
64
+ <div class="wclearfy-statistic">
65
+ <div class="wclearfy-statistic__line">
66
+ <span><?php _e('First Contentful Paint', 'clearfy'); ?></span>
67
+ <div class="wclearfy-statistic__results">
68
+ <span id="wclearfy-statistic__desktop-first-contentful-paint">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-first-contentful-paint">??&nbsp;s</span>
69
+ </div>
70
+ </div>
71
+ <div class="wclearfy-statistic__line">
72
+ <span><?php _e('Speed Index', 'clearfy'); ?></span>
73
+ <div class="wclearfy-statistic__results">
74
+ <span id="wclearfy-statistic__desktop-speed-index">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-speed-index">??&nbsp;s</span>
75
+ </div>
76
+ </div>
77
+ <div class="wclearfy-statistic__line">
78
+ <span><?php _e('Time to Interactive', 'clearfy'); ?></span>
79
+ <div class="wclearfy-statistic__results">
80
+ <span id="wclearfy-statistic__desktop-interactive">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-interactive">??&nbsp;s</span>
81
+ </div>
82
+ </div>
83
+
84
+ <?php
85
+ $site_url = get_home_url();
86
+ $google_page_speed_call = "https://developers.google.com/speed/pagespeed/insights/?url=" . $site_url;
87
+ ?>
88
+
89
+ <div style="margin-top: 5px;font-size:12px;">
90
+ <a href="<?php echo $google_page_speed_call; ?>" target="_blank" style="outline: 0;text-decoration: none;"><?php _e('View complete results', 'clearfy'); ?></a> <?php _e('on Google PageSpeed Insights.', 'clearfy'); ?>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ <?php $this->render_button(); ?>
96
+ <?php
97
+ }
98
  }
admin/pages/setup/steps/class-step-google-page-speed-before.php CHANGED
@@ -1,96 +1,96 @@
1
- <?php
2
-
3
- namespace WBCR\Clearfy\Pages;
4
-
5
- /**
6
- * Step
7
- * @author Webcraftic <wordpress.webraftic@gmail.com>
8
- * @copyright (c) 23.07.2020, Webcraftic
9
- * @version 1.0
10
- */
11
- class Step_Google_Page_Speed_Before extends \WBCR\FactoryClearfy232\Pages\Step_Custom {
12
-
13
- protected $prev_id = 'step0';
14
- protected $id = 'step1';
15
- protected $next_id = 'step2';
16
-
17
- public function get_title()
18
- {
19
- return "Site test #1";
20
- }
21
-
22
- public function html()
23
- {
24
- ?>
25
- <script>
26
- jQuery(document).ready(function($) {
27
- wclearfy_fetch_google_pagespeed_audit("<?php echo wp_create_nonce('fetch_google_page_speed_audit') ?>");
28
- });
29
- </script>
30
- <div class="w-factory-clearfy-232-setup__inner-wrap">
31
- <h3><?php _e('Google Page Speed', 'clearfy') ?></h3>
32
- <p style="text-align: left;">
33
- <?php _e('We analyzed your site on the Google Page Speed service. You can see the test results below. Our plugin
34
- is to improve the score of your site on Google Page Speed. Memorize the results to make a comparison after
35
- optimization by the Clearfy plugin.', 'clearfy') ?>
36
- </p>
37
- <div class="wclearfy-gogle-page-speed-audit__errors"><?php _e('Memorize the results to make a comparison after
38
- optimization by the Clearfy plugin.', 'clearfy') ?>
39
- </div>
40
- <div class="wclearfy-gogle-page-speed-audit__preloader"></div>
41
- <div class="wclearfy-gogle-page-speed-audit" style="display: none;">
42
- <div class="wclearfy-score">
43
- <!-- Desktop -->
44
- <div class="wclearfy-desktop-score">
45
- <h3><?php _e('Desktop score', 'clearfy'); ?></h3>
46
- <div class="wclearfy-desktop-score__circle-wrap">
47
- <div id="wclearfy-desktop-score__circle" class="wclearfy-score-circle"></div>
48
- </div>
49
- </div>
50
-
51
- <!-- Mobile -->
52
- <div class="wclearfy-mobile-score">
53
- <h3><?php _e('Mobile score', 'clearfy'); ?></h3>
54
- <div class="wclearfy-mobile-score__circle-wrap">
55
- <div id="wclearfy-mobile-score__circle" class="wclearfy-score-circle"></div>
56
- </div>
57
- </div>
58
- </div>
59
-
60
-
61
- <!-- Statistics -->
62
- <div class="wclearfy-statistic">
63
- <div class="wclearfy-statistic__line">
64
- <span><?php _e('First Contentful Paint', 'clearfy'); ?></span>
65
- <div class="wclearfy-statistic__results">
66
- <span id="wclearfy-statistic__desktop-first-contentful-paint">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-first-contentful-paint">??&nbsp;s</span>
67
- </div>
68
- </div>
69
- <div class="wclearfy-statistic__line">
70
- <span><?php _e('Speed Index', 'clearfy'); ?></span>
71
- <div class="wclearfy-statistic__results">
72
- <span id="wclearfy-statistic__desktop-speed-index">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-speed-index">??&nbsp;s</span>
73
- </div>
74
- </div>
75
- <div class="wclearfy-statistic__line">
76
- <span><?php _e('Time to Interactive', 'clearfy'); ?></span>
77
- <div class="wclearfy-statistic__results">
78
- <span id="wclearfy-statistic__desktop-interactive">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-interactive">??&nbsp;s</span>
79
- </div>
80
- </div>
81
-
82
- <?php
83
- $site_url = get_home_url();
84
- $google_page_speed_call = "https://developers.google.com/speed/pagespeed/insights/?url=" . $site_url;
85
- ?>
86
-
87
- <div style="margin-top: 5px;font-size:12px;">
88
- <a href="<?php echo $google_page_speed_call; ?>" target="_blank" style="outline: 0;text-decoration: none;"><?php _e('View complete results', 'clearfy'); ?></a> <?php _e('on Google PageSpeed Insights.', 'clearfy'); ?>
89
- </div>
90
- </div>
91
- </div>
92
- </div>
93
- <?php $this->render_button(); ?>
94
- <?php
95
- }
96
  }
1
+ <?php
2
+
3
+ namespace WBCR\Clearfy\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ class Step_Google_Page_Speed_Before extends \WBCR\FactoryClearfy235\Pages\Step_Custom {
12
+
13
+ protected $prev_id = 'step0';
14
+ protected $id = 'step1';
15
+ protected $next_id = 'step2';
16
+
17
+ public function get_title()
18
+ {
19
+ return "Site test #1";
20
+ }
21
+
22
+ public function html()
23
+ {
24
+ ?>
25
+ <script>
26
+ jQuery(document).ready(function($) {
27
+ wclearfy_fetch_google_pagespeed_audit("<?php echo wp_create_nonce('fetch_google_page_speed_audit') ?>");
28
+ });
29
+ </script>
30
+ <div class="w-factory-clearfy-235-setup__inner-wrap">
31
+ <h3><?php _e('Google Page Speed', 'clearfy') ?></h3>
32
+ <p style="text-align: left;">
33
+ <?php _e('We analyzed your site on the Google Page Speed service. You can see the test results below. Our plugin
34
+ is to improve the score of your site on Google Page Speed. Memorize the results to make a comparison after
35
+ optimization by the Clearfy plugin.', 'clearfy') ?>
36
+ </p>
37
+ <div class="wclearfy-gogle-page-speed-audit__errors"><?php _e('Memorize the results to make a comparison after
38
+ optimization by the Clearfy plugin.', 'clearfy') ?>
39
+ </div>
40
+ <div class="wclearfy-gogle-page-speed-audit__preloader"></div>
41
+ <div class="wclearfy-gogle-page-speed-audit" style="display: none;">
42
+ <div class="wclearfy-score">
43
+ <!-- Desktop -->
44
+ <div class="wclearfy-desktop-score">
45
+ <h3><?php _e('Desktop score', 'clearfy'); ?></h3>
46
+ <div class="wclearfy-desktop-score__circle-wrap">
47
+ <div id="wclearfy-desktop-score__circle" class="wclearfy-score-circle"></div>
48
+ </div>
49
+ </div>
50
+
51
+ <!-- Mobile -->
52
+ <div class="wclearfy-mobile-score">
53
+ <h3><?php _e('Mobile score', 'clearfy'); ?></h3>
54
+ <div class="wclearfy-mobile-score__circle-wrap">
55
+ <div id="wclearfy-mobile-score__circle" class="wclearfy-score-circle"></div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+
60
+
61
+ <!-- Statistics -->
62
+ <div class="wclearfy-statistic">
63
+ <div class="wclearfy-statistic__line">
64
+ <span><?php _e('First Contentful Paint', 'clearfy'); ?></span>
65
+ <div class="wclearfy-statistic__results">
66
+ <span id="wclearfy-statistic__desktop-first-contentful-paint">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-first-contentful-paint">??&nbsp;s</span>
67
+ </div>
68
+ </div>
69
+ <div class="wclearfy-statistic__line">
70
+ <span><?php _e('Speed Index', 'clearfy'); ?></span>
71
+ <div class="wclearfy-statistic__results">
72
+ <span id="wclearfy-statistic__desktop-speed-index">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-speed-index">??&nbsp;s</span>
73
+ </div>
74
+ </div>
75
+ <div class="wclearfy-statistic__line">
76
+ <span><?php _e('Time to Interactive', 'clearfy'); ?></span>
77
+ <div class="wclearfy-statistic__results">
78
+ <span id="wclearfy-statistic__desktop-interactive">??&nbsp;s</span>&nbsp;/&nbsp;<span id="wclearfy-statistic__mobile-interactive">??&nbsp;s</span>
79
+ </div>
80
+ </div>
81
+
82
+ <?php
83
+ $site_url = get_home_url();
84
+ $google_page_speed_call = "https://developers.google.com/speed/pagespeed/insights/?url=" . $site_url;
85
+ ?>
86
+
87
+ <div style="margin-top: 5px;font-size:12px;">
88
+ <a href="<?php echo $google_page_speed_call; ?>" target="_blank" style="outline: 0;text-decoration: none;"><?php _e('View complete results', 'clearfy'); ?></a> <?php _e('on Google PageSpeed Insights.', 'clearfy'); ?>
89
+ </div>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ <?php $this->render_button(); ?>
94
+ <?php
95
+ }
96
  }
admin/pages/setup/steps/class-step-optimize-images.php CHANGED
@@ -1,179 +1,179 @@
1
- <?php
2
-
3
- namespace WBCR\Clearfy\Pages;
4
-
5
- /**
6
- * Step
7
- * @author Webcraftic <wordpress.webraftic@gmail.com>
8
- * @copyright (c) 23.07.2020, Webcraftic
9
- * @version 1.0
10
- */
11
- class Step_Optimize_Images extends \WBCR\FactoryClearfy232\Pages\Step_Custom {
12
-
13
- protected $prev_id = 'step4';
14
- protected $id = 'step5';
15
- protected $next_id = 'step6';
16
-
17
- public function __construct(\WBCR\FactoryClearfy232\Pages\Setup $page)
18
- {
19
- parent::__construct($page);
20
- }
21
-
22
-
23
- public function get_title()
24
- {
25
- return "Optimize images";
26
- }
27
-
28
- /**
29
- * {@inheritdoc}
30
- */
31
- public function assets($scripts, $styles)
32
- {
33
- parent::assets($scripts, $styles);
34
-
35
- $styles->add(WCL_PLUGIN_URL . '/admin/assets/css/setup/step-optimize-images.css');
36
-
37
- if( defined('WRIO_PLUGIN_ACTIVE') ) {
38
- $scripts->add(WRIO_PLUGIN_URL . '/admin/assets/js/Chart.min.js', ['jquery'], 'wrio-charts');
39
- $scripts->add(WRIO_PLUGIN_URL . '/admin/assets/js/statistic.js', ['jquery', 'wrio-charts']);
40
- }
41
- }
42
-
43
- public function html()
44
- {
45
- if( !defined('WRIO_PLUGIN_ACTIVE') ) {
46
- $this->alternate_html();
47
-
48
- return;
49
- }
50
-
51
- $is_premium = wrio_is_license_activate();
52
- $statistics = \WRIO_Image_Statistic::get_instance();
53
-
54
- $data = [
55
- 'is_premium' => $is_premium,
56
- 'scope' => 'media-library',
57
- 'stats' => $statistics->get()
58
- ];
59
- ?>
60
-
61
- <div class="w-factory-clearfy-232-setup__inner-wrap">
62
- <h3><?php _e("Optimize images", "clearfy") ?></h3>
63
- <p style="text-align: left;">
64
- <?php _e("We found unoptimized images in your media library. You can run background image optimization with the Robin image optimizer component of the Clearfy plugin. Background optimization is a long process, your images will be optimized after some time, so you won't be able to immediately see the improvement in Google Page Speed, but when the images are fully optimized you will see a score increase in Google Page Speed.", "clearfy"); ?>
65
- </p>
66
- <div class="wio-columns wio-page-statistic">
67
- <div>
68
- <div class="wio-chart-container wio-overview-chart-container">
69
- <canvas id="wio-main-chart" width="180" height="180"
70
- data-unoptimized="<?php echo esc_attr($data['stats']['unoptimized']); ?>"
71
- data-optimized="<?php echo esc_attr($data['stats']['optimized']); ?>"
72
- data-errors="<?php echo esc_attr($data['stats']['error']); ?>"
73
- style="display: block;">
74
- </canvas>
75
- <div id="wio-overview-chart-percent"
76
- class="wio-chart-percent"><?php echo esc_attr($data['stats']['optimized_percent']); ?>
77
- <span>%</span>
78
- </div>
79
- <p class="wio-global-optim-phrase wio-clear">
80
- <?php _e('You optimized', 'robin-image-optimizer'); ?>
81
- <span class="wio-total-percent">
82
- <?php echo esc_attr($data['stats']['optimized_percent']); ?>%
83
- </span>
84
- <?php _e("of your website's images", 'robin-image-optimizer'); ?>
85
- </p>
86
- </div>
87
- <div style="margin-left:200px;">
88
- <div id="wio-overview-chart-legend">
89
- <ul class="wio-doughnut-legend">
90
- <li>
91
- <span style="background-color:#d6d6d6"></span>
92
- <?php _e('Unoptimized', 'robin-image-optimizer'); ?>-
93
- <span class="wio-num" id="wio-unoptimized-num">
94
- <?php echo esc_attr($data['stats']['unoptimized']); ?>
95
- </span>
96
- </li>
97
- <li>
98
- <span style="background-color:#8bc34a"></span>
99
- <?php _e('Optimized', 'robin-image-optimizer'); ?>-
100
- <span class="wio-num" id="wio-optimized-num">
101
- <?php echo esc_attr($data['stats']['optimized']); ?>
102
- </span>
103
- </li>
104
- <li>
105
- <span style="background-color:#f1b1b6"></span>
106
- <?php _e('Error', 'robin-image-optimizer'); ?>-
107
- <span class="wio-num" id="wio-error-num">
108
- <?php echo esc_attr($data['stats']['error']); ?>
109
- </span>
110
- </li>
111
- </ul>
112
- </div>
113
- <h3 class="screen-reader-text"><?php _e('Statistics', 'robin-image-optimizer'); ?></h3>
114
- <div class="wio-bars" style="width: 90%">
115
- <p><?php _e('Original size', 'robin-image-optimizer'); ?></p>
116
- <div class="wio-bar-negative base-transparent wio-right-outside-number">
117
- <div id="wio-original-bar" class="wio-progress" style="width: 100%">
118
- <span class="wio-barnb" id="wio-original-size">
119
- <?php echo esc_attr(wrio_convert_bytes($data['stats']['original_size'])); ?>
120
- </span>
121
- </div>
122
- </div>
123
- <p><?php _e('Optimized size', 'robin-image-optimizer'); ?></p>
124
- <div class="wio-bar-primary base-transparent wio-right-outside-number">
125
- <div id="wio-optimized-bar" class="wio-progress"
126
- style="width: <?php echo ($data['stats']['percent_line']) ? esc_attr($data['stats']['percent_line']) : 100; ?>%">
127
- <span class="wio-barnb" id="wio-optimized-size">
128
- <?php echo esc_attr(wrio_convert_bytes($data['stats']['optimized_size'])); ?>
129
- </span>
130
- </div>
131
- </div>
132
- </div>
133
- <div class="wio-number-you-optimized">
134
- <p>
135
- <span id="wio-total-optimized-attachments-pct" class="wio-number">
136
- <?php echo esc_attr($data['stats']['save_size_percent']); ?>%
137
- </span>
138
- <span class="wio-text">
139
- <?php _e("that's the size you saved <br>by using Image Optimizer", 'robin-image-optimizer'); ?>
140
- </span>
141
- </p>
142
- </div>
143
- </div>
144
- </div>
145
- </div>
146
-
147
- </div>
148
- <?php $this->render_button(true, true, __('Shedule optimization and Continue', 'clearfy')); ?>
149
- <?php
150
- }
151
-
152
- protected function continue_step($skip = false)
153
- {
154
- if( defined('WRIO_PLUGIN_ACTIVE') ) {
155
- \WRIO_Plugin::app()->updatePopulateOption('cron_running', 'media-library');
156
- \WRIO_Cron::start();
157
- }
158
- parent::continue_step($skip);
159
- }
160
-
161
-
162
- private function alternate_html()
163
- {
164
- $install_robin_plugin_btn = $this->plugin->get_install_component_button('wordpress', 'robin-image-optimizer/robin-image-optimizer.php');
165
- $install_robin_plugin_btn->add_class('wclearfy-setup__install-component-button');
166
-
167
- ?>
168
- <div class="w-factory-clearfy-232-setup__inner-wrap">
169
- <h3><?php _e("Optimize images", "clearfy") ?></h3>
170
- <p style="text-align: left;">
171
- <?php _e("Robin Image optimizer plugin isn't installed or activated, you need to install or activate it to optimize your images.", "clearfy"); ?>
172
- </p>
173
-
174
- <p style="text-align: center"><?php $install_robin_plugin_btn->render_button(); ?></p>
175
- </div>
176
- <?php $this->render_button(false, true); ?>
177
- <?php
178
- }
179
  }
1
+ <?php
2
+
3
+ namespace WBCR\Clearfy\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ class Step_Optimize_Images extends \WBCR\FactoryClearfy235\Pages\Step_Custom {
12
+
13
+ protected $prev_id = 'step4';
14
+ protected $id = 'step5';
15
+ protected $next_id = 'step6';
16
+
17
+ public function __construct(\WBCR\FactoryClearfy235\Pages\Setup $page)
18
+ {
19
+ parent::__construct($page);
20
+ }
21
+
22
+
23
+ public function get_title()
24
+ {
25
+ return "Optimize images";
26
+ }
27
+
28
+ /**
29
+ * {@inheritdoc}
30
+ */
31
+ public function assets($scripts, $styles)
32
+ {
33
+ parent::assets($scripts, $styles);
34
+
35
+ $styles->add(WCL_PLUGIN_URL . '/admin/assets/css/setup/step-optimize-images.css');
36
+
37
+ if( defined('WRIO_PLUGIN_ACTIVE') ) {
38
+ $scripts->add(WRIO_PLUGIN_URL . '/admin/assets/js/Chart.min.js', ['jquery'], 'wrio-charts');
39
+ $scripts->add(WRIO_PLUGIN_URL . '/admin/assets/js/statistic.js', ['jquery', 'wrio-charts']);
40
+ }
41
+ }
42
+
43
+ public function html()
44
+ {
45
+ if( !defined('WRIO_PLUGIN_ACTIVE') ) {
46
+ $this->alternate_html();
47
+
48
+ return;
49
+ }
50
+
51
+ $is_premium = wrio_is_license_activate();
52
+ $statistics = \WRIO_Image_Statistic::get_instance();
53
+
54
+ $data = [
55
+ 'is_premium' => $is_premium,
56
+ 'scope' => 'media-library',
57
+ 'stats' => $statistics->get()
58
+ ];
59
+ ?>
60
+
61
+ <div class="w-factory-clearfy-235-setup__inner-wrap">
62
+ <h3><?php _e("Optimize images", "clearfy") ?></h3>
63
+ <p style="text-align: left;">
64
+ <?php _e("We found unoptimized images in your media library. You can run background image optimization with the Robin image optimizer component of the Clearfy plugin. Background optimization is a long process, your images will be optimized after some time, so you won't be able to immediately see the improvement in Google Page Speed, but when the images are fully optimized you will see a score increase in Google Page Speed.", "clearfy"); ?>
65
+ </p>
66
+ <div class="wio-columns wio-page-statistic">
67
+ <div>
68
+ <div class="wio-chart-container wio-overview-chart-container">
69
+ <canvas id="wio-main-chart" width="180" height="180"
70
+ data-unoptimized="<?php echo esc_attr($data['stats']['unoptimized']); ?>"
71
+ data-optimized="<?php echo esc_attr($data['stats']['optimized']); ?>"
72
+ data-errors="<?php echo esc_attr($data['stats']['error']); ?>"
73
+ style="display: block;">
74
+ </canvas>
75
+ <div id="wio-overview-chart-percent"
76
+ class="wio-chart-percent"><?php echo esc_attr($data['stats']['optimized_percent']); ?>
77
+ <span>%</span>
78
+ </div>
79
+ <p class="wio-global-optim-phrase wio-clear">
80
+ <?php _e('You optimized', 'robin-image-optimizer'); ?>
81
+ <span class="wio-total-percent">
82
+ <?php echo esc_attr($data['stats']['optimized_percent']); ?>%
83
+ </span>
84
+ <?php _e("of your website's images", 'robin-image-optimizer'); ?>
85
+ </p>
86
+ </div>
87
+ <div style="margin-left:200px;">
88
+ <div id="wio-overview-chart-legend">
89
+ <ul class="wio-doughnut-legend">
90
+ <li>
91
+ <span style="background-color:#d6d6d6"></span>
92
+ <?php _e('Unoptimized', 'robin-image-optimizer'); ?>-
93
+ <span class="wio-num" id="wio-unoptimized-num">
94
+ <?php echo esc_attr($data['stats']['unoptimized']); ?>
95
+ </span>
96
+ </li>
97
+ <li>
98
+ <span style="background-color:#8bc34a"></span>
99
+ <?php _e('Optimized', 'robin-image-optimizer'); ?>-
100
+ <span class="wio-num" id="wio-optimized-num">
101
+ <?php echo esc_attr($data['stats']['optimized']); ?>
102
+ </span>
103
+ </li>
104
+ <li>
105
+ <span style="background-color:#f1b1b6"></span>
106
+ <?php _e('Error', 'robin-image-optimizer'); ?>-
107
+ <span class="wio-num" id="wio-error-num">
108
+ <?php echo esc_attr($data['stats']['error']); ?>
109
+ </span>
110
+ </li>
111
+ </ul>
112
+ </div>
113
+ <h3 class="screen-reader-text"><?php _e('Statistics', 'robin-image-optimizer'); ?></h3>
114
+ <div class="wio-bars" style="width: 90%">
115
+ <p><?php _e('Original size', 'robin-image-optimizer'); ?></p>
116
+ <div class="wio-bar-negative base-transparent wio-right-outside-number">
117
+ <div id="wio-original-bar" class="wio-progress" style="width: 100%">
118
+ <span class="wio-barnb" id="wio-original-size">
119
+ <?php echo esc_attr(wrio_convert_bytes($data['stats']['original_size'])); ?>
120
+ </span>
121
+ </div>
122
+ </div>
123
+ <p><?php _e('Optimized size', 'robin-image-optimizer'); ?></p>
124
+ <div class="wio-bar-primary base-transparent wio-right-outside-number">
125
+ <div id="wio-optimized-bar" class="wio-progress"
126
+ style="width: <?php echo ($data['stats']['percent_line']) ? esc_attr($data['stats']['percent_line']) : 100; ?>%">
127
+ <span class="wio-barnb" id="wio-optimized-size">
128
+ <?php echo esc_attr(wrio_convert_bytes($data['stats']['optimized_size'])); ?>
129
+ </span>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ <div class="wio-number-you-optimized">
134
+ <p>
135
+ <span id="wio-total-optimized-attachments-pct" class="wio-number">
136
+ <?php echo esc_attr($data['stats']['save_size_percent']); ?>%
137
+ </span>
138
+ <span class="wio-text">
139
+ <?php _e("that's the size you saved <br>by using Image Optimizer", 'robin-image-optimizer'); ?>
140
+ </span>
141
+ </p>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ </div>
146
+
147
+ </div>
148
+ <?php $this->render_button(true, true, __('Shedule optimization and Continue', 'clearfy')); ?>
149
+ <?php
150
+ }
151
+
152
+ protected function continue_step($skip = false)
153
+ {
154
+ if( defined('WRIO_PLUGIN_ACTIVE') ) {
155
+ \WRIO_Plugin::app()->updatePopulateOption('cron_running', 'media-library');
156
+ \WRIO_Cron::start();
157
+ }
158
+ parent::continue_step($skip);
159
+ }
160
+
161
+
162
+ private function alternate_html()
163
+ {
164
+ $install_robin_plugin_btn = $this->plugin->get_install_component_button('wordpress', 'robin-image-optimizer/robin-image-optimizer.php');
165
+ $install_robin_plugin_btn->add_class('wclearfy-setup__install-component-button');
166
+
167
+ ?>
168
+ <div class="w-factory-clearfy-235-setup__inner-wrap">
169
+ <h3><?php _e("Optimize images", "clearfy") ?></h3>
170
+ <p style="text-align: left;">
171
+ <?php _e("Robin Image optimizer plugin isn't installed or activated, you need to install or activate it to optimize your images.", "clearfy"); ?>
172
+ </p>
173
+
174
+ <p style="text-align: center"><?php $install_robin_plugin_btn->render_button(); ?></p>
175
+ </div>
176
+ <?php $this->render_button(false, true); ?>
177
+ <?php
178
+ }
179
  }
admin/pages/setup/steps/class-step-plugins.php CHANGED
@@ -1,73 +1,73 @@
1
- <?php
2
-
3
- namespace WBCR\Clearfy\Pages;
4
-
5
- /**
6
- * Step
7
- * @author Webcraftic <wordpress.webraftic@gmail.com>
8
- * @copyright (c) 23.07.2020, Webcraftic
9
- * @version 1.0
10
- */
11
- class Step_Plugins extends \WBCR\FactoryClearfy232\Pages\Step_Custom {
12
-
13
- protected $prev_id = 'step1';
14
- protected $id = 'step2';
15
- protected $next_id = 'step3';
16
-
17
- public function get_title()
18
- {
19
- return "Setup Plugins";
20
- }
21
-
22
- public function html()
23
- {
24
- $install_robin_plugin_btn = $this->plugin->get_install_component_button('wordpress', 'robin-image-optimizer/robin-image-optimizer.php');
25
- $install_wp_super_cache_btn = $this->plugin->get_install_component_button('wordpress', 'wp-super-cache/wp-cache.php');
26
- $install_assets_manager_component_btn = $this->plugin->get_install_component_button('internal', 'assets_manager');
27
- $install_minify_and_combine_component_btn = $this->plugin->get_install_component_button('internal', 'minify_and_combine');
28
- ?>
29
- <div class="w-factory-clearfy-232-setup__inner-wrap">
30
- <h3><?php _e('Installing plugins', 'clearfy') ?></h3>
31
- <p style="text-align: left;"><?php _e('We analyzed your site and decided that in order to get the maximum result in
32
- optimizing your site, you will need to install additional plugins.', 'clearfy') ?></p>
33
- <table class="form-table">
34
- <thead>
35
- <tr>
36
- <th><?php _e('Plugin', 'clearfy') ?></th>
37
- <th style="width:50px"><?php _e('Score', 'clearfy') ?></th>
38
- <th style="width:200px"><?php _e('Score with PRO', 'clearfy') ?></th>
39
- <th></th>
40
- </tr>
41
- </thead>
42
- <tr>
43
- <td>Robin image optimizer</td>
44
- <td style="color:grey">+10</td>
45
- <td style="color:green">+15</td>
46
- <td>
47
- <?php $install_robin_plugin_btn->render_link(); ?>
48
- </td>
49
- </tr>
50
- <tr>
51
- <td>Assets manager component</td>
52
- <td style="color:grey">+5</td>
53
- <td style="color:green">+10</td>
54
- <td><?php $install_assets_manager_component_btn->render_link(); ?></td>
55
- </tr>
56
- <!--<tr>
57
- <td>WP Super Cache</td>
58
- <td style="color:grey">+8</td>
59
- <td></td>
60
- <td><?php /*$install_wp_super_cache_btn->renderLink(); */ ?></td>
61
- </tr>-->
62
- <tr>
63
- <td>Minify and Combine component</td>
64
- <td style="color:grey">+10</td>
65
- <td style="color:green">+15</td>
66
- <td><?php $install_minify_and_combine_component_btn->render_link(); ?></td>
67
- </tr>
68
- </table>
69
- </div>
70
- <?php $this->render_button(); ?>
71
- <?php
72
- }
73
  }
1
+ <?php
2
+
3
+ namespace WBCR\Clearfy\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ class Step_Plugins extends \WBCR\FactoryClearfy235\Pages\Step_Custom {
12
+
13
+ protected $prev_id = 'step1';
14
+ protected $id = 'step2';
15
+ protected $next_id = 'step3';
16
+
17
+ public function get_title()
18
+ {
19
+ return "Setup Plugins";
20
+ }
21
+
22
+ public function html()
23
+ {
24
+ $install_robin_plugin_btn = $this->plugin->get_install_component_button('wordpress', 'robin-image-optimizer/robin-image-optimizer.php');
25
+ $install_wp_super_cache_btn = $this->plugin->get_install_component_button('wordpress', 'wp-super-cache/wp-cache.php');
26
+ $install_assets_manager_component_btn = $this->plugin->get_install_component_button('internal', 'assets_manager');
27
+ $install_minify_and_combine_component_btn = $this->plugin->get_install_component_button('internal', 'minify_and_combine');
28
+ ?>
29
+ <div class="w-factory-clearfy-235-setup__inner-wrap">
30
+ <h3><?php _e('Installing plugins', 'clearfy') ?></h3>
31
+ <p style="text-align: left;"><?php _e('We analyzed your site and decided that in order to get the maximum result in
32
+ optimizing your site, you will need to install additional plugins.', 'clearfy') ?></p>
33
+ <table class="form-table">
34
+ <thead>
35
+ <tr>
36
+ <th><?php _e('Plugin', 'clearfy') ?></th>
37
+ <th style="width:50px"><?php _e('Score', 'clearfy') ?></th>
38
+ <th style="width:200px"><?php _e('Score with PRO', 'clearfy') ?></th>
39
+ <th></th>
40
+ </tr>
41
+ </thead>
42
+ <tr>
43
+ <td>Robin image optimizer</td>
44
+ <td style="color:grey">+10</td>
45
+ <td style="color:green">+15</td>
46
+ <td>
47
+ <?php $install_robin_plugin_btn->render_link(); ?>
48
+ </td>
49
+ </tr>
50
+ <tr>
51
+ <td>Assets manager component</td>
52
+ <td style="color:grey">+5</td>
53
+ <td style="color:green">+10</td>
54
+ <td><?php $install_assets_manager_component_btn->render_link(); ?></td>
55
+ </tr>
56
+ <!--<tr>
57
+ <td>WP Super Cache</td>
58
+ <td style="color:grey">+8</td>
59
+ <td></td>
60
+ <td><?php /*$install_wp_super_cache_btn->renderLink(); */ ?></td>
61
+ </tr>-->
62
+ <tr>
63
+ <td>Minify and Combine component</td>
64
+ <td style="color:grey">+10</td>
65
+ <td style="color:green">+15</td>
66
+ <td><?php $install_minify_and_combine_component_btn->render_link(); ?></td>
67
+ </tr>
68
+ </table>
69
+ </div>
70
+ <?php $this->render_button(); ?>
71
+ <?php
72
+ }
73
  }
admin/pages/setup/steps/class-step-setting-seo-optimize.php CHANGED
@@ -1,163 +1,163 @@
1
- <?php
2
-
3
- namespace WBCR\Clearfy\Pages;
4
-
5
- /**
6
- * Step
7
- * @author Webcraftic <wordpress.webraftic@gmail.com>
8
- * @copyright (c) 23.07.2020, Webcraftic
9
- * @version 1.0
10
- */
11
- class Step_Setting_Seo extends \WBCR\FactoryClearfy232\Pages\Step_Form {
12
-
13
- protected $prev_id = 'step3';
14
- protected $id = 'step4';
15
- protected $next_id = 'step5';
16
-
17
- public function get_title()
18
- {
19
- return "Optimize SEO";
20
- }
21
-
22
- public function get_form_description()
23
- {
24
- return __('Recommended settings that can complement your SEO plugin.', 'clearfy');
25
- }
26
-
27
- public function get_form_options()
28
- {
29
- $options[] = array(
30
- 'type' => 'checkbox',
31
- 'way' => 'buttons',
32
- 'name' => 'content_image_auto_alt',
33
- 'title' => __('Automatically set the alt attribute', 'clearfy'),
34
- 'layout' => array('hint-type' => 'icon'),
35
- 'hint' => __('The alt attribute is mandatory, so most SEO experts say. If you missed or did not fill it at all, it will be automatically assigned and will be equal to the title of the article.', 'clearfy') . '<br><br><b>Clearfy: </b>' . sprintf(__('Replaces the %s, on attribute with an article name %s', 'clearfy'), '<code>img scr="" alt=""</code>', '<code>img scr="" alt="Hello world"</code>'),
36
- 'default' => true
37
- );
38
-
39
- $options[] = array(
40
- 'type' => 'checkbox',
41
- 'way' => 'buttons',
42
- 'name' => 'set_last_modified_headers',
43
- 'title' => __('Automatically insert the Last Modified header', 'clearfy'),
44
- 'default' => false,
45
- 'layout' => array('hint-type' => 'icon'),
46
- 'hint' => __('Automatically insert the Last Modified header', 'clearfy') . '<br><b>Clearfy: </b>' . __('Removes attachment pages and puts a redirect.', 'clearfy'),
47
- 'eventsOn' => array(
48
- 'show' => '.factory-control-disable_frontpage_last_modified_headers'
49
- ),
50
- 'eventsOff' => array(
51
- 'hide' => '.factory-control-disable_frontpage_last_modified_headers'
52
- )
53
- );
54
-
55
- $options[] = array(
56
- 'type' => 'checkbox',
57
- 'way' => 'buttons',
58
- 'name' => 'if_modified_since_headers',
59
- 'title' => __('Return an If-Modified-Since responce', 'clearfy'),
60
- 'layout' => array('hint-type' => 'icon'),
61
- 'hint' => __('Return an If-Modified-Since responce.', 'clearfy') . '<br><b>Clearfy: </b>' . __('Removes attachment pages and puts a redirect.', 'clearfy'),
62
-
63
- 'default' => false
64
- );
65
-
66
- if( $this->plugin->isActivateComponent('yoast_seo') ) {
67
- $options[] = array(
68
- 'type' => 'checkbox',
69
- 'way' => 'buttons',
70
- 'name' => 'remove_last_item_breadcrumb_yoast',
71
- 'title' => __('Remove duplicate names in breadcrumbs WP SEO by Yoast', 'clearfy'),
72
- 'layout' => array('hint-type' => 'icon'),
73
- 'hint' => __('The last element in the breadcrumbs in the Yoast SEO plugin duplicates the title of the article. Some SEO-specialists consider this duplication to be superfluous.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes duplication of the name in the breadcrumbs of the WP SEO plugin from Yoast.', 'clearfy'),
74
- 'default' => true
75
- );
76
-
77
- $options[] = array(
78
- 'type' => 'checkbox',
79
- 'way' => 'buttons',
80
- 'name' => 'yoast_remove_image_from_xml_sitemap',
81
- 'title' => sprintf(__('Remove the tag %s from XML site map', 'clearfy'), 'image:image'),
82
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'green'),
83
- 'hint' => __('Yandex.Webmaster swears on a standard XML card from the plugin Yoast, tk. it has a specific tag', 'clearfy') . 'image:image<br><br><b>Clearfy: </b>' . sprintf(__('Remove the tag %s from XML site map of the plugin Yoast SEO.', 'clearfy'), 'image:image') . '<br>--<br><span class="wbcr-factory-light-orange-color">' . __('Attention! After activation, turn off the site map and enable it back to regenerate it.', 'clearfy') . '</span>' . '<br><span class="wbcr-factory-light-orange-color">' . __('In older versions of Yoast SEO may not work - update the plugin Yoast', 'clearfy') . '</span>',
84
- 'default' => true,
85
- 'eventsOn' => array()
86
- );
87
-
88
- $options[] = array(
89
- 'type' => 'checkbox',
90
- 'way' => 'buttons',
91
- 'name' => 'yoast_remove_json_ld_search',
92
- 'title' => __('Disable JSON-LD sitelinks searchbox', 'clearfy') . '</span>',
93
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
94
- 'hint' => __('If you’re not familiar with Search Action it’s the mark-up that helps search engines add a shiny Sitelinks Search Box below your search engine results. For the majority of webmasters the extra search box is an absolutely fantastic feature but for many it’s not required or wanted, especially if a site only has a few pages or if the site uses a customised search platform that only searches blog posts and not pages.', 'clearfy') . ' <br><b>Clearfy: </b>' . __('Disable JSON-LD sitelinks searchbox using WordPress in plugin Yoast SEO.', 'clearfy'),
95
- 'default' => false
96
- );
97
-
98
- $options[] = array(
99
- 'type' => 'checkbox',
100
- 'way' => 'buttons',
101
- 'name' => 'yoast_remove_json_ld_output',
102
- 'title' => __('Disable Yoast Structured Data', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text"></span>',
103
- 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
104
- 'hint' => __('Prevents output of the script tag of type application/ld+json containing
105
- schema.org data from the popular Yoast SEO and Yoast SEO Premium plugins.
106
- There is currently no UI to do so.', 'clearfy') . ' <br><b>Clearfy: </b>' . __('Disable Structured Data in plugin Yoast SEO.', 'clearfy'),
107
- 'default' => false
108
- );
109
-
110
- $options[] = array(
111
- 'type' => 'checkbox',
112
- 'way' => 'buttons',
113
- 'name' => 'yoast_remove_head_comment',
114
- 'title' => sprintf(__('Remove comment from %s section', 'clearfy'), 'head'),
115
- 'layout' => array('hint-type' => 'icon'),
116
- 'hint' => sprintf(__('The Yoast SEO plugin displays a comment of the form %s in %s section', 'clearfy'), '!-- This site is optimized with the Yoast SEO plugin v3.1.1 - https://yoast.com/wordpress/plugins/seo/ --', 'head') . '<br><br><b>Clearfy: </b>' . sprintf(__('Removes the Yoast SEO plugin comment of their section %s', 'clearfy'), 'head'),
117
- 'default' => true
118
- );
119
- }
120
-
121
- $options[] = array(
122
- 'type' => 'checkbox',
123
- 'way' => 'buttons',
124
- 'name' => 'redirect_archives_date',
125
- 'title' => __('Remove archives date', 'clearfy'),
126
- 'layout' => array('hint-type' => 'icon'),
127
- 'hint' => sprintf(__('Many duplicates in date archives. Imagine, in addition, that your article will be displayed in the main and in the category, you will still receive at least 3 duplicates: in archives by year, month and date, for example %s.', 'clearfy'), '/2016/2016/02 / /2016/02/15') . '<br><b>Clearfy: </b>' . __('Removes all pages with the date archives and puts a redirect.', 'clearfy'),
128
- 'default' => true
129
- );
130
-
131
- $options[] = array(
132
- 'type' => 'checkbox',
133
- 'way' => 'buttons',
134
- 'name' => 'redirect_archives_author',
135
- 'title' => __('Remove author archives ', 'clearfy'),
136
- 'layout' => array('hint-type' => 'icon'),
137
- 'hint' => sprintf(__('If the site is only filled by you - a mandatory item. Allows you to get rid of duplicates on user archives, for example %s.', 'clearfy'), '/author/admin/') . '<br><b>Clearfy: </b>' . __('Removes all pages with the author archives and puts a redirect.', 'clearfy'),
138
- 'default' => true
139
- );
140
-
141
- $options[] = array(
142
- 'type' => 'checkbox',
143
- 'way' => 'buttons',
144
- 'name' => 'attachment_pages_redirect',
145
- 'title' => __('Remove attachment pages', 'clearfy'),
146
- 'layout' => array('hint-type' => 'icon'),
147
- 'hint' => __('Every of the pictures has its own page on the site. Such pages are successfully indexed and create duplicates. The site can have thousands of same-type attachment pages.', 'clearfy') . '<br><b>Clearfy: </b>' . __('Removes attachment pages and puts a redirect.', 'clearfy'),
148
- 'default' => true
149
- );
150
-
151
- $options[] = array(
152
- 'type' => 'checkbox',
153
- 'way' => 'buttons',
154
- 'name' => 'remove_replytocom',
155
- 'title' => __('Remove ?replytocom', 'clearfy'),
156
- 'layout' => array('hint-type' => 'icon'),
157
- 'hint' => sprintf(__('WordPress adds %s to the link "Reply" in the comments, if you use hierarchical comments.', 'clearfy'), '?replytocom') . '<br><b>Clearfy: </b>' . __('?relpytocom remove and and puts a redirect.', 'clearfy'),
158
- 'default' => true
159
- );
160
-
161
- return $options;
162
- }
163
  }
1
+ <?php
2
+
3
+ namespace WBCR\Clearfy\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ class Step_Setting_Seo extends \WBCR\FactoryClearfy235\Pages\Step_Form {
12
+
13
+ protected $prev_id = 'step3';
14
+ protected $id = 'step4';
15
+ protected $next_id = 'step5';
16
+
17
+ public function get_title()
18
+ {
19
+ return "Optimize SEO";
20
+ }
21
+
22
+ public function get_form_description()
23
+ {
24
+ return __('Recommended settings that can complement your SEO plugin.', 'clearfy');
25
+ }
26
+
27
+ public function get_form_options()
28
+ {
29
+ $options[] = array(
30
+ 'type' => 'checkbox',
31
+ 'way' => 'buttons',
32
+ 'name' => 'content_image_auto_alt',
33
+ 'title' => __('Automatically set the alt attribute', 'clearfy'),
34
+ 'layout' => array('hint-type' => 'icon'),
35
+ 'hint' => __('The alt attribute is mandatory, so most SEO experts say. If you missed or did not fill it at all, it will be automatically assigned and will be equal to the title of the article.', 'clearfy') . '<br><br><b>Clearfy: </b>' . sprintf(__('Replaces the %s, on attribute with an article name %s', 'clearfy'), '<code>img scr="" alt=""</code>', '<code>img scr="" alt="Hello world"</code>'),
36
+ 'default' => true
37
+ );
38
+
39
+ $options[] = array(
40
+ 'type' => 'checkbox',
41
+ 'way' => 'buttons',
42
+ 'name' => 'set_last_modified_headers',
43
+ 'title' => __('Automatically insert the Last Modified header', 'clearfy'),
44
+ 'default' => false,
45
+ 'layout' => array('hint-type' => 'icon'),
46
+ 'hint' => __('Automatically insert the Last Modified header', 'clearfy') . '<br><b>Clearfy: </b>' . __('Removes attachment pages and puts a redirect.', 'clearfy'),
47
+ 'eventsOn' => array(
48
+ 'show' => '.factory-control-disable_frontpage_last_modified_headers'
49
+ ),
50
+ 'eventsOff' => array(
51
+ 'hide' => '.factory-control-disable_frontpage_last_modified_headers'
52
+ )
53
+ );
54
+
55
+ $options[] = array(
56
+ 'type' => 'checkbox',
57
+ 'way' => 'buttons',
58
+ 'name' => 'if_modified_since_headers',
59
+ 'title' => __('Return an If-Modified-Since responce', 'clearfy'),
60
+ 'layout' => array('hint-type' => 'icon'),
61
+ 'hint' => __('Return an If-Modified-Since responce.', 'clearfy') . '<br><b>Clearfy: </b>' . __('Removes attachment pages and puts a redirect.', 'clearfy'),
62
+
63
+ 'default' => false
64
+ );
65
+
66
+ if( $this->plugin->isActivateComponent('yoast_seo') ) {
67
+ $options[] = array(
68
+ 'type' => 'checkbox',
69
+ 'way' => 'buttons',
70
+ 'name' => 'remove_last_item_breadcrumb_yoast',
71
+ 'title' => __('Remove duplicate names in breadcrumbs WP SEO by Yoast', 'clearfy'),
72
+ 'layout' => array('hint-type' => 'icon'),
73
+ 'hint' => __('The last element in the breadcrumbs in the Yoast SEO plugin duplicates the title of the article. Some SEO-specialists consider this duplication to be superfluous.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes duplication of the name in the breadcrumbs of the WP SEO plugin from Yoast.', 'clearfy'),
74
+ 'default' => true
75
+ );
76
+
77
+ $options[] = array(
78
+ 'type' => 'checkbox',
79
+ 'way' => 'buttons',
80
+ 'name' => 'yoast_remove_image_from_xml_sitemap',
81
+ 'title' => sprintf(__('Remove the tag %s from XML site map', 'clearfy'), 'image:image'),
82
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'green'),
83
+ 'hint' => __('Yandex.Webmaster swears on a standard XML card from the plugin Yoast, tk. it has a specific tag', 'clearfy') . 'image:image<br><br><b>Clearfy: </b>' . sprintf(__('Remove the tag %s from XML site map of the plugin Yoast SEO.', 'clearfy'), 'image:image') . '<br>--<br><span class="wbcr-factory-light-orange-color">' . __('Attention! After activation, turn off the site map and enable it back to regenerate it.', 'clearfy') . '</span>' . '<br><span class="wbcr-factory-light-orange-color">' . __('In older versions of Yoast SEO may not work - update the plugin Yoast', 'clearfy') . '</span>',
84
+ 'default' => true,
85
+ 'eventsOn' => array()
86
+ );
87
+
88
+ $options[] = array(
89
+ 'type' => 'checkbox',
90
+ 'way' => 'buttons',
91
+ 'name' => 'yoast_remove_json_ld_search',
92
+ 'title' => __('Disable JSON-LD sitelinks searchbox', 'clearfy') . '</span>',
93
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
94
+ 'hint' => __('If you’re not familiar with Search Action it’s the mark-up that helps search engines add a shiny Sitelinks Search Box below your search engine results. For the majority of webmasters the extra search box is an absolutely fantastic feature but for many it’s not required or wanted, especially if a site only has a few pages or if the site uses a customised search platform that only searches blog posts and not pages.', 'clearfy') . ' <br><b>Clearfy: </b>' . __('Disable JSON-LD sitelinks searchbox using WordPress in plugin Yoast SEO.', 'clearfy'),
95
+ 'default' => false
96
+ );
97
+
98
+ $options[] = array(
99
+ 'type' => 'checkbox',
100
+ 'way' => 'buttons',
101
+ 'name' => 'yoast_remove_json_ld_output',
102
+ 'title' => __('Disable Yoast Structured Data', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text"></span>',
103
+ 'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
104
+ 'hint' => __('Prevents output of the script tag of type application/ld+json containing
105
+ schema.org data from the popular Yoast SEO and Yoast SEO Premium plugins.
106
+ There is currently no UI to do so.', 'clearfy') . ' <br><b>Clearfy: </b>' . __('Disable Structured Data in plugin Yoast SEO.', 'clearfy'),
107
+ 'default' => false
108
+ );
109
+
110
+ $options[] = array(
111
+ 'type' => 'checkbox',
112
+ 'way' => 'buttons',
113
+ 'name' => 'yoast_remove_head_comment',
114
+ 'title' => sprintf(__('Remove comment from %s section', 'clearfy'), 'head'),
115
+ 'layout' => array('hint-type' => 'icon'),
116
+ 'hint' => sprintf(__('The Yoast SEO plugin displays a comment of the form %s in %s section', 'clearfy'), '!-- This site is optimized with the Yoast SEO plugin v3.1.1 - https://yoast.com/wordpress/plugins/seo/ --', 'head') . '<br><br><b>Clearfy: </b>' . sprintf(__('Removes the Yoast SEO plugin comment of their section %s', 'clearfy'), 'head'),
117
+ 'default' => true
118
+ );
119
+ }
120
+
121
+ $options[] = array(
122
+ 'type' => 'checkbox',
123
+ 'way' => 'buttons',
124
+ 'name' => 'redirect_archives_date',
125
+ 'title' => __('Remove archives date', 'clearfy'),
126
+ 'layout' => array('hint-type' => 'icon'),
127
+ 'hint' => sprintf(__('Many duplicates in date archives. Imagine, in addition, that your article will be displayed in the main and in the category, you will still receive at least 3 duplicates: in archives by year, month and date, for example %s.', 'clearfy'), '/2016/2016/02 / /2016/02/15') . '<br><b>Clearfy: </b>' . __('Removes all pages with the date archives and puts a redirect.', 'clearfy'),
128
+ 'default' => true
129
+ );
130
+
131
+ $options[] = array(
132
+ 'type' => 'checkbox',
133
+ 'way' => 'buttons',
134
+ 'name' => 'redirect_archives_author',
135
+ 'title' => __('Remove author archives ', 'clearfy'),
136
+ 'layout' => array('hint-type' => 'icon'),
137
+ 'hint' => sprintf(__('If the site is only filled by you - a mandatory item. Allows you to get rid of duplicates on user archives, for example %s.', 'clearfy'), '/author/admin/') . '<br><b>Clearfy: </b>' . __('Removes all pages with the author archives and puts a redirect.', 'clearfy'),
138
+ 'default' => true
139
+ );
140
+
141
+ $options[] = array(
142
+ 'type' => 'checkbox',
143
+ 'way' => 'buttons',
144
+ 'name' => 'attachment_pages_redirect',
145
+ 'title' => __('Remove attachment pages', 'clearfy'),
146
+ 'layout' => array('hint-type' => 'icon'),
147
+ 'hint' => __('Every of the pictures has its own page on the site. Such pages are successfully indexed and create duplicates. The site can have thousands of same-type attachment pages.', 'clearfy') . '<br><b>Clearfy: </b>' . __('Removes attachment pages and puts a redirect.', 'clearfy'),
148
+ 'default' => true
149
+ );
150
+
151
+ $options[] = array(
152
+ 'type' => 'checkbox',
153
+ 'way' => 'buttons',
154
+ 'name' => 'remove_replytocom',
155
+ 'title' => __('Remove ?replytocom', 'clearfy'),
156
+ 'layout' => array('hint-type' => 'icon'),
157
+ 'hint' => sprintf(__('WordPress adds %s to the link "Reply" in the comments, if you use hierarchical comments.', 'clearfy'), '?replytocom') . '<br><b>Clearfy: </b>' . __('?relpytocom remove and and puts a redirect.', 'clearfy'),
158
+ 'default' => true
159
+ );
160
+
161
+ return $options;
162
+ }
163
  }
admin/pages/setup/steps/class-step-setting-speed-optimize.php CHANGED
@@ -1,250 +1,250 @@
1
- <?php
2
-
3
- namespace WBCR\Clearfy\Pages;
4
-
5
- /**
6
- * Step
7
- * @author Webcraftic <wordpress.webraftic@gmail.com>
8
- * @copyright (c) 23.07.2020, Webcraftic
9
- * @version 1.0
10
- */
11
- class Step_Setting_Speed_Optimize extends \WBCR\FactoryClearfy232\Pages\Step_Form {
12
-
13
- protected $prev_id = 'step2';
14
- protected $id = 'step3';
15
- protected $next_id = 'step4';
16
-
17
- public function get_title()
18
- {
19
- return "Optimize speed";
20
- }
21
-
22
- public function get_form_description()
23
- {
24
- return 'Caching allows your WordPress site to skip a lot of steps. Instead of going through the whole page generation process every time, your caching plugin makes a copy of the page
25
- after the first load, and then serves that cached version to every subsequent user.';
26
- }
27
-
28
- public function get_form_options()
29
- {
30
- /*$options[] = [
31
- 'type' => 'checkbox',
32
- 'way' => 'buttons',
33
- 'name' => 'enable_cache_plugin',
34
- 'title' => __('Enable Caching', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
35
- 'layout' => ['hint-type' => 'icon'],
36
- 'hint' => __('Enable simple caching. If you require expert caching, go to the advanced settings of the wp super cache plugin.', 'clearfy'),
37
- 'default' => true
38
- ];
39
-
40
- $options[] = [
41
- 'type' => 'checkbox',
42
- 'way' => 'buttons',
43
- 'name' => 'disable_caching_for_logged_visitors',
44
- 'title' => __('Disable caching for logged in visitors', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
45
- 'layout' => ['hint-type' => 'icon'],
46
- 'hint' => __('Caching won\'t work for authenticated users.', 'clearfy'),
47
- 'default' => true
48
- ];*/
49
-
50
- $options[] = [
51
- 'type' => 'checkbox',
52
- 'way' => 'buttons',
53
- 'name' => 'js_optimize',
54
- 'title' => __('Optimize JavaScript Code?', 'minify-and-combine'),
55
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
56
- //'hint' => __('Optimize JavaScript Code.', 'minify-and-combine'),
57
- 'default' => true,
58
- 'eventsOn' => [
59
- 'show' => '#wbcr-mac-optimize-js-fields,#wbcr-mac-optimization-danger-message-1'
60
- ],
61
- 'eventsOff' => [
62
- 'hide' => '#wbcr-mac-optimize-js-fields,#wbcr-mac-optimization-danger-message-1'
63
- ]
64
- ];
65
-
66
- /*$options[] = array(
67
- 'type' => 'html',
68
- 'html' => array( $this, 'optimizationDangerMessage1' )
69
- );*/
70
-
71
- $js_options[] = [
72
- 'type' => 'checkbox',
73
- 'way' => 'buttons',
74
- 'name' => 'js_aggregate',
75
- 'title' => __('Aggregate JS-files?', 'minify-and-combine'),
76
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
77
- 'hint' => __('Aggregate all linked JS-files to have them loaded non-render blocking? If this option is off, the individual JS-files will remain in place but will be minified.', 'minify-and-combine'),
78
- 'default' => false,
79
- 'eventsOn' => [
80
- 'show' => '#wbcr-mac-optimization-danger-message-2'
81
- ],
82
- 'eventsOff' => [
83
- 'hide' => '#wbcr-mac-optimization-danger-message-2'
84
- ]
85
- ];
86
-
87
- $js_options[] = [
88
- 'type' => 'html',
89
- 'html' => [$this, 'optimizationDangerMessage2']
90
- ];
91
-
92
- $options[] = [
93
- 'type' => 'div',
94
- 'id' => 'wbcr-mac-optimize-js-fields',
95
- 'items' => $js_options
96
- ];
97
-
98
- $options[] = [
99
- 'type' => 'checkbox',
100
- 'way' => 'buttons',
101
- 'name' => 'css_optimize',
102
- 'title' => __('Optimize CSS Code?', 'minify-and-combine'),
103
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
104
- 'hint' => __('If your scripts break because of a JS-error, you might want to try this.', 'minify-and-combine'),
105
- 'default' => true,
106
- 'eventsOn' => [
107
- 'show' => '#wbcr-clr-optimize-css-fields'
108
- ],
109
- 'eventsOff' => [
110
- 'hide' => '#wbcr-clr-optimize-css-fields'
111
- ]
112
- ];
113
-
114
- $css_options[] = [
115
- 'type' => 'checkbox',
116
- 'way' => 'buttons',
117
- 'name' => 'css_aggregate',
118
- 'title' => __('Aggregate CSS-files?', 'minify-and-combine'),
119
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
120
- 'hint' => __('Aggregate all linked CSS-files? If this option is off, the individual CSS-files will remain in place but will be minified.', 'minify-and-combine'),
121
- 'default' => false,
122
- 'eventsOn' => [
123
- 'show' => '#wbcr-mac-optimization-danger-message-4'
124
- ],
125
- 'eventsOff' => [
126
- 'hide' => '#wbcr-mac-optimization-danger-message-4'
127
- ]
128
- ];
129
-
130
- $css_options[] = [
131
- 'type' => 'html',
132
- 'html' => [$this, 'optimizationDangerMessage4']
133
- ];
134
-
135
- $options[] = [
136
- 'type' => 'div',
137
- 'id' => 'wbcr-clr-optimize-css-fields',
138
- 'items' => $css_options
139
- ];
140
-
141
- $options[] = [
142
- 'type' => 'checkbox',
143
- 'way' => 'buttons',
144
- 'name' => 'disable_emoji',
145
- 'title' => __('Disable Emojis', 'clearfy'),
146
- 'layout' => ['hint-type' => 'icon'],
147
- 'hint' => __('Emojis are fun and all, but if you are aren’t using them they actually load a JavaScript file (wp-emoji-release.min.js) on every page of your website. For a lot of businesses, this is not needed and simply adds load time to your site. So we recommend disabling this.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes WordPress Emojis JavaScript file (wp-emoji-release.min.js).', 'clearfy'),
148
- 'default' => true
149
- ];
150
-
151
- $options[] = [
152
- 'type' => 'checkbox',
153
- 'way' => 'buttons',
154
- 'name' => 'remove_rsd_link',
155
- 'title' => __('Remove RSD Link', 'clearfy'),
156
- 'layout' => ['hint-type' => 'icon'],
157
- 'hint' => __('The above link is used by blog clients. If you edit your site from your browser then you don’t need this. It is also used by some 3rd party applications that utilize XML-RPC requests. In most cases, this is just unnecessary code.', 'clearfy') . '<br><code>link rel="EditURI" type="application/rsd+xml" title="RSD"</code><br><br><b>Clearfy: </b>' . __('Remove RSD (Real Simple Discovery) link tag.', 'clearfy'),
158
- 'default' => true
159
- ];
160
-
161
- $options[] = [
162
- 'type' => 'checkbox',
163
- 'way' => 'buttons',
164
- 'name' => 'remove_wlw_link',
165
- 'title' => __('Remove wlwmanifest Link', 'clearfy'),
166
- 'layout' => ['hint-type' => 'icon'],
167
- 'hint' => '<code>link rel="wlwmanifest" type="application/wlwmanifest+xml"</code><br>' . __('This link is actually used by Windows Live Writer. If you don’t know use Windows Live Writer, which we are guessing you don’t, this is just unnecessary code.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Remove wlwmanifest (Windows Live Writer) link tag.', 'clearfy'),
168
- 'default' => true
169
- ];
170
-
171
- $options[] = [
172
- 'type' => 'checkbox',
173
- 'way' => 'buttons',
174
- 'name' => 'remove_shortlink_link',
175
- 'title' => __('Remove Shortlink', 'clearfy'),
176
- 'layout' => ['hint-type' => 'icon'],
177
- 'hint' => sprintf(__('By default, the following tag shows up in every WordPress install. %s This is used for a shortlink to your pages and posts. However, if you are already using pretty permalinks, such as domain.com/post, then there is no reason to keep this, it is just unnecessary code.', 'clearfy'), '<br><code>link rel="shortlink" href="https://domain.com?p=712"</code><br>') . '<br><br><b>Clearfy: </b>' . __('Remove Shortlink link tag.', 'clearfy'),
178
- 'default' => true
179
- ];
180
-
181
- $options[] = [
182
- 'type' => 'checkbox',
183
- 'way' => 'buttons',
184
- 'name' => 'remove_adjacent_posts_link',
185
- 'title' => __('Remove links to previous, next post', 'clearfy'),
186
- 'layout' => ['hint-type' => 'icon'],
187
- 'hint' => __('If you use Wordpress as a CMS, then you can delete these links, they can only come in handy for a blog.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Remove the previous and next post links within the wp_head of your wordpress theme.', 'clearfy'),
188
- 'default' => true
189
- ];
190
-
191
- $options[] = [
192
- 'type' => 'checkbox',
193
- 'way' => 'buttons',
194
- 'name' => 'remove_recent_comments_style',
195
- 'title' => __('Remove .recentcomments styles', 'clearfy'),
196
- 'layout' => ['hint-type' => 'icon'],
197
- 'hint' => __('WP by default for the widget "recent comments" prescribes in the code styles that are almost impossible to change, because to them apply! important.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes .recentcomments styles from head section.', 'clearfy'),
198
- 'default' => true
199
- ];
200
-
201
- return apply_filters('wclearfy/setup_wizard/speed_optimize_step/form_options', $options);
202
- }
203
-
204
- /**
205
- * Adds an html warning notification html markup.
206
- *
207
- * @param int $selector_id
208
- */
209
- public function optimizationDangerMessage($selector_id = 1)
210
- {
211
- ?>
212
- <div class="form-group">
213
- <label class="col-sm-4 control-label"></label>
214
- <div class="control-group col-sm-8">
215
- <div id="wbcr-mac-optimization-danger-message-<?= $selector_id ?>" class="wbcr-clearfy-danger-message">
216
- <?php _e('<b>This could break things!</b><br>If you notice any errors on your website after having activated this setting, just deactivate it again, and your site will be back to normal.', 'clearfy') ?>
217
- </div>
218
- </div>
219
- </div>
220
- <?php
221
- }
222
-
223
- public function optimizationDangerMessage1()
224
- {
225
- $this->optimizationDangerMessage(1);
226
- }
227
-
228
- public function optimizationDangerMessage2()
229
- {
230
- $this->optimizationDangerMessage(2);
231
- }
232
-
233
- public function optimizationDangerMessage3()
234
- {
235
- $this->optimizationDangerMessage(3);
236
- }
237
-
238
- public function optimizationDangerMessage4()
239
- {
240
- $this->optimizationDangerMessage(4);
241
- }
242
-
243
- protected function continue_step($skip = false)
244
- {
245
- do_action('wclearfy/setup_wizard/speed_optimize_step/continue_step');
246
-
247
- parent::continue_step();
248
- }
249
-
250
  }
1
+ <?php
2
+
3
+ namespace WBCR\Clearfy\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ class Step_Setting_Speed_Optimize extends \WBCR\FactoryClearfy235\Pages\Step_Form {
12
+
13
+ protected $prev_id = 'step2';
14
+ protected $id = 'step3';
15
+ protected $next_id = 'step4';
16
+
17
+ public function get_title()
18
+ {
19
+ return "Optimize speed";
20
+ }
21
+
22
+ public function get_form_description()
23
+ {
24
+ return 'Caching allows your WordPress site to skip a lot of steps. Instead of going through the whole page generation process every time, your caching plugin makes a copy of the page
25
+ after the first load, and then serves that cached version to every subsequent user.';
26
+ }
27
+
28
+ public function get_form_options()
29
+ {
30
+ /*$options[] = [
31
+ 'type' => 'checkbox',
32
+ 'way' => 'buttons',
33
+ 'name' => 'enable_cache_plugin',
34
+ 'title' => __('Enable Caching', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
35
+ 'layout' => ['hint-type' => 'icon'],
36
+ 'hint' => __('Enable simple caching. If you require expert caching, go to the advanced settings of the wp super cache plugin.', 'clearfy'),
37
+ 'default' => true
38
+ ];
39
+
40
+ $options[] = [
41
+ 'type' => 'checkbox',
42
+ 'way' => 'buttons',
43
+ 'name' => 'disable_caching_for_logged_visitors',
44
+ 'title' => __('Disable caching for logged in visitors', 'clearfy') . ' <span class="wbcr-clearfy-recomended-text">(' . __('Recommended', 'clearfy') . ')</span>',
45
+ 'layout' => ['hint-type' => 'icon'],
46
+ 'hint' => __('Caching won\'t work for authenticated users.', 'clearfy'),
47
+ 'default' => true
48
+ ];*/
49
+
50
+ $options[] = [
51
+ 'type' => 'checkbox',
52
+ 'way' => 'buttons',
53
+ 'name' => 'js_optimize',
54
+ 'title' => __('Optimize JavaScript Code?', 'minify-and-combine'),
55
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
56
+ //'hint' => __('Optimize JavaScript Code.', 'minify-and-combine'),
57
+ 'default' => true,
58
+ 'eventsOn' => [
59
+ 'show' => '#wbcr-mac-optimize-js-fields,#wbcr-mac-optimization-danger-message-1'
60
+ ],
61
+ 'eventsOff' => [
62
+ 'hide' => '#wbcr-mac-optimize-js-fields,#wbcr-mac-optimization-danger-message-1'
63
+ ]
64
+ ];
65
+
66
+ /*$options[] = array(
67
+ 'type' => 'html',
68
+ 'html' => array( $this, 'optimizationDangerMessage1' )
69
+ );*/
70
+
71
+ $js_options[] = [
72
+ 'type' => 'checkbox',
73
+ 'way' => 'buttons',
74
+ 'name' => 'js_aggregate',
75
+ 'title' => __('Aggregate JS-files?', 'minify-and-combine'),
76
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
77
+ 'hint' => __('Aggregate all linked JS-files to have them loaded non-render blocking? If this option is off, the individual JS-files will remain in place but will be minified.', 'minify-and-combine'),
78
+ 'default' => false,
79
+ 'eventsOn' => [
80
+ 'show' => '#wbcr-mac-optimization-danger-message-2'
81
+ ],
82
+ 'eventsOff' => [
83
+ 'hide' => '#wbcr-mac-optimization-danger-message-2'
84
+ ]
85
+ ];
86
+
87
+ $js_options[] = [
88
+ 'type' => 'html',
89
+ 'html' => [$this, 'optimizationDangerMessage2']
90
+ ];
91
+
92
+ $options[] = [
93
+ 'type' => 'div',
94
+ 'id' => 'wbcr-mac-optimize-js-fields',
95
+ 'items' => $js_options
96
+ ];
97
+
98
+ $options[] = [
99
+ 'type' => 'checkbox',
100
+ 'way' => 'buttons',
101
+ 'name' => 'css_optimize',
102
+ 'title' => __('Optimize CSS Code?', 'minify-and-combine'),
103
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
104
+ 'hint' => __('If your scripts break because of a JS-error, you might want to try this.', 'minify-and-combine'),
105
+ 'default' => true,
106
+ 'eventsOn' => [
107
+ 'show' => '#wbcr-clr-optimize-css-fields'
108
+ ],
109
+ 'eventsOff' => [
110
+ 'hide' => '#wbcr-clr-optimize-css-fields'
111
+ ]
112
+ ];
113
+
114
+ $css_options[] = [
115
+ 'type' => 'checkbox',
116
+ 'way' => 'buttons',
117
+ 'name' => 'css_aggregate',
118
+ 'title' => __('Aggregate CSS-files?', 'minify-and-combine'),
119
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
120
+ 'hint' => __('Aggregate all linked CSS-files? If this option is off, the individual CSS-files will remain in place but will be minified.', 'minify-and-combine'),
121
+ 'default' => false,
122
+ 'eventsOn' => [
123
+ 'show' => '#wbcr-mac-optimization-danger-message-4'
124
+ ],
125
+ 'eventsOff' => [
126
+ 'hide' => '#wbcr-mac-optimization-danger-message-4'
127
+ ]
128
+ ];
129
+
130
+ $css_options[] = [
131
+ 'type' => 'html',
132
+ 'html' => [$this, 'optimizationDangerMessage4']
133
+ ];
134
+
135
+ $options[] = [
136
+ 'type' => 'div',
137
+ 'id' => 'wbcr-clr-optimize-css-fields',
138
+ 'items' => $css_options
139
+ ];
140
+
141
+ $options[] = [
142
+ 'type' => 'checkbox',
143
+ 'way' => 'buttons',
144
+ 'name' => 'disable_emoji',
145
+ 'title' => __('Disable Emojis', 'clearfy'),
146
+ 'layout' => ['hint-type' => 'icon'],
147
+ 'hint' => __('Emojis are fun and all, but if you are aren’t using them they actually load a JavaScript file (wp-emoji-release.min.js) on every page of your website. For a lot of businesses, this is not needed and simply adds load time to your site. So we recommend disabling this.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes WordPress Emojis JavaScript file (wp-emoji-release.min.js).', 'clearfy'),
148
+ 'default' => true
149
+ ];
150
+
151
+ $options[] = [
152
+ 'type' => 'checkbox',
153
+ 'way' => 'buttons',
154
+ 'name' => 'remove_rsd_link',
155
+ 'title' => __('Remove RSD Link', 'clearfy'),
156
+ 'layout' => ['hint-type' => 'icon'],
157
+ 'hint' => __('The above link is used by blog clients. If you edit your site from your browser then you don’t need this. It is also used by some 3rd party applications that utilize XML-RPC requests. In most cases, this is just unnecessary code.', 'clearfy') . '<br><code>link rel="EditURI" type="application/rsd+xml" title="RSD"</code><br><br><b>Clearfy: </b>' . __('Remove RSD (Real Simple Discovery) link tag.', 'clearfy'),
158
+ 'default' => true
159
+ ];
160
+
161
+ $options[] = [
162
+ 'type' => 'checkbox',
163
+ 'way' => 'buttons',
164
+ 'name' => 'remove_wlw_link',
165
+ 'title' => __('Remove wlwmanifest Link', 'clearfy'),
166
+ 'layout' => ['hint-type' => 'icon'],
167
+ 'hint' => '<code>link rel="wlwmanifest" type="application/wlwmanifest+xml"</code><br>' . __('This link is actually used by Windows Live Writer. If you don’t know use Windows Live Writer, which we are guessing you don’t, this is just unnecessary code.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Remove wlwmanifest (Windows Live Writer) link tag.', 'clearfy'),
168
+ 'default' => true
169
+ ];
170
+
171
+ $options[] = [
172
+ 'type' => 'checkbox',
173
+ 'way' => 'buttons',
174
+ 'name' => 'remove_shortlink_link',
175
+ 'title' => __('Remove Shortlink', 'clearfy'),
176
+ 'layout' => ['hint-type' => 'icon'],
177
+ 'hint' => sprintf(__('By default, the following tag shows up in every WordPress install. %s This is used for a shortlink to your pages and posts. However, if you are already using pretty permalinks, such as domain.com/post, then there is no reason to keep this, it is just unnecessary code.', 'clearfy'), '<br><code>link rel="shortlink" href="https://domain.com?p=712"</code><br>') . '<br><br><b>Clearfy: </b>' . __('Remove Shortlink link tag.', 'clearfy'),
178
+ 'default' => true
179
+ ];
180
+
181
+ $options[] = [
182
+ 'type' => 'checkbox',
183
+ 'way' => 'buttons',
184
+ 'name' => 'remove_adjacent_posts_link',
185
+ 'title' => __('Remove links to previous, next post', 'clearfy'),
186
+ 'layout' => ['hint-type' => 'icon'],
187
+ 'hint' => __('If you use Wordpress as a CMS, then you can delete these links, they can only come in handy for a blog.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Remove the previous and next post links within the wp_head of your wordpress theme.', 'clearfy'),
188
+ 'default' => true
189
+ ];
190
+
191
+ $options[] = [
192
+ 'type' => 'checkbox',
193
+ 'way' => 'buttons',
194
+ 'name' => 'remove_recent_comments_style',
195
+ 'title' => __('Remove .recentcomments styles', 'clearfy'),
196
+ 'layout' => ['hint-type' => 'icon'],
197
+ 'hint' => __('WP by default for the widget "recent comments" prescribes in the code styles that are almost impossible to change, because to them apply! important.', 'clearfy') . '<br><br><b>Clearfy: </b>' . __('Removes .recentcomments styles from head section.', 'clearfy'),
198
+ 'default' => true
199
+ ];
200
+
201
+ return apply_filters('wclearfy/setup_wizard/speed_optimize_step/form_options', $options);
202
+ }
203
+
204
+ /**
205
+ * Adds an html warning notification html markup.
206
+ *
207
+ * @param int $selector_id
208
+ */
209
+ public function optimizationDangerMessage($selector_id = 1)
210
+ {
211
+ ?>
212
+ <div class="form-group">
213
+ <label class="col-sm-4 control-label"></label>
214
+ <div class="control-group col-sm-8">
215
+ <div id="wbcr-mac-optimization-danger-message-<?= $selector_id ?>" class="wbcr-clearfy-danger-message">
216
+ <?php _e('<b>This could break things!</b><br>If you notice any errors on your website after having activated this setting, just deactivate it again, and your site will be back to normal.', 'clearfy') ?>
217
+ </div>
218
+ </div>
219
+ </div>
220
+ <?php
221
+ }
222
+
223
+ public function optimizationDangerMessage1()
224
+ {
225
+ $this->optimizationDangerMessage(1);
226
+ }
227
+
228
+ public function optimizationDangerMessage2()
229
+ {
230
+ $this->optimizationDangerMessage(2);
231
+ }
232
+
233
+ public function optimizationDangerMessage3()
234
+ {
235
+ $this->optimizationDangerMessage(3);
236
+ }
237
+
238
+ public function optimizationDangerMessage4()
239
+ {
240
+ $this->optimizationDangerMessage(4);
241
+ }
242
+
243
+ protected function continue_step($skip = false)
244
+ {
245
+ do_action('wclearfy/setup_wizard/speed_optimize_step/continue_step');
246
+
247
+ parent::continue_step();
248
+ }
249
+
250
  }
assets/css/admin-bar.css CHANGED
@@ -1,48 +1,48 @@
1
- /**
2
- * Admin bar menu
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright Webcraftic 01.07.2018
5
- */
6
- #wp-admin-bar-clearfy-menu {
7
- background: #443a54 !important;
8
- }
9
- #wp-admin-bar-clearfy-menu::after {
10
- clear: both;
11
- }
12
- #wp-admin-bar-clearfy-menu .dashicons {
13
- font: 400 20px/1 dashicons;
14
- }
15
- #wp-admin-bar-clearfy-menu #wp-admin-bar-clearfy-menu-default {
16
- background: #565656 !important;
17
- }
18
- #wp-admin-bar-clearfy-menu .wbcr-clearfy-admin-bar-menu-icon {
19
- display: inline-block !important;
20
- width: 20px;
21
- height: 25px;
22
- margin-top: 6px;
23
- margin-right: 5px;
24
- float: left;
25
- background: url(../img/webcraftic-plugin-icon.png) 0 0 no-repeat;
26
- }
27
- #wp-admin-bar-clearfy-menu .wbcr-clearfy-admin-bar-menu-title {
28
- display: inline-block !important;
29
- overflow: hidden;
30
- }
31
- #wp-admin-bar-clearfy-menu .wbcr-clearfy-admin-bar-menu-title .dashicons {
32
- font-size: 20px !important;
33
- padding: 6px 0 !important;
34
- }
35
- #wp-admin-bar-clearfy-menu .ab-item .dashicons {
36
- font-size: 14px;
37
- padding: 6px 0;
38
- }
39
- #wp-admin-bar-clearfy-menu .ab-item .dashicons.dashicons-heart {
40
- color: #fb7976;
41
- }
42
- #wp-admin-bar-clearfy-menu .ab-item .dashicons.dashicons-sos {
43
- color: #c6e9f9;
44
- }
45
- #wp-admin-bar-clearfy-menu .ab-item .dashicons.dashicons-star-filled {
46
- color: #ffbe00;
47
- }
48
  /*# sourceMappingURL=admin-bar.css.map */
1
+ /**
2
+ * Admin bar menu
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright Webcraftic 01.07.2018
5
+ */
6
+ #wp-admin-bar-clearfy-menu {
7
+ background: #443a54 !important;
8
+ }
9
+ #wp-admin-bar-clearfy-menu::after {
10
+ clear: both;
11
+ }
12
+ #wp-admin-bar-clearfy-menu .dashicons {
13
+ font: 400 20px/1 dashicons;
14
+ }
15
+ #wp-admin-bar-clearfy-menu #wp-admin-bar-clearfy-menu-default {
16
+ background: #565656 !important;
17
+ }
18
+ #wp-admin-bar-clearfy-menu .wbcr-clearfy-admin-bar-menu-icon {
19
+ display: inline-block !important;
20
+ width: 20px;
21
+ height: 25px;
22
+ margin-top: 6px;
23
+ margin-right: 5px;
24
+ float: left;
25
+ background: url(../img/webcraftic-plugin-icon.png) 0 0 no-repeat;
26
+ }
27
+ #wp-admin-bar-clearfy-menu .wbcr-clearfy-admin-bar-menu-title {
28
+ display: inline-block !important;
29
+ overflow: hidden;
30
+ }
31
+ #wp-admin-bar-clearfy-menu .wbcr-clearfy-admin-bar-menu-title .dashicons {
32
+ font-size: 20px !important;
33
+ padding: 6px 0 !important;
34
+ }
35
+ #wp-admin-bar-clearfy-menu .ab-item .dashicons {
36
+ font-size: 14px;
37
+ padding: 6px 0;
38
+ }
39
+ #wp-admin-bar-clearfy-menu .ab-item .dashicons.dashicons-heart {
40
+ color: #fb7976;
41
+ }
42
+ #wp-admin-bar-clearfy-menu .ab-item .dashicons.dashicons-sos {
43
+ color: #c6e9f9;
44
+ }
45
+ #wp-admin-bar-clearfy-menu .ab-item .dashicons.dashicons-star-filled {
46
+ color: #ffbe00;
47
+ }
48
  /*# sourceMappingURL=admin-bar.css.map */
assets/css/admin-bar.less CHANGED
@@ -1,60 +1,60 @@
1
- /**
2
- * Admin bar menu
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright Webcraftic 01.07.2018
5
- */
6
-
7
- #wp-admin-bar-clearfy-menu {
8
- &::after {
9
- clear: both;
10
- }
11
-
12
- .dashicons {
13
- font: 400 20px/1 dashicons;
14
- }
15
-
16
- background: #443a54 !important;
17
-
18
- #wp-admin-bar-clearfy-menu-default {
19
- background: #565656 !important;
20
- }
21
-
22
- .wbcr-clearfy-admin-bar-menu-icon {
23
- display: inline-block !important;
24
- width: 20px;
25
- height: 25px;
26
- margin-top: 6px;
27
- margin-right: 5px;
28
- float: left;
29
- background: url(../img/webcraftic-plugin-icon.png) 0 0 no-repeat;
30
- }
31
-
32
- .wbcr-clearfy-admin-bar-menu-title {
33
- display: inline-block !important;
34
- overflow: hidden;
35
-
36
- .dashicons {
37
- font-size: 20px !important;
38
- padding: 6px 0 !important;
39
- }
40
- }
41
-
42
- .ab-item {
43
- .dashicons {
44
- font-size: 14px;
45
- padding: 6px 0;
46
-
47
- &.dashicons-heart {
48
- color: #fb7976;
49
- }
50
-
51
- &.dashicons-sos {
52
- color: #c6e9f9;
53
- }
54
-
55
- &.dashicons-star-filled {
56
- color: #ffbe00;
57
- }
58
- }
59
- }
60
- }
1
+ /**
2
+ * Admin bar menu
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright Webcraftic 01.07.2018
5
+ */
6
+
7
+ #wp-admin-bar-clearfy-menu {
8
+ &::after {
9
+ clear: both;
10
+ }
11
+
12
+ .dashicons {
13
+ font: 400 20px/1 dashicons;
14
+ }
15
+
16
+ background: #443a54 !important;
17
+
18
+ #wp-admin-bar-clearfy-menu-default {
19
+ background: #565656 !important;
20
+ }
21
+
22
+ .wbcr-clearfy-admin-bar-menu-icon {
23
+ display: inline-block !important;
24
+ width: 20px;
25
+ height: 25px;
26
+ margin-top: 6px;
27
+ margin-right: 5px;
28
+ float: left;
29
+ background: url(../img/webcraftic-plugin-icon.png) 0 0 no-repeat;
30
+ }
31
+
32
+ .wbcr-clearfy-admin-bar-menu-title {
33
+ display: inline-block !important;
34
+ overflow: hidden;
35
+
36
+ .dashicons {
37
+ font-size: 20px !important;
38
+ padding: 6px 0 !important;
39
+ }
40
+ }
41
+
42
+ .ab-item {
43
+ .dashicons {
44
+ font-size: 14px;
45
+ padding: 6px 0;
46
+
47
+ &.dashicons-heart {
48
+ color: #fb7976;
49
+ }
50
+
51
+ &.dashicons-sos {
52
+ color: #c6e9f9;
53
+ }
54
+
55
+ &.dashicons-star-filled {
56
+ color: #ffbe00;
57
+ }
58
+ }
59
+ }
60
+ }
assets/css/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
assets/img/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
assets/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
assets/js/css-lazy-load.js CHANGED
@@ -1,101 +1,101 @@
1
- /*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
2
-
3
- // https://github.com/filamentgroup/loadCSS/blob/master/src/loadCSS.js
4
-
5
- (function(w) {
6
- "use strict";
7
- /* exported loadCSS */
8
- var loadCSS = function(href, before, media) {
9
- // Arguments explained:
10
- // `href` [REQUIRED] is the URL for your CSS file.
11
- // `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet <link>
12
- // before By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM.
13
- // However, you might desire a more specific location in your document. `media` [OPTIONAL] is the media type or
14
- // query of the stylesheet. By default it will be 'all'
15
- var doc = w.document;
16
- var ss = doc.createElement("link");
17
- var ref;
18
- if( before ) {
19
- ref = before;
20
- }
21
- else {
22
- var refs = ( doc.body || doc.getElementsByTagName("head")[0] ).childNodes;
23
- ref = refs[refs.length - 1];
24
- }
25
-
26
- var sheets = doc.styleSheets;
27
- ss.rel = "stylesheet";
28
- ss.href = href;
29
- // temporarily set media to something inapplicable to ensure it'll fetch without blocking render
30
- ss.media = "only x";
31
-
32
- // wait until body is defined before injecting link. This ensures a non-blocking load in IE11.
33
- function ready(cb) {
34
- if( doc.body ) {
35
- return cb();
36
- }
37
- setTimeout(function() {
38
- ready(cb);
39
- });
40
- }
41
-
42
- // Inject link
43
- // Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the
44
- // argument to "after" in a later release and standardize on ref.nextSibling for all refs Note: `insertBefore`
45
- // is used instead of `appendChild`, for safety re:
46
- // http://www.paulirish.com/2011/surefire-dom-element-insertion/
47
- ready(function() {
48
- ref.parentNode.insertBefore(ss, ( before ? ref : ref.nextSibling ));
49
- });
50
- // A method (exposed on return object for external use) that mimics onload by polling document.styleSheets
51
- // until it includes the new sheet.
52
- var onloadcssdefined = function(cb) {
53
- var resolvedHref = ss.href;
54
- var i = sheets.length;
55
- while( i-- ) {
56
- if( sheets[i].href === resolvedHref ) {
57
- return cb();
58
- }
59
- }
60
- setTimeout(function() {
61
- onloadcssdefined(cb);
62
- });
63
- };
64
-
65
- function loadCB() {
66
- if( ss.addEventListener ) {
67
- ss.removeEventListener("load", loadCB);
68
- }
69
- ss.media = media || "all";
70
- }
71
-
72
- // once loaded, set link's media back to `all` so that the stylesheet applies once it loads
73
- if( ss.addEventListener ) {
74
- ss.addEventListener("load", loadCB);
75
- }
76
- ss.onloadcssdefined = onloadcssdefined;
77
- onloadcssdefined(loadCB);
78
- return ss;
79
- };
80
- // commonjs
81
- if( typeof exports !== "undefined" ) {
82
- exports.loadCSS = loadCSS;
83
- }
84
- else {
85
- w.loadCSS = loadCSS;
86
- }
87
- }(typeof global !== "undefined" ? global : this));
88
-
89
- /**/
90
- jQuery(document).ready(function($) {
91
- "use strict";
92
-
93
- if( 'undefined' !== typeof wbcr_clearfy_async_links && Object.keys(wbcr_clearfy_async_links).length ) {
94
- var key;
95
- for( key in wbcr_clearfy_async_links ) {
96
- if( wbcr_clearfy_async_links.hasOwnProperty(key) ) {
97
- loadCSS(wbcr_clearfy_async_links[key]);
98
- }
99
- }
100
- }
101
  });
1
+ /*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
2
+
3
+ // https://github.com/filamentgroup/loadCSS/blob/master/src/loadCSS.js
4
+
5
+ (function(w) {
6
+ "use strict";
7
+ /* exported loadCSS */
8
+ var loadCSS = function(href, before, media) {
9
+ // Arguments explained:
10
+ // `href` [REQUIRED] is the URL for your CSS file.
11
+ // `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet <link>
12
+ // before By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM.
13
+ // However, you might desire a more specific location in your document. `media` [OPTIONAL] is the media type or
14
+ // query of the stylesheet. By default it will be 'all'
15
+ var doc = w.document;
16
+ var ss = doc.createElement("link");
17
+ var ref;
18
+ if( before ) {
19
+ ref = before;
20
+ }
21
+ else {
22
+ var refs = ( doc.body || doc.getElementsByTagName("head")[0] ).childNodes;
23
+ ref = refs[refs.length - 1];
24
+ }
25
+
26
+ var sheets = doc.styleSheets;
27
+ ss.rel = "stylesheet";
28
+ ss.href = href;
29
+ // temporarily set media to something inapplicable to ensure it'll fetch without blocking render
30
+ ss.media = "only x";
31
+
32
+ // wait until body is defined before injecting link. This ensures a non-blocking load in IE11.
33
+ function ready(cb) {
34
+ if( doc.body ) {
35
+ return cb();
36
+ }
37
+ setTimeout(function() {
38
+ ready(cb);
39
+ });
40
+ }
41
+
42
+ // Inject link
43
+ // Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the
44
+ // argument to "after" in a later release and standardize on ref.nextSibling for all refs Note: `insertBefore`
45
+ // is used instead of `appendChild`, for safety re:
46
+ // http://www.paulirish.com/2011/surefire-dom-element-insertion/
47
+ ready(function() {
48
+ ref.parentNode.insertBefore(ss, ( before ? ref : ref.nextSibling ));
49
+ });
50
+ // A method (exposed on return object for external use) that mimics onload by polling document.styleSheets
51
+ // until it includes the new sheet.
52
+ var onloadcssdefined = function(cb) {
53
+ var resolvedHref = ss.href;
54
+ var i = sheets.length;
55
+ while( i-- ) {
56
+ if( sheets[i].href === resolvedHref ) {
57
+ return cb();
58
+ }
59
+ }
60
+ setTimeout(function() {
61
+ onloadcssdefined(cb);
62
+ });
63
+ };
64
+
65
+ function loadCB() {
66
+ if( ss.addEventListener ) {
67
+ ss.removeEventListener("load", loadCB);
68
+ }
69
+ ss.media = media || "all";
70
+ }
71
+
72
+ // once loaded, set link's media back to `all` so that the stylesheet applies once it loads
73
+ if( ss.addEventListener ) {
74
+ ss.addEventListener("load", loadCB);
75
+ }
76
+ ss.onloadcssdefined = onloadcssdefined;
77
+ onloadcssdefined(loadCB);
78
+ return ss;
79
+ };
80
+ // commonjs
81
+ if( typeof exports !== "undefined" ) {
82
+ exports.loadCSS = loadCSS;
83
+ }
84
+ else {
85
+ w.loadCSS = loadCSS;
86
+ }
87
+ }(typeof global !== "undefined" ? global : this));
88
+
89
+ /**/
90
+ jQuery(document).ready(function($) {
91
+ "use strict";
92
+
93
+ if( 'undefined' !== typeof wbcr_clearfy_async_links && Object.keys(wbcr_clearfy_async_links).length ) {
94
+ var key;
95
+ for( key in wbcr_clearfy_async_links ) {
96
+ if( wbcr_clearfy_async_links.hasOwnProperty(key) ) {
97
+ loadCSS(wbcr_clearfy_async_links[key]);
98
+ }
99
+ }
100
+ }
101
  });
assets/js/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
clearfy.php CHANGED
@@ -1,192 +1,204 @@
1
- <?php
2
- /**
3
- * Plugin Name: Webcraftic Clearfy – WordPress optimization plugin
4
- * Plugin URI: https://wordpress.org/plugins/clearfy/
5
- * Description: Disables unused Wordpress features, improves performance and increases SEO rankings, using Clearfy, which makes WordPress very easy.
6
- * Author: Webcraftic <wordpress.webraftic@gmail.com>
7
- * Version: 1.8.2
8
- * Text Domain: clearfy
9
- * Domain Path: /languages/
10
- * Author URI: http://clearfy.pro
11
- * Framework Version: FACTORY_441_VERSION
12
- */
13
-
14
- // Exit if accessed directly
15
- if( !defined('ABSPATH') ) {
16
- exit;
17
- }
18
-
19
- // @formatter:off
20
- /**
21
- * -----------------------------------------------------------------------------
22
- * CHECK REQUIREMENTS
23
- * Check compatibility with php and wp version of the user's site. As well as checking
24
- * compatibility with other plugins from Webcraftic.
25
- * -----------------------------------------------------------------------------
26
- */
27
-
28
- require_once(dirname(__FILE__) . '/libs/factory/core/includes/class-factory-requirements.php');
29
-
30
- // @formatter:off
31
- $plugin_info = array(
32
- 'prefix' => 'wbcr_clearfy_',
33
- 'plugin_name' => 'wbcr_clearfy',
34
- 'plugin_title' => __('Clearfy', 'clearfy'),
35
-
36
- // PLUGIN SUPPORT
37
- 'support_details' => array(
38
- 'url' => 'http://clearfy.pro',
39
- 'pages_map' => array(
40
- 'features' => 'premium-features', // {site}/premium-features
41
- 'pricing' => 'pricing', // {site}/prices
42
- 'support' => 'support', // {site}/support
43
- 'docs' => 'docs' // {site}/docs
44
- )
45
- ),
46
- //todo: for compatibility with Robin image optimizer
47
- 'freemius_plugin_id' => '2315',
48
- 'freemius_public_key' => 'pk_70e226af07d37d2b9a69720e0952c',
49
-
50
- // PLUGIN PREMIUM SETTINGS
51
- 'has_premium' => true,
52
- 'license_settings' => array(
53
- 'provider' => 'freemius',
54
- 'slug' => 'clearfy_package',
55
- 'plugin_id' => '2315',
56
- 'public_key' => 'pk_70e226af07d37d2b9a69720e0952c',
57
- 'price' => 29,
58
- 'has_updates' => true,
59
- 'updates_settings' => array(
60
- 'maybe_rollback' => true,
61
- 'rollback_settings' => array(
62
- 'prev_stable_version' => '0.0.0'
63
- )
64
- )
65
- ),
66
-
67
- // PLUGIN SUBSCRIBE FORM
68
- 'subscribe_widget' => true,
69
- 'subscribe_settings' => ['group_id' => '105407119'],
70
-
71
- // PLUGIN ADVERTS
72
- 'render_adverts' => true,
73
- 'adverts_settings' => array(
74
- 'dashboard_widget' => true, // show dashboard widget (default: false)
75
- 'right_sidebar' => true, // show adverts sidebar (default: false)
76
- 'notice' => true, // show notice message (default: false)
77
- ),
78
- // FRAMEWORK MODULES
79
- 'load_factory_modules' => array(
80
- array('libs/factory/bootstrap', 'factory_bootstrap_441', 'admin'),
81
- array('libs/factory/forms', 'factory_forms_438', 'admin'),
82
- array('libs/factory/pages', 'factory_pages_440', 'admin'),
83
- array('libs/factory/clearfy', 'factory_clearfy_232', 'all'),
84
- array('libs/factory/freemius', 'factory_freemius_128', 'all'),
85
- array('libs/factory/adverts', 'factory_adverts_119', 'admin')
86
- ),
87
- 'load_plugin_components' => array(
88
- 'disable_notices' => array(
89
- 'autoload' => 'components/disable-admin-notices/clearfy.php',
90
- 'plugin_prefix' => 'WDN_'
91
- ),
92
- 'cyrlitera' => array(
93
- 'autoload' => 'components/cyrlitera/clearfy.php',
94
- 'plugin_prefix' => 'WCTR_'
95
- ),
96
- 'updates_manager' => array(
97
- 'autoload' => 'components/updates-manager/clearfy.php',
98
- 'plugin_prefix' => 'WUPM_'
99
- ),
100
- 'comments_tools' => array(
101
- 'autoload' => 'components/comments-plus/clearfy.php',
102
- 'plugin_prefix' => 'WCM_'
103
- ),
104
- 'ga_cache' => array(
105
- 'autoload' => 'components/ga-cache/clearfy.php',
106
- 'plugin_prefix' => 'WGA_'
107
- ),
108
- 'assets_manager' => array(
109
- 'autoload' => 'components/assets-manager/clearfy.php',
110
- 'plugin_prefix' => 'WGZ_'
111
- ),
112
- 'minify_and_combine' => array(
113
- 'autoload' => 'components/minify-and-combine/clearfy.php',
114
- 'plugin_prefix' => 'WMAC_'
115
- ),
116
- 'html_minify' => array(
117
- 'autoload' => 'components/html-minify/clearfy.php',
118
- 'plugin_prefix' => 'WHTM_'
119
- ),
120
- )
121
- );
122
-
123
-
124
-
125
- $clearfy_compatibility = new Wbcr_Factory441_Requirements(__FILE__, array_merge($plugin_info, array(
126
- 'plugin_already_activate' => defined('WCL_PLUGIN_ACTIVE'),
127
- 'required_php_version' => '5.6',
128
- 'required_wp_version' => '4.9.0',
129
- 'required_clearfy_check_component' => false
130
- )));
131
-
132
- /**
133
- * If the plugin is compatible, then it will continue its work, otherwise it will be stopped,
134
- * and the user will throw a warning.
135
- */
136
- if( !$clearfy_compatibility->check() ) {
137
- return;
138
- }
139
-
140
- /**
141
- * -----------------------------------------------------------------------------
142
- * CONSTANTS
143
- * Install frequently used constants and constants for debugging, which will be
144
- * removed after compiling the plugin.
145
- * -----------------------------------------------------------------------------
146
- */
147
-
148
- // This plugin is activated
149
- define('WCL_PLUGIN_ACTIVE', true);
150
-
151
- // For for compatibility with old plugins
152
- define('WBCR_CLEARFY_PLUGIN_ACTIVE', true);
153
-
154
- // Plugin version
155
- define('WCL_PLUGIN_VERSION', $clearfy_compatibility->get_plugin_version());
156
- define('WCL_FRAMEWORK_VER', 'FACTORY_441_VERSION');
157
-
158
- define('WCL_PLUGIN_DIR', dirname(__FILE__));
159
- define('WCL_PLUGIN_BASE', plugin_basename(__FILE__));
160
- define('WCL_PLUGIN_URL', plugins_url(null, __FILE__));
161
-
162
-
163
-
164
- /**
165
- * -----------------------------------------------------------------------------
166
- * PLUGIN INIT
167
- * -----------------------------------------------------------------------------
168
- */
169
- try {
170
- require_once(WCL_PLUGIN_DIR . '/includes/helpers.php');
171
-
172
- // creating a plugin via the factory
173
- require_once(WCL_PLUGIN_DIR . '/libs/factory/core/boot.php');
174
- require_once(WCL_PLUGIN_DIR . '/includes/class.plugin.php');
175
-
176
- new WCL_Plugin(__FILE__, array_merge($plugin_info, array(
177
- 'plugin_version' => WCL_PLUGIN_VERSION,
178
- 'plugin_text_domain' => $clearfy_compatibility->get_text_domain(),
179
- )));
180
- } catch( Exception $e ) {
181
- // Plugin wasn't initialized due to an error
182
- define('WRIO_PLUGIN_THROW_ERROR', true);
183
-
184
- $clearfy_plugin_error_func = function () use ($e) {
185
- $error = sprintf("The %s plugin has stopped. <b>Error:</b> %s Code: %s", 'Clearfy', $e->getMessage(), $e->getCode());
186
- echo '<div class="notice notice-error"><p>' . $error . '</p></div>';
187
- };
188
-
189
- add_action('admin_notices', $clearfy_plugin_error_func);
190
- add_action('network_admin_notices', $clearfy_plugin_error_func);
191
- }
192
- // @formatter:on
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin Name: Webcraftic Clearfy – WordPress optimization plugin
4
+ * Plugin URI: https://clearfy.pro
5
+ * Description: Disables unused Wordpress features, improves performance and increases SEO rankings, using Clearfy, which makes WordPress very easy.
6
+ * Author: Creative Motion <info@cm-wp.com>
7
+ * Version: 1.8.5
8
+ * Text Domain: clearfy
9
+ * Domain Path: /languages/
10
+ * Author URI: https://cm-wp.com
11
+ * Framework Version: FACTORY_444_VERSION
12
+ */
13
+
14
+ // Exit if accessed directly
15
+ if( !defined('ABSPATH') ) {
16
+ exit;
17
+ }
18
+
19
+ /**
20
+ * -----------------------------------------------------------------------------
21
+ * CHECK REQUIREMENTS
22
+ * Check compatibility with php and wp version of the user's site. As well as checking
23
+ * compatibility with other plugins from Webcraftic.
24
+ * -----------------------------------------------------------------------------
25
+ */
26
+
27
+ require_once(dirname(__FILE__) . '/libs/factory/core/includes/class-factory-requirements.php');
28
+
29
+ $plugin_info = array(
30
+ 'prefix' => 'wbcr_clearfy_',
31
+ 'plugin_name' => 'wbcr_clearfy',
32
+ 'plugin_title' => __('Clearfy', 'clearfy'),
33
+
34
+ // PLUGIN SUPPORT
35
+ 'support_details' => array(
36
+ 'url' => 'http://clearfy.pro',
37
+ 'pages_map' => array(
38
+ 'features' => 'premium-features', // {site}/premium-features
39
+ 'pricing' => 'pricing', // {site}/prices
40
+ 'support' => 'support', // {site}/support
41
+ 'docs' => 'docs' // {site}/docs
42
+ )
43
+ ),
44
+ //todo: for compatibility with Robin image optimizer
45
+ 'freemius_plugin_id' => '2315',
46
+ 'freemius_public_key' => 'pk_70e226af07d37d2b9a69720e0952c',
47
+
48
+ 'has_updates' => false,
49
+ 'updates_settings' => [
50
+ 'repository' => 'github',
51
+ 'alternate_updates_mode' => true,
52
+ 'github_username' => 'alexkovalevv', // обязательно, имя пользователя репозитория в Github
53
+ 'github_authorize_token' => '', // необязательно, только если репозиторий приватный
54
+ //'github_repository' => '', // необязательно, если не заполнено берется из slug
55
+ 'slug' => 'clearfy', // обязательно, slug плагина
56
+ 'maybe_rollback' => false,
57
+ 'rollback_settings' => [
58
+ 'prev_stable_version' => '0.0.0'
59
+ ]
60
+ ],
61
+
62
+ // PLUGIN PREMIUM SETTINGS
63
+ 'has_premium' => true,
64
+ 'license_settings' => array(
65
+ 'provider' => 'freemius',
66
+ 'slug' => 'clearfy_package',
67
+ 'plugin_id' => '2315',
68
+ 'public_key' => 'pk_70e226af07d37d2b9a69720e0952c',
69
+ 'price' => 29,
70
+ 'has_updates' => true,
71
+ 'updates_settings' => array(
72
+ 'maybe_rollback' => true,
73
+ 'rollback_settings' => array(
74
+ 'prev_stable_version' => '0.0.0'
75
+ )
76
+ )
77
+ ),
78
+
79
+ // PLUGIN SUBSCRIBE FORM
80
+ 'subscribe_widget' => true,
81
+ 'subscribe_settings' => ['group_id' => '105407119'],
82
+
83
+ // PLUGIN ADVERTS
84
+ 'render_adverts' => true,
85
+ 'adverts_settings' => array(
86
+ 'dashboard_widget' => true, // show dashboard widget (default: false)
87
+ 'right_sidebar' => true, // show adverts sidebar (default: false)
88
+ 'notice' => true, // show notice message (default: false)
89
+ ),
90
+ // FRAMEWORK MODULES
91
+ 'load_factory_modules' => array(
92
+ array('libs/factory/bootstrap', 'factory_bootstrap_444', 'admin'),
93
+ array('libs/factory/forms', 'factory_forms_441', 'admin'),
94
+ array('libs/factory/pages', 'factory_pages_443', 'admin'),
95
+ array('libs/factory/clearfy', 'factory_clearfy_235', 'all'),
96
+ array('libs/factory/freemius', 'factory_freemius_132', 'all'),
97
+ array('libs/factory/adverts', 'factory_adverts_122', 'admin')
98
+ ),
99
+ 'load_plugin_components' => array(
100
+ 'disable_notices' => array(
101
+ 'autoload' => 'components/disable-admin-notices/clearfy.php',
102
+ 'plugin_prefix' => 'WDN_'
103
+ ),
104
+ 'cyrlitera' => array(
105
+ 'autoload' => 'components/cyrlitera/clearfy.php',
106
+ 'plugin_prefix' => 'WCTR_'
107
+ ),
108
+ 'updates_manager' => array(
109
+ 'autoload' => 'components/updates-manager/clearfy.php',
110
+ 'plugin_prefix' => 'WUPM_'
111
+ ),
112
+ 'comments_tools' => array(
113
+ 'autoload' => 'components/comments-plus/clearfy.php',
114
+ 'plugin_prefix' => 'WCM_'
115
+ ),
116
+ 'ga_cache' => array(
117
+ 'autoload' => 'components/ga-cache/clearfy.php',
118
+ 'plugin_prefix' => 'WGA_'
119
+ ),
120
+ 'assets_manager' => array(
121
+ 'autoload' => 'components/assets-manager/clearfy.php',
122
+ 'plugin_prefix' => 'WGZ_'
123
+ ),
124
+ 'minify_and_combine' => array(
125
+ 'autoload' => 'components/minify-and-combine/clearfy.php',
126
+ 'plugin_prefix' => 'WMAC_'
127
+ ),
128
+ 'html_minify' => array(
129
+ 'autoload' => 'components/html-minify/clearfy.php',
130
+ 'plugin_prefix' => 'WHTM_'
131
+ ),
132
+ )
133
+ );
134
+
135
+
136
+
137
+ $clearfy_compatibility = new Wbcr_Factory444_Requirements(__FILE__, array_merge($plugin_info, array(
138
+ 'plugin_already_activate' => defined('WCL_PLUGIN_ACTIVE'),
139
+ 'required_php_version' => '5.6',
140
+ 'required_wp_version' => '4.9.0',
141
+ 'required_clearfy_check_component' => false
142
+ )));
143
+
144
+ /**
145
+ * If the plugin is compatible, then it will continue its work, otherwise it will be stopped,
146
+ * and the user will throw a warning.
147
+ */
148
+ if( !$clearfy_compatibility->check() ) {
149
+ return;
150
+ }
151
+
152
+ /**
153
+ * -----------------------------------------------------------------------------
154
+ * CONSTANTS
155
+ * Install frequently used constants and constants for debugging, which will be
156
+ * removed after compiling the plugin.
157
+ * -----------------------------------------------------------------------------
158
+ */
159
+
160
+ // This plugin is activated
161
+ define('WCL_PLUGIN_ACTIVE', true);
162
+
163
+ // For for compatibility with old plugins
164
+ define('WBCR_CLEARFY_PLUGIN_ACTIVE', true);
165
+
166
+ // Plugin version
167
+ define('WCL_PLUGIN_VERSION', $clearfy_compatibility->get_plugin_version());
168
+ define('WCL_FRAMEWORK_VER', 'FACTORY_444_VERSION');
169
+
170
+ define('WCL_PLUGIN_DIR', dirname(__FILE__));
171
+ define('WCL_PLUGIN_BASE', plugin_basename(__FILE__));
172
+ define('WCL_PLUGIN_URL', plugins_url(null, __FILE__));
173
+
174
+
175
+
176
+ /**
177
+ * -----------------------------------------------------------------------------
178
+ * PLUGIN INIT
179
+ * -----------------------------------------------------------------------------
180
+ */
181
+ try {
182
+ require_once(WCL_PLUGIN_DIR . '/includes/helpers.php');
183
+
184
+ // creating a plugin via the factory
185
+ require_once(WCL_PLUGIN_DIR . '/libs/factory/core/boot.php');
186
+ require_once(WCL_PLUGIN_DIR . '/includes/class.plugin.php');
187
+
188
+ new WCL_Plugin(__FILE__, array_merge($plugin_info, array(
189
+ 'plugin_version' => WCL_PLUGIN_VERSION,
190
+ 'plugin_text_domain' => $clearfy_compatibility->get_text_domain(),
191
+ )));
192
+ } catch( Exception $e ) {
193
+ // Plugin wasn't initialized due to an error
194
+ define('WRIO_PLUGIN_THROW_ERROR', true);
195
+
196
+ $clearfy_plugin_error_func = function () use ($e) {
197
+ $error = sprintf("The %s plugin has stopped. <b>Error:</b> %s Code: %s", 'Clearfy', $e->getMessage(), $e->getCode());
198
+ echo '<div class="notice notice-error"><p>' . $error . '</p></div>';
199
+ };
200
+
201
+ add_action('admin_notices', $clearfy_plugin_error_func);
202
+ add_action('network_admin_notices', $clearfy_plugin_error_func);
203
+ }
204
+
components/assets-manager/admin/activation.php CHANGED
@@ -1,32 +1,32 @@
1
- <?php
2
-
3
- /**
4
- * Activator for the cyrlitera
5
- *
6
- * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
- * @copyright (c) 09.03.2018, Webcraftic
8
- * @see Wbcr_Factory441_Activator
9
- * @version 1.0
10
- */
11
-
12
- // Exit if accessed directly
13
- if ( ! defined( 'ABSPATH' ) ) {
14
- exit;
15
- }
16
-
17
- class WGNZ_Activation extends Wbcr_Factory441_Activator {
18
-
19
- /**
20
- * Runs activation actions.
21
- */
22
- public function activate() {
23
- wbcr_gnz_deploy_mu_plugin();
24
- }
25
-
26
- /**
27
- * Runs deactivation actions.
28
- */
29
- public function deactivate() {
30
- wbcr_gnz_remove_mu_plugin();
31
- }
32
- }
1
+ <?php
2
+
3
+ /**
4
+ * Activator for the cyrlitera
5
+ *
6
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
+ * @copyright (c) 09.03.2018, Webcraftic
8
+ * @see Wbcr_Factory444_Activator
9
+ * @version 1.0
10
+ */
11
+
12
+ // Exit if accessed directly
13
+ if ( ! defined( 'ABSPATH' ) ) {
14
+ exit;
15
+ }
16
+
17
+ class WGNZ_Activation extends Wbcr_Factory444_Activator {
18
+
19
+ /**
20
+ * Runs activation actions.
21
+ */
22
+ public function activate() {
23
+ wbcr_gnz_deploy_mu_plugin();
24
+ }
25
+
26
+ /**
27
+ * Runs deactivation actions.
28
+ */
29
+ public function deactivate() {
30
+ wbcr_gnz_remove_mu_plugin();
31
+ }
32
+ }
components/assets-manager/admin/ajax/save-settings.php CHANGED
@@ -1,216 +1,216 @@
1
- <?php
2
- /**
3
- * Save settings ajax action
4
- *
5
- * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
6
- * @copyright (c) 21.09.2019, Webcraftic
7
- * @version 1.0
8
- */
9
-
10
- // Exit if accessed directly
11
- if ( ! defined( 'ABSPATH' ) ) {
12
- exit;
13
- }
14
-
15
- /**
16
- * Ajax action for save plugin settings.
17
- *
18
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
19
- * @since 2.0.0
20
- */
21
- function wam_save_settings_action() {
22
- check_ajax_referer( 'wam_save_settigns' );
23
-
24
- if ( ! current_user_can( 'manage_options' ) ) {
25
- wp_send_json_error( [
26
- 'error_message_title' => __( 'Save settings failed!', 'gonzales' ),
27
- 'error_message_content' => __( 'You don\'t have enough capability to edit this information.', 'gonzales' )
28
- ] );
29
- }
30
-
31
- /*$scrape_key = md5( rand() );
32
- $transient = 'scrape_key_' . $scrape_key;
33
- $scrape_nonce = strval( rand() );
34
- set_transient( $transient, $scrape_nonce, 60 ); // It shouldn't take more than 60 seconds to make the two loopback requests.
35
-
36
- $cookies = wp_unslash( $_COOKIE );
37
- $scrape_params = array(
38
- 'wp_scrape_key' => $scrape_key,
39
- 'wp_scrape_nonce' => $scrape_nonce,
40
- );
41
- $headers = array(
42
- 'Cache-Control' => 'no-cache',
43
- );
44
-
45
- /** This filter is documented in wp-includes/class-wp-http-streams.php */ ///*$sslverify = apply_filters( 'https_local_ssl_verify', false );
46
- //
47
- //// Include Basic auth in loopback requests.
48
- //if ( isset( $_SERVER['PHP_AUTH_USER'] ) && isset( $_SERVER['PHP_AUTH_PW'] ) ) {
49
- // $headers['Authorization'] = 'Basic ' . base64_encode( wp_unslash( $_SERVER['PHP_AUTH_USER'] ) . ':' . wp_unslash( $_SERVER['PHP_AUTH_PW'] ) );
50
- //}
51
- //
52
- //// Make sure PHP process doesn't die before loopback requests complete.
53
- //set_time_limit( 300 );
54
- //
55
- //// Time to wait for loopback requests to finish.
56
- //$timeout = 100;
57
- //
58
- //$needle_start = "###### wp_scraping_result_start:$scrape_key ######";
59
- //$needle_end = "###### wp_scraping_result_end:$scrape_key ######";
60
- //
61
- //// Attempt loopback request to editor to see if user just whitescreened themselves.
62
- //if ( $plugin ) {
63
- // $url = add_query_arg( compact( 'plugin', 'file' ), admin_url( 'plugin-editor.php' ) );
64
- //} elseif ( isset( $stylesheet ) ) {
65
- // $url = add_query_arg(
66
- // array(
67
- // 'theme' => $stylesheet,
68
- // 'file' => $file,
69
- // ),
70
- // admin_url( 'theme-editor.php' )
71
- // );
72
- //} else {
73
- // $url = admin_url();
74
- //}
75
- //$url = add_query_arg( $scrape_params, $url );
76
- //$r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout', 'sslverify' ) );
77
- //$body = wp_remote_retrieve_body( $r );
78
- //$scrape_result_position = strpos( $body, $needle_start );
79
- //
80
- //$loopback_request_failure = array(
81
- // 'code' => 'loopback_request_failed',
82
- // 'message' => __( 'Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.' ),
83
- //);
84
- //$json_parse_failure = array(
85
- // 'code' => 'json_parse_error',
86
- //);
87
- //
88
- //$result = null;
89
- //if ( false === $scrape_result_position ) {
90
- // $result = $loopback_request_failure;
91
- //} else {
92
- // $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
93
- // $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
94
- // $result = json_decode( trim( $error_output ), true );
95
- // if ( empty( $result ) ) {
96
- // $result = $json_parse_failure;
97
- // }
98
- //}
99
- //
100
- //// Try making request to homepage as well to see if visitors have been whitescreened.
101
- //if ( true === $result ) {
102
- // $url = home_url( '/' );
103
- // $url = add_query_arg( $scrape_params, $url );
104
- // $r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout' ) );
105
- // $body = wp_remote_retrieve_body( $r );
106
- // $scrape_result_position = strpos( $body, $needle_start );
107
- //
108
- // if ( false === $scrape_result_position ) {
109
- // $result = $loopback_request_failure;
110
- // } else {
111
- // $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
112
- // $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
113
- // $result = json_decode( trim( $error_output ), true );
114
- // if ( empty( $result ) ) {
115
- // $result = $json_parse_failure;
116
- // }
117
- // }
118
- //}
119
- //
120
- //delete_transient( $transient );
121
- //
122
- //if ( true !== $result ) {
123
- //
124
- // // Roll-back file change.
125
- // file_put_contents( $real_file, $previous_content );
126
- // if ( function_exists( 'opcache_invalidate' ) ) {
127
- // opcache_invalidate( $real_file, true );
128
- // }
129
- //
130
- // if ( ! isset( $result['message'] ) ) {
131
- // $message = __( 'Something went wrong.' );
132
- // } else {
133
- // $message = $result['message'];
134
- // unset( $result['message'] );
135
- // }
136
- // return new WP_Error( 'php_error', $message, $result );
137
- //}*/
138
-
139
- $save_message_title = __( 'Settings saved successfully!', 'clearfy' );
140
- $save_message_content = __( 'If you use test mode, do not forget to disable it. We also recommend that you flush the cache if you use caching plugins.', 'clearfy' );
141
- $scope = WGZ_Plugin::app()->request->post( 'scope', 'frontend' );
142
- $raw_updated_settings = WGZ_Plugin::app()->request->post( 'settings', [], true );
143
-
144
- if ( ! empty( $raw_updated_settings ) ) {
145
- if ( 'networkadmin' === $scope ) {
146
- $settings = WGZ_Plugin::app()->getNetworkOption( 'backend_assets_states', [] );
147
- } else if ( 'admin' === $scope ) {
148
- $settings = WGZ_Plugin::app()->getOption( 'backend_assets_states', [] );
149
- } else {
150
- $settings = WGZ_Plugin::app()->getOption( 'assets_states', [] );
151
- }
152
-
153
- if ( ! defined( 'WGZP_PLUGIN_ACTIVE' ) || ( is_array( $settings ) && ! isset( $settings['save_mode'] ) ) ) {
154
- $settings['save_mode'] = false;
155
- }
156
-
157
- if ( ! empty( $raw_updated_settings['plugins'] ) ) {
158
- foreach ( (array) $raw_updated_settings['plugins'] as $plugin_name => $plugin_group ) {
159
- if ( ! empty( $plugin_group['load_mode'] ) ) {
160
- if ( 'enable' == $plugin_group['load_mode'] ) {
161
- $plugin_group['visability'] = "";
162
- } else {
163
- foreach ( [ 'js', 'css' ] as $assets_type ) {
164
- if ( ! empty( $plugin_group[ $assets_type ] ) ) {
165
- foreach ( $plugin_group[ $assets_type ] as $resource_handle => $resource_params ) {
166
- $plugin_group[ $assets_type ][ $resource_handle ]['visability'] = "";
167
- }
168
- }
169
- }
170
- }
171
- }
172
-
173
- $settings['plugins'][ $plugin_name ] = $plugin_group;
174
- }
175
- }
176
-
177
- if ( ! empty( $raw_updated_settings['theme'] ) ) {
178
- $settings['theme'] = $raw_updated_settings['theme'];
179
- }
180
-
181
- if ( ! empty( $raw_updated_settings['misc'] ) ) {
182
- $settings['misc'] = $raw_updated_settings['misc'];
183
- }
184
-
185
- /**
186
- * Filter run before save settings.
187
- *
188
- * @param array $settings
189
- * @param array $raw_updated_settings
190
- * @param string $scope
191
- */
192
- $settings = apply_filters( 'wam/before_save_settings', $settings, $raw_updated_settings, $scope );
193
-
194
- if ( 'networkadmin' === $scope ) {
195
- WGZ_Plugin::app()->updateNetworkOption( 'backend_assets_states', $settings );
196
- } else if ( 'admin' === $scope ) {
197
- WGZ_Plugin::app()->updateOption( 'backend_assets_states', $settings );
198
- } else {
199
- WGZ_Plugin::app()->updateOption( 'assets_states', $settings );
200
- }
201
-
202
- // If mu plugin does not exist, install it.
203
- wbcr_gnz_deploy_mu_plugin();
204
-
205
- // Flush cache for all cache plugins
206
- WbcrFactoryClearfy232_Helpers::flushPageCache();
207
- }
208
-
209
- wp_send_json_success( [
210
- 'save_massage_title' => $save_message_title,
211
- 'save_message_content' => $save_message_content
212
- ] );
213
- }
214
-
215
- add_action( 'wp_ajax_nopriv_wam-save-settings', 'wam_save_settings_action' );
216
  add_action( 'wp_ajax_wam-save-settings', 'wam_save_settings_action' );
1
+ <?php
2
+ /**
3
+ * Save settings ajax action
4
+ *
5
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
6
+ * @copyright (c) 21.09.2019, Webcraftic
7
+ * @version 1.0
8
+ */
9
+
10
+ // Exit if accessed directly
11
+ if ( ! defined( 'ABSPATH' ) ) {
12
+ exit;
13
+ }
14
+
15
+ /**
16
+ * Ajax action for save plugin settings.
17
+ *
18
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
19
+ * @since 2.0.0
20
+ */
21
+ function wam_save_settings_action() {
22
+ check_ajax_referer( 'wam_save_settigns' );
23
+
24
+ if ( ! current_user_can( 'manage_options' ) ) {
25
+ wp_send_json_error( [
26
+ 'error_message_title' => __( 'Save settings failed!', 'gonzales' ),
27
+ 'error_message_content' => __( 'You don\'t have enough capability to edit this information.', 'gonzales' )
28
+ ] );
29
+ }
30
+
31
+ /*$scrape_key = md5( rand() );
32
+ $transient = 'scrape_key_' . $scrape_key;
33
+ $scrape_nonce = strval( rand() );
34
+ set_transient( $transient, $scrape_nonce, 60 ); // It shouldn't take more than 60 seconds to make the two loopback requests.
35
+
36
+ $cookies = wp_unslash( $_COOKIE );
37
+ $scrape_params = array(
38
+ 'wp_scrape_key' => $scrape_key,
39
+ 'wp_scrape_nonce' => $scrape_nonce,
40
+ );
41
+ $headers = array(
42
+ 'Cache-Control' => 'no-cache',
43
+ );
44
+
45
+ /** This filter is documented in wp-includes/class-wp-http-streams.php */ ///*$sslverify = apply_filters( 'https_local_ssl_verify', false );
46
+ //
47
+ //// Include Basic auth in loopback requests.
48
+ //if ( isset( $_SERVER['PHP_AUTH_USER'] ) && isset( $_SERVER['PHP_AUTH_PW'] ) ) {
49
+ // $headers['Authorization'] = 'Basic ' . base64_encode( wp_unslash( $_SERVER['PHP_AUTH_USER'] ) . ':' . wp_unslash( $_SERVER['PHP_AUTH_PW'] ) );
50
+ //}
51
+ //
52
+ //// Make sure PHP process doesn't die before loopback requests complete.
53
+ //set_time_limit( 300 );
54
+ //
55
+ //// Time to wait for loopback requests to finish.
56
+ //$timeout = 100;
57
+ //
58
+ //$needle_start = "###### wp_scraping_result_start:$scrape_key ######";
59
+ //$needle_end = "###### wp_scraping_result_end:$scrape_key ######";
60
+ //
61
+ //// Attempt loopback request to editor to see if user just whitescreened themselves.
62
+ //if ( $plugin ) {
63
+ // $url = add_query_arg( compact( 'plugin', 'file' ), admin_url( 'plugin-editor.php' ) );
64
+ //} elseif ( isset( $stylesheet ) ) {
65
+ // $url = add_query_arg(
66
+ // array(
67
+ // 'theme' => $stylesheet,
68
+ // 'file' => $file,
69
+ // ),
70
+ // admin_url( 'theme-editor.php' )
71
+ // );
72
+ //} else {
73
+ // $url = admin_url();
74
+ //}
75
+ //$url = add_query_arg( $scrape_params, $url );
76
+ //$r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout', 'sslverify' ) );
77
+ //$body = wp_remote_retrieve_body( $r );
78
+ //$scrape_result_position = strpos( $body, $needle_start );
79
+ //
80
+ //$loopback_request_failure = array(
81
+ // 'code' => 'loopback_request_failed',
82
+ // 'message' => __( 'Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.' ),
83
+ //);
84
+ //$json_parse_failure = array(
85
+ // 'code' => 'json_parse_error',
86
+ //);
87
+ //
88
+ //$result = null;
89
+ //if ( false === $scrape_result_position ) {
90
+ // $result = $loopback_request_failure;
91
+ //} else {
92
+ // $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
93
+ // $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
94
+ // $result = json_decode( trim( $error_output ), true );
95
+ // if ( empty( $result ) ) {
96
+ // $result = $json_parse_failure;
97
+ // }
98
+ //}
99
+ //
100
+ //// Try making request to homepage as well to see if visitors have been whitescreened.
101
+ //if ( true === $result ) {
102
+ // $url = home_url( '/' );
103
+ // $url = add_query_arg( $scrape_params, $url );
104
+ // $r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout' ) );
105
+ // $body = wp_remote_retrieve_body( $r );
106
+ // $scrape_result_position = strpos( $body, $needle_start );
107
+ //
108
+ // if ( false === $scrape_result_position ) {
109
+ // $result = $loopback_request_failure;
110
+ // } else {
111
+ // $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
112
+ // $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
113
+ // $result = json_decode( trim( $error_output ), true );
114
+ // if ( empty( $result ) ) {
115
+ // $result = $json_parse_failure;
116
+ // }
117
+ // }
118
+ //}
119
+ //
120
+ //delete_transient( $transient );
121
+ //
122
+ //if ( true !== $result ) {
123
+ //
124
+ // // Roll-back file change.
125
+ // file_put_contents( $real_file, $previous_content );
126
+ // if ( function_exists( 'opcache_invalidate' ) ) {
127
+ // opcache_invalidate( $real_file, true );
128
+ // }
129
+ //
130
+ // if ( ! isset( $result['message'] ) ) {
131
+ // $message = __( 'Something went wrong.' );
132
+ // } else {
133
+ // $message = $result['message'];
134
+ // unset( $result['message'] );
135
+ // }
136
+ // return new WP_Error( 'php_error', $message, $result );
137
+ //}*/
138
+
139
+ $save_message_title = __( 'Settings saved successfully!', 'clearfy' );
140
+ $save_message_content = __( 'If you use test mode, do not forget to disable it. We also recommend that you flush the cache if you use caching plugins.', 'clearfy' );
141
+ $scope = WGZ_Plugin::app()->request->post( 'scope', 'frontend' );
142
+ $raw_updated_settings = WGZ_Plugin::app()->request->post( 'settings', [], true );
143
+
144
+ if ( ! empty( $raw_updated_settings ) ) {
145
+ if ( 'networkadmin' === $scope ) {
146
+ $settings = WGZ_Plugin::app()->getNetworkOption( 'backend_assets_states', [] );
147
+ } else if ( 'admin' === $scope ) {
148
+ $settings = WGZ_Plugin::app()->getOption( 'backend_assets_states', [] );
149
+ } else {
150
+ $settings = WGZ_Plugin::app()->getOption( 'assets_states', [] );
151
+ }
152
+
153
+ if ( ! defined( 'WGZP_PLUGIN_ACTIVE' ) || ( is_array( $settings ) && ! isset( $settings['save_mode'] ) ) ) {
154
+ $settings['save_mode'] = false;
155
+ }
156
+
157
+ if ( ! empty( $raw_updated_settings['plugins'] ) ) {
158
+ foreach ( (array) $raw_updated_settings['plugins'] as $plugin_name => $plugin_group ) {
159
+ if ( ! empty( $plugin_group['load_mode'] ) ) {
160
+ if ( 'enable' == $plugin_group['load_mode'] ) {
161
+ $plugin_group['visability'] = "";
162
+ } else {
163
+ foreach ( [ 'js', 'css' ] as $assets_type ) {
164
+ if ( ! empty( $plugin_group[ $assets_type ] ) ) {
165
+ foreach ( $plugin_group[ $assets_type ] as $resource_handle => $resource_params ) {
166
+ $plugin_group[ $assets_type ][ $resource_handle ]['visability'] = "";
167
+ }
168
+ }
169
+ }
170
+ }
171
+ }
172
+
173
+ $settings['plugins'][ $plugin_name ] = $plugin_group;
174
+ }
175
+ }
176
+
177
+ if ( ! empty( $raw_updated_settings['theme'] ) ) {
178
+ $settings['theme'] = $raw_updated_settings['theme'];
179
+ }
180
+
181
+ if ( ! empty( $raw_updated_settings['misc'] ) ) {
182
+ $settings['misc'] = $raw_updated_settings['misc'];
183
+ }
184
+
185
+ /**
186
+ * Filter run before save settings.
187
+ *
188
+ * @param array $settings
189
+ * @param array $raw_updated_settings
190
+ * @param string $scope
191
+ */
192
+ $settings = apply_filters( 'wam/before_save_settings', $settings, $raw_updated_settings, $scope );
193
+
194
+ if ( 'networkadmin' === $scope ) {
195
+ WGZ_Plugin::app()->updateNetworkOption( 'backend_assets_states', $settings );
196
+ } else if ( 'admin' === $scope ) {
197
+ WGZ_Plugin::app()->updateOption( 'backend_assets_states', $settings );
198
+ } else {
199
+ WGZ_Plugin::app()->updateOption( 'assets_states', $settings );
200
+ }
201
+
202
+ // If mu plugin does not exist, install it.
203
+ wbcr_gnz_deploy_mu_plugin();
204
+
205
+ // Flush cache for all cache plugins
206
+ WbcrFactoryClearfy235_Helpers::flushPageCache();
207
+ }
208
+
209
+ wp_send_json_success( [
210
+ 'save_massage_title' => $save_message_title,
211
+ 'save_message_content' => $save_message_content
212
+ ] );
213
+ }
214
+
215
+ add_action( 'wp_ajax_nopriv_wam-save-settings', 'wam_save_settings_action' );
216
  add_action( 'wp_ajax_wam-save-settings', 'wam_save_settings_action' );
components/assets-manager/admin/boot.php CHANGED
@@ -1,211 +1,211 @@
1
- <?php
2
- /**
3
- * Admin boot
4
- *
5
- * @author Webcraftic <wordpress.webraftic@gmail.com>
6
- * @copyright Webcraftic 25.05.2017
7
- * @version 1.0
8
- */
9
-
10
- // Exit if accessed directly
11
- if( !defined('ABSPATH') ) {
12
- exit;
13
- }
14
-
15
- if( defined('LOADING_ASSETS_MANAGER_AS_ADDON') ) {
16
-
17
- /**
18
- * Уведомление, которое сообщает о возможности импорта опций из плагина Assets manager в Clearfy
19
- *
20
- * @param array $notices
21
- */
22
- /*add_filter( 'wbcr/factory/admin_notices', function ( $notices ) {
23
-
24
- if ( is_multisite() && is_network_admin() ) {
25
- $am_options = get_site_option( 'wbcr_gnz_assets_manager_options' );
26
- } else {
27
- $am_options = get_option( 'wbcr_gnz_assets_manager_options' );
28
- }
29
-
30
- if ( $am_options ) {
31
- $notice_text = '<p><b>Clearfy:</b> ' . __( 'We detected that you used the Assets manager plugin. Do you want to import settings from this plugin to the Clearfy plugin?', 'gonzales' ) . '</p>';
32
- $notice_text .= '<p><a href="' . admin_url( '?wbcr_assets_manager_transfer' ) . '" class="button button-default">' . __( 'Import options', 'gonzales' ) . '</a></p>';
33
-
34
- $notices[] = [
35
- 'id' => 'gnz_plugin_import_options',
36
- 'type' => 'warning',
37
- 'dismissible' => true,
38
- 'dismiss_expires' => 0,
39
- 'text' => $notice_text
40
- ];
41
- }
42
-
43
- if ( isset( $_GET['wbcr_assets_manager_transfer_completed'] ) ) {
44
- $notices[] = [
45
- 'id' => 'gnz_plugin_transfer_options_completed',
46
- 'type' => 'success',
47
- 'dismissible' => false,
48
- 'dismiss_expires' => 0,
49
- 'text' => '<p><b>Clearfy:</b> ' . __( 'Settings has been successfully imported!', 'gonzales' )
50
- ];
51
- }
52
-
53
- return $notices;
54
- }, 10, 2 );*/
55
-
56
- /**
57
- * Импорт опций из плагина Assets manager в плагин Clearfy.
58
- * При попытке использовать премиум версию, у многих пользователей уже настроен бесплатный плагин и
59
- * на ручной перенос настроек уходит очень много времени. Этот кусок кода решает проблему переноса настроек между плагинами.
60
- */
61
- /*add_action( 'admin_init', function () {
62
- if ( isset( $_GET['wbcr_assets_manager_transfer'] ) ) {
63
- global $wpdb;
64
-
65
- if ( is_multisite() && is_network_admin() ) {
66
- $am_options = get_site_option( 'wbcr_gnz_assets_manager_options' );
67
- } else {
68
- $am_options = get_option( 'wbcr_gnz_assets_manager_options' );
69
- }
70
-
71
- if ( ! $am_options || ! class_exists( 'WCL_Plugin' ) ) {
72
- return;
73
- }
74
-
75
- $am_prefix = 'wbcr_gnz_';
76
-
77
- if ( is_multisite() && is_network_admin() ) {
78
- $request = $wpdb->get_results( "SELECT meta_key, meta_value
79
- FROM {$wpdb->sitemeta}
80
- WHERE option_name LIKE '{$am_prefix}_%'" );
81
- } else {
82
- $request = $wpdb->get_results( "SELECT option_name, option_value
83
- FROM {$wpdb->options}
84
- WHERE option_name LIKE '{$am_prefix}_%'" );
85
- }
86
-
87
- if ( $request ) {
88
- foreach ( (array) $request as $option ) {
89
- if ( is_multisite() && is_network_admin() ) {
90
- $new_option_name = str_replace( $am_prefix, WCL_Plugin::app()->getPrefix(), $option->meta_key );
91
- update_site_option( $new_option_name, $option->meta_value );
92
- delete_site_option( $option->meta_key );
93
- } else {
94
- $new_option_name = str_replace( $am_prefix, WCL_Plugin::app()->getPrefix(), $option->option_name );
95
- update_option( $new_option_name, $option->option_value );
96
- delete_option( $option->option_name );
97
- }
98
- }
99
-
100
- wp_redirect( admin_url( '?wbcr_assets_manager_transfer_completed' ) );
101
- die();
102
- }
103
- }
104
- } );*/
105
-
106
- function wbcr_gnz_group_options($options)
107
- {
108
- $options[] = [
109
- 'name' => 'disable_assets_manager',
110
- 'title' => __('Disable assets manager', 'gonzales'),
111
- 'tags' => [],
112
- 'values' => []
113
- ];
114
-
115
- $options[] = [
116
- 'name' => 'disable_assets_manager_panel',
117
- 'title' => __('Disable assets manager panel', 'gonzales'),
118
- 'tags' => []
119
- ];
120
-
121
- $options[] = [
122
- 'name' => 'disable_assets_manager_on_front',
123
- 'title' => __('Disable assets manager on front', 'gonzales'),
124
- 'tags' => []
125
- ];
126
-
127
- $options[] = [
128
- 'name' => 'disable_assets_manager_on_backend',
129
- 'title' => __('Disable assets manager on back-end', 'gonzales'),
130
- 'tags' => []
131
- ];
132
-
133
- $options[] = [
134
- 'name' => 'manager_options',
135
- 'title' => __('Assets manager options', 'gonzales'),
136
- 'tags' => []
137
- ];
138
-
139
- return $options;
140
- }
141
-
142
- add_filter("wbcr_clearfy_group_options", 'wbcr_gnz_group_options');
143
- } else {
144
-
145
- /**
146
- * Удаляем лишние виджеты в левом сайдбаре
147
- *
148
- * @param array $widgets
149
- * @param string $position
150
- * @param Wbcr_Factory441_Plugin $plugin
151
- */
152
- add_filter('wbcr/factory/pages/impressive/widgets', function ($widgets, $position, $plugin) {
153
- if( $plugin->getPluginName() == WGZ_Plugin::app()->getPluginName() ) {
154
- unset($widgets['business_suggetion']);
155
-
156
- if( $position == 'right' ) {
157
- unset($widgets['donate_widget']);
158
- unset($widgets['rating_widget']);
159
- unset($widgets['info_widget']);
160
- }
161
- }
162
-
163
- return $widgets;
164
- }, 20, 3);
165
-
166
- /**
167
- * Заменяем премиум возможности в бизнес виджете
168
- *
169
- * @param array $features
170
- * @param string $page_id
171
- * @param string $plugin
172
- */
173
- add_filter('wbcr/clearfy/pages/suggetion_features', function ($features, $plugin_name, $page_id) {
174
-
175
- if( !empty($plugin_name) && ($plugin_name == WGZ_Plugin::app()->getPluginName()) ) {
176
- $upgrade_feature = [];
177
- $upgrade_feature[] = __('Disable plugins (groups of scripts)', 'gonzales');
178
- $upgrade_feature[] = __('Conditions by the link template', 'gonzales');
179
- $upgrade_feature[] = __('Conditions by the regular expression', 'gonzales');
180
- $upgrade_feature[] = __('Safe mode', 'gonzales');
181
- $upgrade_feature[] = __('Statistics and optimization results', 'gonzales');
182
-
183
- return $upgrade_feature;
184
- }
185
-
186
- return $features;
187
- }, 20, 3);
188
-
189
- function wbcr_gnz_set_plugin_meta($links, $file)
190
- {
191
- if( $file == WGZ_PLUGIN_BASE ) {
192
- $url = WGZ_Plugin::app()->get_support()->get_tracking_page_url('assets-manager', 'plugin_row');
193
- $links[] = '<a href="' . $url . '" style="color: #FF5722;font-weight: bold;" target="_blank">' . __('Get premium', 'gonzales') . '</a>';
194
- }
195
-
196
- return $links;
197
- }
198
-
199
- add_filter('plugin_row_meta', 'wbcr_gnz_set_plugin_meta', 10, 2);
200
-
201
- function wbcr_gnz_rating_widget_url($page_url, $plugin_name)
202
- {
203
- if( !defined('LOADING_ASSETS_MANAGER_AS_ADDON') && ($plugin_name == WGZ_Plugin::app()->getPluginName()) ) {
204
- return 'https://goo.gl/zyNV6z';
205
- }
206
-
207
- return $page_url;
208
- }
209
-
210
- add_filter('wbcr_factory_pages_440_imppage_rating_widget_url', 'wbcr_gnz_rating_widget_url', 10, 2);
211
  }
1
+ <?php
2
+ /**
3
+ * Admin boot
4
+ *
5
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
6
+ * @copyright Webcraftic 25.05.2017
7
+ * @version 1.0
8
+ */
9
+
10
+ // Exit if accessed directly
11
+ if( !defined('ABSPATH') ) {
12
+ exit;
13
+ }
14
+
15
+ if( defined('LOADING_ASSETS_MANAGER_AS_ADDON') ) {
16
+
17
+ /**
18
+ * Уведомление, которое сообщает о возможности импорта опций из плагина Assets manager в Clearfy
19
+ *
20
+ * @param array $notices
21
+ */
22
+ /*add_filter( 'wbcr/factory/admin_notices', function ( $notices ) {
23
+
24
+ if ( is_multisite() && is_network_admin() ) {
25
+ $am_options = get_site_option( 'wbcr_gnz_assets_manager_options' );
26
+ } else {
27
+ $am_options = get_option( 'wbcr_gnz_assets_manager_options' );
28
+ }
29
+
30
+ if ( $am_options ) {
31
+ $notice_text = '<p><b>Clearfy:</b> ' . __( 'We detected that you used the Assets manager plugin. Do you want to import settings from this plugin to the Clearfy plugin?', 'gonzales' ) . '</p>';
32
+ $notice_text .= '<p><a href="' . admin_url( '?wbcr_assets_manager_transfer' ) . '" class="button button-default">' . __( 'Import options', 'gonzales' ) . '</a></p>';
33
+
34
+ $notices[] = [
35
+ 'id' => 'gnz_plugin_import_options',
36
+ 'type' => 'warning',
37
+ 'dismissible' => true,
38
+ 'dismiss_expires' => 0,
39
+ 'text' => $notice_text
40
+ ];
41
+ }
42
+
43
+ if ( isset( $_GET['wbcr_assets_manager_transfer_completed'] ) ) {
44
+ $notices[] = [
45
+ 'id' => 'gnz_plugin_transfer_options_completed',
46
+ 'type' => 'success',
47
+ 'dismissible' => false,
48
+ 'dismiss_expires' => 0,
49
+ 'text' => '<p><b>Clearfy:</b> ' . __( 'Settings has been successfully imported!', 'gonzales' )
50
+ ];
51
+ }
52
+
53
+ return $notices;
54
+ }, 10, 2 );*/
55
+
56
+ /**
57
+ * Импорт опций из плагина Assets manager в плагин Clearfy.
58
+ * При попытке использовать премиум версию, у многих пользователей уже настроен бесплатный плагин и
59
+ * на ручной перенос настроек уходит очень много времени. Этот кусок кода решает проблему переноса настроек между плагинами.
60
+ */
61
+ /*add_action( 'admin_init', function () {
62
+ if ( isset( $_GET['wbcr_assets_manager_transfer'] ) ) {
63
+ global $wpdb;
64
+
65
+ if ( is_multisite() && is_network_admin() ) {
66
+ $am_options = get_site_option( 'wbcr_gnz_assets_manager_options' );
67
+ } else {
68
+ $am_options = get_option( 'wbcr_gnz_assets_manager_options' );
69
+ }
70
+
71
+ if ( ! $am_options || ! class_exists( 'WCL_Plugin' ) ) {
72
+ return;
73
+ }
74
+
75
+ $am_prefix = 'wbcr_gnz_';
76
+
77
+ if ( is_multisite() && is_network_admin() ) {
78
+ $request = $wpdb->get_results( "SELECT meta_key, meta_value
79
+ FROM {$wpdb->sitemeta}
80
+ WHERE option_name LIKE '{$am_prefix}_%'" );
81
+ } else {
82
+ $request = $wpdb->get_results( "SELECT option_name, option_value
83
+ FROM {$wpdb->options}
84
+ WHERE option_name LIKE '{$am_prefix}_%'" );
85
+ }
86
+
87
+ if ( $request ) {
88
+ foreach ( (array) $request as $option ) {
89
+ if ( is_multisite() && is_network_admin() ) {
90
+ $new_option_name = str_replace( $am_prefix, WCL_Plugin::app()->getPrefix(), $option->meta_key );
91
+ update_site_option( $new_option_name, $option->meta_value );
92
+ delete_site_option( $option->meta_key );
93
+ } else {
94
+ $new_option_name = str_replace( $am_prefix, WCL_Plugin::app()->getPrefix(), $option->option_name );
95
+ update_option( $new_option_name, $option->option_value );
96
+ delete_option( $option->option_name );
97
+ }
98
+ }
99
+
100
+ wp_redirect( admin_url( '?wbcr_assets_manager_transfer_completed' ) );
101
+ die();
102
+ }
103
+ }
104
+ } );*/
105
+
106
+ function wbcr_gnz_group_options($options)
107
+ {
108
+ $options[] = [
109
+ 'name' => 'disable_assets_manager',
110
+ 'title' => __('Disable assets manager', 'gonzales'),
111
+ 'tags' => [],
112
+ 'values' => []
113
+ ];
114
+
115
+ $options[] = [
116
+ 'name' => 'disable_assets_manager_panel',
117
+ 'title' => __('Disable assets manager panel', 'gonzales'),
118
+ 'tags' => []
119
+ ];
120
+
121
+ $options[] = [
122
+ 'name' => 'disable_assets_manager_on_front',
123
+ 'title' => __('Disable assets manager on front', 'gonzales'),
124
+ 'tags' => []
125
+ ];
126
+
127
+ $options[] = [
128
+ 'name' => 'disable_assets_manager_on_backend',
129
+ 'title' => __('Disable assets manager on back-end', 'gonzales'),
130
+ 'tags' => []
131
+ ];
132
+
133
+ $options[] = [
134
+ 'name' => 'manager_options',
135
+ 'title' => __('Assets manager options', 'gonzales'),
136
+ 'tags' => []
137
+ ];
138
+
139
+ return $options;
140
+ }
141
+
142
+ add_filter("wbcr_clearfy_group_options", 'wbcr_gnz_group_options');
143
+ } else {
144
+
145
+ /**
146
+ * Удаляем лишние виджеты в левом сайдбаре
147
+ *
148
+ * @param array $widgets
149
+ * @param string $position
150
+ * @param Wbcr_Factory444_Plugin $plugin
151
+ */
152
+ add_filter('wbcr/factory/pages/impressive/widgets', function ($widgets, $position, $plugin) {
153
+ if( $plugin->getPluginName() == WGZ_Plugin::app()->getPluginName() ) {
154
+ unset($widgets['business_suggetion']);
155
+
156
+ if( $position == 'right' ) {
157
+ unset($widgets['donate_widget']);
158
+ unset($widgets['rating_widget']);
159
+ unset($widgets['info_widget']);
160
+ }
161
+ }
162
+
163
+ return $widgets;
164
+ }, 20, 3);
165
+
166
+ /**
167
+ * Заменяем премиум возможности в бизнес виджете
168
+ *
169
+ * @param array $features
170
+ * @param string $page_id
171
+ * @param string $plugin
172
+ */
173
+ add_filter('wbcr/clearfy/pages/suggetion_features', function ($features, $plugin_name, $page_id) {
174
+
175
+ if( !empty($plugin_name) && ($plugin_name == WGZ_Plugin::app()->getPluginName()) ) {
176
+ $upgrade_feature = [];
177
+ $upgrade_feature[] = __('Disable plugins (groups of scripts)', 'gonzales');
178
+ $upgrade_feature[] = __('Conditions by the link template', 'gonzales');
179
+ $upgrade_feature[] = __('Conditions by the regular expression', 'gonzales');
180
+ $upgrade_feature[] = __('Safe mode', 'gonzales');
181
+ $upgrade_feature[] = __('Statistics and optimization results', 'gonzales');
182
+
183
+ return $upgrade_feature;
184
+ }
185
+
186
+ return $features;
187
+ }, 20, 3);
188
+
189
+ function wbcr_gnz_set_plugin_meta($links, $file)
190
+ {
191
+ if( $file == WGZ_PLUGIN_BASE ) {
192
+ $url = WGZ_Plugin::app()->get_support()->get_tracking_page_url('assets-manager', 'plugin_row');
193
+ $links[] = '<a href="' . $url . '" style="color: #FF5722;font-weight: bold;" target="_blank">' . __('Get premium', 'gonzales') . '</a>';
194
+ }
195
+
196
+ return $links;
197
+ }
198
+
199
+ add_filter('plugin_row_meta', 'wbcr_gnz_set_plugin_meta', 10, 2);
200
+
201
+ function wbcr_gnz_rating_widget_url($page_url, $plugin_name)
202
+ {
203
+ if( !defined('LOADING_ASSETS_MANAGER_AS_ADDON') && ($plugin_name == WGZ_Plugin::app()->getPluginName()) ) {
204
+ return 'https://goo.gl/zyNV6z';
205
+ }
206
+
207
+ return $page_url;
208
+ }
209
+
210
+ add_filter('wbcr_factory_pages_443_imppage_rating_widget_url', 'wbcr_gnz_rating_widget_url', 10, 2);
211
  }
components/assets-manager/admin/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
components/assets-manager/admin/pages/class-pages-more-features.php CHANGED
@@ -1,22 +1,22 @@
1
- <?php
2
- // Exit if accessed directly
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit;
5
- }
6
-
7
- /**
8
- * Рекламная страница.
9
- *
10
- * Используется для рекламы плагина Clearfy. Пользователь может изучить все возможности плагина Clearfy
11
- * и перейти на лендинг плагина, чтобы скачать и попробовать его.
12
- *
13
- * Может быть использована только, если этот плагин используется как отдельный плагин, а не как аддон
14
- * для плагина Clearfy. Если плагин загружен, как аддон для Clearfy, эта страница не будет подключена.
15
- *
16
- * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
17
- *
18
- * @copyright (c) 2018 Webraftic Ltd
19
- */
20
- class WGZ_MoreFeaturesPage extends Wbcr_FactoryClearfy232_MoreFeaturesPage {
21
-
22
  }
1
+ <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ /**
8
+ * Рекламная страница.
9
+ *
10
+ * Используется для рекламы плагина Clearfy. Пользователь может изучить все возможности плагина Clearfy
11
+ * и перейти на лендинг плагина, чтобы скачать и попробовать его.
12
+ *
13
+ * Может быть использована только, если этот плагин используется как отдельный плагин, а не как аддон
14
+ * для плагина Clearfy. Если плагин загружен, как аддон для Clearfy, эта страница не будет подключена.
15
+ *
16
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
17
+ *
18
+ * @copyright (c) 2018 Webraftic Ltd
19
+ */
20
+ class WGZ_MoreFeaturesPage extends Wbcr_FactoryClearfy235_MoreFeaturesPage {
21
+
22
  }
components/assets-manager/admin/pages/class-pages-settings.php CHANGED
@@ -1,170 +1,170 @@
1
- <?php
2
- // Exit if accessed directly
3
- if( !defined('ABSPATH') ) {
4
- exit;
5
- }
6
-
7
- /**
8
- * Страница общих настроек для этого плагина.
9
- *
10
- * Может быть использована только, если этот плагин используется как отдельный плагин, а не как аддон
11
- * дя плагина Clearfy. Если плагин загружен, как аддон для Clearfy, эта страница не будет подключена.
12
- *
13
- * Поддерживает режим работы с мультисаймами. Вы можете увидеть эту страницу в панели настройки сети.
14
- *
15
- * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
16
- *
17
- * @copyright (c) 2018 Webraftic Ltd
18
- */
19
- class WGZ_AssetsManagerPage extends Wbcr_FactoryClearfy232_PageBase {
20
-
21
- /**
22
- * The id of the page in the admin menu.
23
- *
24
- * Mainly used to navigate between pages.
25
- *
26
- * @since 1.0.0
27
- * @see FactoryPages440_AdminPage
28
- *
29
- * @var string
30
- */
31
- public $id = "gonzales";
32
-
33
- /**
34
- * @var string
35
- */
36
- public $page_menu_dashicon = 'dashicons-image-filter';
37
-
38
- /**
39
- * @var int
40
- */
41
- public $page_menu_position = 95;
42
-
43
- /**
44
- * Доступена для мультисайтов
45
- *
46
- * @var bool
47
- */
48
- public $available_for_multisite = true;
49
-
50
- /**
51
- * @param Wbcr_Factory441_Plugin $plugin
52
- */
53
- public function __construct(Wbcr_Factory441_Plugin $plugin)
54
- {
55
- $this->menu_title = __('Assets manager', 'gonzales');
56
-
57
- if( !defined('LOADING_ASSETS_MANAGER_AS_ADDON') ) {
58
- $this->internal = false;
59
- $this->menu_target = 'options-general.php';
60
- $this->add_link_to_plugin_actions = true;
61
- $this->show_search_options_form = false;
62
- } else {
63
- $this->page_parent_page = 'performance';
64
- }
65
-
66
- parent::__construct($plugin);
67
- }
68
-
69
- /**
70
- * Метод позволяет менять заголовок меню, в зависимости от сборки плагина.
71
- *
72
- * @return string|void
73
- */
74
- public function getMenuTitle()
75
- {
76
- return defined('LOADING_ASSETS_MANAGER_AS_ADDON') ? __('General', 'hide-login-page') : __('Assets manager', 'gonzales');
77
- }
78
-
79
- /**
80
- * @return string|void *
81
- */
82
- public function getPageTitle()
83
- {
84
- return defined('LOADING_ASSETS_MANAGER_AS_ADDON') ? __('Assets manager', 'gonzales') : __('General', 'hide-login-page');
85
- }
86
-
87
- /**
88
- * Permalinks options.
89
- *
90
- * @return mixed[]
91
- * @since 1.0.0
92
- */
93
- public function getPageOptions()
94
- {
95
- $options = [];
96
- $options[] = [
97
- 'type' => 'html',
98
- 'html' => '<div class="wbcr-factory-page-group-header"><strong>' . __('Disable unused scripts, styles, and fonts', 'gonzales') . '</strong><p>' . __('There is a button in the adminbar called "Script Manager". If you click on it you will see a list of loaded scripts, styles and fonts on the current page of your site. If you think that one of the assets is superfluous on this page, you can disable it individually, so that it does not create unnecessary queries when page loading. Use the script manager very carefull to non-corrupt your website. We recommend to test this function at a local server.', 'gonzales') . '</p></div>'
99
- ];
100
-
101
- $options[] = [
102
- 'type' => 'checkbox',
103
- 'way' => 'buttons',
104
- 'name' => 'disable_assets_manager',
105
- 'title' => __('Disable assets manager', 'gonzales'),
106
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
107
- 'hint' => __('Full disable of the module.', 'gonzales'),
108
- 'eventsOn' => [
109
- 'hide' => '#wbcr-gnz-asset-manager-extend-options'
110
- ],
111
- 'eventsOff' => [
112
- 'show' => '#wbcr-gnz-asset-manager-extend-options'
113
- ],
114
- 'default' => false
115
- ];
116
-
117
- $options[] = [
118
- 'type' => 'div',
119
- 'id' => 'wbcr-gnz-asset-manager-extend-options',
120
- 'items' => [
121
- [
122
- 'type' => 'separator',
123
- 'cssClass' => 'factory-separator-dashed'
124
- ],
125
- [
126
- 'type' => 'checkbox',
127
- 'way' => 'buttons',
128
- 'name' => 'disable_assets_manager_panel',
129
- 'title' => __('Disable assets manager panel', 'gonzales'),
130
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'],
131
- 'hint' => __('By default in your admin bar there is a button for control the assets scripts and styles. With this option, you can turn off the script manager on front and back-end.', 'gonzales'),
132
- 'default' => false
133
- ],
134
- [
135
- 'type' => 'checkbox',
136
- 'way' => 'buttons',
137
- 'name' => 'disable_assets_manager_on_front',
138
- 'title' => __('Disable assets manager on front', 'gonzales'),
139
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
140
- 'hint' => __('Disables assets manager initialization for frontend.', 'gonzales'),
141
- 'default' => false
142
- ],
143
- [
144
- 'type' => 'checkbox',
145
- 'way' => 'buttons',
146
- 'name' => 'disable_assets_manager_on_backend',
147
- 'title' => __('Disable assets manager on back-end', 'gonzales'),
148
- 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
149
- 'hint' => __('Disables assets manager initialization for backend.', 'gonzales'),
150
- 'default' => true
151
- ]
152
- ]
153
- ];
154
-
155
- $options[] = [
156
- 'type' => 'separator',
157
- 'cssClass' => 'factory-separator-dashed'
158
- ];
159
-
160
- $formOptions = [];
161
-
162
- $formOptions[] = [
163
- 'type' => 'form-group',
164
- 'items' => $options,
165
- //'cssClass' => 'postbox'
166
- ];
167
-
168
- return apply_filters('wbcr_gnz_assets_manager_options', $formOptions);
169
- }
170
- }
1
+ <?php
2
+ // Exit if accessed directly
3
+ if( !defined('ABSPATH') ) {
4
+ exit;
5
+ }
6
+
7
+ /**
8
+ * Страница общих настроек для этого плагина.
9
+ *
10
+ * Может быть использована только, если этот плагин используется как отдельный плагин, а не как аддон
11
+ * дя плагина Clearfy. Если плагин загружен, как аддон для Clearfy, эта страница не будет подключена.
12
+ *
13
+ * Поддерживает режим работы с мультисаймами. Вы можете увидеть эту страницу в панели настройки сети.
14
+ *
15
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
16
+ *
17
+ * @copyright (c) 2018 Webraftic Ltd
18
+ */
19
+ class WGZ_AssetsManagerPage extends Wbcr_FactoryClearfy235_PageBase {
20
+
21
+ /**
22
+ * The id of the page in the admin menu.
23
+ *
24
+ * Mainly used to navigate between pages.
25
+ *
26
+ * @since 1.0.0
27
+ * @see FactoryPages443_AdminPage
28
+ *
29
+ * @var string
30
+ */
31
+ public $id = "gonzales";
32
+
33
+ /**
34
+ * @var string
35
+ */
36
+ public $page_menu_dashicon = 'dashicons-image-filter';
37
+
38
+ /**
39
+ * @var int
40
+ */
41
+ public $page_menu_position = 95;
42
+
43
+ /**
44
+ * Доступена для мультисайтов
45
+ *
46
+ * @var bool
47
+ */
48
+ public $available_for_multisite = true;
49
+
50
+ /**
51
+ * @param Wbcr_Factory444_Plugin $plugin
52
+ */
53
+ public function __construct(Wbcr_Factory444_Plugin $plugin)
54
+ {
55
+ $this->menu_title = __('Assets manager', 'gonzales');
56
+
57
+ if( !defined('LOADING_ASSETS_MANAGER_AS_ADDON') ) {
58
+ $this->internal = false;
59
+ $this->menu_target = 'options-general.php';
60
+ $this->add_link_to_plugin_actions = true;
61
+ $this->show_search_options_form = false;
62
+ } else {
63
+ $this->page_parent_page = 'performance';
64
+ }
65
+
66
+ parent::__construct($plugin);
67
+ }
68
+
69
+ /**
70
+ * Метод позволяет менять заголовок меню, в зависимости от сборки плагина.
71
+ *
72
+ * @return string|void
73
+ */
74
+ public function getMenuTitle()
75
+ {
76
+ return defined('LOADING_ASSETS_MANAGER_AS_ADDON') ? __('General', 'hide-login-page') : __('Assets manager', 'gonzales');
77
+ }
78
+
79
+ /**
80
+ * @return string|void *
81
+ */
82
+ public function getPageTitle()
83
+ {
84
+ return defined('LOADING_ASSETS_MANAGER_AS_ADDON') ? __('Assets manager', 'gonzales') : __('General', 'hide-login-page');
85
+ }
86
+
87
+ /**
88
+ * Permalinks options.
89
+ *
90
+ * @return mixed[]
91
+ * @since 1.0.0
92
+ */
93
+ public function getPageOptions()
94
+ {
95
+ $options = [];
96
+ $options[] = [
97
+ 'type' => 'html',
98
+ 'html' => '<div class="wbcr-factory-page-group-header"><strong>' . __('Disable unused scripts, styles, and fonts', 'gonzales') . '</strong><p>' . __('There is a button in the adminbar called "Script Manager". If you click on it you will see a list of loaded scripts, styles and fonts on the current page of your site. If you think that one of the assets is superfluous on this page, you can disable it individually, so that it does not create unnecessary queries when page loading. Use the script manager very carefull to non-corrupt your website. We recommend to test this function at a local server.', 'gonzales') . '</p></div>'
99
+ ];
100
+
101
+ $options[] = [
102
+ 'type' => 'checkbox',
103
+ 'way' => 'buttons',
104
+ 'name' => 'disable_assets_manager',
105
+ 'title' => __('Disable assets manager', 'gonzales'),
106
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
107
+ 'hint' => __('Full disable of the module.', 'gonzales'),
108
+ 'eventsOn' => [
109
+ 'hide' => '#wbcr-gnz-asset-manager-extend-options'
110
+ ],
111
+ 'eventsOff' => [
112
+ 'show' => '#wbcr-gnz-asset-manager-extend-options'
113
+ ],
114
+ 'default' => false
115
+ ];
116
+
117
+ $options[] = [
118
+ 'type' => 'div',
119
+ 'id' => 'wbcr-gnz-asset-manager-extend-options',
120
+ 'items' => [
121
+ [
122
+ 'type' => 'separator',
123
+ 'cssClass' => 'factory-separator-dashed'
124
+ ],
125
+ [
126
+ 'type' => 'checkbox',
127
+ 'way' => 'buttons',
128
+ 'name' => 'disable_assets_manager_panel',
129
+ 'title' => __('Disable assets manager panel', 'gonzales'),
130
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'green'],
131
+ 'hint' => __('By default in your admin bar there is a button for control the assets scripts and styles. With this option, you can turn off the script manager on front and back-end.', 'gonzales'),
132
+ 'default' => false
133
+ ],
134
+ [
135
+ 'type' => 'checkbox',
136
+ 'way' => 'buttons',
137
+ 'name' => 'disable_assets_manager_on_front',
138
+ 'title' => __('Disable assets manager on front', 'gonzales'),
139
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
140
+ 'hint' => __('Disables assets manager initialization for frontend.', 'gonzales'),
141
+ 'default' => false
142
+ ],
143
+ [
144
+ 'type' => 'checkbox',
145
+ 'way' => 'buttons',
146
+ 'name' => 'disable_assets_manager_on_backend',
147
+ 'title' => __('Disable assets manager on back-end', 'gonzales'),
148
+ 'layout' => ['hint-type' => 'icon', 'hint-icon-color' => 'grey'],
149
+ 'hint' => __('Disables assets manager initialization for backend.', 'gonzales'),
150
+ 'default' => true
151
+ ]
152
+ ]
153
+ ];
154
+
155
+ $options[] = [
156
+ 'type' => 'separator',
157
+ 'cssClass' => 'factory-separator-dashed'
158
+ ];
159
+
160
+ $formOptions = [];
161
+
162
+ $formOptions[] = [
163
+ 'type' => 'form-group',
164
+ 'items' => $options,
165
+ //'cssClass' => 'postbox'
166
+ ];
167
+
168
+ return apply_filters('wbcr_gnz_assets_manager_options', $formOptions);
169
+ }
170
+ }
components/assets-manager/admin/pages/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
- // Silence is golden.
1
+ <?php
2
+ // Silence is golden.
components/assets-manager/assets/css/PNotifyBrightTheme.css CHANGED
@@ -1,224 +1,224 @@
1
- /*
2
- Color Scheme: http://paletton.com/palette.php?uid=c1T3n2J040kpEKzpEKzbEPSOEyiNk9W
3
- */
4
- [ui-pnotify].ui-pnotify {
5
- z-index: 999999999 !important;
6
- }
7
-
8
- [ui-pnotify].ui-pnotify .brighttheme {
9
- -webkit-border-radius: 0;
10
- -moz-border-radius: 0;
11
- border-radius: 0;
12
- }
13
-
14
- [ui-pnotify].ui-pnotify .brighttheme.ui-pnotify-container {
15
- padding: 1.3rem;
16
- }
17
-
18
- [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-title,
19
- [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-text,
20
- [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-confirm {
21
- margin-left: 1.8rem;
22
- }
23
-
24
- [dir=rtl] [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-title,
25
- [dir=rtl] [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-text,
26
- [dir=rtl] [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-confirm {
27
- margin-right: 1.8rem;
28
- margin-left: 0;
29
- }
30
-
31
- [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-title {
32
- font-size: 1.2rem;
33
- line-height: 1.4rem;
34
- margin-top: -.2rem;
35
- margin-bottom: 1rem;
36
- }
37
-
38
- [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-text {
39
- font-size: 1rem;
40
- line-height: 1.2rem;
41
- margin-top: 0;
42
- }
43
-
44
- [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-icon {
45
- line-height: 1;
46
- }
47
-
48
- [ui-pnotify].ui-pnotify .brighttheme-notice {
49
- background-color: #FFFFA2;
50
- border: 0 solid #FFFF00;
51
- }
52
-
53
- [ui-pnotify].ui-pnotify .brighttheme-notice h4,
54
- [ui-pnotify].ui-pnotify .brighttheme-notice div {
55
- color: #4F4F00;
56
- }
57
-
58
- [ui-pnotify].ui-pnotify .brighttheme-info {
59
- background-color: #8FCEDD;
60
- border: 0 solid #0286A5;
61
- }
62
-
63
- [ui-pnotify].ui-pnotify .brighttheme-info h4,
64
- [ui-pnotify].ui-pnotify .brighttheme-info div {
65
- color: #012831;
66
- }
67
-
68
- [ui-pnotify].ui-pnotify .brighttheme-success {
69
- background-color: #AFF29A;
70
- border: 0 solid #35DB00;
71
- }
72
-
73
- [ui-pnotify].ui-pnotify .brighttheme-success h4,
74
- [ui-pnotify].ui-pnotify .brighttheme-success div {
75
- color: #104300;
76
- }
77
-
78
- [ui-pnotify].ui-pnotify .brighttheme-error {
79
- background-color: #FFABA2;
80
- background-image: repeating-linear-gradient(135deg, transparent, transparent 35px, rgba(255, 255, 255, .3) 35px, rgba(255, 255, 255, .3) 70px);
81
- border: 0 solid #FF1800;
82
- }
83
-
84
- [ui-pnotify].ui-pnotify .brighttheme-error h4,
85
- [ui-pnotify].ui-pnotify .brighttheme-error div {
86
- color: #4F0800;
87
- }
88
-
89
- [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-closer,
90
- [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-sticker {
91
- font-size: 1rem;
92
- line-height: 1.2rem;
93
- }
94
-
95
- [ui-pnotify].ui-pnotify .brighttheme-icon-notice,
96
- [ui-pnotify].ui-pnotify .brighttheme-icon-info,
97
- [ui-pnotify].ui-pnotify .brighttheme-icon-success,
98
- [ui-pnotify].ui-pnotify .brighttheme-icon-error,
99
- [ui-pnotify].ui-pnotify .brighttheme-icon-closer,
100
- [ui-pnotify].ui-pnotify .brighttheme-icon-sticker {
101
- position: relative;
102
- width: 1rem;
103
- height: 1rem;
104
- font-size: 1rem;
105
- font-weight: bold;
106
- line-height: 1rem;
107
- font-family: "Courier New", Courier, monospace;
108
- border-radius: 50%;
109
- }
110
-
111
- [ui-pnotify].ui-pnotify .brighttheme-icon-notice:after,
112
- [ui-pnotify].ui-pnotify .brighttheme-icon-info:after,
113
- [ui-pnotify].ui-pnotify .brighttheme-icon-success:after,
114
- [ui-pnotify].ui-pnotify .brighttheme-icon-closer:after,
115
- [ui-pnotify].ui-pnotify .brighttheme-icon-sticker:after {
116
- position: absolute;
117
- top: 0;
118
- left: .2rem;
119
- }
120
-
121
- [ui-pnotify].ui-pnotify .brighttheme-icon-notice {
122
- background-color: #2E2E00;
123
- color: #FFFFA2;
124
- }
125
-
126
- [ui-pnotify].ui-pnotify .brighttheme-icon-notice:after {
127
- content: "!";
128
- }
129
-
130
- [ui-pnotify].ui-pnotify .brighttheme-icon-info {
131
- background-color: #012831;
132
- color: #8FCEDD;
133
- }
134
-
135
- [ui-pnotify].ui-pnotify .brighttheme-icon-info:after {
136
- content: "i";
137
- }
138
-
139
- [ui-pnotify].ui-pnotify .brighttheme-icon-success {
140
- background-color: #104300;
141
- color: #AFF29A;
142
- }
143
-
144
- [ui-pnotify].ui-pnotify .brighttheme-icon-success:after {
145
- content: "\002713";
146
- }
147
-
148
- [ui-pnotify].ui-pnotify .brighttheme-icon-error {
149
- width: 0;
150
- height: 0;
151
- font-size: 0;
152
- line-height: 0;
153
- border-radius: 0;
154
- border-left: .6rem solid transparent;
155
- border-right: .6rem solid transparent;
156
- border-bottom: 1.2rem solid #2E0400;
157
- color: #FFABA2;
158
- }
159
-
160
- [ui-pnotify].ui-pnotify .brighttheme-icon-error:after {
161
- position: absolute;
162
- top: .1rem;
163
- left: -0.25rem;
164
- font-size: .9rem;
165
- font-weight: bold;
166
- line-height: 1.4rem;
167
- font-family: "Courier New", Courier, monospace;
168
- content: "!";
169
- }
170
-
171
- [ui-pnotify].ui-pnotify .brighttheme-icon-closer,
172
- [ui-pnotify].ui-pnotify .brighttheme-icon-sticker {
173
- display: inline-block;
174
- }
175
-
176
- [ui-pnotify].ui-pnotify .brighttheme-icon-closer:after {
177
- content: "\002715";
178
- }
179
-
180
- [ui-pnotify].ui-pnotify .brighttheme-icon-sticker:after {
181
- top: -1px;
182
- content: "\002016";
183
- }
184
-
185
- [ui-pnotify].ui-pnotify .brighttheme-icon-sticker.brighttheme-icon-stuck:after {
186
- content: "\00003E";
187
- }
188
-
189
- [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-confirm {
190
- margin-top: 1rem;
191
- }
192
-
193
- [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-prompt-bar {
194
- margin-bottom: 1rem;
195
- }
196
-
197
- [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-action-button {
198
- text-transform: uppercase;
199
- font-weight: bold;
200
- padding: .4rem 1rem;
201
- border: none;
202
- background: transparent;
203
- cursor: pointer;
204
- }
205
-
206
- [ui-pnotify].ui-pnotify .brighttheme-notice .ui-pnotify-action-button.brighttheme-primary {
207
- background-color: #FFFF00;
208
- color: #4F4F00;
209
- }
210
-
211
- [ui-pnotify].ui-pnotify .brighttheme-info .ui-pnotify-action-button.brighttheme-primary {
212
- background-color: #0286A5;
213
- color: #012831;
214
- }
215
-
216
- [ui-pnotify].ui-pnotify .brighttheme-success .ui-pnotify-action-button.brighttheme-primary {
217
- background-color: #35DB00;
218
- color: #104300;
219
- }
220
-
221
- [ui-pnotify].ui-pnotify .brighttheme-error .ui-pnotify-action-button.brighttheme-primary {
222
- background-color: #FF1800;
223
- color: #4F0800;
224
- }
1
+ /*
2
+ Color Scheme: http://paletton.com/palette.php?uid=c1T3n2J040kpEKzpEKzbEPSOEyiNk9W
3
+ */
4
+ [ui-pnotify].ui-pnotify {
5
+ z-index: 999999999 !important;
6
+ }
7
+
8
+ [ui-pnotify].ui-pnotify .brighttheme {
9
+ -webkit-border-radius: 0;
10
+ -moz-border-radius: 0;
11
+ border-radius: 0;
12
+ }
13
+
14
+ [ui-pnotify].ui-pnotify .brighttheme.ui-pnotify-container {
15
+ padding: 1.3rem;
16
+ }
17
+
18
+ [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-title,
19
+ [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-text,
20
+ [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-confirm {
21
+ margin-left: 1.8rem;
22
+ }
23
+
24
+ [dir=rtl] [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-title,
25
+ [dir=rtl] [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-text,
26
+ [dir=rtl] [ui-pnotify].ui-pnotify-with-icon .brighttheme .ui-pnotify-confirm {
27
+ margin-right: 1.8rem;
28
+ margin-left: 0;
29
+ }
30
+
31
+ [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-title {
32
+ font-size: 1.2rem;
33
+ line-height: 1.4rem;
34
+ margin-top: -.2rem;
35
+ margin-bottom: 1rem;
36
+ }
37
+
38
+ [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-text {
39
+ font-size: 1rem;
40
+ line-height: 1.2rem;
41
+ margin-top: 0;
42
+ }
43
+
44
+ [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-icon {
45
+ line-height: 1;
46
+ }
47
+
48
+ [ui-pnotify].ui-pnotify .brighttheme-notice {
49
+ background-color: #FFFFA2;
50
+ border: 0 solid #FFFF00;
51
+ }
52
+
53
+ [ui-pnotify].ui-pnotify .brighttheme-notice h4,
54
+ [ui-pnotify].ui-pnotify .brighttheme-notice div {
55
+ color: #4F4F00;
56
+ }
57
+
58
+ [ui-pnotify].ui-pnotify .brighttheme-info {
59
+ background-color: #8FCEDD;
60
+ border: 0 solid #0286A5;
61
+ }
62
+
63
+ [ui-pnotify].ui-pnotify .brighttheme-info h4,
64
+ [ui-pnotify].ui-pnotify .brighttheme-info div {
65
+ color: #012831;
66
+ }
67
+
68
+ [ui-pnotify].ui-pnotify .brighttheme-success {
69
+ background-color: #AFF29A;
70
+ border: 0 solid #35DB00;
71
+ }
72
+
73
+ [ui-pnotify].ui-pnotify .brighttheme-success h4,
74
+ [ui-pnotify].ui-pnotify .brighttheme-success div {
75
+ color: #104300;
76
+ }
77
+
78
+ [ui-pnotify].ui-pnotify .brighttheme-error {
79
+ background-color: #FFABA2;
80
+ background-image: repeating-linear-gradient(135deg, transparent, transparent 35px, rgba(255, 255, 255, .3) 35px, rgba(255, 255, 255, .3) 70px);
81
+ border: 0 solid #FF1800;
82
+ }
83
+
84
+ [ui-pnotify].ui-pnotify .brighttheme-error h4,
85
+ [ui-pnotify].ui-pnotify .brighttheme-error div {
86
+ color: #4F0800;
87
+ }
88
+
89
+ [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-closer,
90
+ [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-sticker {
91
+ font-size: 1rem;
92
+ line-height: 1.2rem;
93
+ }
94
+
95
+ [ui-pnotify].ui-pnotify .brighttheme-icon-notice,
96
+ [ui-pnotify].ui-pnotify .brighttheme-icon-info,
97
+ [ui-pnotify].ui-pnotify .brighttheme-icon-success,
98
+ [ui-pnotify].ui-pnotify .brighttheme-icon-error,
99
+ [ui-pnotify].ui-pnotify .brighttheme-icon-closer,
100
+ [ui-pnotify].ui-pnotify .brighttheme-icon-sticker {
101
+ position: relative;
102
+ width: 1rem;
103
+ height: 1rem;
104
+ font-size: 1rem;
105
+ font-weight: bold;
106
+ line-height: 1rem;
107
+ font-family: "Courier New", Courier, monospace;
108
+ border-radius: 50%;
109
+ }
110
+
111
+ [ui-pnotify].ui-pnotify .brighttheme-icon-notice:after,
112
+ [ui-pnotify].ui-pnotify .brighttheme-icon-info:after,
113
+ [ui-pnotify].ui-pnotify .brighttheme-icon-success:after,
114
+ [ui-pnotify].ui-pnotify .brighttheme-icon-closer:after,
115
+ [ui-pnotify].ui-pnotify .brighttheme-icon-sticker:after {
116
+ position: absolute;
117
+ top: 0;
118
+ left: .2rem;
119
+ }
120
+
121
+ [ui-pnotify].ui-pnotify .brighttheme-icon-notice {
122
+ background-color: #2E2E00;
123
+ color: #FFFFA2;
124
+ }
125
+
126
+ [ui-pnotify].ui-pnotify .brighttheme-icon-notice:after {
127
+ content: "!";
128
+ }
129
+
130
+ [ui-pnotify].ui-pnotify .brighttheme-icon-info {
131
+ background-color: #012831;
132
+ color: #8FCEDD;
133
+ }
134
+
135
+ [ui-pnotify].ui-pnotify .brighttheme-icon-info:after {
136
+ content: "i";
137
+ }
138
+
139
+ [ui-pnotify].ui-pnotify .brighttheme-icon-success {
140
+ background-color: #104300;
141
+ color: #AFF29A;
142
+ }
143
+
144
+ [ui-pnotify].ui-pnotify .brighttheme-icon-success:after {
145
+ content: "\002713";
146
+ }
147
+
148
+ [ui-pnotify].ui-pnotify .brighttheme-icon-error {
149
+ width: 0;
150
+ height: 0;
151
+ font-size: 0;
152
+ line-height: 0;
153
+ border-radius: 0;
154
+ border-left: .6rem solid transparent;
155
+ border-right: .6rem solid transparent;
156
+ border-bottom: 1.2rem solid #2E0400;
157
+ color: #FFABA2;
158
+ }
159
+
160
+ [ui-pnotify].ui-pnotify .brighttheme-icon-error:after {
161
+ position: absolute;
162
+ top: .1rem;
163
+ left: -0.25rem;
164
+ font-size: .9rem;
165
+ font-weight: bold;
166
+ line-height: 1.4rem;
167
+ font-family: "Courier New", Courier, monospace;
168
+ content: "!";
169
+ }
170
+
171
+ [ui-pnotify].ui-pnotify .brighttheme-icon-closer,
172
+ [ui-pnotify].ui-pnotify .brighttheme-icon-sticker {
173
+ display: inline-block;
174
+ }
175
+
176
+ [ui-pnotify].ui-pnotify .brighttheme-icon-closer:after {
177
+ content: "\002715";
178
+ }
179
+
180
+ [ui-pnotify].ui-pnotify .brighttheme-icon-sticker:after {
181
+ top: -1px;
182
+ content: "\002016";
183
+ }
184
+
185
+ [ui-pnotify].ui-pnotify .brighttheme-icon-sticker.brighttheme-icon-stuck:after {
186
+ content: "\00003E";
187
+ }
188
+
189
+ [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-confirm {
190
+ margin-top: 1rem;
191
+ }
192
+
193
+ [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-prompt-bar {
194
+ margin-bottom: 1rem;
195
+ }
196
+
197
+ [ui-pnotify].ui-pnotify .brighttheme .ui-pnotify-action-button {
198
+ text-transform: uppercase;
199
+ font-weight: bold;
200
+ padding: .4rem 1rem;
201
+ border: none;
202
+ background: transparent;
203
+ cursor: pointer;
204
+ }
205
+
206
+ [ui-pnotify].ui-pnotify .brighttheme-notice .ui-pnotify-action-button.brighttheme-primary {
207
+ background-color: #FFFF00;
208
+ color: #4F4F00;
209
+ }
210
+
211
+ [ui-pnotify].ui-pnotify .brighttheme-info .ui-pnotify-action-button.brighttheme-primary {
212
+ background-color: #0286A5;
213
+ color: #012831;
214
+ }
215
+
216
+ [ui-pnotify].ui-pnotify .brighttheme-success .ui-pnotify-action-button.brighttheme-primary {
217
+ background-color: #35DB00;
218
+ color: #104300;
219
+ }
220
+
221
+ [ui-pnotify].ui-pnotify .brighttheme-error .ui-pnotify-action-button.brighttheme-primary {
222
+ background-color: #FF1800;
223
+ color: #4F0800;
224
+ }
components/assets-manager/assets/css/assets-conditions.css CHANGED
@@ -1,175 +1,175 @@
1
- /* ==*/
2
- #WBCR-AM .wam-cleditor {
3
- box-sizing: border-box;
4
- /* Conditions */
5
- /* Buttons */
6
- }
7
- #WBCR-AM .wam-cleditor input {
8
- float: none;
9
- position: relative;
10
- top: 0;
11
- padding: 4px;
12
- }
13
- #WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-taxonomy"],
14
- #WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-post-type"],
15
- #WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-some-page"] {
16
- display: none;
17
- }
18
- #WBCR-AM .wam-cleditor .wam-cleditor__text {
19
- width: 300px;
20
- }
21
- #WBCR-AM .wam-cleditor .wam-cleditor__box {
22
- padding: 25px 15px 15px 15px;
23
- border-left: 1px solid #ddd;
24
- background-color: #f9f9f9;
25
- }
26
- #WBCR-AM .wam-cleditor .wam-cleditor__when-empty {
27
- display: none;
28
- }
29
- #WBCR-AM .wam-cleditor .wam-cleditor__empty .wam-cleditor__when-empty {
30
- display: block;
31
- }
32
- #WBCR-AM .wam-cleditor .wam-cleditor__head {
33
- display: flex;
34
- overflow: auto;
35
- background-color: #fff;
36
- border-bottom: 1px solid #ddd;
37
- border-left: 1px solid #ddd;
38
- padding: 10px 15px;
39
- }
40
- #WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-left,
41
- #WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-right {
42
- display: inline-block;
43
- }
44
- #WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-left {
45
- text-align: left;
46
- flex: 2 0 0;
47
- }
48
- #WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-right {
49
- text-align: right;
50
- flex: 1 0 0;
51
- }
52
- #WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__first-group-title {
53
- text-transform: uppercase;
54
- margin: 0;
55
- font-weight: 600;
56
- font-size: 14px;
57
- line-height: 2.3;
58
- }
59
- #WBCR-AM .wam-cleditor .wam-cleditor__wrap .wam-cleditor__groups {
60
- padding-left: 20px;
61
- border-left: 1px solid #ddd;
62
- }
63
- #WBCR-AM .wam-cleditor .wam-cleditor__groups .wam-cleditor__point {
64
- background-color: #fff;
65
- border: 1px solid #0073aa;
66
- border-radius: 100%;
67
- width: 11px;
68
- height: 11px;
69
- display: block;
70
- position: absolute;
71
- margin-left: -26px;
72
- margin-top: 19px;
73
- }
74
- #WBCR-AM .wam-cleditor .wam-cleditor__groups .wam-cleditor__point:after {
75
- position: absolute;
76
- content: " ";
77
- display: block;
78
- width: 15px;
79
- border-top: 1px solid #ddd;
80
- margin-left: 10px;
81
- margin-top: 4px;
82
- }
83
- #WBCR-AM .wam-cleditor .wam-cleditor__group {
84
- /*@{prefix}__group + @{prefix}__group {
85
- margin-top: 20px;
86
- }*/
87
- }
88
- #WBCR-AM .wam-cleditor .wam-cleditor__group .wam-cleditor__group-type {
89
- display: none;
90
- text-transform: uppercase;
91
- margin: 0;
92
- line-height: 2.3;
93
- font-size: 12px;
94
- font-weight: bold;
95
- font-style: normal;
96
- color: #222;
97
- background: #f3f3f3;
98
- text-align: center;
99
- border-radius: 3px;
100
- padding: 5px 10px 5px 10px;
101
- }
102
- #WBCR-AM .wam-cleditor .wam-cleditor__empty .wam-cleditor__conditions {
103
- display: none;
104
- }
105
- #WBCR-AM .wam-cleditor .wam-cleditor__condition {
106
- position: relative;
107
- }
108
- #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint,
109
- #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint-content {
110
- display: none;
111
- }
112
- #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint {
113
- position: relative;
114
- display: inline-block;
115
- padding: 0 6px 0 3px;
116
- }
117
- #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint-icon {
118
- background: url('../img/help.png') no-repeat 0 0 transparent;
119
- position: relative;
120
- height: 14px;
121
- width: 13px;
122
- display: inline-block;
123
- cursor: help;
124
- vertical-align: middle;
125
- top: -1px;
126
- opacity: 0.55;
127
- }
128
- #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint:hover .wam-cleditor__hint-content {
129
- display: block;
130
- position: absolute;
131
- width: 280px;
132
- background-color: rgba(0, 0, 0, 0.8);
133
- white-space: normal;
134
- padding: 10px 12px 12px 12px;
135
- font-weight: normal;
136
- line-height: 150%;
137
- border-radius: 4px;
138
- color: #fff;
139
- font-size: 13px;
140
- z-index: 999;
141
- }
142
- #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint .wam-cleditor__hint-content,
143
- #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint .wam-cleditor__hint-content a {
144
- color: #fff;
145
- }
146
- #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__operator-and {
147
- display: block;
148
- color: rgba(0, 0, 0, 0.7);
149
- font-weight: bold;
150
- border-top: 1px solid #ddd;
151
- margin: 18px 0;
152
- position: relative;
153
- }
154
- #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__operator-and span {
155
- position: absolute;
156
- top: -10px;
157
- background-color: #f9f9f9;
158
- padding-right: 7px;
159
- text-transform: uppercase;
160
- }
161
- #WBCR-AM .wam-cleditor .wam-cleditor__condition:first-child .wam-cleditor__operator-and {
162
- display: none;
163
- }
164
- #WBCR-AM .wam-cleditor .wam-cleditor__condition > span {
165
- display: inline-block;
166
- vertical-align: top;
167
- }
168
- #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__condition-actions {
169
- position: absolute;
170
- right: 0;
171
- }
172
- #WBCR-AM .wam-cleditor .wam-cleditor__buttons-group {
173
- margin-top: 20px;
174
- }
175
  /*# sourceMappingURL=assets-conditions.css.map */
1
+ /* ==*/
2
+ #WBCR-AM .wam-cleditor {
3
+ box-sizing: border-box;
4
+ /* Conditions */
5
+ /* Buttons */
6
+ }
7
+ #WBCR-AM .wam-cleditor input {
8
+ float: none;
9
+ position: relative;
10
+ top: 0;
11
+ padding: 4px;
12
+ }
13
+ #WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-taxonomy"],
14
+ #WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-post-type"],
15
+ #WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-some-page"] {
16
+ display: none;
17
+ }
18
+ #WBCR-AM .wam-cleditor .wam-cleditor__text {
19
+ width: 300px;
20
+ }
21
+ #WBCR-AM .wam-cleditor .wam-cleditor__box {
22
+ padding: 25px 15px 15px 15px;
23
+ border-left: 1px solid #ddd;
24
+ background-color: #f9f9f9;
25
+ }
26
+ #WBCR-AM .wam-cleditor .wam-cleditor__when-empty {
27
+ display: none;
28
+ }
29
+ #WBCR-AM .wam-cleditor .wam-cleditor__empty .wam-cleditor__when-empty {
30
+ display: block;
31
+ }
32
+ #WBCR-AM .wam-cleditor .wam-cleditor__head {
33
+ display: flex;
34
+ overflow: auto;
35
+ background-color: #fff;
36
+ border-bottom: 1px solid #ddd;
37
+ border-left: 1px solid #ddd;
38
+ padding: 10px 15px;
39
+ }
40
+ #WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-left,
41
+ #WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-right {
42
+ display: inline-block;
43
+ }
44
+ #WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-left {
45
+ text-align: left;
46
+ flex: 2 0 0;
47
+ }
48
+ #WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-right {
49
+ text-align: right;
50
+ flex: 1 0 0;
51
+ }
52
+ #WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__first-group-title {
53
+ text-transform: uppercase;
54
+ margin: 0;
55
+ font-weight: 600;
56
+ font-size: 14px;
57
+ line-height: 2.3;
58
+ }
59
+ #WBCR-AM .wam-cleditor .wam-cleditor__wrap .wam-cleditor__groups {
60
+ padding-left: 20px;
61
+ border-left: 1px solid #ddd;
62
+ }
63
+ #WBCR-AM .wam-cleditor .wam-cleditor__groups .wam-cleditor__point {
64
+ background-color: #fff;
65
+ border: 1px solid #0073aa;
66
+ border-radius: 100%;
67
+ width: 11px;
68
+ height: 11px;
69
+ display: block;
70
+ position: absolute;
71
+ margin-left: -26px;
72
+ margin-top: 19px;
73
+ }
74
+ #WBCR-AM .wam-cleditor .wam-cleditor__groups .wam-cleditor__point:after {
75
+ position: absolute;
76
+ content: " ";
77
+ display: block;
78
+ width: 15px;
79
+ border-top: 1px solid #ddd;
80
+ margin-left: 10px;
81
+ margin-top: 4px;
82
+ }
83
+ #WBCR-AM .wam-cleditor .wam-cleditor__group {
84
+ /*@{prefix}__group + @{prefix}__group {
85
+ margin-top: 20px;
86
+ }*/
87
+ }
88
+ #WBCR-AM .wam-cleditor .wam-cleditor__group .wam-cleditor__group-type {
89
+ display: none;
90
+ text-transform: uppercase;
91
+ margin: 0;
92
+ line-height: 2.3;
93
+ font-size: 12px;
94
+ font-weight: bold;
95
+ font-style: normal;
96
+ color: #222;
97
+ background: #f3f3f3;
98
+ text-align: center;
99
+ border-radius: 3px;
100
+ padding: 5px 10px 5px 10px;
101
+ }
102
+ #WBCR-AM .wam-cleditor .wam-cleditor__empty .wam-cleditor__conditions {
103
+ display: none;
104
+ }
105
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition {
106
+ position: relative;
107
+ }
108
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint,
109
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint-content {
110
+ display: none;
111
+ }
112
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint {
113
+ position: relative;
114
+ display: inline-block;
115
+ padding: 0 6px 0 3px;
116
+ }
117
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint-icon {
118
+ background: url('../img/help.png') no-repeat 0 0 transparent;
119
+ position: relative;
120
+ height: 14px;
121
+ width: 13px;
122
+ display: inline-block;
123
+ cursor: help;
124
+ vertical-align: middle;
125
+ top: -1px;
126
+ opacity: 0.55;
127
+ }
128
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint:hover .wam-cleditor__hint-content {
129
+ display: block;
130
+ position: absolute;
131
+ width: 280px;
132
+ background-color: rgba(0, 0, 0, 0.8);
133
+ white-space: normal;
134
+ padding: 10px 12px 12px 12px;
135
+ font-weight: normal;
136
+ line-height: 150%;
137
+ border-radius: 4px;
138
+ color: #fff;
139
+ font-size: 13px;
140
+ z-index: 999;
141
+ }
142
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint .wam-cleditor__hint-content,
143
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint .wam-cleditor__hint-content a {
144
+ color: #fff;
145
+ }
146
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__operator-and {
147
+ display: block;
148
+ color: rgba(0, 0, 0, 0.7);
149
+ font-weight: bold;
150
+ border-top: 1px solid #ddd;
151
+ margin: 18px 0;
152
+ position: relative;
153
+ }
154
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__operator-and span {
155
+ position: absolute;
156
+ top: -10px;
157
+ background-color: #f9f9f9;
158
+ padding-right: 7px;
159
+ text-transform: uppercase;
160
+ }
161
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition:first-child .wam-cleditor__operator-and {
162
+ display: none;
163
+ }
164
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition > span {
165
+ display: inline-block;
166
+ vertical-align: top;
167
+ }
168
+ #WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__condition-actions {
169
+ position: absolute;
170
+ right: 0;
171
+ }
172
+ #WBCR-AM .wam-cleditor .wam-cleditor__buttons-group {
173
+ margin-top: 20px;
174
+ }
175
  /*# sourceMappingURL=assets-conditions.css.map */
components/assets-manager/assets/css/assets-conditions.less CHANGED
@@ -1,220 +1,220 @@
1
- /* ==*/
2
- #WBCR-AM {
3
- @prefix: ~".wam-cleditor";
4
-
5
- .wam-cleditor {
6
- box-sizing: border-box;
7
-
8
- input {
9
- float: none;
10
- position: relative;
11
- top: 0;
12
- padding: 4px;
13
- }
14
-
15
- &@{prefix}__disable-plugin-mode {
16
- @{prefix}__param-select {
17
- option[value="location-taxonomy"],
18
- option[value="location-post-type"],
19
- option[value="location-some-page"] {
20
- display: none;
21
- }
22
- }
23
- }
24
-
25
- @{prefix}__text {
26
- width: 300px;
27
- }
28
-
29
- @{prefix}__box {
30
- padding: 25px 15px 15px 15px;
31
- border-left: 1px solid #ddd;
32
- background-color: #f9f9f9;
33
- }
34
-
35
- @{prefix}__when-empty {
36
- display: none;
37
- }
38
-
39
- @{prefix}__empty @{prefix}__when-empty {
40
- display: block;
41
- }
42
-
43
- @{prefix}__head {
44
- display: flex;
45
- overflow: auto;
46
- background-color: #fff;
47
- border-bottom: 1px solid #ddd;
48
- border-left: 1px solid #ddd;
49
- padding: 10px 15px;
50
-
51
- @{prefix}__head-left, @{prefix}__head-right {
52
- display: inline-block;
53
- }
54
-
55
- @{prefix}__head-left {
56
- text-align: left;
57
- flex: 2 0 0;
58
- }
59
-
60
- @{prefix}__head-right {
61
- text-align: right;
62
- flex: 1 0 0;
63
- }
64
-
65
- @{prefix}__first-group-title {
66
- text-transform: uppercase;
67
- margin: 0;
68
- font-weight: 600;
69
- font-size: 14px;
70
- line-height: 2.3;
71
- }
72
- }
73
-
74
- @{prefix}__wrap @{prefix}__groups {
75
- padding-left: 20px;
76
- border-left: 1px solid #ddd;
77
- }
78
-
79
- @{prefix}__groups {
80
-
81
- @{prefix}__point {
82
- background-color: #fff;
83
- border: 1px solid #0073aa;
84
- border-radius: 100%;
85
- width: 11px;
86
- height: 11px;
87
- display: block;
88
- position: absolute;
89
- margin-left: -26px;
90
- margin-top: 19px;
91
- }
92
-
93
- @{prefix}__point:after {
94
- position: absolute;
95
- content: " ";
96
- display: block;
97
- width: 15px;
98
- border-top: 1px solid #ddd;
99
- margin-left: 10px;
100
- margin-top: 4px;
101
- }
102
- }
103
-
104
- @{prefix}__group {
105
- @{prefix}__group-type {
106
- display: none;
107
- text-transform: uppercase;
108
- margin: 0;
109
- line-height: 2.3;
110
- font-size: 12px;
111
- font-weight: bold;
112
- font-style: normal;
113
- color: #222;
114
- background: #f3f3f3;
115
- text-align: center;
116
- border-radius: 3px;
117
- padding: 5px 10px 5px 10px;
118
- }
119
-
120
- /*@{prefix}__group + @{prefix}__group {
121
- margin-top: 20px;
122
- }*/
123
- }
124
-
125
- @{prefix}__empty @{prefix}__conditions {
126
- display: none;
127
- }
128
-
129
- /* Conditions */
130
-
131
- @{prefix}__condition {
132
- position: relative;
133
-
134
- @{prefix}__hint,
135
- @{prefix}__hint-content {
136
- display: none;
137
- }
138
-
139
- @{prefix}__hint {
140
- position: relative;
141
- display: inline-block;
142
- padding: 0 6px 0 3px;
143
- }
144
-
145
- @{prefix}__hint-icon {
146
- background: url('../img/help.png') no-repeat 0 0 transparent;
147
- position: relative;
148
- height: 14px;
149
- width: 13px;
150
- display: inline-block;
151
- cursor: help;
152
- vertical-align: middle;
153
- top: -1px;
154
- opacity: 0.55;
155
- }
156
-
157
- @{prefix}__hint:hover @{prefix}__hint-content {
158
- display: block;
159
- position: absolute;
160
- width: 280px;
161
- background-color: rgba(0, 0, 0, 0.8);
162
- white-space: normal;
163
- padding: 10px 12px 12px 12px;
164
- font-weight: normal;
165
- line-height: 150%;
166
- border-radius: 4px;
167
- color: #fff;
168
- font-size: 13px;
169
- z-index: 999;
170
- }
171
-
172
- @{prefix}__hint @{prefix}__hint-content,
173
- @{prefix}__hint @{prefix}__hint-content a {
174
- color: #fff;
175
- }
176
-
177
- @{prefix}__operator-and {
178
- display: block;
179
- color: rgba(0, 0, 0, 0.7);
180
- font-weight: bold;
181
- border-top: 1px solid #ddd;
182
- margin: 18px 0;
183
- position: relative;
184
- }
185
-
186
- @{prefix}__operator-and {
187
- span {
188
- position: absolute;
189
- top: -10px;
190
- background-color: #f9f9f9;
191
- padding-right: 7px;
192
- text-transform: uppercase;
193
- }
194
- }
195
-
196
- &:first-child @{prefix}__operator-and {
197
- display: none;
198
- }
199
-
200
- & > span {
201
- display: inline-block;
202
- vertical-align: top;
203
- }
204
-
205
- @{prefix}__condition-actions {
206
- position: absolute;
207
- right: 0;
208
- }
209
- }
210
-
211
-
212
- /* Buttons */
213
-
214
- @{prefix}__buttons-group {
215
- margin-top: 20px;
216
- }
217
- }
218
- }
219
-
220
-
1
+ /* ==*/
2
+ #WBCR-AM {
3
+ @prefix: ~".wam-cleditor";
4
+
5
+ .wam-cleditor {
6
+ box-sizing: border-box;
7
+
8
+ input {
9
+ float: none;
10
+ position: relative;
11
+ top: 0;
12
+ padding: 4px;
13
+ }
14
+
15
+ &@{prefix}__disable-plugin-mode {
16
+ @{prefix}__param-select {
17
+ option[value="location-taxonomy"],
18
+ option[value="location-post-type"],
19
+ option[value="location-some-page"] {
20
+ display: none;
21
+ }
22
+ }
23
+ }
24
+
25
+ @{prefix}__text {
26
+ width: 300px;
27
+ }
28
+
29
+ @{prefix}__box {
30
+ padding: 25px 15px 15px 15px;
31
+ border-left: 1px solid #ddd;
32
+ background-color: #f9f9f9;
33
+ }
34
+
35
+ @{prefix}__when-empty {
36
+ display: none;
37
+ }
38
+
39
+ @{prefix}__empty @{prefix}__when-empty {
40
+ display: block;
41
+ }
42
+
43
+ @{prefix}__head {
44
+ display: flex;
45
+ overflow: auto;
46
+ background-color: #fff;
47
+ border-bottom: 1px solid #ddd;
48
+ border-left: 1px solid #ddd;
49
+ padding: 10px 15px;
50
+
51
+ @{prefix}__head-left, @{prefix}__head-right {
52
+ display: inline-block;
53
+ }
54
+
55
+ @{prefix}__head-left {
56
+ text-align: left;
57
+ flex: 2 0 0;
58
+ }
59
+
60
+ @{prefix}__head-right {
61
+ text-align: right;
62
+ flex: 1 0 0;
63
+ }
64
+
65
+ @{prefix}__first-group-title {
66
+ text-transform: uppercase;
67
+ margin: 0;
68
+ font-weight: 600;
69
+ font-size: 14px;
70
+ line-height: 2.3;
71
+ }
72
+ }
73
+
74
+ @{prefix}__wrap @{prefix}__groups {
75
+ padding-left: 20px;
76
+ border-left: 1px solid #ddd;
77
+ }
78
+
79
+ @{prefix}__groups {
80
+
81
+ @{prefix}__point {
82
+ background-color: #fff;
83
+ border: 1px solid #0073aa;
84
+ border-radius: 100%;
85
+ width: 11px;
86
+ height: 11px;
87
+ display: block;
88
+ position: absolute;
89
+ margin-left: -26px;
90
+ margin-top: 19px;
91
+ }
92
+
93
+ @{prefix}__point:after {
94
+ position: absolute;
95
+ content: " ";
96
+ display: block;
97
+ width: 15px;
98
+ border-top: 1px solid #ddd;
99
+ margin-left: 10px;
100
+ margin-top: 4px;
101
+ }
102
+ }
103
+
104
+ @{prefix}__group {
105
+ @{prefix}__group-type {
106
+ display: none;
107
+ text-transform: uppercase;
108
+ margin: 0;
109
+ line-height: 2.3;
110
+ font-size: 12px;
111
+ font-weight: bold;
112
+ font-style: normal;
113
+ color: #222;
114
+ background: #f3f3f3;
115
+ text-align: center;
116
+ border-radius: 3px;
117
+ padding: 5px 10px 5px 10px;
118
+ }
119
+
120
+ /*@{prefix}__group + @{prefix}__group {
121
+ margin-top: 20px;
122
+ }*/
123
+ }
124
+
125
+ @{prefix}__empty @{prefix}__conditions {
126
+ display: none;
127
+ }
128
+
129
+ /* Conditions */
130
+
131
+ @{prefix}__condition {
132
+ position: relative;
133
+
134
+ @{prefix}__hint,
135
+ @{prefix}__hint-content {
136
+ display: none;
137
+ }
138
+
139
+ @{prefix}__hint {
140
+ position: relative;
141
+ display: inline-block;
142
+ padding: 0 6px 0 3px;
143
+ }
144
+
145
+ @{prefix}__hint-icon {
146
+ background: url('../img/help.png') no-repeat 0 0 transparent;
147
+ position: relative;
148
+ height: 14px;
149
+ width: 13px;
150
+ display: inline-block;
151
+ cursor: help;
152
+ vertical-align: middle;
153
+ top: -1px;
154
+ opacity: 0.55;
155
+ }
156
+
157
+ @{prefix}__hint:hover @{prefix}__hint-content {
158
+ display: block;
159
+ position: absolute;
160
+ width: 280px;
161
+ background-color: rgba(0, 0, 0, 0.8);
162
+ white-space: normal;
163
+ padding: 10px 12px 12px 12px;
164
+ font-weight: normal;
165
+ line-height: 150%;
166
+ border-radius: 4px;
167
+ color: #fff;
168
+ font-size: 13px;
169
+ z-index: 999;
170
+ }
171
+
172
+ @{prefix}__hint @{prefix}__hint-content,
173
+ @{prefix}__hint @{prefix}__hint-content a {
174
+ color: #fff;
175
+ }
176
+
177
+ @{prefix}__operator-and {
178
+ display: block;
179
+ color: rgba(0, 0, 0, 0.7);
180
+ font-weight: bold;
181
+ border-top: 1px solid #ddd;
182
+ margin: 18px 0;
183
+ position: relative;
184
+ }
185
+
186
+ @{prefix}__operator-and {
187
+ span {
188
+ position: absolute;
189
+ top: -10px;
190
+ background-color: #f9f9f9;
191
+ padding-right: 7px;
192
+ text-transform: uppercase;
193
+ }
194
+ }
195
+
196
+ &:first-child @{prefix}__operator-and {
197
+ display: none;
198
+ }
199
+
200
+ & > span {
201
+ display: inline-block;
202
+ vertical-align: top;
203
+ }
204
+
205
+ @{prefix}__condition-actions {
206
+ position: absolute;
207
+ right: 0;
208
+ }
209
+ }
210
+
211
+
212
+ /* Buttons */
213
+
214
+ @{prefix}__buttons-group {
215
+ margin-top: 20px;
216
+ }
217
+ }
218
+ }
219
+
220
+
components/assets-manager/assets/css/assets-manager.css CHANGED
@@ -1,1209 +1,1209 @@
1
- /**
2
- * Assets manager styles
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright Webcraftic 05.09.2019
5
- */
6
- html,
7
- body {
8
- overflow: hidden !important;
9
- }
10
- html {
11
- line-height: 1.15 !important;
12
- -webkit-text-size-adjust: 100% !important;
13
- box-sizing: border-box !important;
14
- }
15
- body {
16
- margin: 0 !important;
17
- padding: 0 !important;
18
- background: #FFF !important;
19
- }
20
- body,
21
- body p {
22
- font-family: Arial, "Helvetica Neue", sans-serif;
23
- }
24
- #WBCR-AM {
25
- /**
26
- * Reset styles
27
- * @author Webcraftic <wordpress.webraftic@gmail.com>
28
- * @copyright Webcraftic 15.10.2018
29
- */
30
- /**
31
- * Placeholderss
32
- */
33
- /**
34
- * Tabless
35
-
36
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
37
- * @copyright Webcraftic 26.08.2019
38
- */
39
- /**
40
- * Tooltips
41
-
42
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
43
- * @copyright Webcraftic 26.08.2019
44
- */
45
- /**
46
- * Float panel
47
-
48
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
49
- * @copyright Webcraftic 26.08.2019
50
- */
51
- /**
52
- * Tabs
53
-
54
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
55
- * @copyright Webcraftic 26.08.2019
56
- */
57
- /** ---------------- PLUGINS TABS------------------------- */
58
- /** ---------------- /PLUGINS TABS------------------------ */
59
- /*.wam-help-hint {
60
- //display: inline-block;
61
- //width: 16px;
62
- //height: 16px;
63
- //line-height: 0 !important;
64
- //padding: 0;
65
- font-size: 11px;
66
- font-style: normal;
67
- text-align: left;
68
- color: #fff;
69
- background: #b4b5b5;
70
- border-radius: 2px;
71
-
72
- img {
73
- display: inline-block;
74
- margin: 3px 0 0 4px;
75
- }
76
- }*/
77
- }
78
- #WBCR-AM *,
79
- #WBCR-AM *:before,
80
- #WBCR-AM *:after {
81
- -webkit-box-sizing: border-box;
82
- -moz-box-sizing: border-box;
83
- box-sizing: border-box;
84
- }
85
- #WBCR-AM,
86
- #WBCR-AM h2,
87
- #WBCR-AM h3,
88
- #WBCR-AM h4,
89
- #WBCR-AM h5,
90
- #WBCR-AM h6,
91
- #WBCR-AM p,
92
- #WBCR-AM strong,
93
- #WBCR-AM b,
94
- #WBCR-AM span,
95
- #WBCR-AM em,
96
- #WBCR-AM i,
97
- #WBCR-AM a,
98
- #WBCR-AM div,
99
- #WBCR-AM main,
100
- #WBCR-AM section,
101
- #WBCR-AM li,
102
- #WBCR-AM button,
103
- #WBCR-AM input[type="submit"],
104
- #WBCR-AM input[type="reset"],
105
- #WBCR-AM .wbcr-gnz-switch-premium {
106
- font-family: Arial, "Helvetica Neue", sans-serif;
107
- font-size: 14px;
108
- font-style: normal;
109
- font-weight: normal;
110
- text-transform: none;
111
- text-shadow: none;
112
- }
113
- #WBCR-AM h1 {
114
- font-size: 2em;
115
- margin: 0.67em 0;
116
- }
117
- #WBCR-AM hr {
118
- box-sizing: content-box;
119
- height: 0;
120
- overflow: visible;
121
- }
122
- #WBCR-AM pre {
123
- font-family: monospace, monospace;
124
- font-size: 1em;
125
- }
126
- #WBCR-AM a {
127
- background-color: transparent;
128
- }
129
- #WBCR-AM abbr[title] {
130
- border-bottom: none;
131
- text-decoration: underline dotted;
132
- }
133
- #WBCR-AM b,
134
- #WBCR-AM strong {
135
- font-weight: bolder;
136
- }
137
- #WBCR-AM code,
138
- #WBCR-AM kbd,
139
- #WBCR-AM samp {
140
- font-family: monospace, monospace;
141
- font-size: 1em;
142
- }
143
- #WBCR-AM small {
144
- font-size: 80%;
145
- }
146
- #WBCR-AM sub,
147
- #WBCR-AM sup {
148
- font-size: 75%;
149
- line-height: 0;
150
- position: relative;
151
- vertical-align: baseline;
152
- }
153
- #WBCR-AM sub {
154
- bottom: -0.25em;
155
- }
156
- #WBCR-AM sup {
157
- top: -0.5em;
158
- }
159
- #WBCR-AM img {
160
- border-style: none;
161
- }
162
- #WBCR-AM button,
163
- #WBCR-AM input,
164
- #WBCR-AM optgroup,
165
- #WBCR-AM select,
166
- #WBCR-AM textarea {
167
- font-family: inherit;
168
- font-size: 100%;
169
- line-height: 1.15;
170
- margin: 0;
171
- height: auto;
172
- width: auto;
173
- }
174
- #WBCR-AM button,
175
- #WBCR-AM input,
176
- #WBCR-AM optgroup,
177
- #WBCR-AM select,
178
- #WBCR-AM textarea,
179
- #WBCR-AM button:hover,
180
- #WBCR-AM input:hover,
181
- #WBCR-AM optgroup:hover,
182
- #WBCR-AM select:hover,
183
- #WBCR-AM textarea:hover,
184
- #WBCR-AM button:focus,
185
- #WBCR-AM input:focus,
186
- #WBCR-AM optgroup:focus,
187
- #WBCR-AM select:focus,
188
- #WBCR-AM textarea:focus {
189
- -moz-box-shadow: none;
190
- -ms-box-shadow: none;
191
- -webkit-box-shadow: none;
192
- -o-box-shadow: none;
193
- }
194
- #WBCR-AM button,
195
- #WBCR-AM input {
196
- overflow: visible;
197
- }
198
- #WBCR-AM button,
199
- #WBCR-AM select {
200
- text-transform: none;
201
- }
202
- #WBCR-AM button,
203
- #WBCR-AM [type="button"],
204
- #WBCR-AM [type="reset"],
205
- #WBCR-AM [type="submit"] {
206
- -webkit-appearance: button;
207
- }
208
- #WBCR-AM button::-moz-focus-inner,
209
- #WBCR-AM [type="button"]::-moz-focus-inner,
210
- #WBCR-AM [type="reset"]::-moz-focus-inner,
211
- #WBCR-AM [type="submit"]::-moz-focus-inner {
212
- border-style: none;
213
- padding: 0;
214
- }
215
- #WBCR-AM button:-moz-focusring,
216
- #WBCR-AM [type="button"]:-moz-focusring,
217
- #WBCR-AM [type="reset"]:-moz-focusring,
218
- #WBCR-AM [type="submit"]:-moz-focusring {
219
- outline: 1px dotted ButtonText;
220
- }
221
- #WBCR-AM fieldset {
222
- padding: 0.35em 0.75em 0.625em;
223
- }
224
- #WBCR-AM legend {
225
- box-sizing: border-box;
226
- color: inherit;
227
- display: table;
228
- max-width: 100%;
229
- padding: 0;
230
- white-space: normal;
231
- }
232
- #WBCR-AM textarea {
233
- overflow: auto;
234
- }
235
- #WBCR-AM [type="checkbox"],
236
- #WBCR-AM [type="radio"] {
237
- box-sizing: border-box;
238
- padding: 0;
239
- }
240
- #WBCR-AM [type="number"]::-webkit-inner-spin-button,
241
- #WBCR-AM [type="number"]::-webkit-outer-spin-button {
242
- height: auto;
243
- }
244
- #WBCR-AM [type="search"] {
245
- -webkit-appearance: textfield;
246
- outline-offset: -2px;
247
- }
248
- #WBCR-AM [type="search"]::-webkit-search-decoration {
249
- -webkit-appearance: none;
250
- }
251
- #WBCR-AM ::-webkit-file-upload-button {
252
- -webkit-appearance: button;
253
- font: inherit;
254
- }
255
- #WBCR-AM fieldset {
256
- padding: 0.35em 0.75em 0.625em;
257
- }
258
- #WBCR-AM legend {
259
- box-sizing: border-box;
260
- color: inherit;
261
- display: table;
262
- max-width: 100%;
263
- padding: 0;
264
- white-space: normal;
265
- }
266
- #WBCR-AM progress {
267
- vertical-align: baseline;
268
- }
269
- #WBCR-AM textarea {
270
- overflow: auto;
271
- }
272
- #WBCR-AM [type=checkbox],
273
- #WBCR-AM [type=radio] {
274
- box-sizing: border-box;
275
- padding: 0;
276
- }
277
- #WBCR-AM [type=number]::-webkit-inner-spin-button,
278
- #WBCR-AM [type=number]::-webkit-outer-spin-button {
279
- height: auto;
280
- }
281
- #WBCR-AM [type=search] {
282
- -webkit-appearance: textfield;
283
- outline-offset: -2px;
284
- }
285
- #WBCR-AM [type=search]::-webkit-search-decoration {
286
- -webkit-appearance: none;
287
- }
288
- #WBCR-AM ::-webkit-file-upload-button {
289
- -webkit-appearance: button;
290
- font: inherit;
291
- }
292
- #WBCR-AM details {
293
- display: block;
294
- }
295
- #WBCR-AM summary {
296
- display: list-item;
297
- }
298
- #WBCR-AM template {
299
- display: none;
300
- }
301
- #WBCR-AM [hidden] {
302
- display: none;
303
- }
304
- #WBCR-AM table,
305
- #WBCR-AM caption,
306
- #WBCR-AM tbody,
307
- #WBCR-AM tfoot,
308
- #WBCR-AM thead,
309
- #WBCR-AM tr,
310
- #WBCR-AM th,
311
- #WBCR-AM td {
312
- margin: 0;
313
- padding: 0;
314
- border: 0;
315
- font-size: 100%;
316
- font: inherit;
317
- vertical-align: middle;
318
- line-height: 1.2;
319
- }
320
- #WBCR-AM table {
321
- table-layout: auto;
322
- border-collapse: collapse;
323
- border-spacing: 0;
324
- }
325
- #WBCR-AM span {
326
- display: inline;
327
- margin: 0;
328
- }
329
- #WBCR-AM input[type="text"]::-moz-placeholder {
330
- color: #cccccc;
331
- }
332
- #WBCR-AM input[type="text"]::-webkit-input-placeholder,
333
- #WBCR-AM textarea::-webkit-input-placeholder {
334
- color: #cccccc;
335
- }
336
- #WBCR-AM input[type="text"]:-ms-input-placeholder,
337
- #WBCR-AM textarea:-ms-input-placeholder {
338
- color: #cccccc;
339
- }
340
- #WBCR-AM input[type="text"]::-ms-input-placeholder,
341
- #WBCR-AM textarea::-ms-input-placeholder {
342
- color: #cccccc;
343
- }
344
- #WBCR-AM input[type="text"]::placeholder,
345
- #WBCR-AM textarea::placeholder {
346
- color: #cccccc;
347
- }
348
- #WBCR-AM a {
349
- text-decoration: none;
350
- color: #007acc;
351
- border: none;
352
- background: none;
353
- }
354
- #WBCR-AM a:hover {
355
- text-decoration: underline;
356
- border: inherit;
357
- background: inherit;
358
- }
359
- #WBCR-AM button,
360
- #WBCR-AM [type=submit] {
361
- color: black;
362
- font-weight: 400;
363
- padding: 0;
364
- line-height: 1.5;
365
- }
366
- #WBCR-AM label {
367
- color: white;
368
- margin: 0;
369
- font-weight: 400;
370
- }
371
- #WBCR-AM select,
372
- #WBCR-AM [type=text] {
373
- height: 32px;
374
- }
375
- #WBCR-AM .visually-hidden {
376
- position: absolute;
377
- overflow: hidden;
378
- clip: rect(0 0 0 0);
379
- -webkit-clip-path: inset(100%);
380
- clip-path: inset(100%);
381
- width: 1px;
382
- height: 1px;
383
- margin: -1px;
384
- padding: 0;
385
- white-space: nowrap;
386
- border: 0;
387
- }
388
- #WBCR-AM .wam-table {
389
- width: 100%;
390
- box-sizing: border-box;
391
- table-layout: fixed;
392
- border-collapse: collapse;
393
- }
394
- #WBCR-AM .wam-table__handle-deps {
395
- margin-top: 15px;
396
- }
397
- #WBCR-AM .wam-table__handle-deps span,
398
- #WBCR-AM .wam-table__handle-deps a {
399
- font-size: 11px !important;
400
- }
401
- #WBCR-AM .wam-table__handle-deps a {
402
- color: red;
403
- text-decoration: underline;
404
- }
405
- #WBCR-AM .wam-table tr:nth-child(2n) > td {
406
- background: #f9f9f9;
407
- }
408
- #WBCR-AM .wam-table th {
409
- padding: 12px 10px;
410
- text-align: left;
411
- color: #333;
412
- background: #ECEDED;
413
- box-shadow: none;
414
- }
415
- #WBCR-AM .wam-table th:not(:last-child) {
416
- border-right: 2px solid #FFF;
417
- }
418
- #WBCR-AM .wam-table__th-actions {
419
- width: 200px;
420
- }
421
- #WBCR-AM .wam-table__th-type {
422
- width: 100px;
423
- }
424
- #WBCR-AM .wam-table__th-version {
425
- width: 100px;
426
- }
427
- #WBCR-AM .wam-table__th-size {
428
- width: 100px;
429
- }
430
- #WBCR-AM .wam-table__th-plugins-list,
431
- #WBCR-AM .wam-table__td-plugins-list {
432
- width: 350px;
433
- }
434
- #WBCR-AM .wam-table td {
435
- padding: 17px 10px;
436
- vertical-align: top;
437
- text-align: left;
438
- box-shadow: none;
439
- }
440
- #WBCR-AM .wam-table__td-handle {
441
- word-break: break-word;
442
- }
443
- #WBCR-AM .wam-table__td-plugins-list {
444
- padding: 0 !important;
445
- }
446
- #WBCR-AM .wam-table__th-plugins-settings,
447
- #WBCR-AM .wam-table__td-plugins-settings {
448
- width: 80%;
449
- padding: 15px;
450
- text-align: left;
451
- }
452
- #WBCR-AM .wam-table .js-wam-table__tr--disabled-section {
453
- background: #fbf5f4;
454
- opacity: 0.7;
455
- }
456
- #WBCR-AM .wam-table__asset-settings-conditions {
457
- display: none;
458
- background: #f3f3f3;
459
- color: #7b7b7b;
460
- font-size: 13px;
461
- box-shadow: 0 2px 0 #d4d4d4;
462
- }
463
- #WBCR-AM .wam-table__asset-settings-conditions > td {
464
- padding: 0 25px 15px 25px;
465
- }
466
- #WBCR-AM .wam-tooltip {
467
- position: relative;
468
- }
469
- #WBCR-AM .wam-tooltip::before {
470
- content: "";
471
- position: absolute;
472
- z-index: 60;
473
- left: 5px;
474
- display: none;
475
- width: 20px;
476
- height: 20px;
477
- }
478
- #WBCR-AM .wam-tooltip::after {
479
- content: attr(data-tooltip);
480
- position: absolute;
481
- z-index: 60;
482
- left: 5px;
483
- display: none;
484
- min-width: 200px;
485
- padding: 8px 15px;
486
- color: #6d5506;
487
- background: #FFCB1E;
488
- font-size: 13px;
489
- font-weight: normal;
490
- line-height: 1.2;
491
- }
492
- #WBCR-AM .wam-tooltip-top::before {
493
- bottom: 100%;
494
- background: linear-gradient(135deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
495
- }
496
- #WBCR-AM .wam-tooltip-top::after {
497
- bottom: 100%;
498
- margin: 0 0 10px;
499
- border-radius: 6px 6px 6px 0;
500
- }
501
- #WBCR-AM .wam-tooltip--bottom::before {
502
- top: 100%;
503
- background: linear-gradient(45deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
504
- }
505
- #WBCR-AM .wam-tooltip--bottom::after {
506
- top: 100%;
507
- margin: 15px 0 0;
508
- border-radius: 0 6px 6px 6px;
509
- }
510
- #WBCR-AM .wam-tooltip:hover::before,
511
- #WBCR-AM .wam-tooltip:hover::after {
512
- display: block;
513
- }
514
- #WBCR-AM .wam-float-panel {
515
- position: fixed;
516
- z-index: 50;
517
- top: 0;
518
- right: 0;
519
- left: 0;
520
- width: 100%;
521
- display: -webkit-flex;
522
- display: -ms-flexbox;
523
- display: flex;
524
- -ms-flex-pack: justify;
525
- -webkit-justify-content: space-between;
526
- justify-content: space-between;
527
- height: 62px;
528
- padding: 0 20px;
529
- margin: 0;
530
- color: #FFF;
531
- background: #23282d;
532
- font-size: 16px;
533
- border-top: 2px solid #ffcb1e;
534
- }
535
- #WBCR-AM .wam-float-panel__premium {
536
- position: relative;
537
- display: block;
538
- width: 20px;
539
- height: 40px;
540
- background: #ffcb1e;
541
- margin-left: -30px;
542
- }
543
- #WBCR-AM .wam-float-panel__premium:hover {
544
- cursor: pointer;
545
- }
546
- #WBCR-AM .wam-float-panel__premium .wam-tooltip {
547
- position: relative;
548
- right: -30px;
549
- top: 8px;
550
- font-size: 12px;
551
- font-weight: bold;
552
- font-style: normal;
553
- color: #ffffff;
554
- background: #f22714;
555
- width: 45px;
556
- text-align: center;
557
- border-radius: 3px;
558
- padding: 5px 0 5px 0;
559
- line-height: 1.2;
560
- }
561
- #WBCR-AM .wam-float-panel__premium:after {
562
- display: block;
563
- content: '';
564
- position: absolute;
565
- top: 1px;
566
- left: 0;
567
- width: 19px;
568
- height: 38px;
569
- background: #23282d;
570
- }
571
- #WBCR-AM .wam-float-panel__left,
572
- #WBCR-AM .wam-float-panel__right {
573
- display: -webkit-flex;
574
- display: -ms-flexbox;
575
- display: flex;
576
- -webkit-align-items: center;
577
- align-items: center;
578
- -ms-flex-align: center;
579
- }
580
- #WBCR-AM .wam-float-panel__left {
581
- min-width: 800px;
582
- margin: 0 44px 0 0;
583
- }
584
- #WBCR-AM .wam-float-panel__logo {
585
- width: 38px;
586
- height: 32px;
587
- margin: 0 44px 0 0;
588
- background: url("data:image/png;base64,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");
589
- }
590
- #WBCR-AM .wam-float-panel__data {
591
- display: -webkit-flex;
592
- display: -ms-flexbox;
593
- display: flex;
594
- -webkit-align-items: center;
595
- align-items: center;
596
- -ms-flex-align: center;
597
- margin: 0 -22px;
598
- padding: 0;
599
- list-style: none;
600
- }
601
- #WBCR-AM .wam-float-panel__data:not(:last-child) {
602
- margin-right: 22px;
603
- }
604
- #WBCR-AM .wam-float-panel__data-item {
605
- margin: 0 22px;
606
- color: #909090;
607
- text-align: center;
608
- vertical-align: top;
609
- padding: 8px 0 8px;
610
- }
611
- #WBCR-AM .wam-float-panel__data-hidden {
612
- display: none;
613
- margin: 0 44px 0 0;
614
- }
615
- #WBCR-AM .wam-float-panel__data-hidden img {
616
- vertical-align: middle;
617
- }
618
- #WBCR-AM .wam-float-panel__item_value {
619
- font-size: 15px;
620
- color: #d0d0d0;
621
- background: #4c4c4c;
622
- border-radius: 2px;
623
- padding: 2px 5px;
624
- }
625
- #WBCR-AM .wam-float-panel__reset,
626
- #WBCR-AM .wam-float-panel__save,
627
- #WBCR-AM .wam-float-panel__reset.input[type="submit"],
628
- #WBCR-AM .wam-float-panel__save.input[type="submit"] {
629
- display: inline-block;
630
- padding: 8px 15px 7px;
631
- cursor: pointer;
632
- transition: 0.1s;
633
- vertical-align: middle;
634
- text-transform: uppercase !important;
635
- border: none;
636
- border-radius: 2px;
637
- font-size: 14px;
638
- line-height: 1.5;
639
- color: #222 !important;
640
- }
641
- #WBCR-AM .wam-float-panel__reset:hover,
642
- #WBCR-AM .wam-float-panel__save:hover,
643
- #WBCR-AM .wam-float-panel__reset:focus,
644
- #WBCR-AM .wam-float-panel__save:focus {
645
- outline: none;
646
- text-decoration: none;
647
- }
648
- #WBCR-AM .wam-float-panel__reset:active,
649
- #WBCR-AM .wam-float-panel__save:active {
650
- -webkit-transform: translateY(2px);
651
- transform: translateY(2px);
652
- }
653
- #WBCR-AM .wam-float-panel__reset,
654
- #WBCR-AM .wam-float-panel__reset.input[type="submit"] {
655
- margin: 0 10px 0 0;
656
- padding-right: 30px;
657
- padding-left: 30px;
658
- background: #E1E5E9;
659
- box-shadow: 0 4px #A8AEB3 !important;
660
- }
661
- #WBCR-AM .wam-float-panel__reset:hover,
662
- #WBCR-AM .wam-float-panel__reset:focus {
663
- background: #E7EAED !important;
664
- }
665
- #WBCR-AM .wam-float-panel__reset:active {
666
- box-shadow: 0 2px #A8AEB3 !important;
667
- }
668
- #WBCR-AM .wam-float-panel__save,
669
- #WBCR-AM .wam-float-panel__save.input[type="submit"] {
670
- margin: 0 10px 0 0;
671
- padding-right: 30px;
672
- padding-left: 30px;
673
- color: #222 !important;
674
- background: #FFCB1E !important;
675
- box-shadow: 0 4px #BF9A17 !important;
676
- }
677
- #WBCR-AM .wam-float-panel__save:hover,
678
- #WBCR-AM .wam-float-panel__save:focus {
679
- background: #FFD340 !important;
680
- box-shadow: 0 4px #BF9A17 !important;
681
- }
682
- #WBCR-AM .wam-float-panel__save:active {
683
- background: #FFD340 !important;
684
- box-shadow: 0 2px #BF9A17 !important;
685
- }
686
- #WBCR-AM .wam-float-panel__save + div {
687
- margin: 0;
688
- }
689
- #WBCR-AM .wam-float-panel__checkbox {
690
- cursor: pointer;
691
- font-size: 15px;
692
- transform: none;
693
- }
694
- #WBCR-AM .wam-float-panel__checkbox-text,
695
- #WBCR-AM .wam-float-panel__checkbox-text-premium {
696
- position: relative;
697
- padding: 0 0 0 26px;
698
- }
699
- #WBCR-AM .wam-float-panel__checkbox-text::before,
700
- #WBCR-AM .wam-float-panel__checkbox-text-premium::before {
701
- content: "";
702
- position: absolute;
703
- top: -1px;
704
- left: 0;
705
- width: 20px;
706
- height: 20px;
707
- border-radius: 2px;
708
- background: #ffcb1e;
709
- }
710
- #WBCR-AM .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text::after,
711
- #WBCR-AM .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text-premium::after {
712
- content: "";
713
- position: absolute;
714
- top: 5px;
715
- left: 6px;
716
- width: 8px;
717
- height: 5px;
718
- -webkit-transform: rotate(-45deg);
719
- transform: rotate(-45deg);
720
- border: solid #444;
721
- border-width: 0 0 2px 2px;
722
- }
723
- #WBCR-AM .wam-float-panel__checkbox-text-premium {
724
- display: inline;
725
- color: rgba(245, 245, 245, 0.3);
726
- }
727
- #WBCR-AM .wam-float-panel__checkbox-text-premium b {
728
- display: inline-block;
729
- font-size: 9px;
730
- font-weight: 700;
731
- color: #fff;
732
- background: #f22714;
733
- width: 25px;
734
- padding: 3px 0;
735
- text-align: center;
736
- vertical-align: top;
737
- border-radius: 3px;
738
- line-height: 1.5;
739
- }
740
- #WBCR-AM .wam-float-panel__checkbox-text-premium::before {
741
- background: rgba(245, 245, 245, 0.3);
742
- }
743
- #WBCR-AM .wam-float-panel__close,
744
- #WBCR-AM .wam-float-panel__close:hover {
745
- width: 36px;
746
- height: 36px;
747
- margin: 0 20px 0 20px;
748
- cursor: pointer;
749
- transition: 0.2s;
750
- border: 4px solid #FFF;
751
- border-radius: 50%;
752
- background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath fill='%23FFF' d='M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'/%3E%3C/svg%3E") no-repeat 50% 0px;
753
- }
754
- #WBCR-AM .wam-float-panel__close:focus,
755
- #WBCR-AM .wam-float-panel__close:hover:focus {
756
- opacity: 0.5;
757
- outline: none;
758
- }
759
- #WBCR-AM .wam-assets-type-tabs {
760
- position: fixed;
761
- top: 62px;
762
- bottom: 0;
763
- left: 0;
764
- width: 75px;
765
- margin: 0;
766
- padding: 0;
767
- list-style: none;
768
- background: #F4F4F4;
769
- box-shadow: 2px 0 5px rgba(0, 0, 0, 0.2);
770
- }
771
- #WBCR-AM .wam-assets-type-tabs li {
772
- margin: 0;
773
- padding: 0;
774
- }
775
- #WBCR-AM .wam-assets-type-tabs__button {
776
- position: relative;
777
- display: block;
778
- width: 100%;
779
- height: 130px;
780
- cursor: pointer;
781
- border: none;
782
- background: #ECEDED;
783
- border-radius: 0;
784
- box-shadow: none;
785
- -moz-box-shadow: none;
786
- -ms-box-shadow: none;
787
- -webkit-box-shadow: none;
788
- -o-box-shadow: none;
789
- }
790
- #WBCR-AM .wam-assets-type-tabs__button:hover,
791
- #WBCR-AM .wam-assets-type-tabs__button:focus,
792
- #WBCR-AM .wam-assets-type-tabs__button:after,
793
- #WBCR-AM .wam-assets-type-tabs__button:before,
794
- #WBCR-AM .wam-assets-type-tabs__button:after:hover,
795
- #WBCR-AM .wam-assets-type-tabs__button:before:hover {
796
- -moz-box-shadow: none;
797
- -ms-box-shadow: none;
798
- -webkit-box-shadow: none;
799
- -o-box-shadow: none;
800
- }
801
- #WBCR-AM .wam-assets-type-tabs__button::after {
802
- content: "";
803
- position: absolute;
804
- top: 0;
805
- right: 0;
806
- bottom: 0;
807
- left: 0;
808
- opacity: 0.55;
809
- }
810
- #WBCR-AM .wam-assets-type-tabs__button--misc::after {
811
- background: url("data:image/png;base64,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") no-repeat 50%;
812
- }
813
- #WBCR-AM .wam-assets-type-tabs__button--theme::after {
814
- background: url("data:image/png;base64,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") no-repeat 50%;
815
- }
816
- #WBCR-AM .wam-assets-type-tabs__button--plugins::after {
817
- background: url("data:image/png;base64,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") no-repeat 50%;
818
- }
819
- #WBCR-AM .wam-assets-type-tabs__button:hover,
820
- #WBCR-AM .wam-assets-type-tabs__button:focus {
821
- outline: none;
822
- background: #E6E7E7;
823
- }
824
- #WBCR-AM .wam-assets-type-tabs__button:hover::after,
825
- #WBCR-AM .wam-assets-type-tabs__button:focus::after {
826
- opacity: 1;
827
- }
828
- #WBCR-AM .wam-assets-type-tabs__button.wam-assets-type-tab__active {
829
- background: #CACDCF;
830
- }
831
- #WBCR-AM .wam-assets-type-tabs__button.wam-assets-type-tab__active::after {
832
- opacity: 1;
833
- }
834
- #WBCR-AM .wam-assets-type-tab-content {
835
- display: none;
836
- padding: 20px 30px;
837
- }
838
- #WBCR-AM .wam-assets-type-tab-content.wam-assets-type-tab-content__active {
839
- display: block !important;
840
- }
841
- #WBCR-AM .wam-nav-plugins {
842
- padding: 0;
843
- margin: 0;
844
- list-style: none;
845
- }
846
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab {
847
- position: relative;
848
- text-align: left;
849
- margin-bottom: 3px;
850
- }
851
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a {
852
- display: block;
853
- padding: 10px 20px;
854
- background: #f5f5f5;
855
- color: #222;
856
- }
857
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a strong,
858
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a span {
859
- display: block;
860
- }
861
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a span {
862
- font-size: 12px;
863
- color: #2f2f2f;
864
- }
865
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab:hover a {
866
- background: #efefef;
867
- text-decoration: none;
868
- }
869
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab.wam-nav-plugins__tab--active a {
870
- background: #e8e8e8;
871
- }
872
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--enable::after,
873
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-plugin::after,
874
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-assets::after {
875
- display: block;
876
- content: '';
877
- position: absolute;
878
- bottom: 10px;
879
- right: 10px;
880
- width: 10px;
881
- height: 10px;
882
- background: #8bc34a;
883
- text-align: center;
884
- font-size: 11px;
885
- font-weight: 600;
886
- border-radius: 4px;
887
- }
888
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-assets::after,
889
- #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-plugin::after {
890
- background: #d47b7b;
891
- }
892
- #WBCR-AM .wam-nav-plugins__tab-content {
893
- display: none;
894
- }
895
- #WBCR-AM .wam-nav-plugins__tab-content.js-wam-nav-plugins__tab-content--active {
896
- display: block !important;
897
- }
898
- #WBCR-AM .wam-help-hint {
899
- display: inline-block;
900
- position: relative;
901
- background: url(../img/help.png) no-repeat 0 0 transparent;
902
- height: 14px;
903
- width: 13px;
904
- cursor: help;
905
- vertical-align: middle;
906
- top: -1px;
907
- }
908
- #WBCR-AM .wam-asset-type {
909
- display: inline-block;
910
- padding: 5px 10px;
911
- font-size: 13px;
912
- text-transform: uppercase;
913
- text-align: center;
914
- border-radius: 3px;
915
- vertical-align: middle;
916
- margin-right: 15px;
917
- }
918
- #WBCR-AM .wam-asset-type--js {
919
- background: #ffcb1e;
920
- color: #403102;
921
- }
922
- #WBCR-AM .wam-asset-type--css {
923
- background: #9757a5;
924
- color: #ffffff;
925
- }
926
- #WBCR-AM .wam-colors--red {
927
- color: red;
928
- }
929
- #WBCR-AM .wam-colors--grey {
930
- color: grey;
931
- }
932
- #WBCR-AM .wam-button {
933
- display: inline-block;
934
- vertical-align: bottom;
935
- padding: 5px 10px;
936
- text-decoration: none;
937
- box-shadow: none;
938
- font-weight: 600;
939
- border-radius: 3px;
940
- }
941
- #WBCR-AM .wam-button--small {
942
- padding: 2px 8px;
943
- font-size: 13px;
944
- }
945
- #WBCR-AM .wam-button.js-wam-button--hidden {
946
- display: none;
947
- }
948
- #WBCR-AM .wam-button:hover {
949
- cursor: pointer;
950
- text-decoration: none;
951
- box-shadow: none;
952
- }
953
- #WBCR-AM .wam-button:focus {
954
- outline: none;
955
- box-shadow: none;
956
- }
957
- #WBCR-AM .wam-button__icon {
958
- height: 28px;
959
- width: 28px;
960
- padding: 5px;
961
- line-height: 0;
962
- }
963
- #WBCR-AM .wam-button.js-wam-button__icon--cogs {
964
- background: url('../img/cogs.png') center no-repeat;
965
- }
966
- #WBCR-AM .wam-button.js-wam-button__icon--close {
967
- background: url('../img/close.png') center no-repeat;
968
- }
969
- #WBCR-AM .wam-button--default {
970
- background-color: #eceded;
971
- color: #222;
972
- border: 1px solid #c3c3c3;
973
- }
974
- #WBCR-AM .wam-button--default:hover {
975
- cursor: pointer;
976
- background-color: #fff;
977
- border: 1px solid #c3c3c3;
978
- }
979
- #WBCR-AM .wam-button--danger {
980
- background-color: #fff;
981
- color: #ff7063;
982
- border: 1px solid #ff7063;
983
- }
984
- #WBCR-AM .wam-button--danger:hover {
985
- background-color: #fff;
986
- color: #222;
987
- border: 1px solid #c3c3c3;
988
- }
989
- #WBCR-AM .wam-button--yellow {
990
- background-color: #fff;
991
- color: #a5820e;
992
- border: 1px solid #ffcb1e;
993
- }
994
- #WBCR-AM .wam-button--yellow:hover {
995
- background-color: #fff;
996
- color: #222;
997
- border: 1px solid #c3c3c3;
998
- }
999
- #WBCR-AM .wam-select {
1000
- display: inline-block;
1001
- vertical-align: bottom;
1002
- height: auto;
1003
- padding: 4px 10px;
1004
- }
1005
- #WBCR-AM .wam-select.js-wam-select--enable {
1006
- background: #efffde;
1007
- color: #4e6f28;
1008
- border: 1px solid #8bc34a;
1009
- }
1010
- #WBCR-AM .wam-select.js-wam-select--disable {
1011
- background: #ffdada;
1012
- border: 1px solid #efc3c3;
1013
- color: #774a4a;
1014
- }
1015
- #WBCR-AM .wam-select:focus {
1016
- outline: none;
1017
- box-shadow: none;
1018
- }
1019
- #WBCR-AM.wam-wrapper {
1020
- min-width: 1365px;
1021
- position: fixed;
1022
- z-index: 99999999;
1023
- top: 0;
1024
- bottom: 0;
1025
- left: 0;
1026
- right: 0;
1027
- background: #FFF;
1028
- overflow-y: auto;
1029
- }
1030
- #WBCR-AM .wam-content {
1031
- display: block;
1032
- width: 100%;
1033
- margin: 0;
1034
- padding: 62px 0 0 75px;
1035
- }
1036
- #WBCR-AM .wam-info-section {
1037
- display: table;
1038
- padding: 0 30px 30px;
1039
- color: #5C5C5C;
1040
- font-size: 15px;
1041
- line-height: 21px;
1042
- }
1043
- #WBCR-AM .wam-info-section p {
1044
- font-size: 15px;
1045
- margin: 0;
1046
- }
1047
- #WBCR-AM .wam-info-section p:not(:last-child) {
1048
- margin-bottom: 25px;
1049
- }
1050
- #WBCR-AM .wam-info-section .wam-info-section__warning,
1051
- #WBCR-AM .wam-info-section .wam-info-section__go-to-premium {
1052
- display: table-cell;
1053
- width: 49%;
1054
- text-align: left;
1055
- vertical-align: top;
1056
- padding: 20px;
1057
- background: #f9f9f9;
1058
- border-right: 2px solid #fff;
1059
- }
1060
- #WBCR-AM .wam-info-section .wam-info-section__go-to-premium {
1061
- background: #f9f9f9;
1062
- border-left: 2px solid #fff;
1063
- margin-left: 10px;
1064
- }
1065
- #WBCR-AM .wam-info-section .wam-info-section__go-to-premium h3 {
1066
- position: relative;
1067
- margin: 0 0 20px;
1068
- padding: 10px 0;
1069
- text-align: left;
1070
- border-bottom: 2px solid #e2e2e2;
1071
- vertical-align: bottom;
1072
- }
1073
- #WBCR-AM .wam-info-section .wam-info-section__go-to-premium h3 span {
1074
- display: block;
1075
- font-size: 17px;
1076
- font-weight: 600;
1077
- color: #e47558;
1078
- text-transform: uppercase;
1079
- }
1080
- #WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul {
1081
- list-style: none;
1082
- margin-left: 5px;
1083
- margin-bottom: 20px;
1084
- padding: 0;
1085
- }
1086
- #WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul li {
1087
- margin-bottom: 5px;
1088
- font-weight: 600;
1089
- font-size: 15px;
1090
- color: #7d8871;
1091
- padding: 0;
1092
- }
1093
- #WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul li:before {
1094
- content: " ";
1095
- display: inline-block;
1096
- width: 0.4em;
1097
- height: 0.7em;
1098
- border: solid #8bc34a;
1099
- border-width: 0 0.2em 0.2em 0;
1100
- left: 0;
1101
- margin-right: 10px;
1102
- -webkit-transform: rotate(45deg);
1103
- -moz-transform: rotate(45deg);
1104
- -o-transform: rotate(45deg);
1105
- transform: rotate(45deg);
1106
- }
1107
- #WBCR-AM .wam-plugin-settings {
1108
- padding-bottom: 10px;
1109
- }
1110
- #WBCR-AM .wam-plugin-settings__controls {
1111
- vertical-align: top;
1112
- }
1113
- #WBCR-AM .wam-plugin-settings .js-wam-plugin-settings__conditions {
1114
- display: none;
1115
- padding: 20px;
1116
- }
1117
- @media screen and (max-width: 1367px) {
1118
- #WBCR p {
1119
- font-size: 13px;
1120
- }
1121
- #WBCR .wam-content {
1122
- padding: 32px 0 0 75px;
1123
- }
1124
- #WBCR .wam-float-panel__left .wam-float-panel__item_value {
1125
- display: block;
1126
- }
1127
- #WBCR .wam-float-panel__right .wam-table__checkbox-text {
1128
- font-size: 13px;
1129
- }
1130
- #WBCR .wam-float-panel__right .wam-float-panel__reset,
1131
- #WBCR .wam-float-panel__right .wam-float-panel__save {
1132
- font-size: 12px;
1133
- }
1134
- #WBCR .wam-float-panel__right .wam-float-panel__checkbox-text {
1135
- font-size: 12px;
1136
- display: block;
1137
- line-height: 1.5;
1138
- }
1139
- #WBCR .wam-float-panel__right .wam-float-panel__close {
1140
- width: 30px;
1141
- height: 30px;
1142
- margin: 0 10px 0 15px;
1143
- border: 3px solid #FFF;
1144
- }
1145
- #WBCR .wam-info-section {
1146
- padding: 0;
1147
- }
1148
- #WBCR .wam-info-section,
1149
- #WBCR .wam-info-section p {
1150
- font-size: 13px;
1151
- }
1152
- #WBCR .wam-info-section .wam-info-section__warning {
1153
- padding: 20px 20px 30px;
1154
- }
1155
- #WBCR .wbcr-gnz-button__pro {
1156
- font-size: 12px;
1157
- }
1158
- #WBCR .wam-table {
1159
- margin: 0;
1160
- }
1161
- #WBCR .wam-table th {
1162
- font-size: 13px;
1163
- }
1164
- #WBCR .wam-table .wam-table__item .wam-table__item-name {
1165
- font-size: 14px;
1166
- }
1167
- #WBCR .wam-table .wam-table__item .wam-table__item-author,
1168
- #WBCR .wam-table .wam-table__item .wam-table__item-version,
1169
- #WBCR .wam-table .wam-table__item .wbcr-use-by-comment,
1170
- #WBCR .wam-table .wam-table__item .wam-table__item-author a,
1171
- #WBCR .wam-table .wam-table__item .wam-table__item-version a,
1172
- #WBCR .wam-table .wam-table__item .wbcr-use-by-comment a {
1173
- font-size: 12px;
1174
- }
1175
- #WBCR .wam-table .wam-table__script-name {
1176
- font-size: 14px;
1177
- }
1178
- #WBCR .wam-table .wam-table__script-name b {
1179
- font-size: 11px;
1180
- font-weight: lighter;
1181
- padding: 3px 7px;
1182
- margin-right: 8px;
1183
- }
1184
- #WBCR .wam-table .wam-table__script-path a {
1185
- font-size: 11px;
1186
- }
1187
- #WBCR .wam-table .wam-table__column_switch {
1188
- width: 10%;
1189
- }
1190
- #WBCR .wam-table .wam-table__column_switch .wam-table__th-external-plugin,
1191
- #WBCR .wam-table .wam-table__column_switch em {
1192
- font-size: 10px;
1193
- }
1194
- #WBCR .wam-table .wam-table__column_switch b {
1195
- font-size: 12px;
1196
- }
1197
- #WBCR .wam-table .wam-table__column_condition {
1198
- width: 35%;
1199
- }
1200
- }
1201
- @media screen and (max-width: 1600px) {
1202
- #WBCR .wam-float-panel__data-main {
1203
- display: none;
1204
- }
1205
- #WBCR .wam-float-panel__data-hidden {
1206
- display: block;
1207
- }
1208
- }
1209
  /*# sourceMappingURL=assets-manager.css.map */
1
+ /**
2
+ * Assets manager styles
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright Webcraftic 05.09.2019
5
+ */
6
+ html,
7
+ body {
8
+ overflow: hidden !important;
9
+ }
10
+ html {
11
+ line-height: 1.15 !important;
12
+ -webkit-text-size-adjust: 100% !important;
13
+ box-sizing: border-box !important;
14
+ }
15
+ body {
16
+ margin: 0 !important;
17
+ padding: 0 !important;
18
+ background: #FFF !important;
19
+ }
20
+ body,
21
+ body p {
22
+ font-family: Arial, "Helvetica Neue", sans-serif;
23
+ }
24
+ #WBCR-AM {
25
+ /**
26
+ * Reset styles
27
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
28
+ * @copyright Webcraftic 15.10.2018
29
+ */
30
+ /**
31
+ * Placeholderss
32
+ */
33
+ /**
34
+ * Tabless
35
+
36
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
37
+ * @copyright Webcraftic 26.08.2019
38
+ */
39
+ /**
40
+ * Tooltips
41
+
42
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
43
+ * @copyright Webcraftic 26.08.2019
44
+ */
45
+ /**
46
+ * Float panel
47
+
48
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
49
+ * @copyright Webcraftic 26.08.2019
50
+ */
51
+ /**
52
+ * Tabs
53
+
54
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
55
+ * @copyright Webcraftic 26.08.2019
56
+ */
57
+ /** ---------------- PLUGINS TABS------------------------- */
58
+ /** ---------------- /PLUGINS TABS------------------------ */
59
+ /*.wam-help-hint {
60
+ //display: inline-block;
61
+ //width: 16px;
62
+ //height: 16px;
63
+ //line-height: 0 !important;
64
+ //padding: 0;
65
+ font-size: 11px;
66
+ font-style: normal;
67
+ text-align: left;
68
+ color: #fff;
69
+ background: #b4b5b5;
70
+ border-radius: 2px;
71
+
72
+ img {
73
+ display: inline-block;
74
+ margin: 3px 0 0 4px;
75
+ }
76
+ }*/
77
+ }
78
+ #WBCR-AM *,
79
+ #WBCR-AM *:before,
80
+ #WBCR-AM *:after {
81
+ -webkit-box-sizing: border-box;
82
+ -moz-box-sizing: border-box;
83
+ box-sizing: border-box;
84
+ }
85
+ #WBCR-AM,
86
+ #WBCR-AM h2,
87
+ #WBCR-AM h3,
88
+ #WBCR-AM h4,
89
+ #WBCR-AM h5,
90
+ #WBCR-AM h6,
91
+ #WBCR-AM p,
92
+ #WBCR-AM strong,
93
+ #WBCR-AM b,
94
+ #WBCR-AM span,
95
+ #WBCR-AM em,
96
+ #WBCR-AM i,
97
+ #WBCR-AM a,
98
+ #WBCR-AM div,
99
+ #WBCR-AM main,
100
+ #WBCR-AM section,
101
+ #WBCR-AM li,
102
+ #WBCR-AM button,
103
+ #WBCR-AM input[type="submit"],
104
+ #WBCR-AM input[type="reset"],
105
+ #WBCR-AM .wbcr-gnz-switch-premium {
106
+ font-family: Arial, "Helvetica Neue", sans-serif;
107
+ font-size: 14px;
108
+ font-style: normal;
109
+ font-weight: normal;
110
+ text-transform: none;
111
+ text-shadow: none;
112
+ }
113
+ #WBCR-AM h1 {
114
+ font-size: 2em;
115
+ margin: 0.67em 0;
116
+ }
117
+ #WBCR-AM hr {
118
+ box-sizing: content-box;
119
+ height: 0;
120
+ overflow: visible;
121
+ }
122
+ #WBCR-AM pre {
123
+ font-family: monospace, monospace;
124
+ font-size: 1em;
125
+ }
126
+ #WBCR-AM a {
127
+ background-color: transparent;
128
+ }
129
+ #WBCR-AM abbr[title] {
130
+ border-bottom: none;
131
+ text-decoration: underline dotted;
132
+ }
133
+ #WBCR-AM b,
134
+ #WBCR-AM strong {
135
+ font-weight: bolder;
136
+ }
137
+ #WBCR-AM code,
138
+ #WBCR-AM kbd,
139
+ #WBCR-AM samp {
140
+ font-family: monospace, monospace;
141
+ font-size: 1em;
142
+ }
143
+ #WBCR-AM small {
144
+ font-size: 80%;
145
+ }
146
+ #WBCR-AM sub,
147
+ #WBCR-AM sup {
148
+ font-size: 75%;
149
+ line-height: 0;
150
+ position: relative;
151
+ vertical-align: baseline;
152
+ }
153
+ #WBCR-AM sub {
154
+ bottom: -0.25em;
155
+ }
156
+ #WBCR-AM sup {
157
+ top: -0.5em;
158
+ }
159
+ #WBCR-AM img {
160
+ border-style: none;
161
+ }
162
+ #WBCR-AM button,
163
+ #WBCR-AM input,
164
+ #WBCR-AM optgroup,
165
+ #WBCR-AM select,
166
+ #WBCR-AM textarea {
167
+ font-family: inherit;
168
+ font-size: 100%;
169
+ line-height: 1.15;
170
+ margin: 0;
171
+ height: auto;
172
+ width: auto;
173
+ }
174
+ #WBCR-AM button,
175
+ #WBCR-AM input,
176
+ #WBCR-AM optgroup,
177
+ #WBCR-AM select,
178
+ #WBCR-AM textarea,
179
+ #WBCR-AM button:hover,
180
+ #WBCR-AM input:hover,
181
+ #WBCR-AM optgroup:hover,
182
+ #WBCR-AM select:hover,
183
+ #WBCR-AM textarea:hover,
184
+ #WBCR-AM button:focus,
185
+ #WBCR-AM input:focus,
186
+ #WBCR-AM optgroup:focus,
187
+ #WBCR-AM select:focus,
188
+ #WBCR-AM textarea:focus {
189
+ -moz-box-shadow: none;
190
+ -ms-box-shadow: none;
191
+ -webkit-box-shadow: none;
192
+ -o-box-shadow: none;
193
+ }
194
+ #WBCR-AM button,
195
+ #WBCR-AM input {
196
+ overflow: visible;
197
+ }
198
+ #WBCR-AM button,
199
+ #WBCR-AM select {
200
+ text-transform: none;
201
+ }
202
+ #WBCR-AM button,
203
+ #WBCR-AM [type="button"],
204
+ #WBCR-AM [type="reset"],
205
+ #WBCR-AM [type="submit"] {
206
+ -webkit-appearance: button;
207
+ }
208
+ #WBCR-AM button::-moz-focus-inner,
209
+ #WBCR-AM [type="button"]::-moz-focus-inner,
210
+ #WBCR-AM [type="reset"]::-moz-focus-inner,
211
+ #WBCR-AM [type="submit"]::-moz-focus-inner {
212
+ border-style: none;
213
+ padding: 0;
214
+ }
215
+ #WBCR-AM button:-moz-focusring,
216
+ #WBCR-AM [type="button"]:-moz-focusring,
217
+ #WBCR-AM [type="reset"]:-moz-focusring,
218
+ #WBCR-AM [type="submit"]:-moz-focusring {
219
+ outline: 1px dotted ButtonText;
220
+ }
221
+ #WBCR-AM fieldset {
222
+ padding: 0.35em 0.75em 0.625em;
223
+ }
224
+ #WBCR-AM legend {
225
+ box-sizing: border-box;
226
+ color: inherit;
227
+ display: table;
228
+ max-width: 100%;
229
+ padding: 0;
230
+ white-space: normal;
231
+ }
232
+ #WBCR-AM textarea {
233
+ overflow: auto;
234
+ }
235
+ #WBCR-AM [type="checkbox"],
236
+ #WBCR-AM [type="radio"] {
237
+ box-sizing: border-box;
238
+ padding: 0;
239
+ }
240
+ #WBCR-AM [type="number"]::-webkit-inner-spin-button,
241
+ #WBCR-AM [type="number"]::-webkit-outer-spin-button {
242
+ height: auto;
243
+ }
244
+ #WBCR-AM [type="search"] {
245
+ -webkit-appearance: textfield;
246
+ outline-offset: -2px;
247
+ }
248
+ #WBCR-AM [type="search"]::-webkit-search-decoration {
249
+ -webkit-appearance: none;
250
+ }
251
+ #WBCR-AM ::-webkit-file-upload-button {
252
+ -webkit-appearance: button;
253
+ font: inherit;
254
+ }
255
+ #WBCR-AM fieldset {
256
+ padding: 0.35em 0.75em 0.625em;
257
+ }
258
+ #WBCR-AM legend {
259
+ box-sizing: border-box;
260
+ color: inherit;
261
+ display: table;
262
+ max-width: 100%;
263
+ padding: 0;
264
+ white-space: normal;
265
+ }
266
+ #WBCR-AM progress {
267
+ vertical-align: baseline;
268
+ }
269
+ #WBCR-AM textarea {
270
+ overflow: auto;
271
+ }
272
+ #WBCR-AM [type=checkbox],
273
+ #WBCR-AM [type=radio] {
274
+ box-sizing: border-box;
275
+ padding: 0;
276
+ }
277
+ #WBCR-AM [type=number]::-webkit-inner-spin-button,
278
+ #WBCR-AM [type=number]::-webkit-outer-spin-button {
279
+ height: auto;
280
+ }
281
+ #WBCR-AM [type=search] {
282
+ -webkit-appearance: textfield;
283
+ outline-offset: -2px;
284
+ }
285
+ #WBCR-AM [type=search]::-webkit-search-decoration {
286
+ -webkit-appearance: none;
287
+ }
288
+ #WBCR-AM ::-webkit-file-upload-button {
289
+ -webkit-appearance: button;
290
+ font: inherit;
291
+ }
292
+ #WBCR-AM details {
293
+ display: block;
294
+ }
295
+ #WBCR-AM summary {
296
+ display: list-item;
297
+ }
298
+ #WBCR-AM template {
299
+ display: none;
300
+ }
301
+ #WBCR-AM [hidden] {
302
+ display: none;
303
+ }
304
+ #WBCR-AM table,
305
+ #WBCR-AM caption,
306
+ #WBCR-AM tbody,
307
+ #WBCR-AM tfoot,
308
+ #WBCR-AM thead,
309
+ #WBCR-AM tr,
310
+ #WBCR-AM th,
311
+ #WBCR-AM td {
312
+ margin: 0;
313
+ padding: 0;
314
+ border: 0;
315
+ font-size: 100%;
316
+ font: inherit;
317
+ vertical-align: middle;
318
+ line-height: 1.2;
319
+ }
320
+ #WBCR-AM table {
321
+ table-layout: auto;
322
+ border-collapse: collapse;
323
+ border-spacing: 0;
324
+ }
325
+ #WBCR-AM span {
326
+ display: inline;
327
+ margin: 0;
328
+ }
329
+ #WBCR-AM input[type="text"]::-moz-placeholder {
330
+ color: #cccccc;
331
+ }
332
+ #WBCR-AM input[type="text"]::-webkit-input-placeholder,
333
+ #WBCR-AM textarea::-webkit-input-placeholder {
334
+ color: #cccccc;
335
+ }
336
+ #WBCR-AM input[type="text"]:-ms-input-placeholder,
337
+ #WBCR-AM textarea:-ms-input-placeholder {
338
+ color: #cccccc;
339
+ }
340
+ #WBCR-AM input[type="text"]::-ms-input-placeholder,
341
+ #WBCR-AM textarea::-ms-input-placeholder {
342
+ color: #cccccc;
343
+ }
344
+ #WBCR-AM input[type="text"]::placeholder,
345
+ #WBCR-AM textarea::placeholder {
346
+ color: #cccccc;
347
+ }
348
+ #WBCR-AM a {
349
+ text-decoration: none;
350
+ color: #007acc;
351
+ border: none;
352
+ background: none;
353
+ }
354
+ #WBCR-AM a:hover {
355
+ text-decoration: underline;
356
+ border: inherit;
357
+ background: inherit;
358
+ }
359
+ #WBCR-AM button,
360
+ #WBCR-AM [type=submit] {
361
+ color: black;
362
+ font-weight: 400;
363
+ padding: 0;
364
+ line-height: 1.5;
365
+ }
366
+ #WBCR-AM label {
367
+ color: white;
368
+ margin: 0;
369
+ font-weight: 400;
370
+ }
371
+ #WBCR-AM select,
372
+ #WBCR-AM [type=text] {
373
+ height: 32px;
374
+ }
375
+ #WBCR-AM .visually-hidden {
376
+ position: absolute;
377
+ overflow: hidden;
378
+ clip: rect(0 0 0 0);
379
+ -webkit-clip-path: inset(100%);
380
+ clip-path: inset(100%);
381
+ width: 1px;
382
+ height: 1px;
383
+ margin: -1px;
384
+ padding: 0;
385
+ white-space: nowrap;
386
+ border: 0;
387
+ }
388
+ #WBCR-AM .wam-table {
389
+ width: 100%;
390
+ box-sizing: border-box;
391
+ table-layout: fixed;
392
+ border-collapse: collapse;
393
+ }
394
+ #WBCR-AM .wam-table__handle-deps {
395
+ margin-top: 15px;
396
+ }
397
+ #WBCR-AM .wam-table__handle-deps span,
398
+ #WBCR-AM .wam-table__handle-deps a {
399
+ font-size: 11px !important;
400
+ }
401
+ #WBCR-AM .wam-table__handle-deps a {
402
+ color: red;
403
+ text-decoration: underline;
404
+ }
405
+ #WBCR-AM .wam-table tr:nth-child(2n) > td {
406
+ background: #f9f9f9;
407
+ }
408
+ #WBCR-AM .wam-table th {
409
+ padding: 12px 10px;
410
+ text-align: left;
411
+ color: #333;
412
+ background: #ECEDED;
413
+ box-shadow: none;
414
+ }
415
+ #WBCR-AM .wam-table th:not(:last-child) {
416
+ border-right: 2px solid #FFF;
417
+ }
418
+ #WBCR-AM .wam-table__th-actions {
419
+ width: 200px;
420
+ }
421
+ #WBCR-AM .wam-table__th-type {
422
+ width: 100px;
423
+ }
424
+ #WBCR-AM .wam-table__th-version {
425
+ width: 100px;
426
+ }
427
+ #WBCR-AM .wam-table__th-size {
428
+ width: 100px;
429
+ }
430
+ #WBCR-AM .wam-table__th-plugins-list,
431
+ #WBCR-AM .wam-table__td-plugins-list {
432
+ width: 350px;
433
+ }
434
+ #WBCR-AM .wam-table td {
435
+ padding: 17px 10px;
436
+ vertical-align: top;
437
+ text-align: left;
438
+ box-shadow: none;
439
+ }
440
+ #WBCR-AM .wam-table__td-handle {
441
+ word-break: break-word;
442
+ }
443
+ #WBCR-AM .wam-table__td-plugins-list {
444
+ padding: 0 !important;
445
+ }
446
+ #WBCR-AM .wam-table__th-plugins-settings,
447
+ #WBCR-AM .wam-table__td-plugins-settings {
448
+ width: 80%;
449
+ padding: 15px;
450
+ text-align: left;
451
+ }
452
+ #WBCR-AM .wam-table .js-wam-table__tr--disabled-section {
453
+ background: #fbf5f4;
454
+ opacity: 0.7;
455
+ }
456
+ #WBCR-AM .wam-table__asset-settings-conditions {
457
+ display: none;
458
+ background: #f3f3f3;
459
+ color: #7b7b7b;
460
+ font-size: 13px;
461
+ box-shadow: 0 2px 0 #d4d4d4;
462
+ }
463
+ #WBCR-AM .wam-table__asset-settings-conditions > td {
464
+ padding: 0 25px 15px 25px;
465
+ }
466
+ #WBCR-AM .wam-tooltip {
467
+ position: relative;
468
+ }
469
+ #WBCR-AM .wam-tooltip::before {
470
+ content: "";
471
+ position: absolute;
472
+ z-index: 60;
473
+ left: 5px;
474
+ display: none;
475
+ width: 20px;
476
+ height: 20px;
477
+ }
478
+ #WBCR-AM .wam-tooltip::after {
479
+ content: attr(data-tooltip);
480
+ position: absolute;
481
+ z-index: 60;
482
+ left: 5px;
483
+ display: none;
484
+ min-width: 200px;
485
+ padding: 8px 15px;
486
+ color: #6d5506;
487
+ background: #FFCB1E;
488
+ font-size: 13px;
489
+ font-weight: normal;
490
+ line-height: 1.2;
491
+ }
492
+ #WBCR-AM .wam-tooltip-top::before {
493
+ bottom: 100%;
494
+ background: linear-gradient(135deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
495
+ }
496
+ #WBCR-AM .wam-tooltip-top::after {
497
+ bottom: 100%;
498
+ margin: 0 0 10px;
499
+ border-radius: 6px 6px 6px 0;
500
+ }
501
+ #WBCR-AM .wam-tooltip--bottom::before {
502
+ top: 100%;
503
+ background: linear-gradient(45deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
504
+ }
505
+ #WBCR-AM .wam-tooltip--bottom::after {
506
+ top: 100%;
507
+ margin: 15px 0 0;
508
+ border-radius: 0 6px 6px 6px;
509
+ }
510
+ #WBCR-AM .wam-tooltip:hover::before,
511
+ #WBCR-AM .wam-tooltip:hover::after {
512
+ display: block;
513
+ }
514
+ #WBCR-AM .wam-float-panel {
515
+ position: fixed;
516
+ z-index: 50;
517
+ top: 0;
518
+ right: 0;
519
+ left: 0;
520
+ width: 100%;
521
+ display: -webkit-flex;
522
+ display: -ms-flexbox;
523
+ display: flex;
524
+ -ms-flex-pack: justify;
525
+ -webkit-justify-content: space-between;
526
+ justify-content: space-between;
527
+ height: 62px;
528
+ padding: 0 20px;
529
+ margin: 0;
530
+ color: #FFF;
531
+ background: #23282d;
532
+ font-size: 16px;
533
+ border-top: 2px solid #ffcb1e;
534
+ }
535
+ #WBCR-AM .wam-float-panel__premium {
536
+ position: relative;
537
+ display: block;
538
+ width: 20px;
539
+ height: 40px;
540
+ background: #ffcb1e;
541
+ margin-left: -30px;
542
+ }
543
+ #WBCR-AM .wam-float-panel__premium:hover {
544
+ cursor: pointer;
545
+ }
546
+ #WBCR-AM .wam-float-panel__premium .wam-tooltip {
547
+ position: relative;
548
+ right: -30px;
549
+ top: 8px;
550
+ font-size: 12px;
551
+ font-weight: bold;
552
+ font-style: normal;
553
+ color: #ffffff;
554
+ background: #f22714;
555
+ width: 45px;
556
+ text-align: center;
557
+ border-radius: 3px;
558
+ padding: 5px 0 5px 0;
559
+ line-height: 1.2;
560
+ }
561
+ #WBCR-AM .wam-float-panel__premium:after {
562
+ display: block;
563
+ content: '';
564
+ position: absolute;
565
+ top: 1px;
566
+ left: 0;
567
+ width: 19px;
568
+ height: 38px;
569
+ background: #23282d;
570
+ }
571
+ #WBCR-AM .wam-float-panel__left,
572
+ #WBCR-AM .wam-float-panel__right {
573
+ display: -webkit-flex;
574
+ display: -ms-flexbox;
575
+ display: flex;
576
+ -webkit-align-items: center;
577
+ align-items: center;
578
+ -ms-flex-align: center;
579
+ }
580
+ #WBCR-AM .wam-float-panel__left {
581
+ min-width: 800px;
582
+ margin: 0 44px 0 0;
583
+ }
584
+ #WBCR-AM .wam-float-panel__logo {
585
+ width: 38px;
586
+ height: 32px;
587
+ margin: 0 44px 0 0;
588
+ background: url("data:image/png;base64,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");
589
+ }
590
+ #WBCR-AM .wam-float-panel__data {
591
+ display: -webkit-flex;
592
+ display: -ms-flexbox;
593
+ display: flex;
594
+ -webkit-align-items: center;
595
+ align-items: center;
596
+ -ms-flex-align: center;
597
+ margin: 0 -22px;
598
+ padding: 0;
599
+ list-style: none;
600
+ }
601
+ #WBCR-AM .wam-float-panel__data:not(:last-child) {
602
+ margin-right: 22px;
603
+ }
604
+ #WBCR-AM .wam-float-panel__data-item {
605
+ margin: 0 22px;
606
+ color: #909090;
607
+ text-align: center;
608
+ vertical-align: top;
609
+ padding: 8px 0 8px;
610
+ }
611
+ #WBCR-AM .wam-float-panel__data-hidden {
612
+ display: none;
613
+ margin: 0 44px 0 0;
614
+ }
615
+ #WBCR-AM .wam-float-panel__data-hidden img {
616
+ vertical-align: middle;
617
+ }
618
+ #WBCR-AM .wam-float-panel__item_value {
619
+ font-size: 15px;
620
+ color: #d0d0d0;
621
+ background: #4c4c4c;
622
+ border-radius: 2px;
623
+ padding: 2px 5px;
624
+ }
625
+ #WBCR-AM .wam-float-panel__reset,
626
+ #WBCR-AM .wam-float-panel__save,
627
+ #WBCR-AM .wam-float-panel__reset.input[type="submit"],
628
+ #WBCR-AM .wam-float-panel__save.input[type="submit"] {
629
+ display: inline-block;
630
+ padding: 8px 15px 7px;
631
+ cursor: pointer;
632
+ transition: 0.1s;
633
+ vertical-align: middle;
634
+ text-transform: uppercase !important;
635
+ border: none;
636
+ border-radius: 2px;
637
+ font-size: 14px;
638
+ line-height: 1.5;
639
+ color: #222 !important;
640
+ }
641
+ #WBCR-AM .wam-float-panel__reset:hover,
642
+ #WBCR-AM .wam-float-panel__save:hover,
643
+ #WBCR-AM .wam-float-panel__reset:focus,
644
+ #WBCR-AM .wam-float-panel__save:focus {
645
+ outline: none;
646
+ text-decoration: none;
647
+ }
648
+ #WBCR-AM .wam-float-panel__reset:active,
649
+ #WBCR-AM .wam-float-panel__save:active {
650
+ -webkit-transform: translateY(2px);
651
+ transform: translateY(2px);
652
+ }
653
+ #WBCR-AM .wam-float-panel__reset,
654
+ #WBCR-AM .wam-float-panel__reset.input[type="submit"] {
655
+ margin: 0 10px 0 0;
656
+ padding-right: 30px;
657
+ padding-left: 30px;
658
+ background: #E1E5E9;
659
+ box-shadow: 0 4px #A8AEB3 !important;
660
+ }
661
+ #WBCR-AM .wam-float-panel__reset:hover,
662
+ #WBCR-AM .wam-float-panel__reset:focus {
663
+ background: #E7EAED !important;
664
+ }
665
+ #WBCR-AM .wam-float-panel__reset:active {
666
+ box-shadow: 0 2px #A8AEB3 !important;
667
+ }
668
+ #WBCR-AM .wam-float-panel__save,
669
+ #WBCR-AM .wam-float-panel__save.input[type="submit"] {
670
+ margin: 0 10px 0 0;
671
+ padding-right: 30px;
672
+ padding-left: 30px;
673
+ color: #222 !important;
674
+ background: #FFCB1E !important;
675
+ box-shadow: 0 4px #BF9A17 !important;
676
+ }
677
+ #WBCR-AM .wam-float-panel__save:hover,
678
+ #WBCR-AM .wam-float-panel__save:focus {
679
+ background: #FFD340 !important;
680
+ box-shadow: 0 4px #BF9A17 !important;
681
+ }
682
+ #WBCR-AM .wam-float-panel__save:active {
683
+ background: #FFD340 !important;
684
+ box-shadow: 0 2px #BF9A17 !important;
685
+ }
686
+ #WBCR-AM .wam-float-panel__save + div {
687
+ margin: 0;
688
+ }
689
+ #WBCR-AM .wam-float-panel__checkbox {
690
+ cursor: pointer;
691
+ font-size: 15px;
692
+ transform: none;
693
+ }
694
+ #WBCR-AM .wam-float-panel__checkbox-text,
695
+ #WBCR-AM .wam-float-panel__checkbox-text-premium {
696
+ position: relative;
697
+ padding: 0 0 0 26px;
698
+ }
699
+ #WBCR-AM .wam-float-panel__checkbox-text::before,
700
+ #WBCR-AM .wam-float-panel__checkbox-text-premium::before {
701
+ content: "";
702
+ position: absolute;
703
+ top: -1px;
704
+ left: 0;
705
+ width: 20px;
706
+ height: 20px;
707
+ border-radius: 2px;
708
+ background: #ffcb1e;
709
+ }
710
+ #WBCR-AM .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text::after,
711
+ #WBCR-AM .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text-premium::after {
712
+ content: "";
713
+ position: absolute;
714
+ top: 5px;
715
+ left: 6px;
716
+ width: 8px;
717
+ height: 5px;
718
+ -webkit-transform: rotate(-45deg);
719
+ transform: rotate(-45deg);
720
+ border: solid #444;
721
+ border-width: 0 0 2px 2px;
722
+ }
723
+ #WBCR-AM .wam-float-panel__checkbox-text-premium {
724
+ display: inline;
725
+ color: rgba(245, 245, 245, 0.3);
726
+ }
727
+ #WBCR-AM .wam-float-panel__checkbox-text-premium b {
728
+ display: inline-block;
729
+ font-size: 9px;
730
+ font-weight: 700;
731
+ color: #fff;
732
+ background: #f22714;
733
+ width: 25px;
734
+ padding: 3px 0;
735
+ text-align: center;
736
+ vertical-align: top;
737
+ border-radius: 3px;
738
+ line-height: 1.5;
739
+ }
740
+ #WBCR-AM .wam-float-panel__checkbox-text-premium::before {
741
+ background: rgba(245, 245, 245, 0.3);
742
+ }
743
+ #WBCR-AM .wam-float-panel__close,
744
+ #WBCR-AM .wam-float-panel__close:hover {
745
+ width: 36px;
746
+ height: 36px;
747
+ margin: 0 20px 0 20px;
748
+ cursor: pointer;
749
+ transition: 0.2s;
750
+ border: 4px solid #FFF;
751
+ border-radius: 50%;
752
+ background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath fill='%23FFF' d='M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'/%3E%3C/svg%3E") no-repeat 50% 0px;
753
+ }
754
+ #WBCR-AM .wam-float-panel__close:focus,
755
+ #WBCR-AM .wam-float-panel__close:hover:focus {
756
+ opacity: 0.5;
757
+ outline: none;
758
+ }
759
+ #WBCR-AM .wam-assets-type-tabs {
760
+ position: fixed;
761
+ top: 62px;
762
+ bottom: 0;
763
+ left: 0;
764
+ width: 75px;
765
+ margin: 0;
766
+ padding: 0;
767
+ list-style: none;
768
+ background: #F4F4F4;
769
+ box-shadow: 2px 0 5px rgba(0, 0, 0, 0.2);
770
+ }
771
+ #WBCR-AM .wam-assets-type-tabs li {
772
+ margin: 0;
773
+ padding: 0;
774
+ }
775
+ #WBCR-AM .wam-assets-type-tabs__button {
776
+ position: relative;
777
+ display: block;
778
+ width: 100%;
779
+ height: 130px;
780
+ cursor: pointer;
781
+ border: none;
782
+ background: #ECEDED;
783
+ border-radius: 0;
784
+ box-shadow: none;
785
+ -moz-box-shadow: none;
786
+ -ms-box-shadow: none;
787
+ -webkit-box-shadow: none;
788
+ -o-box-shadow: none;
789
+ }
790
+ #WBCR-AM .wam-assets-type-tabs__button:hover,
791
+ #WBCR-AM .wam-assets-type-tabs__button:focus,
792
+ #WBCR-AM .wam-assets-type-tabs__button:after,
793
+ #WBCR-AM .wam-assets-type-tabs__button:before,
794
+ #WBCR-AM .wam-assets-type-tabs__button:after:hover,
795
+ #WBCR-AM .wam-assets-type-tabs__button:before:hover {
796
+ -moz-box-shadow: none;
797
+ -ms-box-shadow: none;
798
+ -webkit-box-shadow: none;
799
+ -o-box-shadow: none;
800
+ }
801
+ #WBCR-AM .wam-assets-type-tabs__button::after {
802
+ content: "";
803
+ position: absolute;
804
+ top: 0;
805
+ right: 0;
806
+ bottom: 0;
807
+ left: 0;
808
+ opacity: 0.55;
809
+ }
810
+ #WBCR-AM .wam-assets-type-tabs__button--misc::after {
811
+ background: url("data:image/png;base64,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") no-repeat 50%;
812
+ }
813
+ #WBCR-AM .wam-assets-type-tabs__button--theme::after {
814
+ background: url("data:image/png;base64,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") no-repeat 50%;
815
+ }
816
+ #WBCR-AM .wam-assets-type-tabs__button--plugins::after {
817
+ background: url("data:image/png;base64,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") no-repeat 50%;
818
+ }
819
+ #WBCR-AM .wam-assets-type-tabs__button:hover,
820
+ #WBCR-AM .wam-assets-type-tabs__button:focus {
821
+ outline: none;
822
+ background: #E6E7E7;
823
+ }
824
+ #WBCR-AM .wam-assets-type-tabs__button:hover::after,
825
+ #WBCR-AM .wam-assets-type-tabs__button:focus::after {
826
+ opacity: 1;
827
+ }
828
+ #WBCR-AM .wam-assets-type-tabs__button.wam-assets-type-tab__active {
829
+ background: #CACDCF;
830
+ }
831
+ #WBCR-AM .wam-assets-type-tabs__button.wam-assets-type-tab__active::after {
832
+ opacity: 1;
833
+ }
834
+ #WBCR-AM .wam-assets-type-tab-content {
835
+ display: none;
836
+ padding: 20px 30px;
837
+ }
838
+ #WBCR-AM .wam-assets-type-tab-content.wam-assets-type-tab-content__active {
839
+ display: block !important;
840
+ }
841
+ #WBCR-AM .wam-nav-plugins {
842
+ padding: 0;
843
+ margin: 0;
844
+ list-style: none;
845
+ }
846
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab {
847
+ position: relative;
848
+ text-align: left;
849
+ margin-bottom: 3px;
850
+ }
851
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a {
852
+ display: block;
853
+ padding: 10px 20px;
854
+ background: #f5f5f5;
855
+ color: #222;
856
+ }
857
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a strong,
858
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a span {
859
+ display: block;
860
+ }
861
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a span {
862
+ font-size: 12px;
863
+ color: #2f2f2f;
864
+ }
865
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab:hover a {
866
+ background: #efefef;
867
+ text-decoration: none;
868
+ }
869
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab.wam-nav-plugins__tab--active a {
870
+ background: #e8e8e8;
871
+ }
872
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--enable::after,
873
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-plugin::after,
874
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-assets::after {
875
+ display: block;
876
+ content: '';
877
+ position: absolute;
878
+ bottom: 10px;
879
+ right: 10px;
880
+ width: 10px;
881
+ height: 10px;
882
+ background: #8bc34a;
883
+ text-align: center;
884
+ font-size: 11px;
885
+ font-weight: 600;
886
+ border-radius: 4px;
887
+ }
888
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-assets::after,
889
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-plugin::after {
890
+ background: #d47b7b;
891
+ }
892
+ #WBCR-AM .wam-nav-plugins__tab-content {
893
+ display: none;
894
+ }
895
+ #WBCR-AM .wam-nav-plugins__tab-content.js-wam-nav-plugins__tab-content--active {
896
+ display: block !important;
897
+ }
898
+ #WBCR-AM .wam-help-hint {
899
+ display: inline-block;
900
+ position: relative;
901
+ background: url(../img/help.png) no-repeat 0 0 transparent;
902
+ height: 14px;
903
+ width: 13px;
904
+ cursor: help;
905
+ vertical-align: middle;
906
+ top: -1px;
907
+ }
908
+ #WBCR-AM .wam-asset-type {
909
+ display: inline-block;
910
+ padding: 5px 10px;
911
+ font-size: 13px;
912
+ text-transform: uppercase;
913
+ text-align: center;
914
+ border-radius: 3px;
915
+ vertical-align: middle;
916
+ margin-right: 15px;
917
+ }
918
+ #WBCR-AM .wam-asset-type--js {
919
+ background: #ffcb1e;
920
+ color: #403102;
921
+ }
922
+ #WBCR-AM .wam-asset-type--css {
923
+ background: #9757a5;
924
+ color: #ffffff;
925
+ }
926
+ #WBCR-AM .wam-colors--red {
927
+ color: red;
928
+ }
929
+ #WBCR-AM .wam-colors--grey {
930
+ color: grey;
931
+ }
932
+ #WBCR-AM .wam-button {
933
+ display: inline-block;
934
+ vertical-align: bottom;
935
+ padding: 5px 10px;
936
+ text-decoration: none;
937
+ box-shadow: none;
938
+ font-weight: 600;
939
+ border-radius: 3px;
940
+ }
941
+ #WBCR-AM .wam-button--small {
942
+ padding: 2px 8px;
943
+ font-size: 13px;
944
+ }
945
+ #WBCR-AM .wam-button.js-wam-button--hidden {
946
+ display: none;
947
+ }
948
+ #WBCR-AM .wam-button:hover {
949
+ cursor: pointer;
950
+ text-decoration: none;
951
+ box-shadow: none;
952
+ }
953
+ #WBCR-AM .wam-button:focus {
954
+ outline: none;
955
+ box-shadow: none;
956
+ }
957
+ #WBCR-AM .wam-button__icon {
958
+ height: 28px;
959
+ width: 28px;
960
+ padding: 5px;
961
+ line-height: 0;
962
+ }
963
+ #WBCR-AM .wam-button.js-wam-button__icon--cogs {
964
+ background: url('../img/cogs.png') center no-repeat;
965
+ }
966
+ #WBCR-AM .wam-button.js-wam-button__icon--close {
967
+ background: url('../img/close.png') center no-repeat;
968
+ }
969
+ #WBCR-AM .wam-button--default {
970
+ background-color: #eceded;
971
+ color: #222;
972
+ border: 1px solid #c3c3c3;
973
+ }
974
+ #WBCR-AM .wam-button--default:hover {
975
+ cursor: pointer;
976
+ background-color: #fff;
977
+ border: 1px solid #c3c3c3;
978
+ }
979
+ #WBCR-AM .wam-button--danger {
980
+ background-color: #fff;
981
+ color: #ff7063;
982
+ border: 1px solid #ff7063;
983
+ }
984
+ #WBCR-AM .wam-button--danger:hover {
985
+ background-color: #fff;
986
+ color: #222;
987
+ border: 1px solid #c3c3c3;
988
+ }
989
+ #WBCR-AM .wam-button--yellow {
990
+ background-color: #fff;
991
+ color: #a5820e;
992
+ border: 1px solid #ffcb1e;
993
+ }
994
+ #WBCR-AM .wam-button--yellow:hover {
995
+ background-color: #fff;
996
+ color: #222;
997
+ border: 1px solid #c3c3c3;
998
+ }
999
+ #WBCR-AM .wam-select {
1000
+ display: inline-block;
1001
+ vertical-align: bottom;
1002
+ height: auto;
1003
+ padding: 4px 10px;
1004
+ }
1005
+ #WBCR-AM .wam-select.js-wam-select--enable {
1006
+ background: #efffde;
1007
+ color: #4e6f28;
1008
+ border: 1px solid #8bc34a;
1009
+ }
1010
+ #WBCR-AM .wam-select.js-wam-select--disable {
1011
+ background: #ffdada;
1012
+ border: 1px solid #efc3c3;
1013
+ color: #774a4a;
1014
+ }
1015
+ #WBCR-AM .wam-select:focus {
1016
+ outline: none;
1017
+ box-shadow: none;
1018
+ }
1019
+ #WBCR-AM.wam-wrapper {
1020
+ min-width: 1365px;
1021
+ position: fixed;
1022
+ z-index: 99999999;
1023
+ top: 0;
1024
+ bottom: 0;
1025
+ left: 0;
1026
+ right: 0;
1027
+ background: #FFF;
1028
+ overflow-y: auto;
1029
+ }
1030
+ #WBCR-AM .wam-content {
1031
+ display: block;
1032
+ width: 100%;
1033
+ margin: 0;
1034
+ padding: 62px 0 0 75px;
1035
+ }
1036
+ #WBCR-AM .wam-info-section {
1037
+ display: table;
1038
+ padding: 0 30px 30px;
1039
+ color: #5C5C5C;
1040
+ font-size: 15px;
1041
+ line-height: 21px;
1042
+ }
1043
+ #WBCR-AM .wam-info-section p {
1044
+ font-size: 15px;
1045
+ margin: 0;
1046
+ }
1047
+ #WBCR-AM .wam-info-section p:not(:last-child) {
1048
+ margin-bottom: 25px;
1049
+ }
1050
+ #WBCR-AM .wam-info-section .wam-info-section__warning,
1051
+ #WBCR-AM .wam-info-section .wam-info-section__go-to-premium {
1052
+ display: table-cell;
1053
+ width: 49%;
1054
+ text-align: left;
1055
+ vertical-align: top;
1056
+ padding: 20px;
1057
+ background: #f9f9f9;
1058
+ border-right: 2px solid #fff;
1059
+ }
1060
+ #WBCR-AM .wam-info-section .wam-info-section__go-to-premium {
1061
+ background: #f9f9f9;
1062
+ border-left: 2px solid #fff;
1063
+ margin-left: 10px;
1064
+ }
1065
+ #WBCR-AM .wam-info-section .wam-info-section__go-to-premium h3 {
1066
+ position: relative;
1067
+ margin: 0 0 20px;
1068
+ padding: 10px 0;
1069
+ text-align: left;
1070
+ border-bottom: 2px solid #e2e2e2;
1071
+ vertical-align: bottom;
1072
+ }
1073
+ #WBCR-AM .wam-info-section .wam-info-section__go-to-premium h3 span {
1074
+ display: block;
1075
+ font-size: 17px;
1076
+ font-weight: 600;
1077
+ color: #e47558;
1078
+ text-transform: uppercase;
1079
+ }
1080
+ #WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul {
1081
+ list-style: none;
1082
+ margin-left: 5px;
1083
+ margin-bottom: 20px;
1084
+ padding: 0;
1085
+ }
1086
+ #WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul li {
1087
+ margin-bottom: 5px;
1088
+ font-weight: 600;
1089
+ font-size: 15px;
1090
+ color: #7d8871;
1091
+ padding: 0;
1092
+ }
1093
+ #WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul li:before {
1094
+ content: " ";
1095
+ display: inline-block;
1096
+ width: 0.4em;
1097
+ height: 0.7em;
1098
+ border: solid #8bc34a;
1099
+ border-width: 0 0.2em 0.2em 0;
1100
+ left: 0;
1101
+ margin-right: 10px;
1102
+ -webkit-transform: rotate(45deg);
1103
+ -moz-transform: rotate(45deg);
1104
+ -o-transform: rotate(45deg);
1105
+ transform: rotate(45deg);
1106
+ }
1107
+ #WBCR-AM .wam-plugin-settings {
1108
+ padding-bottom: 10px;
1109
+ }
1110
+ #WBCR-AM .wam-plugin-settings__controls {
1111
+ vertical-align: top;
1112
+ }
1113
+ #WBCR-AM .wam-plugin-settings .js-wam-plugin-settings__conditions {
1114
+ display: none;
1115
+ padding: 20px;
1116
+ }
1117
+ @media screen and (max-width: 1367px) {
1118
+ #WBCR p {
1119
+ font-size: 13px;
1120
+ }
1121
+ #WBCR .wam-content {
1122
+ padding: 32px 0 0 75px;
1123
+ }
1124
+ #WBCR .wam-float-panel__left .wam-float-panel__item_value {
1125
+ display: block;
1126
+ }
1127
+ #WBCR .wam-float-panel__right .wam-table__checkbox-text {
1128
+ font-size: 13px;
1129
+ }
1130
+ #WBCR .wam-float-panel__right .wam-float-panel__reset,
1131
+ #WBCR .wam-float-panel__right .wam-float-panel__save {
1132
+ font-size: 12px;
1133
+ }
1134
+ #WBCR .wam-float-panel__right .wam-float-panel__checkbox-text {
1135
+ font-size: 12px;
1136
+ display: block;
1137
+ line-height: 1.5;
1138
+ }
1139
+ #WBCR .wam-float-panel__right .wam-float-panel__close {
1140
+ width: 30px;
1141
+ height: 30px;
1142
+ margin: 0 10px 0 15px;
1143
+ border: 3px solid #FFF;
1144
+ }
1145
+ #WBCR .wam-info-section {
1146
+ padding: 0;
1147
+ }
1148
+ #WBCR .wam-info-section,
1149
+ #WBCR .wam-info-section p {
1150
+ font-size: 13px;
1151
+ }
1152
+ #WBCR .wam-info-section .wam-info-section__warning {
1153
+ padding: 20px 20px 30px;
1154
+ }
1155
+ #WBCR .wbcr-gnz-button__pro {
1156
+ font-size: 12px;
1157
+ }
1158
+ #WBCR .wam-table {
1159
+ margin: 0;
1160
+ }
1161
+ #WBCR .wam-table th {
1162
+ font-size: 13px;
1163
+ }
1164
+ #WBCR .wam-table .wam-table__item .wam-table__item-name {
1165
+ font-size: 14px;
1166
+ }
1167
+ #WBCR .wam-table .wam-table__item .wam-table__item-author,
1168
+ #WBCR .wam-table .wam-table__item .wam-table__item-version,
1169
+ #WBCR .wam-table .wam-table__item .wbcr-use-by-comment,
1170
+ #WBCR .wam-table .wam-table__item .wam-table__item-author a,
1171
+ #WBCR .wam-table .wam-table__item .wam-table__item-version a,
1172
+ #WBCR .wam-table .wam-table__item .wbcr-use-by-comment a {
1173
+ font-size: 12px;
1174
+ }
1175
+ #WBCR .wam-table .wam-table__script-name {
1176
+ font-size: 14px;
1177
+ }
1178
+ #WBCR .wam-table .wam-table__script-name b {
1179
+ font-size: 11px;
1180
+ font-weight: lighter;
1181
+ padding: 3px 7px;
1182
+ margin-right: 8px;
1183
+ }
1184
+ #WBCR .wam-table .wam-table__script-path a {
1185
+ font-size: 11px;
1186
+ }
1187
+ #WBCR .wam-table .wam-table__column_switch {
1188
+ width: 10%;
1189
+ }
1190
+ #WBCR .wam-table .wam-table__column_switch .wam-table__th-external-plugin,
1191
+ #WBCR .wam-table .wam-table__column_switch em {
1192
+ font-size: 10px;
1193
+ }
1194
+ #WBCR .wam-table .wam-table__column_switch b {
1195
+ font-size: 12px;
1196
+ }
1197
+ #WBCR .wam-table .wam-table__column_condition {
1198
+ width: 35%;
1199
+ }
1200
+ }
1201
+ @media screen and (max-width: 1600px) {
1202
+ #WBCR .wam-float-panel__data-main {
1203
+ display: none;
1204
+ }
1205
+ #WBCR .wam-float-panel__data-hidden {
1206
+ display: block;
1207
+ }
1208
+ }
1209
  /*# sourceMappingURL=assets-manager.css.map */
components/assets-manager/assets/css/assets-manager.less CHANGED
@@ -1,528 +1,528 @@
1
- /**
2
- * Assets manager styles
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright Webcraftic 05.09.2019
5
- */
6
-
7
- html, body {
8
- overflow: hidden !important;
9
- }
10
-
11
- html {
12
- line-height: 1.15 !important;
13
- -webkit-text-size-adjust: 100% !important;
14
- box-sizing: border-box !important;
15
- }
16
-
17
- body {
18
- margin: 0 !important;
19
- padding: 0 !important;
20
- background: #FFF !important;
21
-
22
- &, p {
23
- font-family: Arial, "Helvetica Neue", sans-serif;
24
- }
25
- }
26
-
27
- #WBCR-AM {
28
-
29
- @import "reset.less";
30
-
31
- span {
32
- display: inline;
33
- margin: 0;
34
- }
35
-
36
- /**
37
- * Placeholderss
38
- */
39
-
40
- input[type="text"]::-moz-placeholder {
41
- color: #cccccc;
42
- }
43
-
44
- input[type="text"]::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
45
- color: #cccccc;
46
- }
47
-
48
- input[type="text"]:-ms-input-placeholder, textarea:-ms-input-placeholder {
49
- color: #cccccc;
50
- }
51
-
52
- input[type="text"]::-ms-input-placeholder, textarea::-ms-input-placeholder {
53
- color: #cccccc;
54
- }
55
-
56
- input[type="text"]::placeholder, textarea::placeholder {
57
- color: #cccccc;
58
- }
59
-
60
- a {
61
- text-decoration: none;
62
- color: #007acc;
63
- border: none;
64
- background: none;
65
-
66
- &:hover {
67
- text-decoration: underline;
68
- border: inherit;
69
- background: inherit;
70
- }
71
- }
72
-
73
- button, [type=submit] {
74
- color: black;
75
- font-weight: 400;
76
- padding: 0;
77
- line-height: 1.5;
78
- }
79
-
80
- label {
81
- color: white;
82
- margin: 0;
83
- font-weight: 400;
84
- }
85
-
86
- select, [type=text] {
87
- height: 32px;
88
- }
89
-
90
- .visually-hidden {
91
- position: absolute;
92
- overflow: hidden;
93
- clip: rect(0 0 0 0);
94
- -webkit-clip-path: inset(100%);
95
- clip-path: inset(100%);
96
- width: 1px;
97
- height: 1px;
98
- margin: -1px;
99
- padding: 0;
100
- white-space: nowrap;
101
- border: 0;
102
- }
103
-
104
- // IMPORTS
105
- // --------------------------------------------------------------
106
- @import "tables.less";
107
- @import "tooltip.less";
108
- @import "float-panel.less";
109
- @import "tabs.less";
110
- // --------------------------------------------------------------
111
- /*.wam-help-hint {
112
- //display: inline-block;
113
- //width: 16px;
114
- //height: 16px;
115
- //line-height: 0 !important;
116
- //padding: 0;
117
- font-size: 11px;
118
- font-style: normal;
119
- text-align: left;
120
- color: #fff;
121
- background: #b4b5b5;
122
- border-radius: 2px;
123
-
124
- img {
125
- display: inline-block;
126
- margin: 3px 0 0 4px;
127
- }
128
- }*/
129
-
130
- .wam-help-hint {
131
- display: inline-block;
132
- position: relative;
133
- background: url(../img/help.png) no-repeat 0 0 transparent;
134
- height: 14px;
135
- width: 13px;
136
- cursor: help;
137
- vertical-align: middle;
138
- top: -1px;
139
- }
140
-
141
- .wam-asset-type {
142
- display: inline-block;
143
- padding: 5px 10px;
144
- font-size: 13px;
145
- text-transform: uppercase;
146
- text-align: center;
147
- border-radius: 3px;
148
- vertical-align: middle;
149
- margin-right: 15px;
150
-
151
- &--js {
152
- background: #ffcb1e;
153
- color: #403102;
154
- }
155
-
156
- &--css {
157
- background: #9757a5;
158
- color: #ffffff;
159
- }
160
- }
161
-
162
- .wam-colors--red {
163
- color: red;
164
- }
165
-
166
- .wam-colors--grey {
167
- color: grey;
168
- }
169
-
170
- // BUTTONS
171
- // ------------------------------------------------------------
172
- .wam-button {
173
- @buttonClass: ~"wam-button";
174
-
175
- display: inline-block;
176
- vertical-align: bottom;
177
- padding: 5px 10px;
178
- text-decoration: none;
179
- box-shadow: none;
180
- font-weight: 600;
181
- border-radius: 3px;
182
-
183
- &--small {
184
- padding: 2px 8px;
185
- font-size: 13px;
186
- }
187
-
188
- &.js-@{buttonClass}--hidden {
189
- display: none;
190
- }
191
-
192
- &:hover {
193
- cursor: pointer;
194
- text-decoration: none;
195
- box-shadow: none;
196
- }
197
-
198
- &:focus {
199
- outline: none;
200
- box-shadow: none;
201
- }
202
-
203
- &__icon {
204
- height: 28px;
205
- width: 28px;
206
- padding: 5px;
207
- line-height: 0;
208
- }
209
-
210
- &.js-@{buttonClass}__icon--cogs {
211
- background: url('../img/cogs.png') center no-repeat;
212
- }
213
-
214
- &.js-@{buttonClass}__icon--close {
215
- background: url('../img/close.png') center no-repeat;
216
- }
217
-
218
- &--default {
219
- background-color: #eceded;
220
- color: #222;
221
- border: 1px solid #c3c3c3;
222
-
223
- &:hover {
224
- cursor: pointer;
225
- background-color: #fff;
226
- border: 1px solid #c3c3c3;
227
- }
228
- }
229
-
230
- &--danger {
231
- //background-color: #ff7063;
232
- background-color: #fff;
233
- color: #ff7063;
234
- border: 1px solid #ff7063;
235
-
236
- &:hover {
237
- background-color: #fff;
238
- color: #222;
239
- border: 1px solid #c3c3c3;
240
- }
241
- }
242
-
243
- &--yellow {
244
- //background-color: #ffcb1e;
245
- background-color: #fff;
246
- color: #a5820e;
247
- border: 1px solid #ffcb1e;
248
-
249
- &:hover {
250
- background-color: #fff;
251
- color: #222;
252
- border: 1px solid #c3c3c3;
253
- }
254
- }
255
- }
256
-
257
- // -------------------------------------------------------------
258
-
259
- // CONTROLS
260
- // -------------------------------------------------------------
261
- .wam-select {
262
- @selectClass: ~"wam-select";
263
-
264
- display: inline-block;
265
- vertical-align: bottom;
266
- height: auto;
267
- padding: 4px 10px;
268
-
269
- &.js-@{selectClass}--enable {
270
- background: #efffde;
271
- color: #4e6f28;
272
- border: 1px solid #8bc34a;
273
- }
274
-
275
- &.js-@{selectClass}--disable {
276
- background: #ffdada;
277
- border: 1px solid #efc3c3;
278
- color: #774a4a;
279
- }
280
-
281
- &:focus {
282
- outline: none;
283
- box-shadow: none;
284
- }
285
- }
286
-
287
- // --------------------------------------------------------------
288
-
289
- &.wam-wrapper {
290
- min-width: 1365px;
291
- position: fixed;
292
- z-index: 99999999;
293
- top: 0;
294
- bottom: 0;
295
- left: 0;
296
- right: 0;
297
- background: #FFF;
298
- overflow-y: auto;
299
- }
300
-
301
- .wam-content {
302
- display: block;
303
- width: 100%;
304
- margin: 0;
305
- padding: 62px 0 0 75px;
306
- }
307
-
308
- .wam-info-section {
309
- display: table;
310
-
311
- padding: 0 30px 30px;
312
- color: #5C5C5C;
313
- font-size: 15px;
314
- line-height: 21px;
315
-
316
- p {
317
- font-size: 15px;
318
- margin: 0;
319
-
320
- &:not(:last-child) {
321
- margin-bottom: 25px;
322
- }
323
- }
324
-
325
- .wam-info-section__warning, .wam-info-section__go-to-premium {
326
- display: table-cell;
327
- width: 49%;
328
- text-align: left;
329
- vertical-align: top;
330
- padding: 20px;
331
- background: #f9f9f9;
332
- //border: 1px dashed #d8d8d8;
333
- border-right: 2px solid #fff;
334
-
335
- }
336
-
337
- .wam-info-section__go-to-premium {
338
- background: #f9f9f9;
339
- //border: 1px dashed #e0cb14;
340
- border-left: 2px solid #fff;
341
- margin-left: 10px;
342
-
343
- h3 {
344
- position: relative;
345
- margin: 0 0 20px;
346
- padding: 10px 0;
347
- text-align: left;
348
- border-bottom: 2px solid #e2e2e2;
349
- vertical-align: bottom;
350
-
351
- span {
352
- display: block;
353
- font-size: 17px;
354
- font-weight: 600;
355
- color: #e47558;
356
- text-transform: uppercase;
357
- }
358
- }
359
-
360
- ul {
361
- list-style: none;
362
- margin-left: 5px;
363
- margin-bottom: 20px;
364
- padding: 0;
365
-
366
- li {
367
- margin-bottom: 5px;
368
- font-weight: 600;
369
- font-size: 15px;
370
- color: #7d8871;
371
- padding: 0;
372
-
373
- &:before {
374
- content: " ";
375
- display: inline-block;
376
- width: 0.4em;
377
- height: 0.7em;
378
- border: solid #8bc34a;
379
- border-width: 0 0.2em 0.2em 0;
380
- left: 0;
381
- margin-right: 10px;
382
- -webkit-transform: rotate(45deg);
383
- -moz-transform: rotate(45deg);
384
- -o-transform: rotate(45deg);
385
- transform: rotate(45deg);
386
- }
387
- }
388
- }
389
- }
390
- }
391
-
392
- .wam-plugin-settings {
393
- @pluginSettingsClass: ~"wam-plugin-settings";
394
- padding-bottom: 10px;
395
-
396
- &__controls {
397
- vertical-align: top;
398
- }
399
-
400
- .js-@{pluginSettingsClass}__conditions {
401
- display: none;
402
- padding: 20px;
403
- }
404
- }
405
- }
406
-
407
- @media screen and (max-width: 1367px) {
408
- #WBCR {
409
- p {
410
- font-size: 13px;
411
- }
412
-
413
- .wam-content {
414
- padding: 32px 0 0 75px;
415
- }
416
-
417
- .wam-float-panel__left {
418
- .wam-float-panel__item_value {
419
- display: block;
420
- }
421
- }
422
-
423
- .wam-float-panel__right {
424
- .wam-table__checkbox-text {
425
- font-size: 13px;
426
- }
427
-
428
- .wam-float-panel__reset, .wam-float-panel__save {
429
- font-size: 12px;
430
- }
431
-
432
- .wam-float-panel__checkbox-text {
433
- font-size: 12px;
434
- display: block;
435
- line-height: 1.5;
436
-
437
- }
438
-
439
- .wam-float-panel__close {
440
- width: 30px;
441
- height: 30px;
442
- margin: 0 10px 0 15px;
443
- border: 3px solid #FFF;
444
- }
445
- }
446
-
447
- .wam-info-section {
448
- padding: 0;
449
-
450
- &, p {
451
- font-size: 13px;
452
- }
453
-
454
- .wam-info-section__warning {
455
- padding: 20px 20px 30px;
456
- }
457
- }
458
-
459
- .wbcr-gnz-button__pro {
460
- font-size: 12px;
461
- }
462
-
463
- .wam-table {
464
- margin: 0;
465
-
466
- th {
467
- font-size: 13px;
468
- }
469
-
470
- .wam-table__item {
471
- .wam-table__item-name {
472
- font-size: 14px;
473
- }
474
-
475
- .wam-table__item-author, .wam-table__item-version, .wbcr-use-by-comment {
476
- &, a {
477
- font-size: 12px;
478
- }
479
- }
480
- }
481
-
482
- .wam-table__script-name {
483
- font-size: 14px;
484
-
485
- b {
486
- font-size: 11px;
487
- font-weight: lighter;
488
- padding: 3px 7px;
489
- margin-right: 8px;
490
- }
491
- }
492
-
493
- .wam-table__script-path {
494
- a {
495
- font-size: 11px;
496
- }
497
- }
498
-
499
- .wam-table__column_switch {
500
- width: 10%;
501
-
502
- .wam-table__th-external-plugin, em {
503
- font-size: 10px;
504
- }
505
-
506
- b {
507
- font-size: 12px;
508
- }
509
- }
510
-
511
- .wam-table__column_condition {
512
- width: 35%;
513
- }
514
- }
515
- }
516
- }
517
-
518
- @media screen and (max-width: 1600px) {
519
- #WBCR {
520
- .wam-float-panel__data-main {
521
- display: none;
522
- }
523
-
524
- .wam-float-panel__data-hidden {
525
- display: block;
526
- }
527
- }
528
  }
1
+ /**
2
+ * Assets manager styles
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright Webcraftic 05.09.2019
5
+ */
6
+
7
+ html, body {
8
+ overflow: hidden !important;
9
+ }
10
+
11
+ html {
12
+ line-height: 1.15 !important;
13
+ -webkit-text-size-adjust: 100% !important;
14
+ box-sizing: border-box !important;
15
+ }
16
+
17
+ body {
18
+ margin: 0 !important;
19
+ padding: 0 !important;
20
+ background: #FFF !important;
21
+
22
+ &, p {
23
+ font-family: Arial, "Helvetica Neue", sans-serif;
24
+ }
25
+ }
26
+
27
+ #WBCR-AM {
28
+
29
+ @import "reset.less";
30
+
31
+ span {
32
+ display: inline;
33
+ margin: 0;
34
+ }
35
+
36
+ /**
37
+ * Placeholderss
38
+ */
39
+
40
+ input[type="text"]::-moz-placeholder {
41
+ color: #cccccc;
42
+ }
43
+
44
+ input[type="text"]::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
45
+ color: #cccccc;
46
+ }
47
+
48
+ input[type="text"]:-ms-input-placeholder, textarea:-ms-input-placeholder {
49
+ color: #cccccc;
50
+ }
51
+
52
+ input[type="text"]::-ms-input-placeholder, textarea::-ms-input-placeholder {
53
+ color: #cccccc;
54
+ }
55
+
56
+ input[type="text"]::placeholder, textarea::placeholder {
57
+ color: #cccccc;
58
+ }
59
+
60
+ a {
61
+ text-decoration: none;
62
+ color: #007acc;
63
+ border: none;
64
+ background: none;
65
+
66
+ &:hover {
67
+ text-decoration: underline;
68
+ border: inherit;
69
+ background: inherit;
70
+ }
71
+ }
72
+
73
+ button, [type=submit] {
74
+ color: black;
75
+ font-weight: 400;
76
+ padding: 0;
77
+ line-height: 1.5;
78
+ }
79
+
80
+ label {
81
+ color: white;
82
+ margin: 0;
83
+ font-weight: 400;
84
+ }
85
+
86
+ select, [type=text] {
87
+ height: 32px;
88
+ }
89
+
90
+ .visually-hidden {
91
+ position: absolute;
92
+ overflow: hidden;
93
+ clip: rect(0 0 0 0);
94
+ -webkit-clip-path: inset(100%);
95
+ clip-path: inset(100%);
96
+ width: 1px;
97
+ height: 1px;
98
+ margin: -1px;
99
+ padding: 0;
100
+ white-space: nowrap;
101
+ border: 0;
102
+ }
103
+
104
+ // IMPORTS
105
+ // --------------------------------------------------------------
106
+ @import "tables.less";
107
+ @import "tooltip.less";
108
+ @import "float-panel.less";
109
+ @import "tabs.less";
110
+ // --------------------------------------------------------------
111
+ /*.wam-help-hint {
112
+ //display: inline-block;
113
+ //width: 16px;
114
+ //height: 16px;
115
+ //line-height: 0 !important;
116
+ //padding: 0;
117
+ font-size: 11px;
118
+ font-style: normal;
119
+ text-align: left;
120
+ color: #fff;
121
+ background: #b4b5b5;
122
+ border-radius: 2px;
123
+
124
+ img {
125
+ display: inline-block;
126
+ margin: 3px 0 0 4px;
127
+ }
128
+ }*/
129
+
130
+ .wam-help-hint {
131
+ display: inline-block;
132
+ position: relative;
133
+ background: url(../img/help.png) no-repeat 0 0 transparent;
134
+ height: 14px;
135
+ width: 13px;
136
+ cursor: help;
137
+ vertical-align: middle;
138
+ top: -1px;
139
+ }
140
+
141
+ .wam-asset-type {
142
+ display: inline-block;
143
+ padding: 5px 10px;
144
+ font-size: 13px;
145
+ text-transform: uppercase;
146
+ text-align: center;
147
+ border-radius: 3px;
148
+ vertical-align: middle;
149
+ margin-right: 15px;
150
+
151
+ &--js {
152
+ background: #ffcb1e;
153
+ color: #403102;
154
+ }
155
+
156
+ &--css {
157
+ background: #9757a5;
158
+ color: #ffffff;
159
+ }
160
+ }
161
+
162
+ .wam-colors--red {
163
+ color: red;
164
+ }
165
+
166
+ .wam-colors--grey {
167
+ color: grey;
168
+ }
169
+
170
+ // BUTTONS
171
+ // ------------------------------------------------------------
172
+ .wam-button {
173
+ @buttonClass: ~"wam-button";
174
+
175
+ display: inline-block;
176
+ vertical-align: bottom;
177
+ padding: 5px 10px;
178
+ text-decoration: none;
179
+ box-shadow: none;
180
+ font-weight: 600;
181
+ border-radius: 3px;
182
+
183
+ &--small {
184
+ padding: 2px 8px;
185
+ font-size: 13px;
186
+ }
187
+
188
+ &.js-@{buttonClass}--hidden {
189
+ display: none;
190
+ }
191
+
192
+ &:hover {
193
+ cursor: pointer;
194
+ text-decoration: none;
195
+ box-shadow: none;
196
+ }
197
+
198
+ &:focus {
199
+ outline: none;
200
+ box-shadow: none;
201
+ }
202
+
203
+ &__icon {
204
+ height: 28px;
205
+ width: 28px;
206
+ padding: 5px;
207
+ line-height: 0;
208
+ }
209
+
210
+ &.js-@{buttonClass}__icon--cogs {
211
+ background: url('../img/cogs.png') center no-repeat;
212
+ }
213
+
214
+ &.js-@{buttonClass}__icon--close {
215
+ background: url('../img/close.png') center no-repeat;
216
+ }
217
+
218
+ &--default {
219
+ background-color: #eceded;
220
+ color: #222;
221
+ border: 1px solid #c3c3c3;
222
+
223
+ &:hover {
224
+ cursor: pointer;
225
+ background-color: #fff;
226
+ border: 1px solid #c3c3c3;
227
+ }
228
+ }
229
+
230
+ &--danger {
231
+ //background-color: #ff7063;
232
+ background-color: #fff;
233
+ color: #ff7063;
234
+ border: 1px solid #ff7063;
235
+
236
+ &:hover {
237
+ background-color: #fff;
238
+ color: #222;
239
+ border: 1px solid #c3c3c3;
240
+ }
241
+ }
242
+
243
+ &--yellow {
244
+ //background-color: #ffcb1e;
245
+ background-color: #fff;
246
+ color: #a5820e;
247
+ border: 1px solid #ffcb1e;
248
+
249
+ &:hover {
250
+ background-color: #fff;
251
+ color: #222;
252
+ border: 1px solid #c3c3c3;
253
+ }
254
+ }
255
+ }
256
+
257
+ // -------------------------------------------------------------
258
+
259
+ // CONTROLS
260
+ // -------------------------------------------------------------
261
+ .wam-select {
262
+ @selectClass: ~"wam-select";
263
+
264
+ display: inline-block;
265
+ vertical-align: bottom;
266
+ height: auto;
267
+ padding: 4px 10px;
268
+
269
+ &.js-@{selectClass}--enable {
270
+ background: #efffde;
271
+ color: #4e6f28;
272
+ border: 1px solid #8bc34a;
273
+ }
274
+
275
+ &.js-@{selectClass}--disable {
276
+ background: #ffdada;
277
+ border: 1px solid #efc3c3;
278
+ color: #774a4a;
279
+ }
280
+
281
+ &:focus {
282
+ outline: none;
283
+ box-shadow: none;
284
+ }
285
+ }
286
+
287
+ // --------------------------------------------------------------
288
+
289
+ &.wam-wrapper {
290
+ min-width: 1365px;
291
+ position: fixed;
292
+ z-index: 99999999;
293
+ top: 0;
294
+ bottom: 0;
295
+ left: 0;
296
+ right: 0;
297
+ background: #FFF;
298
+ overflow-y: auto;
299
+ }
300
+
301
+ .wam-content {
302
+ display: block;
303
+ width: 100%;
304
+ margin: 0;
305
+ padding: 62px 0 0 75px;
306
+ }
307
+
308
+ .wam-info-section {
309
+ display: table;
310
+
311
+ padding: 0 30px 30px;
312
+ color: #5C5C5C;
313
+ font-size: 15px;
314
+ line-height: 21px;
315
+
316
+ p {
317
+ font-size: 15px;
318
+ margin: 0;
319
+
320
+ &:not(:last-child) {
321
+ margin-bottom: 25px;
322
+ }
323
+ }
324
+
325
+ .wam-info-section__warning, .wam-info-section__go-to-premium {
326
+ display: table-cell;
327
+ width: 49%;
328
+ text-align: left;
329
+ vertical-align: top;
330
+ padding: 20px;
331
+ background: #f9f9f9;
332
+ //border: 1px dashed #d8d8d8;
333
+ border-right: 2px solid #fff;
334
+
335
+ }
336
+
337
+ .wam-info-section__go-to-premium {
338
+ background: #f9f9f9;
339
+ //border: 1px dashed #e0cb14;
340
+ border-left: 2px solid #fff;
341
+ margin-left: 10px;
342
+
343
+ h3 {
344
+ position: relative;
345
+ margin: 0 0 20px;
346
+ padding: 10px 0;
347
+ text-align: left;
348
+ border-bottom: 2px solid #e2e2e2;
349
+ vertical-align: bottom;
350
+
351
+ span {
352
+ display: block;
353
+ font-size: 17px;
354
+ font-weight: 600;
355
+ color: #e47558;
356
+ text-transform: uppercase;
357
+ }
358
+ }
359
+
360
+ ul {
361
+ list-style: none;
362
+ margin-left: 5px;
363
+ margin-bottom: 20px;
364
+ padding: 0;
365
+
366
+ li {
367
+ margin-bottom: 5px;
368
+ font-weight: 600;
369
+ font-size: 15px;
370
+ color: #7d8871;
371
+ padding: 0;
372
+
373
+ &:before {
374
+ content: " ";
375
+ display: inline-block;
376
+ width: 0.4em;
377
+ height: 0.7em;
378
+ border: solid #8bc34a;
379
+ border-width: 0 0.2em 0.2em 0;
380
+ left: 0;
381
+ margin-right: 10px;
382
+ -webkit-transform: rotate(45deg);
383
+ -moz-transform: rotate(45deg);
384
+ -o-transform: rotate(45deg);
385
+ transform: rotate(45deg);
386
+ }
387
+ }
388
+ }
389
+ }
390
+ }
391
+
392
+ .wam-plugin-settings {
393
+ @pluginSettingsClass: ~"wam-plugin-settings";
394
+ padding-bottom: 10px;
395
+
396
+ &__controls {
397
+ vertical-align: top;
398
+ }
399
+
400
+ .js-@{pluginSettingsClass}__conditions {
401
+ display: none;
402
+ padding: 20px;
403
+ }
404
+ }
405
+ }
406
+
407
+ @media screen and (max-width: 1367px) {
408
+ #WBCR {
409
+ p {
410
+ font-size: 13px;
411
+ }
412
+
413
+ .wam-content {
414
+ padding: 32px 0 0 75px;
415
+ }
416
+
417
+ .wam-float-panel__left {
418
+ .wam-float-panel__item_value {
419
+ display: block;
420
+ }
421
+ }
422
+
423
+ .wam-float-panel__right {
424
+ .wam-table__checkbox-text {
425
+ font-size: 13px;
426
+ }
427
+
428
+ .wam-float-panel__reset, .wam-float-panel__save {
429
+ font-size: 12px;
430
+ }
431
+
432
+ .wam-float-panel__checkbox-text {
433
+ font-size: 12px;
434
+ display: block;
435
+ line-height: 1.5;
436
+
437
+ }
438
+
439
+ .wam-float-panel__close {
440
+ width: 30px;
441
+ height: 30px;
442
+ margin: 0 10px 0 15px;
443
+ border: 3px solid #FFF;
444
+ }
445
+ }
446
+
447
+ .wam-info-section {
448
+ padding: 0;
449
+
450
+ &, p {
451
+ font-size: 13px;
452
+ }
453
+
454
+ .wam-info-section__warning {
455
+ padding: 20px 20px 30px;
456
+ }
457
+ }
458
+
459
+ .wbcr-gnz-button__pro {
460
+ font-size: 12px;
461
+ }
462
+
463
+ .wam-table {
464
+ margin: 0;
465
+
466
+ th {
467
+ font-size: 13px;
468
+ }
469
+
470
+ .wam-table__item {
471
+ .wam-table__item-name {
472
+ font-size: 14px;
473
+ }
474
+
475
+ .wam-table__item-author, .wam-table__item-version, .wbcr-use-by-comment {
476
+ &, a {
477
+ font-size: 12px;
478
+ }
479
+ }
480
+ }
481
+
482
+ .wam-table__script-name {
483
+ font-size: 14px;
484
+
485
+ b {
486
+ font-size: 11px;
487
+ font-weight: lighter;
488
+ padding: 3px 7px;
489
+ margin-right: 8px;
490
+ }
491
+ }
492
+
493
+ .wam-table__script-path {
494
+ a {
495
+ font-size: 11px;
496
+ }
497
+ }
498
+
499
+ .wam-table__column_switch {
500
+ width: 10%;
501
+
502
+ .wam-table__th-external-plugin, em {
503
+ font-size: 10px;
504
+ }
505
+
506
+ b {
507
+ font-size: 12px;
508
+ }
509
+ }
510
+
511
+ .wam-table__column_condition {
512
+ width: 35%;
513
+ }
514
+ }
515
+ }
516
+ }
517
+
518
+ @media screen and (max-width: 1600px) {
519
+ #WBCR {
520
+ .wam-float-panel__data-main {
521
+ display: none;
522
+ }
523
+
524
+ .wam-float-panel__data-hidden {
525
+ display: block;
526
+ }
527
+ }
528
  }
components/assets-manager/assets/css/float-panel.css CHANGED
@@ -1,252 +1,252 @@
1
- /**
2
- * Float panel
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 26.08.2019
6
- */
7
- .wam-float-panel {
8
- position: fixed;
9
- z-index: 50;
10
- top: 30px;
11
- right: 0;
12
- left: 0;
13
- width: 100%;
14
- display: -webkit-flex;
15
- display: -ms-flexbox;
16
- display: flex;
17
- -ms-flex-pack: justify;
18
- -webkit-justify-content: space-between;
19
- justify-content: space-between;
20
- height: 62px;
21
- padding: 0 20px;
22
- margin: 0;
23
- color: #FFF;
24
- background: #23282d;
25
- font-size: 16px;
26
- border-top: 2px solid #ffcb1e;
27
- }
28
- .wam-float-panel__premium {
29
- position: relative;
30
- display: block;
31
- width: 20px;
32
- height: 40px;
33
- background: #ffcb1e;
34
- margin-left: -30px;
35
- }
36
- .wam-float-panel__premium:hover {
37
- cursor: pointer;
38
- }
39
- .wam-float-panel__premium .wam-tooltip {
40
- position: relative;
41
- right: -30px;
42
- top: 8px;
43
- font-size: 12px;
44
- font-weight: bold;
45
- font-style: normal;
46
- color: #ffffff;
47
- background: #f22714;
48
- width: 45px;
49
- text-align: center;
50
- border-radius: 3px;
51
- padding: 5px 0 5px 0;
52
- line-height: 1.2;
53
- }
54
- .wam-float-panel__premium:after {
55
- display: block;
56
- content: '';
57
- position: absolute;
58
- top: 1px;
59
- left: 0;
60
- width: 19px;
61
- height: 38px;
62
- background: #23282d;
63
- }
64
- .wam-float-panel__left,
65
- .wam-float-panel__right {
66
- display: -webkit-flex;
67
- display: -ms-flexbox;
68
- display: flex;
69
- -webkit-align-items: center;
70
- align-items: center;
71
- -ms-flex-align: center;
72
- }
73
- .wam-float-panel__left {
74
- min-width: 800px;
75
- margin: 0 44px 0 0;
76
- }
77
- .wam-float-panel__logo {
78
- width: 38px;
79
- height: 32px;
80
- margin: 0 44px 0 0;
81
- background: url("data:image/png;base64,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");
82
- }
83
- .wam-float-panel__data {
84
- display: -webkit-flex;
85
- display: -ms-flexbox;
86
- display: flex;
87
- -webkit-align-items: center;
88
- align-items: center;
89
- -ms-flex-align: center;
90
- margin: 0 -22px;
91
- padding: 0;
92
- list-style: none;
93
- }
94
- .wam-float-panel__data:not(:last-child) {
95
- margin-right: 22px;
96
- }
97
- .wam-float-panel__data-item {
98
- margin: 0 22px;
99
- color: #909090;
100
- text-align: center;
101
- vertical-align: top;
102
- padding: 8px 0 8px;
103
- }
104
- .wam-float-panel__data-hidden {
105
- display: none;
106
- margin: 0 44px 0 0;
107
- }
108
- .wam-float-panel__data-hidden img {
109
- vertical-align: middle;
110
- }
111
- .wam-float-panel__item_value {
112
- font-size: 15px;
113
- color: #d0d0d0;
114
- background: #4c4c4c;
115
- border-radius: 2px;
116
- padding: 2px 5px;
117
- }
118
- .wam-float-panel__reset,
119
- .wam-float-panel__save,
120
- .wam-float-panel__reset.input[type="submit"],
121
- .wam-float-panel__save.input[type="submit"] {
122
- display: inline-block;
123
- padding: 8px 15px 7px;
124
- cursor: pointer;
125
- transition: 0.1s;
126
- vertical-align: middle;
127
- text-transform: uppercase !important;
128
- border: none;
129
- border-radius: 2px;
130
- font-size: 14px;
131
- line-height: 1.5;
132
- color: #222 !important;
133
- }
134
- .wam-float-panel__reset:hover,
135
- .wam-float-panel__save:hover,
136
- .wam-float-panel__reset:focus,
137
- .wam-float-panel__save:focus {
138
- outline: none;
139
- text-decoration: none;
140
- }
141
- .wam-float-panel__reset:active,
142
- .wam-float-panel__save:active {
143
- -webkit-transform: translateY(2px);
144
- transform: translateY(2px);
145
- }
146
- .wam-float-panel__reset,
147
- .wam-float-panel__reset.input[type="submit"] {
148
- margin: 0 10px 0 0;
149
- padding-right: 30px;
150
- padding-left: 30px;
151
- background: #E1E5E9;
152
- box-shadow: 0 4px #A8AEB3 !important;
153
- }
154
- .wam-float-panel__reset:hover,
155
- .wam-float-panel__reset:focus {
156
- background: #E7EAED !important;
157
- }
158
- .wam-float-panel__reset:active {
159
- box-shadow: 0 2px #A8AEB3 !important;
160
- }
161
- .wam-float-panel__save,
162
- .wam-float-panel__save.input[type="submit"] {
163
- margin: 0 10px 0 0;
164
- padding-right: 30px;
165
- padding-left: 30px;
166
- color: #222 !important;
167
- background: #FFCB1E !important;
168
- box-shadow: 0 4px #BF9A17 !important;
169
- }
170
- .wam-float-panel__save:hover,
171
- .wam-float-panel__save:focus {
172
- background: #FFD340 !important;
173
- box-shadow: 0 4px #BF9A17 !important;
174
- }
175
- .wam-float-panel__save:active {
176
- background: #FFD340 !important;
177
- box-shadow: 0 2px #BF9A17 !important;
178
- }
179
- .wam-float-panel__save + div {
180
- margin: 0;
181
- }
182
- .wam-float-panel__checkbox {
183
- cursor: pointer;
184
- font-size: 15px;
185
- transform: none;
186
- }
187
- .wam-float-panel__checkbox-text,
188
- .wam-float-panel__checkbox-text-premium {
189
- position: relative;
190
- padding: 0 0 0 26px;
191
- }
192
- .wam-float-panel__checkbox-text::before,
193
- .wam-float-panel__checkbox-text-premium::before {
194
- content: "";
195
- position: absolute;
196
- top: -1px;
197
- left: 0;
198
- width: 20px;
199
- height: 20px;
200
- border-radius: 2px;
201
- background: #ffcb1e;
202
- }
203
- .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text::after,
204
- .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text-premium::after {
205
- content: "";
206
- position: absolute;
207
- top: 5px;
208
- left: 6px;
209
- width: 8px;
210
- height: 5px;
211
- -webkit-transform: rotate(-45deg);
212
- transform: rotate(-45deg);
213
- border: solid #444;
214
- border-width: 0 0 2px 2px;
215
- }
216
- .wam-float-panel__checkbox-text-premium {
217
- display: inline;
218
- color: rgba(245, 245, 245, 0.3);
219
- }
220
- .wam-float-panel__checkbox-text-premium b {
221
- display: inline-block;
222
- font-size: 9px;
223
- font-weight: 700;
224
- color: #fff;
225
- background: #f22714;
226
- width: 25px;
227
- padding: 3px 0;
228
- text-align: center;
229
- vertical-align: top;
230
- border-radius: 3px;
231
- line-height: 1.5;
232
- }
233
- .wam-float-panel__checkbox-text-premium::before {
234
- background: rgba(245, 245, 245, 0.3);
235
- }
236
- .wam-float-panel__close,
237
- .wam-float-panel__close:hover {
238
- width: 36px;
239
- height: 36px;
240
- margin: 0 20px 0 20px;
241
- cursor: pointer;
242
- transition: 0.2s;
243
- border: 4px solid #FFF;
244
- border-radius: 50%;
245
- background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath fill='%23FFF' d='M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'/%3E%3C/svg%3E") no-repeat 50% 0px;
246
- }
247
- .wam-float-panel__close:focus,
248
- .wam-float-panel__close:hover:focus {
249
- opacity: 0.5;
250
- outline: none;
251
- }
252
  /*# sourceMappingURL=float-panel.css.map */
1
+ /**
2
+ * Float panel
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 26.08.2019
6
+ */
7
+ .wam-float-panel {
8
+ position: fixed;
9
+ z-index: 50;
10
+ top: 30px;
11
+ right: 0;
12
+ left: 0;
13
+ width: 100%;
14
+ display: -webkit-flex;
15
+ display: -ms-flexbox;
16
+ display: flex;
17
+ -ms-flex-pack: justify;
18
+ -webkit-justify-content: space-between;
19
+ justify-content: space-between;
20
+ height: 62px;
21
+ padding: 0 20px;
22
+ margin: 0;
23
+ color: #FFF;
24
+ background: #23282d;
25
+ font-size: 16px;
26
+ border-top: 2px solid #ffcb1e;
27
+ }
28
+ .wam-float-panel__premium {
29
+ position: relative;
30
+ display: block;
31
+ width: 20px;
32
+ height: 40px;
33
+ background: #ffcb1e;
34
+ margin-left: -30px;
35
+ }
36
+ .wam-float-panel__premium:hover {
37
+ cursor: pointer;
38
+ }
39
+ .wam-float-panel__premium .wam-tooltip {
40
+ position: relative;
41
+ right: -30px;
42
+ top: 8px;
43
+ font-size: 12px;
44
+ font-weight: bold;
45
+ font-style: normal;
46
+ color: #ffffff;
47
+ background: #f22714;
48
+ width: 45px;
49
+ text-align: center;
50
+ border-radius: 3px;
51
+ padding: 5px 0 5px 0;
52
+ line-height: 1.2;
53
+ }
54
+ .wam-float-panel__premium:after {
55
+ display: block;
56
+ content: '';
57
+ position: absolute;
58
+ top: 1px;
59
+ left: 0;
60
+ width: 19px;
61
+ height: 38px;
62
+ background: #23282d;
63
+ }
64
+ .wam-float-panel__left,
65
+ .wam-float-panel__right {
66
+ display: -webkit-flex;
67
+ display: -ms-flexbox;
68
+ display: flex;
69
+ -webkit-align-items: center;
70
+ align-items: center;
71
+ -ms-flex-align: center;
72
+ }
73
+ .wam-float-panel__left {
74
+ min-width: 800px;
75
+ margin: 0 44px 0 0;
76
+ }
77
+ .wam-float-panel__logo {
78
+ width: 38px;
79
+ height: 32px;
80
+ margin: 0 44px 0 0;
81
+ background: url("data:image/png;base64,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");
82
+ }
83
+ .wam-float-panel__data {
84
+ display: -webkit-flex;
85
+ display: -ms-flexbox;
86
+ display: flex;
87
+ -webkit-align-items: center;
88
+ align-items: center;
89
+ -ms-flex-align: center;
90
+ margin: 0 -22px;
91
+ padding: 0;
92
+ list-style: none;
93
+ }
94
+ .wam-float-panel__data:not(:last-child) {
95
+ margin-right: 22px;
96
+ }
97
+ .wam-float-panel__data-item {
98
+ margin: 0 22px;
99
+ color: #909090;
100
+ text-align: center;
101
+ vertical-align: top;
102
+ padding: 8px 0 8px;
103
+ }
104
+ .wam-float-panel__data-hidden {
105
+ display: none;
106
+ margin: 0 44px 0 0;
107
+ }
108
+ .wam-float-panel__data-hidden img {
109
+ vertical-align: middle;
110
+ }
111
+ .wam-float-panel__item_value {
112
+ font-size: 15px;
113
+ color: #d0d0d0;
114
+ background: #4c4c4c;
115
+ border-radius: 2px;
116
+ padding: 2px 5px;
117
+ }
118
+ .wam-float-panel__reset,
119
+ .wam-float-panel__save,
120
+ .wam-float-panel__reset.input[type="submit"],
121
+ .wam-float-panel__save.input[type="submit"] {
122
+ display: inline-block;
123
+ padding: 8px 15px 7px;
124
+ cursor: pointer;
125
+ transition: 0.1s;
126
+ vertical-align: middle;
127
+ text-transform: uppercase !important;
128
+ border: none;
129
+ border-radius: 2px;
130
+ font-size: 14px;
131
+ line-height: 1.5;
132
+ color: #222 !important;
133
+ }
134
+ .wam-float-panel__reset:hover,
135
+ .wam-float-panel__save:hover,
136
+ .wam-float-panel__reset:focus,
137
+ .wam-float-panel__save:focus {
138
+ outline: none;
139
+ text-decoration: none;
140
+ }
141
+ .wam-float-panel__reset:active,
142
+ .wam-float-panel__save:active {
143
+ -webkit-transform: translateY(2px);
144
+ transform: translateY(2px);
145
+ }
146
+ .wam-float-panel__reset,
147
+ .wam-float-panel__reset.input[type="submit"] {
148
+ margin: 0 10px 0 0;
149
+ padding-right: 30px;
150
+ padding-left: 30px;
151
+ background: #E1E5E9;
152
+ box-shadow: 0 4px #A8AEB3 !important;
153
+ }
154
+ .wam-float-panel__reset:hover,
155
+ .wam-float-panel__reset:focus {
156
+ background: #E7EAED !important;
157
+ }
158
+ .wam-float-panel__reset:active {
159
+ box-shadow: 0 2px #A8AEB3 !important;
160
+ }
161
+ .wam-float-panel__save,
162
+ .wam-float-panel__save.input[type="submit"] {
163
+ margin: 0 10px 0 0;
164
+ padding-right: 30px;
165
+ padding-left: 30px;
166
+ color: #222 !important;
167
+ background: #FFCB1E !important;
168
+ box-shadow: 0 4px #BF9A17 !important;
169
+ }
170
+ .wam-float-panel__save:hover,
171
+ .wam-float-panel__save:focus {
172
+ background: #FFD340 !important;
173
+ box-shadow: 0 4px #BF9A17 !important;
174
+ }
175
+ .wam-float-panel__save:active {
176
+ background: #FFD340 !important;
177
+ box-shadow: 0 2px #BF9A17 !important;
178
+ }
179
+ .wam-float-panel__save + div {
180
+ margin: 0;
181
+ }
182
+ .wam-float-panel__checkbox {
183
+ cursor: pointer;
184
+ font-size: 15px;
185
+ transform: none;
186
+ }
187
+ .wam-float-panel__checkbox-text,
188
+ .wam-float-panel__checkbox-text-premium {
189
+ position: relative;
190
+ padding: 0 0 0 26px;
191
+ }
192
+ .wam-float-panel__checkbox-text::before,
193
+ .wam-float-panel__checkbox-text-premium::before {
194
+ content: "";
195
+ position: absolute;
196
+ top: -1px;
197
+ left: 0;
198
+ width: 20px;
199
+ height: 20px;
200
+ border-radius: 2px;
201
+ background: #ffcb1e;
202
+ }
203
+ .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text::after,
204
+ .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text-premium::after {
205
+ content: "";
206
+ position: absolute;
207
+ top: 5px;
208
+ left: 6px;
209
+ width: 8px;
210
+ height: 5px;
211
+ -webkit-transform: rotate(-45deg);
212
+ transform: rotate(-45deg);
213
+ border: solid #444;
214
+ border-width: 0 0 2px 2px;
215
+ }
216
+ .wam-float-panel__checkbox-text-premium {
217
+ display: inline;
218
+ color: rgba(245, 245, 245, 0.3);
219
+ }
220
+ .wam-float-panel__checkbox-text-premium b {
221
+ display: inline-block;
222
+ font-size: 9px;
223
+ font-weight: 700;
224
+ color: #fff;
225
+ background: #f22714;
226
+ width: 25px;
227
+ padding: 3px 0;
228
+ text-align: center;
229
+ vertical-align: top;
230
+ border-radius: 3px;
231
+ line-height: 1.5;
232
+ }
233
+ .wam-float-panel__checkbox-text-premium::before {
234
+ background: rgba(245, 245, 245, 0.3);
235
+ }
236
+ .wam-float-panel__close,
237
+ .wam-float-panel__close:hover {
238
+ width: 36px;
239
+ height: 36px;
240
+ margin: 0 20px 0 20px;
241
+ cursor: pointer;
242
+ transition: 0.2s;
243
+ border: 4px solid #FFF;
244
+ border-radius: 50%;
245
+ background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath fill='%23FFF' d='M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'/%3E%3C/svg%3E") no-repeat 50% 0px;
246
+ }
247
+ .wam-float-panel__close:focus,
248
+ .wam-float-panel__close:hover:focus {
249
+ opacity: 0.5;
250
+ outline: none;
251
+ }
252
  /*# sourceMappingURL=float-panel.css.map */
components/assets-manager/assets/css/float-panel.less CHANGED
@@ -1,294 +1,294 @@
1
- /**
2
- * Float panel
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 26.08.2019
6
- */
7
-
8
- .wam-float-panel {
9
- position: fixed;
10
- z-index: 50;
11
- top: 0;
12
- right: 0;
13
- left: 0;
14
- width: 100%;
15
- display: -webkit-flex;
16
- display: -ms-flexbox;
17
- display: flex;
18
- -ms-flex-pack: justify;
19
- -webkit-justify-content: space-between;
20
- justify-content: space-between;
21
- height: 62px;
22
- padding: 0 20px;
23
- margin: 0;
24
- color: #FFF;
25
- background: #23282d;
26
- font-size: 16px;
27
- border-top: 2px solid #ffcb1e;
28
-
29
- &__premium {
30
- position: relative;
31
- display: block;
32
- width: 20px;
33
- height: 40px;
34
- background: #ffcb1e;
35
- margin-left: -30px;
36
-
37
- &:hover {
38
- cursor: pointer;
39
- }
40
-
41
- .wam-tooltip {
42
- position: relative;
43
- right: -30px;
44
- top: 8px;
45
- font-size: 12px;
46
- font-weight: bold;
47
- font-style: normal;
48
- color: #ffffff;
49
- background: #f22714;
50
- width: 45px;
51
- text-align: center;
52
- border-radius: 3px;
53
- padding: 5px 0 5px 0;
54
- line-height: 1.2;
55
- }
56
-
57
- &:after {
58
- display: block;
59
- content: '';
60
- position: absolute;
61
- top: 1px;
62
- left: 0;
63
- width: 19px;
64
- height: 38px;
65
- background: #23282d;
66
- }
67
- }
68
-
69
- &__left,
70
- &__right {
71
- display: -webkit-flex;
72
- display: -ms-flexbox;
73
- display: flex;
74
- -webkit-align-items: center;
75
- align-items: center;
76
- -ms-flex-align: center;
77
- }
78
-
79
- &__left {
80
- min-width: 800px;
81
- margin: 0 44px 0 0;
82
- }
83
-
84
- &__logo {
85
- width: 38px;
86
- height: 32px;
87
- margin: 0 44px 0 0;
88
- background: url("data:image/png;base64,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");
89
- }
90
-
91
- &__data {
92
- display: -webkit-flex;
93
- display: -ms-flexbox;
94
- display: flex;
95
- -webkit-align-items: center;
96
- align-items: center;
97
- -ms-flex-align: center;
98
- margin: 0 -22px;
99
- padding: 0;
100
- list-style: none;
101
- }
102
-
103
- &__data:not(:last-child) {
104
- margin-right: 22px;
105
- }
106
-
107
- &__data-item {
108
- margin: 0 22px;
109
- color: #909090;
110
- text-align: center;
111
- vertical-align: top;
112
- padding: 8px 0 8px;
113
- }
114
-
115
- &__data-hidden {
116
- display: none;
117
- margin: 0 44px 0 0;
118
- }
119
-
120
- &__data-hidden img {
121
- vertical-align: middle;
122
- }
123
-
124
- &__item_value {
125
- font-size: 15px;
126
- color: #d0d0d0;
127
- background: #4c4c4c;
128
- border-radius: 2px;
129
- padding: 2px 5px;
130
- }
131
-
132
- &__reset,
133
- &__save {
134
- &, &.input[type="submit"] {
135
- display: inline-block;
136
- padding: 8px 15px 7px;
137
- cursor: pointer;
138
- transition: .1s;
139
- vertical-align: middle;
140
- text-transform: uppercase !important;
141
- border: none;
142
- border-radius: 2px;
143
- font-size: 14px;
144
- line-height: 1.5;
145
- color: #222 !important;
146
- }
147
-
148
- }
149
-
150
- &__reset:hover,
151
- &__save:hover,
152
- &__reset:focus,
153
- &__save:focus {
154
- outline: none;
155
- text-decoration: none;
156
- }
157
-
158
- &__reset:active,
159
- &__save:active {
160
- -webkit-transform: translateY(2px);
161
- transform: translateY(2px);
162
- }
163
-
164
- &__reset {
165
- &, &.input[type="submit"] {
166
- margin: 0 10px 0 0;
167
- padding-right: 30px;
168
- padding-left: 30px;
169
- background: #E1E5E9;
170
- box-shadow: 0 4px #A8AEB3 !important;
171
- }
172
- }
173
-
174
- &__reset:hover,
175
- &__reset:focus {
176
- background: #E7EAED !important;
177
- }
178
-
179
- &__reset:active {
180
- box-shadow: 0 2px #A8AEB3 !important;
181
- }
182
-
183
- &__save {
184
- &, &.input[type="submit"] {
185
- margin: 0 10px 0 0;
186
- padding-right: 30px;
187
- padding-left: 30px;
188
- color: #222 !important;
189
- background: #FFCB1E !important;;
190
- box-shadow: 0 4px #BF9A17 !important;
191
- }
192
-
193
- &:hover, &:focus {
194
- background: #FFD340 !important;
195
- box-shadow: 0 4px #BF9A17 !important;
196
- }
197
-
198
- &:active {
199
- background: #FFD340 !important;
200
- box-shadow: 0 2px #BF9A17 !important;
201
- }
202
-
203
- & + div {
204
- margin: 0;
205
- }
206
- }
207
-
208
- &__checkbox {
209
- cursor: pointer;
210
- font-size: 15px;
211
- transform: none;
212
- }
213
-
214
- &__checkbox-text, &__checkbox-text-premium {
215
- position: relative;
216
- padding: 0 0 0 26px;
217
-
218
- &::before {
219
- content: "";
220
- position: absolute;
221
- top: -1px;
222
- left: 0;
223
- width: 20px;
224
- height: 20px;
225
- border-radius: 2px;
226
- background: #ffcb1e;
227
- }
228
- }
229
-
230
- &__checkbox-input {
231
- &:checked {
232
- & + .wam-float-panel__checkbox-text, & + .wam-float-panel__checkbox-text-premium {
233
- &::after {
234
- content: "";
235
- position: absolute;
236
- top: 5px;
237
- left: 6px;
238
- width: 8px;
239
- height: 5px;
240
- -webkit-transform: rotate(-45deg);
241
- transform: rotate(-45deg);
242
- border: solid #444;
243
- border-width: 0 0 2px 2px;
244
- }
245
- }
246
- }
247
- }
248
-
249
- &__checkbox-text-premium {
250
- display: inline;
251
- color: rgba(245, 245, 245, 0.3);
252
-
253
- b {
254
- display: inline-block;
255
- font-size: 9px;
256
- font-weight: 700;
257
- color: #fff;
258
- background: #f22714;
259
- width: 25px;
260
- padding: 3px 0;
261
- text-align: center;
262
- vertical-align: top;
263
- border-radius: 3px;
264
- line-height: 1.5;
265
- }
266
-
267
- &::before {
268
- background: rgba(245, 245, 245, 0.3);
269
- }
270
- }
271
-
272
- &__close, &__close:hover {
273
- width: 36px;
274
- height: 36px;
275
- margin: 0 20px 0 20px;
276
- cursor: pointer;
277
- transition: .2s;
278
- border: 4px solid #FFF;
279
- border-radius: 50%;
280
- background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath fill='%23FFF' d='M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'/%3E%3C/svg%3E") no-repeat 50% 0px;
281
-
282
- &:hover {
283
- //opacity: .7;
284
- //background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath fill='%23FFF' d='M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'/%3E%3C/svg%3E") no-repeat 50% 0px !important;
285
- }
286
-
287
- &:focus {
288
- opacity: .5;
289
- outline: none;
290
- }
291
- }
292
- }
293
-
294
-
1
+ /**
2
+ * Float panel
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 26.08.2019
6
+ */
7
+
8
+ .wam-float-panel {
9
+ position: fixed;
10
+ z-index: 50;
11
+ top: 0;
12
+ right: 0;
13
+ left: 0;
14
+ width: 100%;
15
+ display: -webkit-flex;
16
+ display: -ms-flexbox;
17
+ display: flex;
18
+ -ms-flex-pack: justify;
19
+ -webkit-justify-content: space-between;
20
+ justify-content: space-between;
21
+ height: 62px;
22
+ padding: 0 20px;
23
+ margin: 0;
24
+ color: #FFF;
25
+ background: #23282d;
26
+ font-size: 16px;
27
+ border-top: 2px solid #ffcb1e;
28
+
29
+ &__premium {
30
+ position: relative;
31
+ display: block;
32
+ width: 20px;
33
+ height: 40px;
34
+ background: #ffcb1e;
35
+ margin-left: -30px;
36
+
37
+ &:hover {
38
+ cursor: pointer;
39
+ }
40
+
41
+ .wam-tooltip {
42
+ position: relative;
43
+ right: -30px;
44
+ top: 8px;
45
+ font-size: 12px;
46
+ font-weight: bold;
47
+ font-style: normal;
48
+ color: #ffffff;
49
+ background: #f22714;
50
+ width: 45px;
51
+ text-align: center;
52
+ border-radius: 3px;
53
+ padding: 5px 0 5px 0;
54
+ line-height: 1.2;
55
+ }
56
+
57
+ &:after {
58
+ display: block;
59
+ content: '';
60
+ position: absolute;
61
+ top: 1px;
62
+ left: 0;
63
+ width: 19px;
64
+ height: 38px;
65
+ background: #23282d;
66
+ }
67
+ }
68
+
69
+ &__left,
70
+ &__right {
71
+ display: -webkit-flex;
72
+ display: -ms-flexbox;
73
+ display: flex;
74
+ -webkit-align-items: center;
75
+ align-items: center;
76
+ -ms-flex-align: center;
77
+ }
78
+
79
+ &__left {
80
+ min-width: 800px;
81
+ margin: 0 44px 0 0;
82
+ }
83
+
84
+ &__logo {
85
+ width: 38px;
86
+ height: 32px;
87
+ margin: 0 44px 0 0;
88
+ background: url("data:image/png;base64,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");
89
+ }
90
+
91
+ &__data {
92
+ display: -webkit-flex;
93
+ display: -ms-flexbox;
94
+ display: flex;
95
+ -webkit-align-items: center;
96
+ align-items: center;
97
+ -ms-flex-align: center;
98
+ margin: 0 -22px;
99
+ padding: 0;
100
+ list-style: none;
101
+ }
102
+
103
+ &__data:not(:last-child) {
104
+ margin-right: 22px;
105
+ }
106
+
107
+ &__data-item {
108
+ margin: 0 22px;
109
+ color: #909090;
110
+ text-align: center;
111
+ vertical-align: top;
112
+ padding: 8px 0 8px;
113
+ }
114
+
115
+ &__data-hidden {
116
+ display: none;
117
+ margin: 0 44px 0 0;
118
+ }
119
+
120
+ &__data-hidden img {
121
+ vertical-align: middle;
122
+ }
123
+
124
+ &__item_value {
125
+ font-size: 15px;
126
+ color: #d0d0d0;
127
+ background: #4c4c4c;
128
+ border-radius: 2px;
129
+ padding: 2px 5px;
130
+ }
131
+
132
+ &__reset,
133
+ &__save {
134
+ &, &.input[type="submit"] {
135
+ display: inline-block;
136
+ padding: 8px 15px 7px;
137
+ cursor: pointer;
138
+ transition: .1s;
139
+ vertical-align: middle;
140
+ text-transform: uppercase !important;
141
+ border: none;
142
+ border-radius: 2px;
143
+ font-size: 14px;
144
+ line-height: 1.5;
145
+ color: #222 !important;
146
+ }
147
+
148
+ }
149
+
150
+ &__reset:hover,
151
+ &__save:hover,
152
+ &__reset:focus,
153
+ &__save:focus {
154
+ outline: none;
155
+ text-decoration: none;
156
+ }
157
+
158
+ &__reset:active,
159
+ &__save:active {
160
+ -webkit-transform: translateY(2px);
161
+ transform: translateY(2px);
162
+ }
163
+
164
+ &__reset {
165
+ &, &.input[type="submit"] {
166
+ margin: 0 10px 0 0;
167
+ padding-right: 30px;
168
+ padding-left: 30px;
169
+ background: #E1E5E9;
170
+ box-shadow: 0 4px #A8AEB3 !important;
171
+ }
172
+ }
173
+
174
+ &__reset:hover,
175
+ &__reset:focus {
176
+ background: #E7EAED !important;
177
+ }
178
+
179
+ &__reset:active {
180
+ box-shadow: 0 2px #A8AEB3 !important;
181
+ }
182
+
183
+ &__save {
184
+ &, &.input[type="submit"] {
185
+ margin: 0 10px 0 0;
186
+ padding-right: 30px;
187
+ padding-left: 30px;
188
+ color: #222 !important;
189
+ background: #FFCB1E !important;;
190
+ box-shadow: 0 4px #BF9A17 !important;
191
+ }
192
+
193
+ &:hover, &:focus {
194
+ background: #FFD340 !important;
195
+ box-shadow: 0 4px #BF9A17 !important;
196
+ }
197
+
198
+ &:active {
199
+ background: #FFD340 !important;
200
+ box-shadow: 0 2px #BF9A17 !important;
201
+ }
202
+
203
+ & + div {
204
+ margin: 0;
205
+ }
206
+ }
207
+
208
+ &__checkbox {
209
+ cursor: pointer;
210
+ font-size: 15px;
211
+ transform: none;
212
+ }
213
+
214
+ &__checkbox-text, &__checkbox-text-premium {
215
+ position: relative;
216
+ padding: 0 0 0 26px;
217
+
218
+ &::before {
219
+ content: "";
220
+ position: absolute;
221
+ top: -1px;
222
+ left: 0;
223
+ width: 20px;
224
+ height: 20px;
225
+ border-radius: 2px;
226
+ background: #ffcb1e;
227
+ }
228
+ }
229
+
230
+ &__checkbox-input {
231
+ &:checked {
232
+ & + .wam-float-panel__checkbox-text, & + .wam-float-panel__checkbox-text-premium {
233
+ &::after {
234
+ content: "";
235
+ position: absolute;
236
+ top: 5px;
237
+ left: 6px;
238
+ width: 8px;
239
+ height: 5px;
240
+ -webkit-transform: rotate(-45deg);
241
+ transform: rotate(-45deg);
242
+ border: solid #444;
243
+ border-width: 0 0 2px 2px;
244
+ }
245
+ }
246
+ }
247
+ }
248
+
249
+ &__checkbox-text-premium {
250
+ display: inline;
251
+ color: rgba(245, 245, 245, 0.3);
252
+
253
+ b {
254
+ display: inline-block;
255
+ font-size: 9px;
256
+ font-weight: 700;
257
+ color: #fff;
258
+ background: #f22714;
259
+ width: 25px;
260
+ padding: 3px 0;
261
+ text-align: center;
262
+ vertical-align: top;
263
+ border-radius: 3px;
264
+ line-height: 1.5;
265
+ }
266
+
267
+ &::before {
268
+ background: rgba(245, 245, 245, 0.3);
269
+ }
270
+ }
271
+
272
+ &__close, &__close:hover {
273
+ width: 36px;
274
+ height: 36px;
275
+ margin: 0 20px 0 20px;
276
+ cursor: pointer;
277
+ transition: .2s;
278
+ border: 4px solid #FFF;
279
+ border-radius: 50%;
280
+ background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath fill='%23FFF' d='M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'/%3E%3C/svg%3E") no-repeat 50% 0px;
281
+
282
+ &:hover {
283
+ //opacity: .7;
284
+ //background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 352 512'%3E%3Cpath fill='%23FFF' d='M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z'/%3E%3C/svg%3E") no-repeat 50% 0px !important;
285
+ }
286
+
287
+ &:focus {
288
+ opacity: .5;
289
+ outline: none;
290
+ }
291
+ }
292
+ }
293
+
294
+
components/assets-manager/assets/css/reset.css CHANGED
@@ -1,251 +1,251 @@
1
- /**
2
- * Reset styles
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright Webcraftic 15.10.2018
5
- */
6
- *,
7
- *:before,
8
- *:after {
9
- -webkit-box-sizing: border-box;
10
- -moz-box-sizing: border-box;
11
- box-sizing: border-box;
12
- }
13
- h2,
14
- h3,
15
- h4,
16
- h5,
17
- h6,
18
- p,
19
- strong,
20
- b,
21
- span,
22
- em,
23
- i,
24
- a,
25
- div,
26
- main,
27
- section,
28
- li,
29
- button,
30
- input[type="submit"],
31
- input[type="reset"],
32
- .wbcr-gnz-switch-premium {
33
- font-family: Arial, "Helvetica Neue", sans-serif !important;
34
- font-size: 14px;
35
- font-style: normal;
36
- font-weight: normal;
37
- text-transform: none;
38
- text-shadow: none;
39
- }
40
- h1 {
41
- font-size: 2em;
42
- margin: 0.67em 0;
43
- }
44
- hr {
45
- box-sizing: content-box;
46
- height: 0;
47
- overflow: visible;
48
- }
49
- pre {
50
- font-family: monospace, monospace;
51
- font-size: 1em;
52
- }
53
- a {
54
- background-color: transparent;
55
- }
56
- abbr[title] {
57
- border-bottom: none;
58
- text-decoration: underline dotted;
59
- }
60
- b,
61
- strong {
62
- font-weight: bolder;
63
- }
64
- code,
65
- kbd,
66
- samp {
67
- font-family: monospace, monospace;
68
- font-size: 1em;
69
- }
70
- small {
71
- font-size: 80%;
72
- }
73
- sub,
74
- sup {
75
- font-size: 75%;
76
- line-height: 0;
77
- position: relative;
78
- vertical-align: baseline;
79
- }
80
- sub {
81
- bottom: -0.25em;
82
- }
83
- sup {
84
- top: -0.5em;
85
- }
86
- img {
87
- border-style: none;
88
- }
89
- button,
90
- input,
91
- optgroup,
92
- select,
93
- textarea {
94
- font-family: inherit;
95
- font-size: 100%;
96
- line-height: 1.15;
97
- margin: 0;
98
- height: auto;
99
- width: auto;
100
- }
101
- button,
102
- input,
103
- optgroup,
104
- select,
105
- textarea,
106
- button:hover,
107
- input:hover,
108
- optgroup:hover,
109
- select:hover,
110
- textarea:hover,
111
- button:focus,
112
- input:focus,
113
- optgroup:focus,
114
- select:focus,
115
- textarea:focus {
116
- -moz-box-shadow: none;
117
- -ms-box-shadow: none;
118
- -webkit-box-shadow: none;
119
- -o-box-shadow: none;
120
- }
121
- button,
122
- input {
123
- overflow: visible;
124
- }
125
- button,
126
- select {
127
- text-transform: none;
128
- }
129
- button,
130
- [type="button"],
131
- [type="reset"],
132
- [type="submit"] {
133
- -webkit-appearance: button;
134
- }
135
- button::-moz-focus-inner,
136
- [type="button"]::-moz-focus-inner,
137
- [type="reset"]::-moz-focus-inner,
138
- [type="submit"]::-moz-focus-inner {
139
- border-style: none;
140
- padding: 0;
141
- }
142
- button:-moz-focusring,
143
- [type="button"]:-moz-focusring,
144
- [type="reset"]:-moz-focusring,
145
- [type="submit"]:-moz-focusring {
146
- outline: 1px dotted ButtonText;
147
- }
148
- fieldset {
149
- padding: 0.35em 0.75em 0.625em;
150
- }
151
- legend {
152
- box-sizing: border-box;
153
- color: inherit;
154
- display: table;
155
- max-width: 100%;
156
- padding: 0;
157
- white-space: normal;
158
- }
159
- textarea {
160
- overflow: auto;
161
- }
162
- [type="checkbox"],
163
- [type="radio"] {
164
- box-sizing: border-box;
165
- padding: 0;
166
- }
167
- [type="number"]::-webkit-inner-spin-button,
168
- [type="number"]::-webkit-outer-spin-button {
169
- height: auto;
170
- }
171
- [type="search"] {
172
- -webkit-appearance: textfield;
173
- outline-offset: -2px;
174
- }
175
- [type="search"]::-webkit-search-decoration {
176
- -webkit-appearance: none;
177
- }
178
- ::-webkit-file-upload-button {
179
- -webkit-appearance: button;
180
- font: inherit;
181
- }
182
- fieldset {
183
- padding: 0.35em 0.75em 0.625em;
184
- }
185
- legend {
186
- box-sizing: border-box;
187
- color: inherit;
188
- display: table;
189
- max-width: 100%;
190
- padding: 0;
191
- white-space: normal;
192
- }
193
- progress {
194
- vertical-align: baseline;
195
- }
196
- textarea {
197
- overflow: auto;
198
- }
199
- [type=checkbox],
200
- [type=radio] {
201
- box-sizing: border-box;
202
- padding: 0;
203
- }
204
- [type=number]::-webkit-inner-spin-button,
205
- [type=number]::-webkit-outer-spin-button {
206
- height: auto;
207
- }
208
- [type=search] {
209
- -webkit-appearance: textfield;
210
- outline-offset: -2px;
211
- }
212
- [type=search]::-webkit-search-decoration {
213
- -webkit-appearance: none;
214
- }
215
- ::-webkit-file-upload-button {
216
- -webkit-appearance: button;
217
- font: inherit;
218
- }
219
- details {
220
- display: block;
221
- }
222
- summary {
223
- display: list-item;
224
- }
225
- template {
226
- display: none;
227
- }
228
- [hidden] {
229
- display: none;
230
- }
231
- table,
232
- caption,
233
- tbody,
234
- tfoot,
235
- thead,
236
- tr,
237
- th,
238
- td {
239
- margin: 0;
240
- padding: 0;
241
- border: 0;
242
- font-size: 100%;
243
- font: inherit;
244
- vertical-align: middle;
245
- line-height: 1.2;
246
- }
247
- table {
248
- table-layout: auto;
249
- border-collapse: collapse;
250
- border-spacing: 0;
251
- }
1
+ /**
2
+ * Reset styles
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright Webcraftic 15.10.2018
5
+ */
6
+ *,
7
+ *:before,
8
+ *:after {
9
+ -webkit-box-sizing: border-box;
10
+ -moz-box-sizing: border-box;
11
+ box-sizing: border-box;
12
+ }
13
+ h2,
14
+ h3,
15
+ h4,
16
+ h5,
17
+ h6,
18
+ p,
19
+ strong,
20
+ b,
21
+ span,
22
+ em,
23
+ i,
24
+ a,
25
+ div,
26
+ main,
27
+ section,
28
+ li,
29
+ button,
30
+ input[type="submit"],
31
+ input[type="reset"],
32
+ .wbcr-gnz-switch-premium {
33
+ font-family: Arial, "Helvetica Neue", sans-serif !important;
34
+ font-size: 14px;
35
+ font-style: normal;
36
+ font-weight: normal;
37
+ text-transform: none;
38
+ text-shadow: none;
39
+ }
40
+ h1 {
41
+ font-size: 2em;
42
+ margin: 0.67em 0;
43
+ }
44
+ hr {
45
+ box-sizing: content-box;
46
+ height: 0;
47
+ overflow: visible;
48
+ }
49
+ pre {
50
+ font-family: monospace, monospace;
51
+ font-size: 1em;
52
+ }
53
+ a {
54
+ background-color: transparent;
55
+ }
56
+ abbr[title] {
57
+ border-bottom: none;
58
+ text-decoration: underline dotted;
59
+ }
60
+ b,
61
+ strong {
62
+ font-weight: bolder;
63
+ }
64
+ code,
65
+ kbd,
66
+ samp {
67
+ font-family: monospace, monospace;
68
+ font-size: 1em;
69
+ }
70
+ small {
71
+ font-size: 80%;
72
+ }
73
+ sub,
74
+ sup {
75
+ font-size: 75%;
76
+ line-height: 0;
77
+ position: relative;
78
+ vertical-align: baseline;
79
+ }
80
+ sub {
81
+ bottom: -0.25em;
82
+ }
83
+ sup {
84
+ top: -0.5em;
85
+ }
86
+ img {
87
+ border-style: none;
88
+ }
89
+ button,
90
+ input,
91
+ optgroup,
92
+ select,
93
+ textarea {
94
+ font-family: inherit;
95
+ font-size: 100%;
96
+ line-height: 1.15;
97
+ margin: 0;
98
+ height: auto;
99
+ width: auto;
100
+ }
101
+ button,
102
+ input,
103
+ optgroup,
104
+ select,
105
+ textarea,
106
+ button:hover,
107
+ input:hover,
108
+ optgroup:hover,
109
+ select:hover,
110
+ textarea:hover,
111
+ button:focus,
112
+ input:focus,
113
+ optgroup:focus,
114
+ select:focus,
115
+ textarea:focus {
116
+ -moz-box-shadow: none;
117
+ -ms-box-shadow: none;
118
+ -webkit-box-shadow: none;
119
+ -o-box-shadow: none;
120
+ }
121
+ button,
122
+ input {
123
+ overflow: visible;
124
+ }
125
+ button,
126
+ select {
127
+ text-transform: none;
128
+ }
129
+ button,
130
+ [type="button"],
131
+ [type="reset"],
132
+ [type="submit"] {
133
+ -webkit-appearance: button;
134
+ }
135
+ button::-moz-focus-inner,
136
+ [type="button"]::-moz-focus-inner,
137
+ [type="reset"]::-moz-focus-inner,
138
+ [type="submit"]::-moz-focus-inner {
139
+ border-style: none;
140
+ padding: 0;
141
+ }
142
+ button:-moz-focusring,
143
+ [type="button"]:-moz-focusring,
144
+ [type="reset"]:-moz-focusring,
145
+ [type="submit"]:-moz-focusring {
146
+ outline: 1px dotted ButtonText;
147
+ }
148
+ fieldset {
149
+ padding: 0.35em 0.75em 0.625em;
150
+ }
151
+ legend {
152
+ box-sizing: border-box;
153
+ color: inherit;
154
+ display: table;
155
+ max-width: 100%;
156
+ padding: 0;
157
+ white-space: normal;
158
+ }
159
+ textarea {
160
+ overflow: auto;
161
+ }
162
+ [type="checkbox"],
163
+ [type="radio"] {
164
+ box-sizing: border-box;
165
+ padding: 0;
166
+ }
167
+ [type="number"]::-webkit-inner-spin-button,
168
+ [type="number"]::-webkit-outer-spin-button {
169
+ height: auto;
170
+ }
171
+ [type="search"] {
172
+ -webkit-appearance: textfield;
173
+ outline-offset: -2px;
174
+ }
175
+ [type="search"]::-webkit-search-decoration {
176
+ -webkit-appearance: none;
177
+ }
178
+ ::-webkit-file-upload-button {
179
+ -webkit-appearance: button;
180
+ font: inherit;
181
+ }
182
+ fieldset {
183
+ padding: 0.35em 0.75em 0.625em;
184
+ }
185
+ legend {
186
+ box-sizing: border-box;
187
+ color: inherit;
188
+ display: table;
189
+ max-width: 100%;
190
+ padding: 0;
191
+ white-space: normal;
192
+ }
193
+ progress {
194
+ vertical-align: baseline;
195
+ }
196
+ textarea {
197
+ overflow: auto;
198
+ }
199
+ [type=checkbox],
200
+ [type=radio] {
201
+ box-sizing: border-box;
202
+ padding: 0;
203
+ }
204
+ [type=number]::-webkit-inner-spin-button,
205
+ [type=number]::-webkit-outer-spin-button {
206
+ height: auto;
207
+ }
208
+ [type=search] {
209
+ -webkit-appearance: textfield;
210
+ outline-offset: -2px;
211
+ }
212
+ [type=search]::-webkit-search-decoration {
213
+ -webkit-appearance: none;
214
+ }
215
+ ::-webkit-file-upload-button {
216
+ -webkit-appearance: button;
217
+ font: inherit;
218
+ }
219
+ details {
220
+ display: block;
221
+ }
222
+ summary {
223
+ display: list-item;
224
+ }
225
+ template {
226
+ display: none;
227
+ }
228
+ [hidden] {
229
+ display: none;
230
+ }
231
+ table,
232
+ caption,
233
+ tbody,
234
+ tfoot,
235
+ thead,
236
+ tr,
237
+ th,
238
+ td {
239
+ margin: 0;
240
+ padding: 0;
241
+ border: 0;
242
+ font-size: 100%;
243
+ font: inherit;
244
+ vertical-align: middle;
245
+ line-height: 1.2;
246
+ }
247
+ table {
248
+ table-layout: auto;
249
+ border-collapse: collapse;
250
+ border-spacing: 0;
251
+ }
components/assets-manager/assets/css/reset.less CHANGED
@@ -1,252 +1,252 @@
1
- /**
2
- * Reset styles
3
- * @author Webcraftic <wordpress.webraftic@gmail.com>
4
- * @copyright Webcraftic 15.10.2018
5
- */
6
-
7
- *, *:before, *:after {
8
- -webkit-box-sizing: border-box;
9
- -moz-box-sizing: border-box;
10
- box-sizing: border-box;
11
- }
12
-
13
- &,
14
- h2, h3, h4, h5, h6,
15
- p, strong, b, span,
16
- em, i, a, div, main,
17
- section, li, button,
18
- input[type="submit"], input[type="reset"],
19
- .wbcr-gnz-switch-premium {
20
- font-family: Arial, "Helvetica Neue", sans-serif;
21
- font-size: 14px;
22
- font-style: normal;
23
- font-weight: normal;
24
- text-transform: none;
25
- text-shadow: none;
26
- }
27
-
28
- h1 {
29
- font-size: 2em;
30
- margin: .67em 0
31
- }
32
-
33
- hr {
34
- box-sizing: content-box;
35
- height: 0;
36
- overflow: visible
37
- }
38
-
39
- pre {
40
- font-family: monospace, monospace;
41
- font-size: 1em
42
- }
43
-
44
- a {
45
- background-color: transparent;
46
- }
47
-
48
- abbr[title] {
49
- border-bottom: none;
50
- text-decoration: underline dotted;
51
- }
52
-
53
- b, strong {
54
- font-weight: bolder;
55
- }
56
-
57
- code, kbd, samp {
58
- font-family: monospace, monospace;
59
- font-size: 1em
60
- }
61
-
62
- small {
63
- font-size: 80%
64
- }
65
-
66
- sub, sup {
67
- font-size: 75%;
68
- line-height: 0;
69
- position: relative;
70
- vertical-align: baseline
71
- }
72
-
73
- sub {
74
- bottom: -.25em
75
- }
76
-
77
- sup {
78
- top: -.5em
79
- }
80
-
81
- img {
82
- border-style: none
83
- }
84
-
85
- button,
86
- input,
87
- optgroup,
88
- select,
89
- textarea {
90
- font-family: inherit;
91
- font-size: 100%;
92
- line-height: 1.15;
93
- margin: 0;
94
- height: auto;
95
- width: auto;
96
- &, &:hover, &:focus {
97
- -moz-box-shadow: none;
98
- -ms-box-shadow: none;
99
- -webkit-box-shadow: none;
100
- -o-box-shadow: none;
101
- }
102
- }
103
-
104
- button,
105
- input {
106
- overflow: visible;
107
- }
108
-
109
- button,
110
- select {
111
- text-transform: none;
112
- }
113
-
114
- button,
115
- [type="button"],
116
- [type="reset"],
117
- [type="submit"] {
118
- -webkit-appearance: button;
119
- }
120
-
121
- button::-moz-focus-inner,
122
- [type="button"]::-moz-focus-inner,
123
- [type="reset"]::-moz-focus-inner,
124
- [type="submit"]::-moz-focus-inner {
125
- border-style: none;
126
- padding: 0;
127
- }
128
-
129
- button:-moz-focusring,
130
- [type="button"]:-moz-focusring,
131
- [type="reset"]:-moz-focusring,
132
- [type="submit"]:-moz-focusring {
133
- outline: 1px dotted ButtonText;
134
- }
135
-
136
- fieldset {
137
- padding: 0.35em 0.75em 0.625em;
138
- }
139
-
140
- legend {
141
- box-sizing: border-box;
142
- color: inherit;
143
- display: table;
144
- max-width: 100%;
145
- padding: 0;
146
- white-space: normal;
147
- }
148
-
149
- textarea {
150
- overflow: auto;
151
- }
152
-
153
- [type="checkbox"],
154
- [type="radio"] {
155
- box-sizing: border-box;
156
- padding: 0;
157
- }
158
-
159
- [type="number"]::-webkit-inner-spin-button,
160
- [type="number"]::-webkit-outer-spin-button {
161
- height: auto;
162
- }
163
-
164
- [type="search"] {
165
- -webkit-appearance: textfield;
166
- outline-offset: -2px;
167
- }
168
-
169
- [type="search"]::-webkit-search-decoration {
170
- -webkit-appearance: none;
171
- }
172
-
173
- ::-webkit-file-upload-button {
174
- -webkit-appearance: button;
175
- font: inherit;
176
- }
177
-
178
- fieldset {
179
- padding: .35em .75em .625em
180
- }
181
-
182
- legend {
183
- box-sizing: border-box;
184
- color: inherit;
185
- display: table;
186
- max-width: 100%;
187
- padding: 0;
188
- white-space: normal
189
- }
190
-
191
- progress {
192
- vertical-align: baseline
193
- }
194
-
195
- textarea {
196
- overflow: auto
197
- }
198
-
199
- [type=checkbox], [type=radio] {
200
- box-sizing: border-box;
201
- padding: 0
202
- }
203
-
204
- [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
205
- height: auto
206
- }
207
-
208
- [type=search] {
209
- -webkit-appearance: textfield;
210
- outline-offset: -2px
211
- }
212
-
213
- [type=search]::-webkit-search-decoration {
214
- -webkit-appearance: none
215
- }
216
-
217
- ::-webkit-file-upload-button {
218
- -webkit-appearance: button;
219
- font: inherit
220
- }
221
-
222
- details {
223
- display: block
224
- }
225
-
226
- summary {
227
- display: list-item
228
- }
229
-
230
- template {
231
- display: none
232
- }
233
-
234
- [hidden] {
235
- display: none
236
- }
237
-
238
- table, caption, tbody, tfoot, thead, tr, th, td {
239
- margin: 0;
240
- padding: 0;
241
- border: 0;
242
- font-size: 100%;
243
- font: inherit;
244
- vertical-align: middle;
245
- line-height: 1.2;
246
- }
247
-
248
- table {
249
- table-layout: auto;
250
- border-collapse: collapse;
251
- border-spacing: 0;
252
- }
1
+ /**
2
+ * Reset styles
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright Webcraftic 15.10.2018
5
+ */
6
+
7
+ *, *:before, *:after {
8
+ -webkit-box-sizing: border-box;
9
+ -moz-box-sizing: border-box;
10
+ box-sizing: border-box;
11
+ }
12
+
13
+ &,
14
+ h2, h3, h4, h5, h6,
15
+ p, strong, b, span,
16
+ em, i, a, div, main,
17
+ section, li, button,
18
+ input[type="submit"], input[type="reset"],
19
+ .wbcr-gnz-switch-premium {
20
+ font-family: Arial, "Helvetica Neue", sans-serif;
21
+ font-size: 14px;
22
+ font-style: normal;
23
+ font-weight: normal;
24
+ text-transform: none;
25
+ text-shadow: none;
26
+ }
27
+
28
+ h1 {
29
+ font-size: 2em;
30
+ margin: .67em 0
31
+ }
32
+
33
+ hr {
34
+ box-sizing: content-box;
35
+ height: 0;
36
+ overflow: visible
37
+ }
38
+
39
+ pre {
40
+ font-family: monospace, monospace;
41
+ font-size: 1em
42
+ }
43
+
44
+ a {
45
+ background-color: transparent;
46
+ }
47
+
48
+ abbr[title] {
49
+ border-bottom: none;
50
+ text-decoration: underline dotted;
51
+ }
52
+
53
+ b, strong {
54
+ font-weight: bolder;
55
+ }
56
+
57
+ code, kbd, samp {
58
+ font-family: monospace, monospace;
59
+ font-size: 1em
60
+ }
61
+
62
+ small {
63
+ font-size: 80%
64
+ }
65
+
66
+ sub, sup {
67
+ font-size: 75%;
68
+ line-height: 0;
69
+ position: relative;
70
+ vertical-align: baseline
71
+ }
72
+
73
+ sub {
74
+ bottom: -.25em
75
+ }
76
+
77
+ sup {
78
+ top: -.5em
79
+ }
80
+
81
+ img {
82
+ border-style: none
83
+ }
84
+
85
+ button,
86
+ input,
87
+ optgroup,
88
+ select,
89
+ textarea {
90
+ font-family: inherit;
91
+ font-size: 100%;
92
+ line-height: 1.15;
93
+ margin: 0;
94
+ height: auto;
95
+ width: auto;
96
+ &, &:hover, &:focus {
97
+ -moz-box-shadow: none;
98
+ -ms-box-shadow: none;
99
+ -webkit-box-shadow: none;
100
+ -o-box-shadow: none;
101
+ }
102
+ }
103
+
104
+ button,
105
+ input {
106
+ overflow: visible;
107
+ }
108
+
109
+ button,
110
+ select {
111
+ text-transform: none;
112
+ }
113
+
114
+ button,
115
+ [type="button"],
116
+ [type="reset"],
117
+ [type="submit"] {
118
+ -webkit-appearance: button;
119
+ }
120
+
121
+ button::-moz-focus-inner,
122
+ [type="button"]::-moz-focus-inner,
123
+ [type="reset"]::-moz-focus-inner,
124
+ [type="submit"]::-moz-focus-inner {
125
+ border-style: none;
126
+ padding: 0;
127
+ }
128
+
129
+ button:-moz-focusring,
130
+ [type="button"]:-moz-focusring,
131
+ [type="reset"]:-moz-focusring,
132
+ [type="submit"]:-moz-focusring {
133
+ outline: 1px dotted ButtonText;
134
+ }
135
+
136
+ fieldset {
137
+ padding: 0.35em 0.75em 0.625em;
138
+ }
139
+
140
+ legend {
141
+ box-sizing: border-box;
142
+ color: inherit;
143
+ display: table;
144
+ max-width: 100%;
145
+ padding: 0;
146
+ white-space: normal;
147
+ }
148
+
149
+ textarea {
150
+ overflow: auto;
151
+ }
152
+
153
+ [type="checkbox"],
154
+ [type="radio"] {
155
+ box-sizing: border-box;
156
+ padding: 0;
157
+ }
158
+
159
+ [type="number"]::-webkit-inner-spin-button,
160
+ [type="number"]::-webkit-outer-spin-button {
161
+ height: auto;
162
+ }
163
+
164
+ [type="search"] {
165
+ -webkit-appearance: textfield;
166
+ outline-offset: -2px;
167
+ }
168
+
169
+ [type="search"]::-webkit-search-decoration {
170
+ -webkit-appearance: none;
171
+ }
172
+
173
+ ::-webkit-file-upload-button {
174
+ -webkit-appearance: button;
175
+ font: inherit;
176
+ }
177
+
178
+ fieldset {
179
+ padding: .35em .75em .625em
180
+ }
181
+
182
+ legend {
183
+ box-sizing: border-box;
184
+ color: inherit;
185
+ display: table;
186
+ max-width: 100%;
187
+ padding: 0;
188
+ white-space: normal
189
+ }
190
+
191
+ progress {
192
+ vertical-align: baseline
193
+ }
194
+
195
+ textarea {
196
+ overflow: auto
197
+ }
198
+
199
+ [type=checkbox], [type=radio] {
200
+ box-sizing: border-box;
201
+ padding: 0
202
+ }
203
+
204
+ [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
205
+ height: auto
206
+ }
207
+
208
+ [type=search] {
209
+ -webkit-appearance: textfield;
210
+ outline-offset: -2px
211
+ }
212
+
213
+ [type=search]::-webkit-search-decoration {
214
+ -webkit-appearance: none
215
+ }
216
+
217
+ ::-webkit-file-upload-button {
218
+ -webkit-appearance: button;
219
+ font: inherit
220
+ }
221
+
222
+ details {
223
+ display: block
224
+ }
225
+
226
+ summary {
227
+ display: list-item
228
+ }
229
+
230
+ template {
231
+ display: none
232
+ }
233
+
234
+ [hidden] {
235
+ display: none
236
+ }
237
+
238
+ table, caption, tbody, tfoot, thead, tr, th, td {
239
+ margin: 0;
240
+ padding: 0;
241
+ border: 0;
242
+ font-size: 100%;
243
+ font: inherit;
244
+ vertical-align: middle;
245
+ line-height: 1.2;
246
+ }
247
+
248
+ table {
249
+ table-layout: auto;
250
+ border-collapse: collapse;
251
+ border-spacing: 0;
252
+ }
components/assets-manager/assets/css/tables.css CHANGED
@@ -1,85 +1,85 @@
1
- /**
2
- * Tabless
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 26.08.2019
6
- */
7
- .wam-table {
8
- width: 100%;
9
- box-sizing: border-box;
10
- table-layout: fixed;
11
- border-collapse: collapse;
12
- }
13
- .wam-table__handle-deps {
14
- margin-top: 15px;
15
- }
16
- .wam-table__handle-deps span,
17
- .wam-table__handle-deps a {
18
- font-size: 11px !important;
19
- }
20
- .wam-table__handle-deps a {
21
- color: red;
22
- text-decoration: underline;
23
- }
24
- .wam-table tr:nth-child(2n) > td {
25
- background: #f9f9f9;
26
- }
27
- .wam-table th {
28
- padding: 12px 10px;
29
- text-align: left;
30
- color: #333;
31
- background: #ECEDED;
32
- box-shadow: none;
33
- }
34
- .wam-table th:not(:last-child) {
35
- border-right: 2px solid #FFF;
36
- }
37
- .wam-table__th-actions {
38
- width: 200px;
39
- }
40
- .wam-table__th-type {
41
- width: 100px;
42
- }
43
- .wam-table__th-version {
44
- width: 100px;
45
- }
46
- .wam-table__th-size {
47
- width: 100px;
48
- }
49
- .wam-table__th-plugins-list,
50
- .wam-table__td-plugins-list {
51
- width: 350px;
52
- }
53
- .wam-table td {
54
- padding: 17px 10px;
55
- vertical-align: top;
56
- text-align: left;
57
- box-shadow: none;
58
- }
59
- .wam-table__td-handle {
60
- word-break: break-word;
61
- }
62
- .wam-table__td-plugins-list {
63
- padding: 0 !important;
64
- }
65
- .wam-table__th-plugins-settings,
66
- .wam-table__td-plugins-settings {
67
- width: 80%;
68
- padding: 15px;
69
- text-align: left;
70
- }
71
- .wam-table .js-wam-table__tr--disabled-section {
72
- background: #fbf5f4;
73
- opacity: 0.7;
74
- }
75
- .wam-table__asset-settings-conditions {
76
- display: none;
77
- background: #f3f3f3;
78
- color: #7b7b7b;
79
- font-size: 13px;
80
- box-shadow: 0 2px 0 #d4d4d4;
81
- }
82
- .wam-table__asset-settings-conditions > td {
83
- padding: 0 25px 15px 25px;
84
- }
85
  /*# sourceMappingURL=tables.css.map */
1
+ /**
2
+ * Tabless
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 26.08.2019
6
+ */
7
+ .wam-table {
8
+ width: 100%;
9
+ box-sizing: border-box;
10
+ table-layout: fixed;
11
+ border-collapse: collapse;
12
+ }
13
+ .wam-table__handle-deps {
14
+ margin-top: 15px;
15
+ }
16
+ .wam-table__handle-deps span,
17
+ .wam-table__handle-deps a {
18
+ font-size: 11px !important;
19
+ }
20
+ .wam-table__handle-deps a {
21
+ color: red;
22
+ text-decoration: underline;
23
+ }
24
+ .wam-table tr:nth-child(2n) > td {
25
+ background: #f9f9f9;
26
+ }
27
+ .wam-table th {
28
+ padding: 12px 10px;
29
+ text-align: left;
30
+ color: #333;
31
+ background: #ECEDED;
32
+ box-shadow: none;
33
+ }
34
+ .wam-table th:not(:last-child) {
35
+ border-right: 2px solid #FFF;
36
+ }
37
+ .wam-table__th-actions {
38
+ width: 200px;
39
+ }
40
+ .wam-table__th-type {
41
+ width: 100px;
42
+ }
43
+ .wam-table__th-version {
44
+ width: 100px;
45
+ }
46
+ .wam-table__th-size {
47
+ width: 100px;
48
+ }
49
+ .wam-table__th-plugins-list,
50
+ .wam-table__td-plugins-list {
51
+ width: 350px;
52
+ }
53
+ .wam-table td {
54
+ padding: 17px 10px;
55
+ vertical-align: top;
56
+ text-align: left;
57
+ box-shadow: none;
58
+ }
59
+ .wam-table__td-handle {
60
+ word-break: break-word;
61
+ }
62
+ .wam-table__td-plugins-list {
63
+ padding: 0 !important;
64
+ }
65
+ .wam-table__th-plugins-settings,
66
+ .wam-table__td-plugins-settings {
67
+ width: 80%;
68
+ padding: 15px;
69
+ text-align: left;
70
+ }
71
+ .wam-table .js-wam-table__tr--disabled-section {
72
+ background: #fbf5f4;
73
+ opacity: 0.7;
74
+ }
75
+ .wam-table__asset-settings-conditions {
76
+ display: none;
77
+ background: #f3f3f3;
78
+ color: #7b7b7b;
79
+ font-size: 13px;
80
+ box-shadow: 0 2px 0 #d4d4d4;
81
+ }
82
+ .wam-table__asset-settings-conditions > td {
83
+ padding: 0 25px 15px 25px;
84
+ }
85
  /*# sourceMappingURL=tables.css.map */
components/assets-manager/assets/css/tables.less CHANGED
@@ -1,108 +1,108 @@
1
- /**
2
- * Tabless
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 26.08.2019
6
- */
7
-
8
- .wam-table {
9
- @assetsTableClass: ~"wam-table";
10
- width: 100%;
11
- box-sizing: border-box;
12
- table-layout: fixed;
13
- border-collapse: collapse;
14
-
15
- &__handle-deps {
16
- margin-top: 15px;
17
-
18
- span, a {
19
- font-size: 11px !important;
20
- }
21
-
22
- a {
23
- color: red;
24
- text-decoration: underline;
25
- }
26
- }
27
-
28
- tr:nth-child(2n) > td {
29
- background: #f9f9f9;
30
- //border-bottom: 15px solid white;
31
- }
32
-
33
- th {
34
- padding: 12px 10px;
35
- text-align: left;
36
- color: #333;
37
- background: #ECEDED;
38
- box-shadow: none;
39
- }
40
-
41
- th:not(:last-child) {
42
- border-right: 2px solid #FFF;
43
- }
44
-
45
-
46
- &__th-actions {
47
- width: 200px;
48
- }
49
-
50
- &__th-type {
51
- width: 100px;
52
- }
53
-
54
- &__th-version {
55
- width: 100px
56
- }
57
-
58
- &__th-size {
59
- width: 100px;
60
- }
61
-
62
- &__th-plugins-list, &__td-plugins-list {
63
- width: 350px;
64
- }
65
-
66
- td {
67
- padding: 17px 10px;
68
- vertical-align: top;
69
- //background: #f9f9f9;
70
- //border-bottom: 1px solid #ECEDED;
71
- text-align: left;
72
- box-shadow: none;
73
- }
74
-
75
- &__td-handle {
76
- word-break: break-word;
77
- }
78
-
79
- &__td-plugins-list {
80
- padding: 0 !important;
81
- }
82
-
83
- &__th-plugins-settings, &__td-plugins-settings {
84
- width: 80%;
85
- padding: 15px;
86
- text-align: left;
87
- }
88
-
89
- .js-wam-table__tr--disabled-section {
90
- background: #fbf5f4;
91
- opacity: 0.7;
92
- }
93
-
94
- &__asset-settings-conditions {
95
- display: none;
96
- background: #f3f3f3;
97
- color: #7b7b7b;
98
- font-size: 13px;
99
- box-shadow: 0 2px 0 #d4d4d4;
100
-
101
- & > td {
102
- padding: 0 25px 15px 25px;
103
- }
104
- }
105
-
106
- &.wam-plugin-assets__table {
107
- }
108
  }
1
+ /**
2
+ * Tabless
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 26.08.2019
6
+ */
7
+
8
+ .wam-table {
9
+ @assetsTableClass: ~"wam-table";
10
+ width: 100%;
11
+ box-sizing: border-box;
12
+ table-layout: fixed;
13
+ border-collapse: collapse;
14
+
15
+ &__handle-deps {
16
+ margin-top: 15px;
17
+
18
+ span, a {
19
+ font-size: 11px !important;
20
+ }
21
+
22
+ a {
23
+ color: red;
24
+ text-decoration: underline;
25
+ }
26
+ }
27
+
28
+ tr:nth-child(2n) > td {
29
+ background: #f9f9f9;
30
+ //border-bottom: 15px solid white;
31
+ }
32
+
33
+ th {
34
+ padding: 12px 10px;
35
+ text-align: left;
36
+ color: #333;
37
+ background: #ECEDED;
38
+ box-shadow: none;
39
+ }
40
+
41
+ th:not(:last-child) {
42
+ border-right: 2px solid #FFF;
43
+ }
44
+
45
+
46
+ &__th-actions {
47
+ width: 200px;
48
+ }
49
+
50
+ &__th-type {
51
+ width: 100px;
52
+ }
53
+
54
+ &__th-version {
55
+ width: 100px
56
+ }
57
+
58
+ &__th-size {
59
+ width: 100px;
60
+ }
61
+
62
+ &__th-plugins-list, &__td-plugins-list {
63
+ width: 350px;
64
+ }
65
+
66
+ td {
67
+ padding: 17px 10px;
68
+ vertical-align: top;
69
+ //background: #f9f9f9;
70
+ //border-bottom: 1px solid #ECEDED;
71
+ text-align: left;
72
+ box-shadow: none;
73
+ }
74
+
75
+ &__td-handle {
76
+ word-break: break-word;
77
+ }
78
+
79
+ &__td-plugins-list {
80
+ padding: 0 !important;
81
+ }
82
+
83
+ &__th-plugins-settings, &__td-plugins-settings {
84
+ width: 80%;
85
+ padding: 15px;
86
+ text-align: left;
87
+ }
88
+
89
+ .js-wam-table__tr--disabled-section {
90
+ background: #fbf5f4;
91
+ opacity: 0.7;
92
+ }
93
+
94
+ &__asset-settings-conditions {
95
+ display: none;
96
+ background: #f3f3f3;
97
+ color: #7b7b7b;
98
+ font-size: 13px;
99
+ box-shadow: 0 2px 0 #d4d4d4;
100
+
101
+ & > td {
102
+ padding: 0 25px 15px 25px;
103
+ }
104
+ }
105
+
106
+ &.wam-plugin-assets__table {
107
+ }
108
  }
components/assets-manager/assets/css/tabs.less CHANGED
@@ -1,178 +1,178 @@
1
- /**
2
- * Tabs
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 26.08.2019
6
- */
7
-
8
- .wam-assets-type-tabs {
9
- position: fixed;
10
- top: 62px;
11
- bottom: 0;
12
- left: 0;
13
- width: 75px;
14
- margin: 0;
15
- padding: 0;
16
- list-style: none;
17
- background: #F4F4F4;
18
- box-shadow: 2px 0 5px rgba(0, 0, 0, .2);
19
-
20
- li {
21
- margin: 0;
22
- padding: 0;
23
- }
24
- }
25
-
26
- .wam-assets-type-tabs__button {
27
- position: relative;
28
- display: block;
29
- width: 100%;
30
- height: 130px;
31
- cursor: pointer;
32
- border: none;
33
- background: #ECEDED;
34
- border-radius: 0;
35
- box-shadow: none;
36
- -moz-box-shadow: none;
37
- -ms-box-shadow: none;
38
- -webkit-box-shadow: none;
39
- -o-box-shadow: none;
40
-
41
- &:hover, &:focus, &:after, &:before, &:after:hover, &:before:hover {
42
- -moz-box-shadow: none;
43
- -ms-box-shadow: none;
44
- -webkit-box-shadow: none;
45
- -o-box-shadow: none;
46
- }
47
- }
48
-
49
- .wam-assets-type-tabs__button::after {
50
- content: "";
51
- position: absolute;
52
- top: 0;
53
- right: 0;
54
- bottom: 0;
55
- left: 0;
56
- opacity: .55;
57
- }
58
-
59
- .wam-assets-type-tabs__button--misc::after {
60
- background: url("data:image/png;base64,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") no-repeat 50%;
61
- }
62
-
63
- .wam-assets-type-tabs__button--theme::after {
64
- background: url("data:image/png;base64,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") no-repeat 50%;
65
- }
66
-
67
- .wam-assets-type-tabs__button--plugins::after {
68
- background: url("data:image/png;base64,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") no-repeat 50%;
69
- }
70
-
71
- .wam-assets-type-tabs__button:hover,
72
- .wam-assets-type-tabs__button:focus {
73
- outline: none;
74
- background: #E6E7E7;
75
- }
76
-
77
- .wam-assets-type-tabs__button:hover::after,
78
- .wam-assets-type-tabs__button:focus::after {
79
- opacity: 1;
80
- }
81
-
82
- .wam-assets-type-tabs__button {
83
- &.wam-assets-type-tab__active {
84
- background: #CACDCF;
85
-
86
- &::after {
87
- opacity: 1;
88
- }
89
- }
90
- }
91
-
92
- .wam-assets-type-tab-content {
93
- display: none;
94
- padding: 20px 30px;
95
- }
96
-
97
- .wam-assets-type-tab-content {
98
- &.wam-assets-type-tab-content__active {
99
- display: block !important;
100
- }
101
- }
102
-
103
-
104
- /** ---------------- PLUGINS TABS------------------------- */
105
- .wam-nav-plugins {
106
-
107
- padding: 0;
108
- margin: 0;
109
- list-style: none;
110
-
111
- .wam-nav-plugins__tab {
112
- position: relative;
113
- text-align: left;
114
- margin-bottom: 3px;
115
-
116
- a {
117
- display: block;
118
- padding: 10px 20px;
119
- background: #f5f5f5;
120
- color: #222;
121
-
122
- strong, span {
123
- display: block;
124
- }
125
-
126
- span {
127
- font-size: 12px;
128
- color: #2f2f2f;
129
- }
130
- }
131
-
132
- &:hover {
133
- a {
134
- background: #efefef;
135
- text-decoration: none;
136
- }
137
- }
138
-
139
- &.wam-nav-plugins__tab--active {
140
- a {
141
- background: #e8e8e8;
142
- }
143
- }
144
-
145
- &-load-mode--enable::after,
146
- &-load-mode--disable-plugin::after,
147
- &-load-mode--disable-assets::after {
148
- display: block;
149
- content: '';
150
- position: absolute;
151
- bottom: 10px;
152
- right: 10px;
153
- width: 10px;
154
- height: 10px;
155
- background: #8bc34a;
156
- text-align: center;
157
- font-size: 11px;
158
- font-weight: 600;
159
- border-radius: 4px;
160
- }
161
-
162
- &-load-mode--disable-assets::after,
163
- &-load-mode--disable-plugin::after {
164
- background: #d47b7b;
165
- }
166
- }
167
- }
168
-
169
- .wam-nav-plugins__tab-content {
170
- @tabContentClass: ~"wam-nav-plugins__tab-content";
171
- display: none;
172
-
173
- &.js-@{tabContentClass}--active {
174
- display: block !important;
175
- }
176
- }
177
-
178
  /** ---------------- /PLUGINS TABS------------------------ */
1
+ /**
2
+ * Tabs
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 26.08.2019
6
+ */
7
+
8
+ .wam-assets-type-tabs {
9
+ position: fixed;
10
+ top: 62px;
11
+ bottom: 0;
12
+ left: 0;
13
+ width: 75px;
14
+ margin: 0;
15
+ padding: 0;
16
+ list-style: none;
17
+ background: #F4F4F4;
18
+ box-shadow: 2px 0 5px rgba(0, 0, 0, .2);
19
+
20
+ li {
21
+ margin: 0;
22
+ padding: 0;
23
+ }
24
+ }
25
+
26
+ .wam-assets-type-tabs__button {
27
+ position: relative;
28
+ display: block;
29
+ width: 100%;
30
+ height: 130px;
31
+ cursor: pointer;
32
+ border: none;
33
+ background: #ECEDED;
34
+ border-radius: 0;
35
+ box-shadow: none;
36
+ -moz-box-shadow: none;
37
+ -ms-box-shadow: none;
38
+ -webkit-box-shadow: none;
39
+ -o-box-shadow: none;
40
+
41
+ &:hover, &:focus, &:after, &:before, &:after:hover, &:before:hover {
42
+ -moz-box-shadow: none;
43
+ -ms-box-shadow: none;
44
+ -webkit-box-shadow: none;
45
+ -o-box-shadow: none;
46
+ }
47
+ }
48
+
49
+ .wam-assets-type-tabs__button::after {
50
+ content: "";
51
+ position: absolute;
52
+ top: 0;
53
+ right: 0;
54
+ bottom: 0;
55
+ left: 0;
56
+ opacity: .55;
57
+ }
58
+
59
+ .wam-assets-type-tabs__button--misc::after {
60
+ background: url("data:image/png;base64,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") no-repeat 50%;
61
+ }
62
+
63
+ .wam-assets-type-tabs__button--theme::after {
64
+ background: url("data:image/png;base64,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") no-repeat 50%;
65
+ }
66
+
67
+ .wam-assets-type-tabs__button--plugins::after {
68
+ background: url("data:image/png;base64,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") no-repeat 50%;
69
+ }
70
+
71
+ .wam-assets-type-tabs__button:hover,
72
+ .wam-assets-type-tabs__button:focus {
73
+ outline: none;
74
+ background: #E6E7E7;
75
+ }
76
+
77
+ .wam-assets-type-tabs__button:hover::after,
78
+ .wam-assets-type-tabs__button:focus::after {
79
+ opacity: 1;
80
+ }
81
+
82
+ .wam-assets-type-tabs__button {
83
+ &.wam-assets-type-tab__active {
84
+ background: #CACDCF;
85
+
86
+ &::after {
87
+ opacity: 1;
88
+ }
89
+ }
90
+ }
91
+
92
+ .wam-assets-type-tab-content {
93
+ display: none;
94
+ padding: 20px 30px;
95
+ }
96
+
97
+ .wam-assets-type-tab-content {
98
+ &.wam-assets-type-tab-content__active {
99
+ display: block !important;
100
+ }
101
+ }
102
+
103
+
104
+ /** ---------------- PLUGINS TABS------------------------- */
105
+ .wam-nav-plugins {
106
+
107
+ padding: 0;
108
+ margin: 0;
109
+ list-style: none;
110
+
111
+ .wam-nav-plugins__tab {
112
+ position: relative;
113
+ text-align: left;
114
+ margin-bottom: 3px;
115
+
116
+ a {
117
+ display: block;
118
+ padding: 10px 20px;
119
+ background: #f5f5f5;
120
+ color: #222;
121
+
122
+ strong, span {
123
+ display: block;
124
+ }
125
+
126
+ span {
127
+ font-size: 12px;
128
+ color: #2f2f2f;
129
+ }
130
+ }
131
+
132
+ &:hover {
133
+ a {
134
+ background: #efefef;
135
+ text-decoration: none;
136
+ }
137
+ }
138
+
139
+ &.wam-nav-plugins__tab--active {
140
+ a {
141
+ background: #e8e8e8;
142
+ }
143
+ }
144
+
145
+ &-load-mode--enable::after,
146
+ &-load-mode--disable-plugin::after,
147
+ &-load-mode--disable-assets::after {
148
+ display: block;
149
+ content: '';
150
+ position: absolute;
151
+ bottom: 10px;
152
+ right: 10px;
153
+ width: 10px;
154
+ height: 10px;
155
+ background: #8bc34a;
156
+ text-align: center;
157
+ font-size: 11px;
158
+ font-weight: 600;
159
+ border-radius: 4px;
160
+ }
161
+
162
+ &-load-mode--disable-assets::after,
163
+ &-load-mode--disable-plugin::after {
164
+ background: #d47b7b;
165
+ }
166
+ }
167
+ }
168
+
169
+ .wam-nav-plugins__tab-content {
170
+ @tabContentClass: ~"wam-nav-plugins__tab-content";
171
+ display: none;
172
+
173
+ &.js-@{tabContentClass}--active {
174
+ display: block !important;
175
+ }
176
+ }
177
+
178
  /** ---------------- /PLUGINS TABS------------------------ */
components/assets-manager/assets/css/tooltip.css CHANGED
@@ -1,55 +1,55 @@
1
- /**
2
- * Tooltip
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 26.08.2019
6
- */
7
- .wam-tooltip {
8
- position: relative;
9
- }
10
- .wam-tooltip::before {
11
- content: "";
12
- position: absolute;
13
- z-index: 60;
14
- left: 5px;
15
- display: none;
16
- width: 20px;
17
- height: 20px;
18
- }
19
- .wam-tooltip::after {
20
- content: attr(data-tooltip);
21
- position: absolute;
22
- z-index: 60;
23
- left: 5px;
24
- display: none;
25
- min-width: 200px;
26
- padding: 8px 15px;
27
- color: #6d5506;
28
- background: #FFCB1E;
29
- font-size: 13px;
30
- font-weight: normal;
31
- line-height: 1.2;
32
- }
33
- .wam-tooltip-top::before {
34
- bottom: 100%;
35
- background: linear-gradient(135deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
36
- }
37
- .wam-tooltip-top::after {
38
- bottom: 100%;
39
- margin: 0 0 10px;
40
- border-radius: 6px 6px 6px 0;
41
- }
42
- .wam-tooltip--bottom::before {
43
- top: 100%;
44
- background: linear-gradient(45deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
45
- }
46
- .wam-tooltip--bottom::after {
47
- top: 100%;
48
- margin: 15px 0 0;
49
- border-radius: 0 6px 6px 6px;
50
- }
51
- .wam-tooltip:hover::before,
52
- .wam-tooltip:hover::after {
53
- display: block;
54
- }
55
  /*# sourceMappingURL=tooltip.css.map */
1
+ /**
2
+ * Tooltip
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 26.08.2019
6
+ */
7
+ .wam-tooltip {
8
+ position: relative;
9
+ }
10
+ .wam-tooltip::before {
11
+ content: "";
12
+ position: absolute;
13
+ z-index: 60;
14
+ left: 5px;
15
+ display: none;
16
+ width: 20px;
17
+ height: 20px;
18
+ }
19
+ .wam-tooltip::after {
20
+ content: attr(data-tooltip);
21
+ position: absolute;
22
+ z-index: 60;
23
+ left: 5px;
24
+ display: none;
25
+ min-width: 200px;
26
+ padding: 8px 15px;
27
+ color: #6d5506;
28
+ background: #FFCB1E;
29
+ font-size: 13px;
30
+ font-weight: normal;
31
+ line-height: 1.2;
32
+ }
33
+ .wam-tooltip-top::before {
34
+ bottom: 100%;
35
+ background: linear-gradient(135deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
36
+ }
37
+ .wam-tooltip-top::after {
38
+ bottom: 100%;
39
+ margin: 0 0 10px;
40
+ border-radius: 6px 6px 6px 0;
41
+ }
42
+ .wam-tooltip--bottom::before {
43
+ top: 100%;
44
+ background: linear-gradient(45deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
45
+ }
46
+ .wam-tooltip--bottom::after {
47
+ top: 100%;
48
+ margin: 15px 0 0;
49
+ border-radius: 0 6px 6px 6px;
50
+ }
51
+ .wam-tooltip:hover::before,
52
+ .wam-tooltip:hover::after {
53
+ display: block;
54
+ }
55
  /*# sourceMappingURL=tooltip.css.map */
components/assets-manager/assets/css/tooltip.less CHANGED
@@ -1,62 +1,62 @@
1
- /**
2
- * Tooltips
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 26.08.2019
6
- */
7
-
8
- .wam-tooltip {
9
- position: relative;
10
- }
11
-
12
- .wam-tooltip::before {
13
- content: "";
14
- position: absolute;
15
- z-index: 60;
16
- left: 5px;
17
- display: none;
18
- width: 20px;
19
- height: 20px;
20
- }
21
-
22
- .wam-tooltip::after {
23
- content: attr(data-tooltip);
24
- position: absolute;
25
- z-index: 60;
26
- left: 5px;
27
- display: none;
28
- min-width: 200px;
29
- padding: 8px 15px;
30
- color: #6d5506;
31
- background: #FFCB1E;
32
- font-size: 13px;
33
- font-weight: normal;
34
- line-height: 1.2;
35
- }
36
-
37
- .wam-tooltip-top::before {
38
- bottom: 100%;
39
- background: linear-gradient(135deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
40
- }
41
-
42
- .wam-tooltip-top::after {
43
- bottom: 100%;
44
- margin: 0 0 10px;
45
- border-radius: 6px 6px 6px 0;
46
- }
47
-
48
- .wam-tooltip--bottom::before {
49
- top: 100%;
50
- background: linear-gradient(45deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
51
- }
52
-
53
- .wam-tooltip--bottom::after {
54
- top: 100%;
55
- margin: 15px 0 0;
56
- border-radius: 0 6px 6px 6px;
57
- }
58
-
59
- .wam-tooltip:hover::before,
60
- .wam-tooltip:hover::after {
61
- display: block;
62
  }
1
+ /**
2
+ * Tooltips
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 26.08.2019
6
+ */
7
+
8
+ .wam-tooltip {
9
+ position: relative;
10
+ }
11
+
12
+ .wam-tooltip::before {
13
+ content: "";
14
+ position: absolute;
15
+ z-index: 60;
16
+ left: 5px;
17
+ display: none;
18
+ width: 20px;
19
+ height: 20px;
20
+ }
21
+
22
+ .wam-tooltip::after {
23
+ content: attr(data-tooltip);
24
+ position: absolute;
25
+ z-index: 60;
26
+ left: 5px;
27
+ display: none;
28
+ min-width: 200px;
29
+ padding: 8px 15px;
30
+ color: #6d5506;
31
+ background: #FFCB1E;
32
+ font-size: 13px;
33
+ font-weight: normal;
34
+ line-height: 1.2;
35
+ }
36
+
37
+ .wam-tooltip-top::before {
38
+ bottom: 100%;
39
+ background: linear-gradient(135deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
40
+ }
41
+
42
+ .wam-tooltip-top::after {
43
+ bottom: 100%;
44
+ margin: 0 0 10px;
45
+ border-radius: 6px 6px 6px 0;
46
+ }
47
+
48
+ .wam-tooltip--bottom::before {
49
+ top: 100%;
50
+ background: linear-gradient(45deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
51
+ }
52
+
53
+ .wam-tooltip--bottom::after {
54
+ top: 100%;
55
+ margin: 15px 0 0;
56
+ border-radius: 0 6px 6px 6px;
57
+ }
58
+
59
+ .wam-tooltip:hover::before,
60
+ .wam-tooltip:hover::after {
61
+ display: block;
62
  }
components/assets-manager/assets/js/libs/wam-jquery-migrate.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! jQuery Migrate v1.4.1 | (c) jQuery Foundation and other contributors | jquery.org/license */
2
  "undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b,c){function d(c){var d=b.console;f[c]||(f[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function e(b,c,e,f){if(Object.defineProperty)try{return void Object.defineProperty(b,c,{configurable:!0,enumerable:!0,get:function(){return d(f),e},set:function(a){d(f),e=a}})}catch(g){}a._definePropertyBroken=!0,b[c]=e}a.migrateVersion="1.4.1";var f={};a.migrateWarnings=[],b.console&&b.console.log&&b.console.log("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion),a.migrateTrace===c&&(a.migrateTrace=!0),a.migrateReset=function(){f={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&d("jQuery is not compatible with Quirks Mode");var g=a("<input/>",{size:1}).attr("size")&&a.attrFn,h=a.attr,i=a.attrHooks.value&&a.attrHooks.value.get||function(){return null},j=a.attrHooks.value&&a.attrHooks.value.set||function(){return c},k=/^(?:input|button)$/i,l=/^[238]$/,m=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,n=/^(?:checked|selected)$/i;e(a,"attrFn",g||{},"jQuery.attrFn is deprecated"),a.attr=function(b,e,f,i){var j=e.toLowerCase(),o=b&&b.nodeType;return i&&(h.length<4&&d("jQuery.fn.attr( props, pass ) is deprecated"),b&&!l.test(o)&&(g?e in g:a.isFunction(a.fn[e])))?a(b)[e](f):("type"===e&&f!==c&&k.test(b.nodeName)&&b.parentNode&&d("Can't change the 'type' of an input or button in IE 6/7/8"),!a.attrHooks[j]&&m.test(j)&&(a.attrHooks[j]={get:function(b,d){var e,f=a.prop(b,d);return f===!0||"boolean"!=typeof f&&(e=b.getAttributeNode(d))&&e.nodeValue!==!1?d.toLowerCase():c},set:function(b,c,d){var e;return c===!1?a.removeAttr(b,d):(e=a.propFix[d]||d,e in b&&(b[e]=!0),b.setAttribute(d,d.toLowerCase())),d}},n.test(j)&&d("jQuery.fn.attr('"+j+"') might use property instead of attribute")),h.call(a,b,e,f))},a.attrHooks.value={get:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?i.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value') no longer gets properties"),b in a?a.value:null)},set:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?j.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value', val) no longer sets properties"),void(a.value=b))}};var o,p,q=a.fn.init,r=a.find,s=a.parseJSON,t=/^\s*</,u=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,v=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,w=/^([^<]*)(<[\w\W]+>)([^>]*)$/;a.fn.init=function(b,e,f){var g,h;return b&&"string"==typeof b&&!a.isPlainObject(e)&&(g=w.exec(a.trim(b)))&&g[0]&&(t.test(b)||d("$(html) HTML strings must start with '<' character"),g[3]&&d("$(html) HTML text after last tag is ignored"),"#"===g[0].charAt(0)&&(d("HTML string cannot start with a '#' character"),a.error("JQMIGRATE: Invalid selector string (XSS)")),e&&e.context&&e.context.nodeType&&(e=e.context),a.parseHTML)?q.call(this,a.parseHTML(g[2],e&&e.ownerDocument||e||document,!0),e,f):(h=q.apply(this,arguments),b&&b.selector!==c?(h.selector=b.selector,h.context=b.context):(h.selector="string"==typeof b?b:"",b&&(h.context=b.nodeType?b:e||document)),h)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&u.test(a))try{document.querySelector(a)}catch(c){a=a.replace(v,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),d("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){d("Attribute selector with '#' was not fixed: "+b[0])}}return r.apply(this,b)};var x;for(x in r)Object.prototype.hasOwnProperty.call(r,x)&&(a.find[x]=r[x]);a.parseJSON=function(a){return a?s.apply(this,arguments):(d("jQuery.parseJSON requires a valid JSON string"),null)},a.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a.browser||(o=a.uaMatch(navigator.userAgent),p={},o.browser&&(p[o.browser]=!0,p.version=o.version),p.chrome?p.webkit=!0:p.webkit&&(p.safari=!0),a.browser=p),e(a,"browser",a.browser,"jQuery.browser is deprecated"),a.boxModel=a.support.boxModel="CSS1Compat"===document.compatMode,e(a,"boxModel",a.boxModel,"jQuery.boxModel is deprecated"),e(a.support,"boxModel",a.support.boxModel,"jQuery.support.boxModel is deprecated"),a.sub=function(){function b(a,c){return new b.fn.init(a,c)}a.extend(!0,b,this),b.superclass=this,b.fn=b.prototype=this(),b.fn.constructor=b,b.sub=this.sub,b.fn.init=function(d,e){var f=a.fn.init.call(this,d,e,c);return f instanceof b?f:b(f)},b.fn.init.prototype=b.fn;var c=b(document);return d("jQuery.sub() is deprecated"),b},a.fn.size=function(){return d("jQuery.fn.size() is deprecated; use the .length property"),this.length};var y=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return y=!0,a=d.apply(this,arguments),y=!1,a})}),a.swap=function(a,b,c,e){var f,g,h={};y||d("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=c.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f},a.ajaxSetup({converters:{"text json":a.parseJSON}});var z=a.fn.data;a.fn.data=function(b){var e,f,g=this[0];return!g||"events"!==b||1!==arguments.length||(e=a.data(g,b),f=a._data(g,b),e!==c&&e!==f||f===c)?z.apply(this,arguments):(d("Use of jQuery.fn.data('events') is deprecated"),f)};var A=/\/(java|ecma)script/i;a.clean||(a.clean=function(b,c,e,f){c=c||document,c=!c.nodeType&&c[0]||c,c=c.ownerDocument||c,d("jQuery.clean() is deprecated");var g,h,i,j,k=[];if(a.merge(k,a.buildFragment(b,c).childNodes),e)for(i=function(a){return!a.type||A.test(a.type)?f?f.push(a.parentNode?a.parentNode.removeChild(a):a):e.appendChild(a):void 0},g=0;null!=(h=k[g]);g++)a.nodeName(h,"script")&&i(h)||(e.appendChild(h),"undefined"!=typeof h.getElementsByTagName&&(j=a.grep(a.merge([],h.getElementsByTagName("script")),i),k.splice.apply(k,[g+1,0].concat(j)),g+=j.length));return k});var B=a.event.add,C=a.event.remove,D=a.event.trigger,E=a.fn.toggle,F=a.fn.live,G=a.fn.die,H=a.fn.load,I="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",J=new RegExp("\\b(?:"+I+")\\b"),K=/(?:^|\s)hover(\.\S+|)\b/,L=function(b){return"string"!=typeof b||a.event.special.hover?b:(K.test(b)&&d("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),b&&b.replace(K,"mouseenter$1 mouseleave$1"))};a.event.props&&"attrChange"!==a.event.props[0]&&a.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),a.event.dispatch&&e(a.event,"handle",a.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),a.event.add=function(a,b,c,e,f){a!==document&&J.test(b)&&d("AJAX events should be attached to document: "+b),B.call(this,a,L(b||""),c,e,f)},a.event.remove=function(a,b,c,d,e){C.call(this,a,L(b)||"",c,d,e)},a.each(["load","unload","error"],function(b,c){a.fn[c]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===c&&"string"==typeof a[0]?H.apply(this,a):(d("jQuery.fn."+c+"() is deprecated"),a.splice(0,0,c),arguments.length?this.bind.apply(this,a):(this.triggerHandler.apply(this,a),this))}}),a.fn.toggle=function(b,c){if(!a.isFunction(b)||!a.isFunction(c))return E.apply(this,arguments);d("jQuery.fn.toggle(handler, handler...) is deprecated");var e=arguments,f=b.guid||a.guid++,g=0,h=function(c){var d=(a._data(this,"lastToggle"+b.guid)||0)%g;return a._data(this,"lastToggle"+b.guid,d+1),c.preventDefault(),e[d].apply(this,arguments)||!1};for(h.guid=f;g<e.length;)e[g++].guid=f;return this.click(h)},a.fn.live=function(b,c,e){return d("jQuery.fn.live() is deprecated"),F?F.apply(this,arguments):(a(this.context).on(b,this.selector,c,e),this)},a.fn.die=function(b,c){return d("jQuery.fn.die() is deprecated"),G?G.apply(this,arguments):(a(this.context).off(b,this.selector||"**",c),this)},a.event.trigger=function(a,b,c,e){return c||J.test(a)||d("Global events are undocumented and deprecated"),D.call(this,a,b,c||document,e)},a.each(I.split("|"),function(b,c){a.event.special[c]={setup:function(){var b=this;return b!==document&&(a.event.add(document,c+"."+a.guid,function(){a.event.trigger(c,Array.prototype.slice.call(arguments,1),b,!0)}),a._data(this,c,a.guid++)),!1},teardown:function(){return this!==document&&a.event.remove(document,c+"."+a._data(this,c)),!1}}}),a.event.special.ready={setup:function(){this===document&&d("'ready' event is deprecated")}};var M=a.fn.andSelf||a.fn.addBack,N=a.fn.find;if(a.fn.andSelf=function(){return d("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),M.apply(this,arguments)},a.fn.find=function(a){var b=N.apply(this,arguments);return b.context=this.context,b.selector=this.selector?this.selector+" "+a:a,b},a.Callbacks){var O=a.Deferred,P=[["resolve","done",a.Callbacks("once memory"),a.Callbacks("once memory"),"resolved"],["reject","fail",a.Callbacks("once memory"),a.Callbacks("once memory"),"rejected"],["notify","progress",a.Callbacks("memory"),a.Callbacks("memory")]];a.Deferred=function(b){var c=O(),e=c.promise();return c.pipe=e.pipe=function(){var b=arguments;return d("deferred.pipe() is deprecated"),a.Deferred(function(d){a.each(P,function(f,g){var h=a.isFunction(b[f])&&b[f];c[g[1]](function(){var b=h&&h.apply(this,arguments);b&&a.isFunction(b.promise)?b.promise().done(d.resolve).fail(d.reject).progress(d.notify):d[g[0]+"With"](this===e?d.promise():this,h?[b]:arguments)})}),b=null}).promise()},c.isResolved=function(){return d("deferred.isResolved is deprecated"),"resolved"===c.state()},c.isRejected=function(){return d("deferred.isRejected is deprecated"),"rejected"===c.state()},b&&b.call(c,c),c}}}(jQuery,window);
1
+ /*! jQuery Migrate v1.4.1 | (c) jQuery Foundation and other contributors | jquery.org/license */
2
  "undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b,c){function d(c){var d=b.console;f[c]||(f[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function e(b,c,e,f){if(Object.defineProperty)try{return void Object.defineProperty(b,c,{configurable:!0,enumerable:!0,get:function(){return d(f),e},set:function(a){d(f),e=a}})}catch(g){}a._definePropertyBroken=!0,b[c]=e}a.migrateVersion="1.4.1";var f={};a.migrateWarnings=[],b.console&&b.console.log&&b.console.log("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion),a.migrateTrace===c&&(a.migrateTrace=!0),a.migrateReset=function(){f={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&d("jQuery is not compatible with Quirks Mode");var g=a("<input/>",{size:1}).attr("size")&&a.attrFn,h=a.attr,i=a.attrHooks.value&&a.attrHooks.value.get||function(){return null},j=a.attrHooks.value&&a.attrHooks.value.set||function(){return c},k=/^(?:input|button)$/i,l=/^[238]$/,m=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,n=/^(?:checked|selected)$/i;e(a,"attrFn",g||{},"jQuery.attrFn is deprecated"),a.attr=function(b,e,f,i){var j=e.toLowerCase(),o=b&&b.nodeType;return i&&(h.length<4&&d("jQuery.fn.attr( props, pass ) is deprecated"),b&&!l.test(o)&&(g?e in g:a.isFunction(a.fn[e])))?a(b)[e](f):("type"===e&&f!==c&&k.test(b.nodeName)&&b.parentNode&&d("Can't change the 'type' of an input or button in IE 6/7/8"),!a.attrHooks[j]&&m.test(j)&&(a.attrHooks[j]={get:function(b,d){var e,f=a.prop(b,d);return f===!0||"boolean"!=typeof f&&(e=b.getAttributeNode(d))&&e.nodeValue!==!1?d.toLowerCase():c},set:function(b,c,d){var e;return c===!1?a.removeAttr(b,d):(e=a.propFix[d]||d,e in b&&(b[e]=!0),b.setAttribute(d,d.toLowerCase())),d}},n.test(j)&&d("jQuery.fn.attr('"+j+"') might use property instead of attribute")),h.call(a,b,e,f))},a.attrHooks.value={get:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?i.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value') no longer gets properties"),b in a?a.value:null)},set:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?j.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value', val) no longer sets properties"),void(a.value=b))}};var o,p,q=a.fn.init,r=a.find,s=a.parseJSON,t=/^\s*</,u=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,v=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,w=/^([^<]*)(<[\w\W]+>)([^>]*)$/;a.fn.init=function(b,e,f){var g,h;return b&&"string"==typeof b&&!a.isPlainObject(e)&&(g=w.exec(a.trim(b)))&&g[0]&&(t.test(b)||d("$(html) HTML strings must start with '<' character"),g[3]&&d("$(html) HTML text after last tag is ignored"),"#"===g[0].charAt(0)&&(d("HTML string cannot start with a '#' character"),a.error("JQMIGRATE: Invalid selector string (XSS)")),e&&e.context&&e.context.nodeType&&(e=e.context),a.parseHTML)?q.call(this,a.parseHTML(g[2],e&&e.ownerDocument||e||document,!0),e,f):(h=q.apply(this,arguments),b&&b.selector!==c?(h.selector=b.selector,h.context=b.context):(h.selector="string"==typeof b?b:"",b&&(h.context=b.nodeType?b:e||document)),h)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&u.test(a))try{document.querySelector(a)}catch(c){a=a.replace(v,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),d("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){d("Attribute selector with '#' was not fixed: "+b[0])}}return r.apply(this,b)};var x;for(x in r)Object.prototype.hasOwnProperty.call(r,x)&&(a.find[x]=r[x]);a.parseJSON=function(a){return a?s.apply(this,arguments):(d("jQuery.parseJSON requires a valid JSON string"),null)},a.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a.browser||(o=a.uaMatch(navigator.userAgent),p={},o.browser&&(p[o.browser]=!0,p.version=o.version),p.chrome?p.webkit=!0:p.webkit&&(p.safari=!0),a.browser=p),e(a,"browser",a.browser,"jQuery.browser is deprecated"),a.boxModel=a.support.boxModel="CSS1Compat"===document.compatMode,e(a,"boxModel",a.boxModel,"jQuery.boxModel is deprecated"),e(a.support,"boxModel",a.support.boxModel,"jQuery.support.boxModel is deprecated"),a.sub=function(){function b(a,c){return new b.fn.init(a,c)}a.extend(!0,b,this),b.superclass=this,b.fn=b.prototype=this(),b.fn.constructor=b,b.sub=this.sub,b.fn.init=function(d,e){var f=a.fn.init.call(this,d,e,c);return f instanceof b?f:b(f)},b.fn.init.prototype=b.fn;var c=b(document);return d("jQuery.sub() is deprecated"),b},a.fn.size=function(){return d("jQuery.fn.size() is deprecated; use the .length property"),this.length};var y=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return y=!0,a=d.apply(this,arguments),y=!1,a})}),a.swap=function(a,b,c,e){var f,g,h={};y||d("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=c.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f},a.ajaxSetup({converters:{"text json":a.parseJSON}});var z=a.fn.data;a.fn.data=function(b){var e,f,g=this[0];return!g||"events"!==b||1!==arguments.length||(e=a.data(g,b),f=a._data(g,b),e!==c&&e!==f||f===c)?z.apply(this,arguments):(d("Use of jQuery.fn.data('events') is deprecated"),f)};var A=/\/(java|ecma)script/i;a.clean||(a.clean=function(b,c,e,f){c=c||document,c=!c.nodeType&&c[0]||c,c=c.ownerDocument||c,d("jQuery.clean() is deprecated");var g,h,i,j,k=[];if(a.merge(k,a.buildFragment(b,c).childNodes),e)for(i=function(a){return!a.type||A.test(a.type)?f?f.push(a.parentNode?a.parentNode.removeChild(a):a):e.appendChild(a):void 0},g=0;null!=(h=k[g]);g++)a.nodeName(h,"script")&&i(h)||(e.appendChild(h),"undefined"!=typeof h.getElementsByTagName&&(j=a.grep(a.merge([],h.getElementsByTagName("script")),i),k.splice.apply(k,[g+1,0].concat(j)),g+=j.length));return k});var B=a.event.add,C=a.event.remove,D=a.event.trigger,E=a.fn.toggle,F=a.fn.live,G=a.fn.die,H=a.fn.load,I="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",J=new RegExp("\\b(?:"+I+")\\b"),K=/(?:^|\s)hover(\.\S+|)\b/,L=function(b){return"string"!=typeof b||a.event.special.hover?b:(K.test(b)&&d("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),b&&b.replace(K,"mouseenter$1 mouseleave$1"))};a.event.props&&"attrChange"!==a.event.props[0]&&a.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),a.event.dispatch&&e(a.event,"handle",a.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),a.event.add=function(a,b,c,e,f){a!==document&&J.test(b)&&d("AJAX events should be attached to document: "+b),B.call(this,a,L(b||""),c,e,f)},a.event.remove=function(a,b,c,d,e){C.call(this,a,L(b)||"",c,d,e)},a.each(["load","unload","error"],function(b,c){a.fn[c]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===c&&"string"==typeof a[0]?H.apply(this,a):(d("jQuery.fn."+c+"() is deprecated"),a.splice(0,0,c),arguments.length?this.bind.apply(this,a):(this.triggerHandler.apply(this,a),this))}}),a.fn.toggle=function(b,c){if(!a.isFunction(b)||!a.isFunction(c))return E.apply(this,arguments);d("jQuery.fn.toggle(handler, handler...) is deprecated");var e=arguments,f=b.guid||a.guid++,g=0,h=function(c){var d=(a._data(this,"lastToggle"+b.guid)||0)%g;return a._data(this,"lastToggle"+b.guid,d+1),c.preventDefault(),e[d].apply(this,arguments)||!1};for(h.guid=f;g<e.length;)e[g++].guid=f;return this.click(h)},a.fn.live=function(b,c,e){return d("jQuery.fn.live() is deprecated"),F?F.apply(this,arguments):(a(this.context).on(b,this.selector,c,e),this)},a.fn.die=function(b,c){return d("jQuery.fn.die() is deprecated"),G?G.apply(this,arguments):(a(this.context).off(b,this.selector||"**",c),this)},a.event.trigger=function(a,b,c,e){return c||J.test(a)||d("Global events are undocumented and deprecated"),D.call(this,a,b,c||document,e)},a.each(I.split("|"),function(b,c){a.event.special[c]={setup:function(){var b=this;return b!==document&&(a.event.add(document,c+"."+a.guid,function(){a.event.trigger(c,Array.prototype.slice.call(arguments,1),b,!0)}),a._data(this,c,a.guid++)),!1},teardown:function(){return this!==document&&a.event.remove(document,c+"."+a._data(this,c)),!1}}}),a.event.special.ready={setup:function(){this===document&&d("'ready' event is deprecated")}};var M=a.fn.andSelf||a.fn.addBack,N=a.fn.find;if(a.fn.andSelf=function(){return d("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),M.apply(this,arguments)},a.fn.find=function(a){var b=N.apply(this,arguments);return b.context=this.context,b.selector=this.selector?this.selector+" "+a:a,b},a.Callbacks){var O=a.Deferred,P=[["resolve","done",a.Callbacks("once memory"),a.Callbacks("once memory"),"resolved"],["reject","fail",a.Callbacks("once memory"),a.Callbacks("once memory"),"rejected"],["notify","progress",a.Callbacks("memory"),a.Callbacks("memory")]];a.Deferred=function(b){var c=O(),e=c.promise();return c.pipe=e.pipe=function(){var b=arguments;return d("deferred.pipe() is deprecated"),a.Deferred(function(d){a.each(P,function(f,g){var h=a.isFunction(b[f])&&b[f];c[g[1]](function(){var b=h&&h.apply(this,arguments);b&&a.isFunction(b.promise)?b.promise().done(d.resolve).fail(d.reject).progress(d.notify):d[g[0]+"With"](this===e?d.promise():this,h?[b]:arguments)})}),b=null}).promise()},c.isResolved=function(){return d("deferred.isResolved is deprecated"),"resolved"===c.state()},c.isRejected=function(){return d("deferred.isRejected is deprecated"),"rejected"===c.state()},b&&b.call(c,c),c}}}(jQuery,window);
components/assets-manager/assets/js/libs/wam-jquery.js CHANGED
@@ -1,6 +1,6 @@
1
- /*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license | WordPress 2019-05-16 */
2
- !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],"__proto__"!==d&&g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;d<c;d++)if(!1===b.call(a[d],d,a[d]))break}else for(d in a)if(!1===b.call(a[d],d,a[d]))break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?c<0?Math.max(0,d+c):c:0;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(d<c)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)(d=!b(a[f],f))!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;g<d;g++)null!=(e=b(a[g],g,c))&&h.push(e);else for(g in a)null!=(e=b(a[g],g,c))&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;if("string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a))return c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"!==c&&!n.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=fa(),z=fa(),A=fa(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(xa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ea(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+pa(r[h]);s=r.join(","),w=_.test(a)&&na(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function fa(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ga(a){return a[u]=!0,a}function ha(a){var b=n.createElement("div");try{return!!a(b)}catch(xa){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ia(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ja(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ka(a){return function(b){return"input"===b.nodeName.toLowerCase()&&b.type===a}}function la(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ma(a){return ga(function(b){return b=+b,ga(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function na(a){return a&&void 0!==a.getElementsByTagName&&a}c=ea.support={},f=ea.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ea.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ha(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ha(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ha(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(void 0!==b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c=void 0!==a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return void 0!==b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if(void 0!==b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ha(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ha(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ha(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d||(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ja(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ja(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ea.matches=function(a,b){return ea(a,null,null,b)},ea.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(xa){}return ea(b,n,null,[a]).length>0},ea.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ea.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ea.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ea.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ea.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ea.selectors={cacheLength:50,createPseudo:ga,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ea.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ea.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||void 0!==a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ea.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),!1===t)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return(t-=e)===d||t%d==0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ea.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ga(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ga(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ga(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ga(function(a){return function(b){return ea(a,b).length>0}}),contains:ga(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ga(function(a){return V.test(a||"")||ea.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do{if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return(c=c.toLowerCase())===a||0===c.indexOf(a+"-")}while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return!1===a.disabled},disabled:function(a){return!0===a.disabled},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,!0===a.selected},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ma(function(){return[0]}),last:ma(function(a,b){return[b-1]}),eq:ma(function(a,b,c){return[c<0?c+b:c]}),even:ma(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:ma(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:ma(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:ma(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ka(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=la(b);function oa(){}oa.prototype=d.filters=d.pseudos,d.setFilters=new oa,g=ea.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ea.error(a):z(a,i).slice(0)};function pa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function qa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function ra(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sa(a,b,c){for(var d=0,e=b.length;d<e;d++)ea(a,b[d],c);return c}function ta(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function ua(a,b,c,d,e,f){return d&&!d[u]&&(d=ua(d)),e&&!e[u]&&(e=ua(e,f)),ga(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||sa(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ta(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ta(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ta(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function va(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=qa(function(a){return a===b},h,!0),l=qa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[qa(ra(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return ua(i>1&&ra(m),i>1&&pa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,i<e&&va(a.slice(i,e)),e<f&&va(a=a.slice(e)),e<f&&pa(a))}m.push(c)}return ra(m)}function wa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ta(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ea.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ga(f):f}return h=ea.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=va(b[c]),f[u]?d.push(f):e.push(f);f=A(a,wa(e,d)),f.selector=a}return f},i=ea.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(!(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0]))return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&na(b.parentNode)||b))){if(j.splice(i,1),!(a=f.length&&pa(j)))return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&na(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ha(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ha(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ia("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ha(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ia("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ha(function(a){return null==a.getAttribute("disabled")})||ia(K,function(a,b,c){var d;if(!c)return!0===a[b]?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ea}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;b<e;b++)if(n.contains(d[b],this))return!0}));for(b=0;b<e;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(!(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a))||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if((f=d.getElementById(e[2]))&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))}).prototype=n.fn,A=n(d);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do{a=a[b]}while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.uniqueSort(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g;function G(a){var b={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)!1===f[h].apply(c[0],c[1])&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function b(c){n.each(c,function(c,d){n.isFunction(d)?a.unique&&j.has(d)||f.push(d):d&&d.length&&"string"!==n.type(d)&&b(d)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);b<d;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(!0===a?--n.readyWait:n.isReady)||(n.isReady=!0,!0!==a&&--n.readyWait>0||(H.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function I(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J)):(d.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(I(),n.ready())}n.ready.promise=function(b){if(!H)if(H=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J);else{d.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&function b(){if(!n.isReady){try{c.doScroll("left")}catch(e){return a.setTimeout(b,50)}I(),n.ready()}}()}return H.promise(b)},n.ready.promise();var K;for(K in n(l))break;l.ownFirst="0"===K,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;(c=d.getElementsByTagName("body")[0])&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),void 0!==b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var L=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return(1===c||9===c)&&(!b||!0!==b&&a.getAttribute("classid")===b)},M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if("string"==typeof(c=a.getAttribute(d))){try{c="true"===c||"false"!==c&&("null"===c?null:+c+""===c?+c:M.test(c)?n.parseJSON(c):c)}catch(e){}n.data(a,b,c)}else c=void 0}return c}function P(a){var b
3
- ;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(L(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?null==(f=g[b])&&(f=g[n.camelCase(b)]):f=g,f}}function R(a,b,c){if(L(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return!!(a=a.nodeType?n.cache[a[n.expando]]:a[n.expando])&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),O(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?O(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)(c=n._data(f[g],a+"queueHooks"))&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}}),function(){var a;l.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,e;return(c=d.getElementsByTagName("body")[0])&&c.style?(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),void 0!==b.style.zoom&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(d.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(e),a):void 0}}();var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),U=["Top","Right","Bottom","Left"],V=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function W(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&T.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do{f=f||".5",k/=f,n.style(a,b,k+j)}while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var X=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)X(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Y=/^(?:checkbox|radio)$/i,Z=/<([\w:-]+)/,$=/^$|\/(?:java|ecma)script/i,_=/^\s+/,aa="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ba(a){var b=aa.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var ca={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};ca.optgroup=ca.option,ca.tbody=ca.tfoot=ca.colgroup=ca.caption=ca.thead,ca.th=ca.td;function da(a,b){var c,d,e=0,f=void 0!==a.getElementsByTagName?a.getElementsByTagName(b||"*"):void 0!==a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,da(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function ea(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var fa=/<|&#?\w+;/,ga=/<tbody/i;function ha(a){Y.test(a.type)&&(a.defaultChecked=a.checked)}function ia(a,b,c,d,e){for(var f,g,h,i,j,k,m,o=a.length,p=ba(b),q=[],r=0;r<o;r++)if((g=a[r])||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(fa.test(g)){i=i||p.appendChild(b.createElement("div")),j=(Z.exec(g)||["",""])[1].toLowerCase(),m=ca[j]||ca._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&_.test(g)&&q.push(b.createTextNode(_.exec(g)[0])),!l.tbody){g="table"!==j||ga.test(g)?"<table>"!==m[1]||ga.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(da(q,"input"),ha),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=da(p.appendChild(g),"script"),h&&ea(i),c){f=0;while(g=i[f++])$.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=!1===e.attributes[c].expando);e=null}();var ja=/^(?:input|select|textarea)$/i,ka=/^key/,la=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ma=/^(?:focusinfocus|focusoutblur)$/,na=/^([^.]*)(?:\.(.+)|)/;function oa(){return!0}function pa(){return!1}function qa(){try{return d.activeElement}catch(a){}}function ra(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ra(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),!1===e)e=pa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return void 0===n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=na.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&!1!==j.setup.call(a,d,p,k)||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=na.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&!1!==l.teardown.call(a,p,r.handle)||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!ma.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||!1!==l.trigger.apply(e,c))){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,ma.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),(g=h&&i[h])&&g.apply&&L(i)&&(b.result=g.apply(i,c),!1===b.result&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||!1===l._default.apply(p.pop(),c))&&L(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||!1!==k.preDispatch.call(this,a)){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,void 0!==(d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i))&&!1===(a.result=d)&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(!0!==i.disabled||"click"!==a.type)){for(d=[],c=0;c<h;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=la.test(f)?this.mouseHooks:ka.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=g.srcElement||d),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,h.filter?h.filter(a,g):a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button,h=b.fromElement;return null==a.pageX&&null!=b.clientX&&(e=a.target.ownerDocument||d,f=e.documentElement,c=e.body,a.pageX=b.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&h&&(a.relatedTarget=h===a.target?b.toElement:h),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==qa()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){if(this===qa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if(n.nodeName(this,"input")&&"checkbox"===this.type&&this.click)return this.click(),!1},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b),d.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=d.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)}:function(a,b,c){var d="on"+b;a.detachEvent&&(void 0===a[d]&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){if(!(this instanceof n.Event))return new n.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&!1===a.returnValue?oa:pa):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),this[n.expando]=!0},n.Event.prototype={constructor:n.Event,isDefaultPrevented:pa,isPropagationStopped:pa,isImmediatePropagationStopped:pa,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=oa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=oa,a&&!this.isSimulated&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=oa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||n.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submit||(n.event.special.submit={setup:function(){if(n.nodeName(this,"form"))return!1;n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?n.prop(b,"form"):void 0;c&&!n._data(c,"submit")&&(n.event.add(c,"submit._submit",function(a){a._submitBubble=!0}),n._data(c,"submit",!0))})},postDispatch:function(a){a._submitBubble&&(delete a._submitBubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a))},teardown:function(){if(n.nodeName(this,"form"))return!1;n.event.remove(this,"._submit")}}),l.change||(n.event.special.change={setup:function(){if(ja.test(this.nodeName))return"checkbox"!==this.type&&"radio"!==this.type||(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._justChanged=!0)}),n.event.add(this,"click._change",function(a){this._justChanged&&!a.isTrigger&&(this._justChanged=!1),n.event.simulate("change",this,a)})),!1;n.event.add(this,"beforeactivate._change",function(a){var b=a.target;ja.test(b.nodeName)&&!n._data(b,"change")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a)}),n._data(b,"change",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type)return a.handleObj.handler.apply(this,arguments)},teardown:function(){return n.event.remove(this,"._change"),!ja.test(this.nodeName)}}),l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d){return ra(this,a,b,c,d)},one:function(a,b,c,d){return ra(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return!1!==b&&"function"!=typeof b||(c=b,b=void 0),!1===c&&(c=pa),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return n.event.trigger(a,b,c,!0)}});var sa=/ jQuery\d+="(?:null|\d+)"/g,ta=new RegExp("<(?:"+aa+")[\\s/>]","i"),ua=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,va=/<script|<style|<link/i,wa=/checked\s*(?:[^=]|=\s*.checked.)/i,xa=/^true\/(.*)/,ya=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,za=ba(d),Aa=za.appendChild(d.createElement("div"));function Ba(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Ca(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Da(a){var b=xa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ea(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Fa(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Ca(b).text=a.text,Da(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Y.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ga(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&wa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ga(f,b,c,d)});if(o&&(k=ia(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(da(k,"script"),Ca),h=i.length;m<o;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,da(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Da),m=0;m<h;m++)g=i[m],$.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(ya,"")));k=e=null}return a}function Ha(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(da(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&ea(da(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ua,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ta.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Aa.innerHTML=a.outerHTML,Aa.removeChild(f=Aa.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=da(f),h=da(a),g=0;null!=(e=h[g]);++g)d[g]&&Fa(e,d[g]);if(b)if(c)for(h=h||da(a),d=d||da(f),g=0;null!=(e=h[g]);g++)Ea(e,d[g]);else Ea(a,f);return d=da(f,"script"),d.length>0&&ea(d,!i&&da(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||L(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||void 0===d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ga,detach:function(a){return Ha(this,a,!0)},remove:function(a){return Ha(this,a)},text:function(a){return X(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ga(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){Ba(this,a).appendChild(a)}})},prepend:function(){return Ga(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ba(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ga(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ga(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(da(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return X(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(sa,""):void 0;if("string"==typeof a&&!va.test(a)&&(l.htmlSerialize||!ta.test(a))&&(l.leadingWhitespace||!_.test(a))&&!ca[(Z.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(da(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ga(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(da(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;d<=h;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ia,Ja={HTML:"block",BODY:"block"};function Ka(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function La(a){var b=d,c=Ja[a];return c||(c=Ka(a,b),"none"!==c&&c||(Ia=(Ia||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ia[0].contentWindow||Ia[0].contentDocument).document,b.write(),b.close(),c=Ka(a,b),Ia.detach()),Ja[a]=c),c}var Ma=/^margin/,Na=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Oa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Pa=d.documentElement;!function(){var b,c,e,f,g,h,i=d.createElement("div"),j=d.createElement("div");function k(){var k,l,m=d.documentElement;m.appendChild(i),j.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!1,c=g=!0,a.getComputedStyle&&(l=a.getComputedStyle(j),b="1%"!==(l||{}).top,h="2px"===(l||{}).marginLeft,e="4px"===(l||{width:"4px"}).width,j.style.marginRight="50%",c="4px"===(l||{marginRight:"4px"}).marginRight,k=j.appendChild(d.createElement("div")),k.style.cssText=j.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",j.style.width="1px",g=!parseFloat((a.getComputedStyle(k)||{}).marginRight),j.removeChild(k)),j.style.display="none",f=0===j.getClientRects().length,f&&(j.style.display="",j.innerHTML="<table><tr><td></td><td>t</td></tr></table>",j.childNodes[0].style.borderCollapse="separate",k=j.getElementsByTagName("td"),k[0].style.cssText="margin:0;border:0;padding:0;display:none",(f=0===k[0].offsetHeight)&&(k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight)),m.removeChild(i)}j.style&&(j.style.cssText="float:left;opacity:.5",l.opacity="0.5"===j.style.opacity,l.cssFloat=!!j.style.cssFloat,j.style.backgroundClip="content-box",j.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===j.style.backgroundClip,i=d.createElement("div"),i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.innerHTML="",i.appendChild(j),l.boxSizing=""===j.style.boxSizing||""===j.style.MozBoxSizing||""===j.style.WebkitBoxSizing,n.extend(l,{reliableHiddenOffsets:function(){return null==b&&k(),f},boxSizingReliable:function(){return null==b&&k(),e},pixelMarginRight:function(){return null==b&&k(),c},pixelPosition:function(){return null==b&&k(),b},reliableMarginRight:function(){return null==b&&k(),g},reliableMarginLeft:function(){return null==b&&k(),h}}))}();var Qa,Ra,Sa=/^(top|right|bottom|left)$/;a.getComputedStyle?(Qa=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Ra=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Qa(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Na.test(g)&&Ma.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0===g?g:g+""}):Pa.currentStyle&&(Qa=function(a){return a.currentStyle},Ra=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Qa(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Na.test(g)&&!Sa.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Ta(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Ua=/alpha\([^)]*\)/i,Va=/opacity\s*=\s*([^)]*)/i,Wa=/^(none|table(?!-c[ea]).+)/,Xa=new RegExp("^("+S+")(.*)$","i"),Ya={position:"absolute",visibility:"hidden",display:"block"},Za={letterSpacing:"0",fontWeight:"400"},$a=["Webkit","O","Moz","ms"],_a=d.createElement("div").style;function ab(a){if(a in _a)return a;var b=a.charAt(0).toUpperCase()+a.slice(1),c=$a.length;while(c--)if((a=$a[c]+b)in _a)return a}function bb(a,b){for(var c,d,e,f=[],g=0,h=a.length;g<h;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&V(d)&&(f[g]=n._data(d,"olddisplay",La(d.nodeName)))):(e=V(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;g<h;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function cb(a,b,c){var d=Xa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function db(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;f<4;f+=2)"margin"===c&&(g+=n.css(a,c+U[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+U[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+U[f]+"Width",!0,e))):(g+=n.css(a,"padding"+U[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+U[f]+"Width",!0,e)));return g}function eb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Qa(a),g=l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,f);if(e<=0||null==e){if(e=Ra(a,b,f),(e<0||null==e)&&(e=a.style[b]),Na.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+db(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ra(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=ab(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=T.exec(c))&&e[1]&&(c=W(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=ab(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Ra(a,b,d)),"normal"===f&&b in Za&&(f=Za[b]),""===c||c?(e=parseFloat(f),!0===c||isFinite(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){if(c)return Wa.test(n.css(a,"display"))&&0===a.offsetWidth?Oa(a,Ya,function(){return eb(a,b,d)}):eb(a,b,d)},set:function(a,c,d){var e=d&&Qa(a);return cb(a,c,d?db(a,b,d,l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Va.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Ua,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Ua.test(f)?f.replace(Ua,e):f+" "+e)}}),n.cssHooks.marginRight=Ta(l.reliableMarginRight,function(a,b){if(b)return Oa(a,{display:"inline-block"},Ra,[a,"marginRight"])}),n.cssHooks.marginLeft=Ta(l.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Ra(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Oa(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px"}),n.each({
4
- margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+U[d]+b]=f[d]||f[d-2]||f[0];return e}},Ma.test(a)||(n.cssHooks[a+b].set=cb)}),n.fn.extend({css:function(a,b){return X(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Qa(a),e=b.length;g<e;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return bb(this,!0)},hide:function(){return bb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){V(this)?n(this).show():n(this).hide()})}});function fb(a,b,c,d,e){return new fb.prototype.init(a,b,c,d,e)}n.Tween=fb,fb.prototype={constructor:fb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=fb.propHooks[this.prop];return a&&a.get?a.get(this):fb.propHooks._default.get(this)},run:function(a){var b,c=fb.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):fb.propHooks._default.set(this),this}},fb.prototype.init.prototype=fb.prototype,fb.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},fb.propHooks.scrollTop=fb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=fb.prototype.init,n.fx.step={};var gb,hb,ib=/^(?:toggle|show|hide)$/,jb=/queueHooks$/;function kb(){return a.setTimeout(function(){gb=void 0}),gb=n.now()}function lb(a,b){var c,d={height:a},e=0;for(b=b?1:0;e<4;e+=2-b)c=U[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function mb(a,b,c){for(var d,e=(pb.tweeners[b]||[]).concat(pb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function nb(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&V(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),"inline"===(k="none"===j?n._data(a,"olddisplay")||La(a.nodeName):j)&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==La(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ib.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(o))"inline"===("none"===j?La(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=mb(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function ob(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),(g=n.cssHooks[d])&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function pb(a,b,c){var d,e,f=0,g=pb.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=gb||kb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:gb||kb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(ob(k,j.opts.specialEasing);f<g;f++)if(d=pb.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,mb,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(pb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return W(c.elem,a,T.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(F);for(var c,d=0,e=a.length;d<e;d++)c=a[d],pb.tweeners[c]=pb.tweeners[c]||[],pb.tweeners[c].unshift(b)},prefilters:[nb],prefilter:function(a,b){b?pb.prefilters.unshift(a):pb.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,null!=d.queue&&!0!==d.queue||(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(V).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=pb(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||!1===f.queue?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&!1!==a&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&jb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||n.dequeue(this,a)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(lb(b,!0),a,d,e)}}),n.each({slideDown:lb("show"),slideUp:lb("hide"),slideToggle:lb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(gb=n.now();c<b.length;c++)(a=b[c])()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),gb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){hb||(hb=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(hb),hb=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a,b=d.createElement("input"),c=d.createElement("div"),e=d.createElement("select"),f=e.appendChild(d.createElement("option"));c=d.createElement("div"),c.setAttribute("className","t"),c.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],b.setAttribute("type","checkbox"),c.appendChild(b),a=c.getElementsByTagName("a")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==c.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=f.selected,l.enctype=!!d.createElement("form").enctype,e.disabled=!0,l.optDisabled=!f.disabled,b=d.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value}();var qb=/\r/g,rb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),(b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()])&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return(b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()])&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(qb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(rb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||e<0,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i<h;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>-1)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){if(n.isArray(b))return a.checked=n.inArray(n(a).val(),b)>-1}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb,tb,ub=n.expr.attrHandle,vb=/^(?:checked|selected)$/i,wb=l.getSetAttribute,xb=l.input;n.fn.extend({attr:function(a,b){return X(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return void 0===a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?tb:sb)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(F);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?xb&&wb||!vb.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(wb?c:d)}}),tb={set:function(a,b,c){return!1===b?n.removeAttr(a,c):xb&&wb||!vb.test(c)?a.setAttribute(!wb&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ub[b]||n.find.attr;xb&&wb||!vb.test(b)?ub[b]=function(a,b,d){var e,f;return d||(f=ub[b],ub[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,ub[b]=f),e}:ub[b]=function(a,b,c){if(!c)return a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),xb&&wb||(n.attrHooks.value={set:function(a,b,c){if(!n.nodeName(a,"input"))return sb&&sb.set(a,b,c);a.defaultValue=b}}),wb||(sb={set:function(a,b,c){var d=a.getAttributeNode(c);if(d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c))return b}},ub.id=ub.name=ub.coords=function(a,b,c){var d;if(!c)return(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);if(c&&c.specified)return c.value},set:sb.set},n.attrHooks.contenteditable={set:function(a,b,c){sb.set(a,""!==b&&b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){if(""===c)return a.setAttribute(b,"auto"),c}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var yb=/^(?:input|select|textarea|button|object)$/i,zb=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return X(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):yb.test(a.nodeName)||zb.test(a.nodeName)&&a.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var Ab=/[\t\r\n\f]/g;function Bb(a){return n.attr(a,"class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,Bb(this)))});if("string"==typeof a&&a){b=a.match(F)||[];while(c=this[i++])if(e=Bb(c),d=1===c.nodeType&&(" "+e+" ").replace(Ab," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,Bb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(F)||[];while(c=this[i++])if(e=Bb(c),d=1===c.nodeType&&(" "+e+" ").replace(Ab," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,Bb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(F)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Bb(this),b&&n._data(this,"__className__",b),n.attr(this,"class",b||!1===a?"":n._data(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Bb(c)+" ").replace(Ab," ").indexOf(b)>-1)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Cb=a.location,Db=n.now(),Eb=/\?/,Fb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(Fb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new a.DOMParser,c=d.parseFromString(b,"text/xml")):(c=new a.ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var Gb=/#.*$/,Hb=/([?&])_=[^&]*/,Ib=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Jb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Kb=/^(?:GET|HEAD)$/,Lb=/^\/\//,Mb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Nb={},Ob={},Pb="*/".concat("*"),Qb=Cb.href,Rb=Mb.exec(Qb.toLowerCase())||[];function Sb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(F)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Tb(a,b,c,d){var e={},f=a===Ob;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ub(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Vb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Wb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(!(g=j[i+" "+f]||j["* "+f]))for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){!0===g?g=j[e]:!0!==j[e]&&(f=h[0],k.unshift(h[1]));break}if(!0!==g)if(g&&a.throws)b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Qb,type:"GET",isLocal:Jb.test(Rb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Pb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ub(Ub(a,n.ajaxSettings),b):Ub(n.ajaxSettings,a)},ajaxPrefilter:Sb(Nb),ajaxTransport:Sb(Ob),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var d,e,f,g,h,i,j,k,l=n.ajaxSetup({},c),m=l.context||l,o=l.context&&(m.nodeType||m.jquery)?n(m):n.event,p=n.Deferred(),q=n.Callbacks("once memory"),r=l.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!k){k={};while(b=Ib.exec(g))k[b[1].toLowerCase()]=b[2]}b=k[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(u<2)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return j&&j.abort(b),x(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,l.url=((b||l.url||Qb)+"").replace(Gb,"").replace(Lb,Rb[1]+"//"),l.type=c.method||c.type||l.method||l.type,l.dataTypes=n.trim(l.dataType||"*").toLowerCase().match(F)||[""],null==l.crossDomain&&(d=Mb.exec(l.url.toLowerCase()),l.crossDomain=!(!d||d[1]===Rb[1]&&d[2]===Rb[2]&&(d[3]||("http:"===d[1]?"80":"443"))===(Rb[3]||("http:"===Rb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=n.param(l.data,l.traditional)),Tb(Nb,l,c,w),2===u)return w;i=n.event&&l.global,i&&0==n.active++&&n.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!Kb.test(l.type),f=l.url,l.hasContent||(l.data&&(f=l.url+=(Eb.test(f)?"&":"?")+l.data,delete l.data),!1===l.cache&&(l.url=Hb.test(f)?f.replace(Hb,"$1_="+Db++):f+(Eb.test(f)?"&":"?")+"_="+Db++)),l.ifModified&&(n.lastModified[f]&&w.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&w.setRequestHeader("If-None-Match",n.etag[f])),(l.data&&l.hasContent&&!1!==l.contentType||c.contentType)&&w.setRequestHeader("Content-Type",l.contentType),w.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+Pb+"; q=0.01":""):l.accepts["*"]);for(e in l.headers)w.setRequestHeader(e,l.headers[e]);if(l.beforeSend&&(!1===l.beforeSend.call(m,w,l)||2===u))return w.abort();v="abort";for(e in{success:1,error:1,complete:1})w[e](l[e]);if(j=Tb(Ob,l,c,w)){if(w.readyState=1,i&&o.trigger("ajaxSend",[w,l]),2===u)return w;l.async&&l.timeout>0&&(h=a.setTimeout(function(){w.abort("timeout")},l.timeout));try{u=1,j.send(s,x)}catch(y){if(!(u<2))throw y;x(-1,y)}}else x(-1,"No Transport");function x(b,c,d,e){var k,s,t,v,x,y=c;2!==u&&(u=2,h&&a.clearTimeout(h),j=void 0,g=e||"",w.readyState=b>0?4:0,k=b>=200&&b<300||304===b,d&&(v=Vb(l,w,d)),v=Wb(l,v,w,k),k?(l.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(n.lastModified[f]=x),(x=w.getResponseHeader("etag"))&&(n.etag[f]=x)),204===b||"HEAD"===l.type?y="nocontent":304===b?y="notmodified":(y=v.state,s=v.data,t=v.error,k=!t)):(t=y,!b&&y||(y="error",b<0&&(b=0))),w.status=b,w.statusText=(c||y)+"",k?p.resolveWith(m,[s,y,w]):p.rejectWith(m,[w,y,t]),w.statusCode(r),r=void 0,i&&o.trigger(k?"ajaxSuccess":"ajaxError",[w,l,k?s:t]),q.fireWith(m,[w,y]),i&&(o.trigger("ajaxComplete",[w,l]),--n.active||n.event.trigger("ajaxStop")))}return w},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}});function Xb(a){return a.style&&a.style.display||n.css(a,"display")}function Yb(a){if(!n.contains(a.ownerDocument||d,a))return!0;while(a&&1===a.nodeType){if("none"===Xb(a)||"hidden"===a.type)return!0;a=a.parentNode}return!1}n.expr.filters.hidden=function(a){return l.reliableHiddenOffsets()?a.offsetWidth<=0&&a.offsetHeight<=0&&!a.getClientRects().length:Yb(a)},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var Zb=/%20/g,$b=/\[\]$/,_b=/\r?\n/g,ac=/^(?:submit|button|image|reset|file)$/i,bc=/^(?:input|select|textarea|keygen)/i;function cc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||$b.test(a)?d(a,e):cc(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)cc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)cc(c,a[c],b,e);return d.join("&").replace(Zb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&bc.test(this.nodeName)&&!ac.test(a)&&(this.checked||!Y.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(_b,"\r\n")}}):{name:b.name,value:c.replace(_b,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return this.isLocal?hc():d.documentMode>8?gc():/^(get|post|head|put|delete|options)$/i.test(this.type)&&gc()||hc()}:gc;var dc=0,ec={},fc=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in ec)ec[a](void 0,!0)}),l.cors=!!fc&&"withCredentials"in fc,(fc=l.ajax=!!fc)&&n.ajaxTransport(function(b){if(!b.crossDomain||l.cors){var c;return{send:function(d,e){var f,g=b.xhr(),h=++dc;if(g.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(f in b.xhrFields)g[f]=b.xhrFields[f];b.mimeType&&g.overrideMimeType&&g.overrideMimeType(b.mimeType),b.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)void 0!==d[f]&&g.setRequestHeader(f,d[f]+"");g.send(b.hasContent&&b.data||null),c=function(a,d){var f,i,j;if(c&&(d||4===g.readyState))if(delete ec[h],c=void 0,g.onreadystatechange=n.noop,d)4!==g.readyState&&g.abort();else{j={},f=g.status,"string"==typeof g.responseText&&(j.text=g.responseText);try{i=g.statusText}catch(k){i=""}f||!b.isLocal||b.crossDomain?1223===f&&(f=204):f=j.text?200:404}j&&e(f,i,j,g.getAllResponseHeaders())},b.async?4===g.readyState?a.setTimeout(c):g.onreadystatechange=ec[h]=c:c()},abort:function(){c&&c(void 0,!0)}}}});function gc(){try{return new a.XMLHttpRequest}catch(b){}}function hc(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=d.head||n("head")[0]||d.documentElement;return{send:function(e,f){b=d.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var ic=[],jc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=ic.pop()||n.expando+"_"+Db++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=!1!==b.jsonp&&(jc.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&jc.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(jc,"$1"+e):!1!==b.jsonp&&(b.url+=(Eb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,ic.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ia([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var kc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&kc)return kc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h,a.length)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function lc(a){return n.isWindow(a)?a:9===a.nodeType&&(a.defaultView||a.parentWindow)}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?(void 0!==e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=lc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Pa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return X(this,function(a,d,e){var f=lc(a);if(void 0===e)return f?b in f?f[b]:f.document.documentElement[d]:a[d];f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ta(l.pixelPosition,function(a,c){if(c)return c=Ra(a,b),Na.test(c)?n(a).position()[b]+"px":c})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(!0===d||!0===e?"margin":"border")
5
- ;return X(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var mc=a.jQuery,nc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=nc),b&&a.jQuery===n&&(a.jQuery=mc),n},b||(a.jQuery=a.$=n),n});
1
+ /*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license | WordPress 2019-05-16 */
2
+ !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function