Version Description
(12.10.2019) = * Fixed: [Google analytic cache] a bug with creating a local copy of the Google analytics library. * Fixed: [Assets manager component] fatal error with "Call to undefined function wp_scripts_get_suffix" * Fixed: [Assets manager component] bugs with jquery library and improved compatibility with other optimization plugins." * Fixed: [Robin image optimizer] a bug with converting webp in image optimizer. Under the Clearfy license images weren't converted. * Fixed: Removed ads for premium users
Download this release
Release Info
Developer | alexkovalevv |
Plugin | Clearfy – WordPress optimization plugin and disable ultimate tweaker |
Version | 1.6.0 |
Comparing to | |
See all releases |
Code changes from version 1.5.3 to 1.6.0
- admin/activation.php +84 -94
- admin/ajax/check-license.php +0 -90
- admin/ajax/configurate.php +1 -1
- admin/ajax/import-settings.php +4 -4
- admin/ajax/install-addons.php +36 -59
- admin/ajax/update-package.php +0 -85
- admin/assets/css/components.css +140 -107
- admin/assets/css/components.css.map +1 -0
- admin/assets/css/components.less +35 -15
- admin/assets/css/general.css +494 -493
- admin/assets/css/general.css.map +1 -1
- admin/assets/css/gutenberg-autosave-control.css +18 -18
- admin/assets/css/gutenberg-autosave-control.less +20 -20
- admin/assets/gutenberg/build/index.build.js +99 -99
- admin/assets/js/general.js +13 -13
- admin/assets/js/install-addons.js +15 -15
- admin/assets/js/license-manager.js +4 -4
- admin/assets/js/update-package.js +0 -88
- admin/boot.php +86 -229
- admin/includes/classes/class.delete-plugins-button.php +37 -49
- admin/includes/classes/class.install-plugins-button.php +282 -320
- admin/includes/classes/class.upgrader-skin.php +0 -15
- admin/includes/classes/class.upgrader.php +0 -59
- admin/includes/compatibility.php +5 -5
- admin/includes/sidebar-widgets.php +4 -4
- admin/pages/class-page.php +12 -0
- admin/pages/{advanced.php → class-pages-advanced.php} +2 -2
- admin/pages/{clearfy-settings.php → class-pages-clearfy-settings.php} +3 -3
- admin/pages/{components.php → class-pages-components.php} +65 -143
- admin/pages/{defence.php → class-pages-defence.php} +3 -3
- admin/pages/{hide-login-page.php → class-pages-hide-login-page.php} +4 -4
- admin/pages/class-pages-image-optimization.php +107 -0
- admin/pages/class-pages-license.php +64 -0
- admin/pages/{performance-google.php → class-pages-performance-google.php} +2 -2
- admin/pages/{performance.php → class-pages-performance.php} +11 -7
- admin/pages/{quick-start.php → class-pages-quick-start.php} +7 -7
- admin/pages/{seo-double-pages.php → class-pages-seo-double-pages.php} +2 -2
- admin/pages/{seo.php → class-pages-seo.php} +2 -2
- admin/pages/{widgets.php → class-pages-widgets.php} +2 -2
- admin/pages/image-optimization.php +0 -111
- admin/pages/license.php +0 -270
- clearfy.php +149 -52
- components/assets-manager/admin/activation.php +32 -0
- components/assets-manager/admin/ajax/save-settings.php +88 -0
- components/assets-manager/admin/boot.php +66 -97
- components/assets-manager/admin/index.php +2 -0
- components/assets-manager/admin/pages/assets-manager.php +0 -161
- components/assets-manager/admin/pages/class-pages-more-features.php +22 -0
- components/assets-manager/admin/pages/class-pages-settings.php +165 -0
- components/assets-manager/admin/pages/index.php +2 -0
- components/assets-manager/admin/pages/more-features.php +0 -20
- components/assets-manager/assets/css/PNotifyBrightTheme.css +224 -0
- components/assets-manager/assets/css/assets-conditions.css +170 -0
- components/assets-manager/assets/css/assets-conditions.css.map +1 -0
- components/assets-manager/assets/css/assets-conditions.less +210 -0
- components/assets-manager/assets/css/assets-manager.css +583 -820
- components/assets-manager/assets/css/assets-manager.css.map +1 -1
- components/assets-manager/assets/css/assets-manager.less +161 -1016
- components/assets-manager/assets/css/float-panel.css +252 -0
- components/assets-manager/assets/css/float-panel.css.map +1 -0
- components/assets-manager/assets/css/float-panel.less +294 -0
- components/assets-manager/assets/css/reset.less +1 -1
- components/assets-manager/assets/css/tables.css +396 -0
- components/assets-manager/assets/css/tables.css.map +1 -0
- components/assets-manager/assets/css/tables.less +98 -0
- components/assets-manager/assets/css/tabs.less +155 -0
- components/assets-manager/assets/css/tooltip.css +55 -0
- components/assets-manager/assets/css/tooltip.css.map +1 -0
- components/assets-manager/assets/css/tooltip.less +62 -0
- components/assets-manager/assets/img/close.png +0 -0
- components/assets-manager/assets/img/cogs.png +0 -0
- components/assets-manager/assets/img/help.png +0 -0
- components/assets-manager/assets/js/PNotify.js +2037 -0
- components/assets-manager/assets/js/assets-conditions.js +783 -0
- components/assets-manager/assets/js/assets-manager.js +492 -91
- components/assets-manager/assets/js/wam-jquery-migrate.min.js +2 -0
- components/assets-manager/assets/js/wam-jquery.js +6 -0
- components/assets-manager/clearfy.php +53 -0
- components/assets-manager/gonzales.php +99 -58
- components/assets-manager/includes/3rd-party/class-clearfy-plugin.php +100 -0
- components/assets-manager/includes/3rd-party/index.php +2 -0
- components/assets-manager/includes/class-plugin.php +99 -0
- components/assets-manager/includes/class.configurate-assets.php +0 -1659
- components/assets-manager/includes/class.plugin.php +0 -121
- components/assets-manager/includes/classes/class-assets-manager-global.php +1115 -0
- components/assets-manager/includes/classes/class-check-conditions.php +368 -0
- components/assets-manager/includes/classes/class-views.php +100 -0
- components/assets-manager/includes/functions.php +43 -0
- components/assets-manager/includes/index.php +2 -0
- components/assets-manager/index.php +2 -0
- components/assets-manager/languages/gonzales-es_ES.po +465 -465
- components/assets-manager/{updates → migrations}/010100.php +1 -1
- components/assets-manager/migrations/010108.php +225 -0
- components/assets-manager/migrations/index.php +2 -0
- components/assets-manager/mu-plugins/assets-manager.php +287 -0
- components/assets-manager/mu-plugins/index.php +2 -0
- components/assets-manager/readme.txt +21 -4
- components/assets-manager/uninstall.php +33 -30
- components/assets-manager/views/assets-manager.php +37 -0
- components/assets-manager/views/conditions-logic-editor-template.php +111 -0
- components/assets-manager/views/part-assets-manager-header.php +41 -0
- components/assets-manager/views/part-assets-manager-info-bar.php +42 -0
- components/assets-manager/views/part-assets-manager-tabs-menu.php +16 -0
- components/assets-manager/views/part-tab-content-assets-plugins-settings.php +96 -0
- components/assets-manager/views/tab-content-assets-plugins.php +48 -0
- components/assets-manager/views/tab-content-assets.php +78 -0
- components/comments-plus/admin/assets/css/index.php +0 -0
- components/comments-plus/admin/assets/index.php +0 -0
- components/comments-plus/admin/assets/js/index.php +0 -0
- components/comments-plus/admin/boot.php +137 -117
- components/comments-plus/admin/index.php +2 -0
- components/comments-plus/admin/pages/class-page-comments.php +232 -0
- components/comments-plus/admin/pages/class-page-delete-comments.php +513 -0
- components/comments-plus/admin/pages/class-page-more-features.php +24 -0
- components/comments-plus/admin/pages/comments.php +0 -203
- components/comments-plus/admin/pages/delete-comments.php +0 -504
- components/comments-plus/admin/pages/index.php +2 -0
- components/comments-plus/admin/pages/more-features.php +0 -16
- components/comments-plus/assets/css/index.php +0 -0
- components/comments-plus/assets/css/url-span.css +1 -1
- components/comments-plus/assets/index.php +0 -0
- components/comments-plus/assets/js/index.php +0 -0
- components/comments-plus/assets/js/url-span.js +1 -1
- components/comments-plus/clearfy.php +51 -0
- components/comments-plus/comments-plus.php +99 -44
- components/comments-plus/includes/3rd-party/class-clearfy-plugin.php +107 -0
- components/{ga-cache/updates → comments-plus/includes/3rd-party}/index.php +0 -0
- components/comments-plus/includes/boot.php +43 -42
- components/comments-plus/includes/class-plugin.php +114 -0
- components/comments-plus/includes/class.plugin.php +0 -130
- components/comments-plus/includes/classes/class-configurate-comments.php +338 -0
- components/comments-plus/includes/classes/class.configurate-comments.php +0 -362
- components/comments-plus/includes/classes/index.php +2 -0
- components/comments-plus/includes/index.php +2 -0
- components/comments-plus/index.php +2 -0
- components/comments-plus/languages/comments-plus-es_ES.po +229 -368
admin/activation.php
CHANGED
@@ -1,113 +1,103 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
/**
|
3 |
-
*
|
4 |
-
*
|
5 |
-
* @
|
6 |
-
* @see Factory409_Activator
|
7 |
-
* @version 1.0
|
8 |
*/
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
// -------------
|
29 |
-
$minify_js_plugins = array(
|
30 |
-
'autoptimize/autoptimize.php',
|
31 |
-
'fast-velocity-minify/fvm.php',
|
32 |
-
'js-css-script-optimizer/js-css-script-optimizer.php',
|
33 |
-
'merge-minify-refresh/merge-minify-refresh.php',
|
34 |
-
'wp-super-minify/wp-super-minify.php'
|
35 |
-
);
|
36 |
-
|
37 |
-
$is_activate_minify_js = true;
|
38 |
-
foreach($minify_js_plugins as $m_plugin) {
|
39 |
-
|
40 |
-
if( is_plugin_active($m_plugin) ) {
|
41 |
-
$is_activate_minify_js = false;
|
42 |
-
}
|
43 |
-
}
|
44 |
-
|
45 |
-
if( !$is_activate_minify_js ) {
|
46 |
-
WCL_Plugin::app()->deactivateComponent('minify_and_combine');
|
47 |
-
WCL_Plugin::app()->deactivateComponent('html_minify');
|
48 |
-
}
|
49 |
-
|
50 |
-
// -------------
|
51 |
-
// Deactivate yoast component features if it is not activated
|
52 |
-
// -------------
|
53 |
-
|
54 |
-
if( !defined('WPSEO_VERSION') ) {
|
55 |
-
WCL_Plugin::app()->deactivateComponent('yoast_seo');
|
56 |
-
}
|
57 |
-
|
58 |
-
// Deactivate cyrlitera component for all languages except selected
|
59 |
-
if( !in_array(get_locale(), array('ru_RU', 'bel', 'kk', 'uk', 'bg', 'bg_BG', 'ka_GE')) ) {
|
60 |
-
WCL_Plugin::app()->deactivateComponent('cyrlitera');
|
61 |
}
|
|
|
62 |
|
63 |
-
|
64 |
-
|
|
|
|
|
65 |
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
// -------------
|
70 |
|
71 |
-
|
72 |
-
|
|
|
73 |
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
do_action('wbcr/clearfy/activated');
|
78 |
}
|
79 |
|
|
|
|
|
|
|
80 |
/**
|
81 |
-
*
|
82 |
-
*
|
83 |
-
* @since 1.0.0
|
84 |
*/
|
85 |
-
|
86 |
-
|
87 |
-
if( wp_next_scheduled('wbcr_clearfy_license_autosync') ) {
|
88 |
-
wp_clear_scheduled_hook('wbcr_clearfy_license_autosync');
|
89 |
-
}
|
90 |
|
91 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
|
93 |
-
|
94 |
-
if( is_plugin_active($dependent) ) {
|
95 |
-
add_action('update_option_active_plugins', array($this, 'deactivateDependent'));
|
96 |
-
}
|
97 |
-
add_action('update_site_option_active_sitewide_plugins', array($this, 'deactivateDependent'));
|
98 |
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
do_action('wbcr/clearfy/deactivated');
|
103 |
}
|
|
|
104 |
|
105 |
/**
|
106 |
-
*
|
107 |
*/
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
|
|
|
|
|
|
|
|
|
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 Factory421_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_Factory421_Activator {
|
17 |
+
|
18 |
/**
|
19 |
+
* Runs activation actions.
|
20 |
+
*
|
21 |
+
* @since 1.0.0
|
|
|
|
|
22 |
*/
|
23 |
+
public function activate() {
|
24 |
+
if ( ! function_exists( 'is_plugin_active' ) ) {
|
25 |
+
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
26 |
+
}
|
27 |
+
// Deactivate components for code minification, if alternative plugins are installed
|
28 |
+
// -------------
|
29 |
+
$minify_js_plugins = [
|
30 |
+
'autoptimize/autoptimize.php',
|
31 |
+
'fast-velocity-minify/fvm.php',
|
32 |
+
'js-css-script-optimizer/js-css-script-optimizer.php',
|
33 |
+
'merge-minify-refresh/merge-minify-refresh.php',
|
34 |
+
'wp-super-minify/wp-super-minify.php'
|
35 |
+
];
|
36 |
+
|
37 |
+
$is_activate_minify_js = true;
|
38 |
+
foreach ( $minify_js_plugins as $m_plugin ) {
|
39 |
+
|
40 |
+
if ( is_plugin_active( $m_plugin ) ) {
|
41 |
+
$is_activate_minify_js = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
}
|
43 |
+
}
|
44 |
|
45 |
+
if ( ! $is_activate_minify_js ) {
|
46 |
+
WCL_Plugin::app()->deactivateComponent( 'minify_and_combine' );
|
47 |
+
WCL_Plugin::app()->deactivateComponent( 'html_minify' );
|
48 |
+
}
|
49 |
|
50 |
+
// -------------
|
51 |
+
// Deactivate yoast component features if it is not activated
|
52 |
+
// -------------
|
|
|
53 |
|
54 |
+
if ( ! defined( 'WPSEO_VERSION' ) ) {
|
55 |
+
WCL_Plugin::app()->deactivateComponent( 'yoast_seo' );
|
56 |
+
}
|
57 |
|
58 |
+
// Deactivate cyrlitera component for all languages except selected
|
59 |
+
if ( ! in_array( get_locale(), [ 'ru_RU', 'bel', 'kk', 'uk', 'bg', 'bg_BG', 'ka_GE' ] ) ) {
|
60 |
+
WCL_Plugin::app()->deactivateComponent( 'cyrlitera' );
|
|
|
61 |
}
|
62 |
|
63 |
+
//$package_plugin = WCL_Package::instance();
|
64 |
+
//$package_plugin->active();
|
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 |
+
if ( wp_next_scheduled( 'wbcr_clearfy_license_autosync' ) ) {
|
79 |
+
wp_clear_scheduled_hook( 'wbcr_clearfy_license_autosync' );
|
80 |
+
}
|
81 |
|
82 |
+
$dependent = 'clearfy_package/clearfy-package.php';
|
|
|
|
|
|
|
|
|
83 |
|
84 |
+
require_once ABSPATH . '/wp-admin/includes/plugin.php';
|
85 |
+
if ( is_plugin_active( $dependent ) ) {
|
86 |
+
add_action( 'update_option_active_plugins', [ $this, 'deactivateDependent' ] );
|
|
|
87 |
}
|
88 |
+
add_action( 'update_site_option_active_sitewide_plugins', [ $this, 'deactivateDependent' ] );
|
89 |
|
90 |
/**
|
91 |
+
* @since 1.4.1
|
92 |
*/
|
93 |
+
//do_action( 'wbcr/clearfy/deactivated' );
|
94 |
+
//}*/
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Deactivate clearfy package
|
98 |
+
*/
|
99 |
+
/*public function deactivateDependent() {
|
100 |
+
$package_plugin = WCL_Package::instance();
|
101 |
+
$package_plugin->deactive();
|
102 |
+
}*/
|
103 |
+
}
|
admin/ajax/check-license.php
DELETED
@@ -1,90 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Ajax plugin check licensing
|
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 |
-
* @since 1.4.0
|
18 |
-
*/
|
19 |
-
function wbcr_clearfy_check_license() {
|
20 |
-
|
21 |
-
check_admin_referer( 'license' );
|
22 |
-
|
23 |
-
$action = WCL_Plugin::app()->request->post( 'license_action', false, true );
|
24 |
-
$license_key = WCL_Plugin::app()->request->post( 'licensekey', null );
|
25 |
-
|
26 |
-
if ( empty( $action ) || ! in_array( $action, array( 'activate', 'deactivate', 'sync', 'unsubscribe' ) ) ) {
|
27 |
-
wp_send_json_error( array( 'error_message' => __( 'Licensing action not passed or this action is prohibited!', 'clearfy' ) ) );
|
28 |
-
die();
|
29 |
-
}
|
30 |
-
|
31 |
-
$licensing = WCL_Licensing::instance();
|
32 |
-
|
33 |
-
$result = null;
|
34 |
-
$success_message = '';
|
35 |
-
|
36 |
-
try {
|
37 |
-
switch ( $action ) {
|
38 |
-
case 'activate':
|
39 |
-
if ( empty( $license_key ) || strlen( $license_key ) > 32 ) {
|
40 |
-
wp_send_json_error( array( 'error_message' => __( 'License key is empty or license key too long (license key is 32 characters long)', 'clearfy' ) ) );
|
41 |
-
} else {
|
42 |
-
$licensing->activate( $license_key );
|
43 |
-
|
44 |
-
$success_message = __( 'Your license has been successfully activated', 'clearfy' );
|
45 |
-
}
|
46 |
-
break;
|
47 |
-
case 'deactivate':
|
48 |
-
$licensing->uninstall();
|
49 |
-
$success_message = __( 'The license is deactivated', 'clearfy' );
|
50 |
-
break;
|
51 |
-
case 'sync':
|
52 |
-
$licensing->sync();
|
53 |
-
$success_message = __( 'The license has been updated', 'clearfy' );
|
54 |
-
break;
|
55 |
-
case 'unsubscribe':
|
56 |
-
$licensing->unsubscribe();
|
57 |
-
$success_message = __( 'Subscription success cancelled', 'clearfy' );
|
58 |
-
break;
|
59 |
-
}
|
60 |
-
} catch( WCL\LicenseException $e ) {
|
61 |
-
/**
|
62 |
-
* Экшен выполняет, когда проверка лицензии вернула ошибку
|
63 |
-
*
|
64 |
-
* @param string $action
|
65 |
-
* @param string $license_key
|
66 |
-
*
|
67 |
-
* @since 1.4.0
|
68 |
-
*/
|
69 |
-
add_action( 'wbcr/clearfy/check_license_error', $action, $license_key );
|
70 |
-
|
71 |
-
wp_send_json_error( array( 'error_message' => $e->getMessage(), 'code' => $e->getCode() ) );
|
72 |
-
}
|
73 |
-
|
74 |
-
/**
|
75 |
-
* Экшен выполняет, когда проверка лицензии успешно завершена
|
76 |
-
*
|
77 |
-
* @param string $action
|
78 |
-
* @param string $license_key
|
79 |
-
*
|
80 |
-
* @since 1.4.0
|
81 |
-
*/
|
82 |
-
add_action( 'wbcr/clearfy/check_license_success', $action, $license_key );
|
83 |
-
|
84 |
-
wp_send_json_success( array( 'message' => $success_message ) );
|
85 |
-
|
86 |
-
die();
|
87 |
-
}
|
88 |
-
|
89 |
-
add_action( 'wp_ajax_wbcr-clearfy-check-license', 'wbcr_clearfy_check_license' );
|
90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/ajax/configurate.php
CHANGED
@@ -57,7 +57,7 @@
|
|
57 |
}
|
58 |
|
59 |
if( !$flush_redirect ) {
|
60 |
-
|
61 |
}
|
62 |
|
63 |
do_action('wbcr_clearfy_configurated_quick_mode', $mode_name);
|
57 |
}
|
58 |
|
59 |
if( !$flush_redirect ) {
|
60 |
+
WbcrFactoryClearfy213_Helpers::flushPageCache();
|
61 |
}
|
62 |
|
63 |
do_action('wbcr_clearfy_configurated_quick_mode', $mode_name);
|
admin/ajax/import-settings.php
CHANGED
@@ -62,7 +62,7 @@
|
|
62 |
}
|
63 |
|
64 |
if( is_array($option_value) || is_object($option_value) ) {
|
65 |
-
$option_value =
|
66 |
$option_value = maybe_serialize($option_value);
|
67 |
} else {
|
68 |
$option_value = wp_kses_post($option_value);
|
@@ -136,11 +136,11 @@
|
|
136 |
|
137 |
$send_data = array('status' => 'success');
|
138 |
|
139 |
-
|
140 |
-
|
141 |
|
142 |
// Сбрасываем кеш для кеширующих плагинов
|
143 |
-
|
144 |
|
145 |
do_action('wbcr_clearfy_imported_settings');
|
146 |
|
62 |
}
|
63 |
|
64 |
if( is_array($option_value) || is_object($option_value) ) {
|
65 |
+
$option_value = WbcrFactoryClearfy213_Helpers::recursiveSanitizeArray($option_value, 'wp_kses_post');
|
66 |
$option_value = maybe_serialize($option_value);
|
67 |
} else {
|
68 |
$option_value = wp_kses_post($option_value);
|
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 |
+
WbcrFactoryClearfy213_Helpers::flushPageCache();
|
144 |
|
145 |
do_action('wbcr_clearfy_imported_settings');
|
146 |
|
admin/ajax/install-addons.php
CHANGED
@@ -1,9 +1,10 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Ajax plugin configuration
|
4 |
-
*
|
|
|
5 |
* @copyright (c) 2017 Webraftic Ltd
|
6 |
-
* @version
|
7 |
*/
|
8 |
|
9 |
// Exit if accessed directly
|
@@ -16,103 +17,79 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
16 |
*/
|
17 |
function wbcr_clearfy_update_component() {
|
18 |
check_ajax_referer( 'updates' );
|
19 |
-
|
20 |
-
$slug
|
21 |
-
$action
|
22 |
$storage = WCL_Plugin::app()->request->post( 'storage', null, true );
|
23 |
-
|
24 |
if ( ! WCL_Plugin::app()->currentUserCan() ) {
|
25 |
wp_die( __( 'You don\'t have enough capability to edit this information.', 'clearfy' ), __( 'Something went wrong.' ), 403 );
|
26 |
}
|
27 |
-
|
28 |
if ( empty( $slug ) || empty( $action ) ) {
|
29 |
-
wp_send_json_error(
|
30 |
}
|
31 |
-
$success
|
32 |
-
$send_data =
|
33 |
-
|
34 |
-
if ( $storage == '
|
35 |
-
$licensing = WCL_Licensing::instance();
|
36 |
-
$result = false;
|
37 |
-
|
38 |
-
switch ( $action ) {
|
39 |
-
case 'deactivate':
|
40 |
-
$result = $licensing->deactivateAddon( $slug );
|
41 |
-
break;
|
42 |
-
case 'activate':
|
43 |
-
$result = $licensing->activateAddon( $slug );
|
44 |
-
break;
|
45 |
-
default:
|
46 |
-
wp_send_json_error( array( 'error_message' => __( 'You are trying to perform an invalid action.', 'clearfy' ) ) );
|
47 |
-
break;
|
48 |
-
}
|
49 |
-
|
50 |
-
if ( is_wp_error( $result ) ) {
|
51 |
-
wp_send_json_error( array( 'error_message' => $result->get_error_message() ) );
|
52 |
-
} else {
|
53 |
-
$success = true;
|
54 |
-
$package_plugin = WCL_Package::instance();
|
55 |
-
$send_data['update_notice'] = $package_plugin->getUpdateNotice();
|
56 |
-
}
|
57 |
-
} else if ( $storage == 'internal' ) {
|
58 |
-
|
59 |
if ( $action == 'activate' ) {
|
60 |
if ( WCL_Plugin::app()->activateComponent( $slug ) ) {
|
61 |
$success = true;
|
62 |
}
|
63 |
} else if ( $action == 'deactivate' ) {
|
64 |
-
|
65 |
if ( WCL_Plugin::app()->deactivateComponent( $slug ) ) {
|
66 |
$success = true;
|
67 |
}
|
68 |
} else {
|
69 |
-
wp_send_json_error(
|
70 |
}
|
71 |
} else if ( $storage == 'wordpress' ) {
|
72 |
if ( ! empty( $slug ) ) {
|
73 |
$network_wide = WCL_Plugin::app()->isNetworkActive();
|
74 |
-
|
75 |
if ( $action == 'activate' ) {
|
76 |
$result = activate_plugin( $slug, '', $network_wide );
|
77 |
-
|
78 |
if ( is_wp_error( $result ) ) {
|
79 |
-
wp_send_json_error(
|
80 |
}
|
81 |
} else if ( $action == 'deactivate' ) {
|
82 |
deactivate_plugins( $slug, false, $network_wide );
|
83 |
}
|
84 |
-
|
85 |
$success = true;
|
86 |
}
|
87 |
}
|
88 |
-
|
89 |
if ( $action == 'install' || $action == 'deactivate' ) {
|
90 |
try {
|
91 |
// Delete button
|
92 |
-
$delete_button
|
93 |
$send_data['delete_button'] = $delete_button->getButton();
|
94 |
} catch( Exception $e ) {
|
95 |
-
wp_send_json_error(
|
96 |
}
|
97 |
}
|
98 |
-
|
99 |
// Если требуется обновить постоянные ссылки, даем сигнал, что пользователю, нужно показать
|
100 |
// всплывающее уведомление.
|
101 |
// todo: сделать более красивое решение с передачей текстовых сообщений
|
102 |
-
if ( $action == 'deactivate' ) {
|
103 |
$is_need_rewrite_rules = WCL_Plugin::app()->getPopulateOption( 'need_rewrite_rules' );
|
104 |
if ( $is_need_rewrite_rules ) {
|
105 |
$send_data['need_rewrite_rules'] = 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>' );
|
106 |
}
|
107 |
-
}
|
108 |
-
|
109 |
if ( $success ) {
|
110 |
do_action( 'wbcr_clearfy_update_component', $slug, $action, $storage );
|
111 |
-
|
112 |
wp_send_json_success( $send_data );
|
113 |
}
|
114 |
-
|
115 |
-
wp_send_json_error(
|
116 |
}
|
117 |
|
118 |
add_action( 'wp_ajax_wbcr-clearfy-update-component', 'wbcr_clearfy_update_component' );
|
@@ -124,19 +101,19 @@ add_action( 'wp_ajax_wbcr-clearfy-update-component', 'wbcr_clearfy_update_compon
|
|
124 |
*/
|
125 |
function wbcr_clearfy_prepare_component() {
|
126 |
check_ajax_referer( 'updates' );
|
127 |
-
|
128 |
$component_name = WCL_Plugin::app()->request->post( 'plugin', null, true );
|
129 |
-
|
130 |
if ( ! WCL_Plugin::app()->currentUserCan() ) {
|
131 |
-
wp_send_json_error(
|
132 |
}
|
133 |
-
|
134 |
if ( empty( $component_name ) ) {
|
135 |
-
wp_send_json_error(
|
136 |
}
|
137 |
-
|
138 |
do_action( 'wbcr/clearfy/activated_component', $component_name );
|
139 |
-
|
140 |
wp_send_json_success();
|
141 |
}
|
142 |
|
1 |
<?php
|
2 |
/**
|
3 |
* Ajax plugin configuration
|
4 |
+
*
|
5 |
+
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
6 |
* @copyright (c) 2017 Webraftic Ltd
|
7 |
+
* @version 1.0
|
8 |
*/
|
9 |
|
10 |
// Exit if accessed directly
|
17 |
*/
|
18 |
function wbcr_clearfy_update_component() {
|
19 |
check_ajax_referer( 'updates' );
|
20 |
+
|
21 |
+
$slug = WCL_Plugin::app()->request->post( 'plugin', null, true );
|
22 |
+
$action = WCL_Plugin::app()->request->post( 'plugin_action', null, true );
|
23 |
$storage = WCL_Plugin::app()->request->post( 'storage', null, true );
|
24 |
+
|
25 |
if ( ! WCL_Plugin::app()->currentUserCan() ) {
|
26 |
wp_die( __( 'You don\'t have enough capability to edit this information.', 'clearfy' ), __( 'Something went wrong.' ), 403 );
|
27 |
}
|
28 |
+
|
29 |
if ( empty( $slug ) || empty( $action ) ) {
|
30 |
+
wp_send_json_error( [ 'error_message' => __( 'Required attributes are not passed or empty.', 'clearfy' ) ] );
|
31 |
}
|
32 |
+
$success = false;
|
33 |
+
$send_data = [];
|
34 |
+
|
35 |
+
if ( $storage == 'internal' ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
if ( $action == 'activate' ) {
|
37 |
if ( WCL_Plugin::app()->activateComponent( $slug ) ) {
|
38 |
$success = true;
|
39 |
}
|
40 |
} else if ( $action == 'deactivate' ) {
|
41 |
+
|
42 |
if ( WCL_Plugin::app()->deactivateComponent( $slug ) ) {
|
43 |
$success = true;
|
44 |
}
|
45 |
} else {
|
46 |
+
wp_send_json_error( [ 'error_message' => __( 'You are trying to perform an invalid action.', 'clearfy' ) ] );
|
47 |
}
|
48 |
} else if ( $storage == 'wordpress' ) {
|
49 |
if ( ! empty( $slug ) ) {
|
50 |
$network_wide = WCL_Plugin::app()->isNetworkActive();
|
51 |
+
|
52 |
if ( $action == 'activate' ) {
|
53 |
$result = activate_plugin( $slug, '', $network_wide );
|
54 |
+
|
55 |
if ( is_wp_error( $result ) ) {
|
56 |
+
wp_send_json_error( [ 'error_message' => $result->get_error_message() ] );
|
57 |
}
|
58 |
} else if ( $action == 'deactivate' ) {
|
59 |
deactivate_plugins( $slug, false, $network_wide );
|
60 |
}
|
61 |
+
|
62 |
$success = true;
|
63 |
}
|
64 |
}
|
65 |
+
|
66 |
if ( $action == 'install' || $action == 'deactivate' ) {
|
67 |
try {
|
68 |
// Delete button
|
69 |
+
$delete_button = WCL_Plugin::app()->getDeleteComponentsButton( $storage, $slug );
|
70 |
$send_data['delete_button'] = $delete_button->getButton();
|
71 |
} catch( Exception $e ) {
|
72 |
+
wp_send_json_error( [ 'error_message' => $e->getMessage() ] );
|
73 |
}
|
74 |
}
|
75 |
+
|
76 |
// Если требуется обновить постоянные ссылки, даем сигнал, что пользователю, нужно показать
|
77 |
// всплывающее уведомление.
|
78 |
// todo: сделать более красивое решение с передачей текстовых сообщений
|
79 |
+
/*if ( $action == 'deactivate' ) {
|
80 |
$is_need_rewrite_rules = WCL_Plugin::app()->getPopulateOption( 'need_rewrite_rules' );
|
81 |
if ( $is_need_rewrite_rules ) {
|
82 |
$send_data['need_rewrite_rules'] = 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>' );
|
83 |
}
|
84 |
+
}*/
|
85 |
+
|
86 |
if ( $success ) {
|
87 |
do_action( 'wbcr_clearfy_update_component', $slug, $action, $storage );
|
88 |
+
|
89 |
wp_send_json_success( $send_data );
|
90 |
}
|
91 |
+
|
92 |
+
wp_send_json_error( [ 'error_message' => __( 'An unknown error occurred during the activation of the component.', 'clearfy' ) ] );
|
93 |
}
|
94 |
|
95 |
add_action( 'wp_ajax_wbcr-clearfy-update-component', 'wbcr_clearfy_update_component' );
|
101 |
*/
|
102 |
function wbcr_clearfy_prepare_component() {
|
103 |
check_ajax_referer( 'updates' );
|
104 |
+
|
105 |
$component_name = WCL_Plugin::app()->request->post( 'plugin', null, true );
|
106 |
+
|
107 |
if ( ! WCL_Plugin::app()->currentUserCan() ) {
|
108 |
+
wp_send_json_error( [ 'error_message' => __( 'You don\'t have enough capability to edit this information.', 'clearfy' ) ], 403 );
|
109 |
}
|
110 |
+
|
111 |
if ( empty( $component_name ) ) {
|
112 |
+
wp_send_json_error( [ 'error_message' => __( 'Required attribute [component_name] is empty.', 'clearfy' ) ] );
|
113 |
}
|
114 |
+
|
115 |
do_action( 'wbcr/clearfy/activated_component', $component_name );
|
116 |
+
|
117 |
wp_send_json_success();
|
118 |
}
|
119 |
|
admin/ajax/update-package.php
DELETED
@@ -1,85 +0,0 @@
|
|
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 |
-
* This action allows you to process Ajax requests to activate external components Clearfy
|
16 |
-
*/
|
17 |
-
function wbcr_clearfy_update_package()
|
18 |
-
{
|
19 |
-
|
20 |
-
check_ajax_referer('package');
|
21 |
-
|
22 |
-
$licensing = WCL_Licensing::instance();
|
23 |
-
$licensing->getAddons(true); // обновляем список аддонов
|
24 |
-
|
25 |
-
$package_plugin = WCL_Package::instance();
|
26 |
-
|
27 |
-
if( !$licensing->isLicenseValid() and $licensing->isActivePaidAddons() ) {
|
28 |
-
wp_send_json_error(array('error_message' => __('To use premium components, you need activate a license!', 'clearfy') . '<a href="admin.php?page=license-wbcr_clearfy" class="btn btn-gold">' . __('Activate license', 'clearfy') . '</a>'));
|
29 |
-
}
|
30 |
-
|
31 |
-
$old_components = $package_plugin->getActivedAddons();
|
32 |
-
|
33 |
-
$data = array();
|
34 |
-
$success = false;
|
35 |
-
|
36 |
-
try {
|
37 |
-
$result = $package_plugin->update();
|
38 |
-
|
39 |
-
if( is_wp_error($result) ) {
|
40 |
-
wp_send_json_error(array(
|
41 |
-
'error_message' => __($result->get_error_message(), 'clearfy'),
|
42 |
-
'code' => __($result->get_error_code(), 'clearfy'),
|
43 |
-
));
|
44 |
-
}
|
45 |
-
$success = true;
|
46 |
-
|
47 |
-
$data['message'] = __('Configuration updated.', 'clearfy');
|
48 |
-
$data['result'] = $result;
|
49 |
-
} catch( Exception $e ) {
|
50 |
-
wp_send_json_error(array(
|
51 |
-
'error_message' => $e->getMessage(),
|
52 |
-
'code' => $e->getCode(),
|
53 |
-
));
|
54 |
-
}
|
55 |
-
|
56 |
-
if( $success ) {
|
57 |
-
|
58 |
-
do_action('wbcr_clearfy_package_updated', $package_plugin->getSlugs());
|
59 |
-
|
60 |
-
$get_new_components = $package_plugin->getActivedAddons();
|
61 |
-
|
62 |
-
if( !empty($old_components) ) {
|
63 |
-
$net_components = array_diff_key($get_new_components, $old_components);
|
64 |
-
} else {
|
65 |
-
$net_components = $get_new_components;
|
66 |
-
}
|
67 |
-
|
68 |
-
if( !empty($net_components) ) {
|
69 |
-
foreach($net_components as $component_name => $value) {
|
70 |
-
/**
|
71 |
-
* После обновления пакета компонентов, мы принудительно вызываем классы активации для новых загруженных компонентов.
|
72 |
-
* Если компонент уже был загружен, для него не нужно вызывать хук активации, так как за это отвечает уже другой обработчик.
|
73 |
-
* @since 1.4.2
|
74 |
-
*/
|
75 |
-
do_action('wbcr/clearfy/activated_component', $component_name);
|
76 |
-
}
|
77 |
-
}
|
78 |
-
|
79 |
-
wp_send_json_success($data);
|
80 |
-
}
|
81 |
-
|
82 |
-
wp_send_json_error(array('error_message' => __('An unknown error occurred during the activation of the component.', 'clearfy')));
|
83 |
-
}
|
84 |
-
|
85 |
-
add_action('wp_ajax_wbcr-clearfy-update-package', 'wbcr_clearfy_update_package');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/assets/css/components.css
CHANGED
@@ -1,107 +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 .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.
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
color: #
|
85 |
-
text-
|
86 |
-
font-
|
87 |
-
font-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
}
|
92 |
-
#WBCR .wbcr-clearfy-components .plugin-card.plugin-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["components.less"],"names":[],"mappings":";;;;;AAMA,KAkBE;EACE,oBAAA;EACA,kBAAA;;AApBJ,KAkBE,yBAIE;EACE,kBAAA;EACA,qBAAA;EACA,YAAA;EACA,aAAA;EACA,cAAA;EACA,eAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;;AAEA,KAfJ,yBAIE,aAWG;EACC,cAAA;;AAlCR,KAkBE,yBAIE,aAeE;EACE,kBAAA;EACA,SAAA;EACA,QAAA;EACA,OAAA;;AAzCR,KAkBE,yBAIE,aAsBE;EACE,iBAAA;;AA7CR,KAkBE,yBAIE,aA0BE;AAhDN,KAkBE,yBAIE,aA0BS;EACL,0BAAA;;AAjDR,KAkBE,yBAIE,aA8BE,MACE;EACE,eAAA;EACA,wBAAA;;AAvDV,KAkBE,yBAIE,aAqCE;EACE,YAAA;;AA5DR,KAkBE,yBAIE,aAyCE;EACE,YAAA;EACA,gBAAA;;AAjER,KAkBE,yBAIE,aAyCE,YAIE;AAnER,KAkBE,yBAIE,aAyCE,YAIc,kBAAiB;EAC3B,0BAAA;EACA,gBAAA;EACA,cAAA;;AAtEV,KAkBE,yBAIE,aAoDE,EAAC;EACC,cAAA;EACA,qBAAA;EACA,gBAAA;EACA,eAAA;;AA9ER,KAkBE,yBAIE,aA4DE;EAhFF,kBAAA;EACA,YAAA;EACA,QAAA;EACA,YAAA;EACA,YAAA;EACA,0BAAA;EACA,yBAAA;EACA,cAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,yBAAA;EACA,UAAA;;AAfJ,KAkBE,yBAIE,aAiEE;EArFF,kBAAA;EACA,YAAA;EACA,QAAA;EACA,YAAA;EACA,YAAA;EACA,0BAAA;EACA,yBAAA;EACA,cAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,yBAAA;EACA,UAAA;;AAfJ,KAkBE,yBAIE,aAsEE;EA1FF,kBAAA;EACA,YAAA;EACA,QAAA;EACA,YAAA;EACA,YAAA;EACA,0BAAA;EACA,yBAAA;EACA,cAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,yBAAA;EACA,UAAA;;AAiFE,KA9EJ,yBAIE,aA0EG;EACC,qBAAA;EACA,yBAAA;;AAGF,KAnFJ,yBAIE,aA+EG;EACC,yBAAA;;AADF,KAnFJ,yBAIE,aA+EG,uBAIC,EAAC;EACC,cAAA;EACA,qBAAA;EACA,gBAAA;EACA,eAAA;;AARJ,KAnFJ,yBAIE,aA+EG,uBAWC;EACE,YAAA;;AAZJ,KAnFJ,yBAIE,aA+EG,uBAeC;EACE,cAAA;;AAGF,KAtGN,yBAIE,aA+EG,uBAmBE;EACC,yBAAA;;AAOV,mBAAsC;EACpC,KACE,yBACE;IACE,UAAA;;;AAMR,mBAAsC;EACpC,KACE,yBACE;IACE,WAAA","file":"components.css"}
|
admin/assets/css/components.less
CHANGED
@@ -5,9 +5,27 @@
|
|
5 |
*/
|
6 |
|
7 |
#WBCR {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
.wbcr-clearfy-components {
|
9 |
padding: 0 20px 20px;
|
10 |
text-align: center;
|
|
|
11 |
.plugin-card {
|
12 |
position: relative;
|
13 |
display: inline-block;
|
@@ -33,15 +51,18 @@
|
|
33 |
.plugin-card-top {
|
34 |
min-height: 163px;
|
35 |
}
|
|
|
36 |
.desc, .name {
|
37 |
margin-right: 0 !important;
|
38 |
}
|
|
|
39 |
.name {
|
40 |
h3 {
|
41 |
font-size: 17px;
|
42 |
margin-top: 0 !important;
|
43 |
}
|
44 |
}
|
|
|
45 |
.install-now {
|
46 |
float: right;
|
47 |
}
|
@@ -49,6 +70,7 @@
|
|
49 |
.delete-now {
|
50 |
float: right;
|
51 |
margin-left: 5px;
|
|
|
52 |
.dashicons, .dashicons-before:before {
|
53 |
font-size: 16px !important;
|
54 |
line-height: 1.5 !important;
|
@@ -64,21 +86,18 @@
|
|
64 |
}
|
65 |
|
66 |
// Premium
|
67 |
-
.premium-ribbon {
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
line-height: 2.4;
|
80 |
-
text-transform: uppercase;
|
81 |
-
z-index: 1;
|
82 |
}
|
83 |
|
84 |
&.premium {
|
@@ -96,6 +115,7 @@
|
|
96 |
font-weight: 600;
|
97 |
font-size: 15px;
|
98 |
}
|
|
|
99 |
.plugin-icon {
|
100 |
opacity: 0.3;
|
101 |
}
|
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;
|
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 |
}
|
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;
|
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 {
|
115 |
font-weight: 600;
|
116 |
font-size: 15px;
|
117 |
}
|
118 |
+
|
119 |
.plugin-icon {
|
120 |
opacity: 0.3;
|
121 |
}
|
admin/assets/css/general.css
CHANGED
@@ -1,494 +1,495 @@
|
|
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-
|
37 |
-
height: 80px !important;
|
38 |
-
}
|
39 |
-
#WBCR .wbcr-factory-pages-
|
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 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
-
|
272 |
-
-
|
273 |
-
-
|
274 |
-
transition: all 0.2s ease-out;
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
color:
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
}
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch .
|
295 |
-
#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
margin-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
}
|
314 |
-
|
315 |
-
|
316 |
-
color: #
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
color: #
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
#WBCR #wbcr-clearfy-quick-mode-board .wbcr-clearfy-switch.wbcr-clearfy-switch-mode-recommended .
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
color: #
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
background
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
-
|
355 |
-
-
|
356 |
-
-
|
357 |
-
transition: all 0.3s ease-out;
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
font-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
color: #
|
372 |
-
|
373 |
-
|
374 |
-
color: #
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
color: #
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
}
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
overflow-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
#WBCR .wbcr-clearfy-confirm-popup .wbcr-clearfy-popup-buttons button
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
#WBCR .wbcr-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
}
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
#WBCR .wbcr-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
}
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
}
|
|
|
494 |
/*# 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-421-impressive-page-template .wbcr-factory-page-header {
|
37 |
+
height: 80px !important;
|
38 |
+
}
|
39 |
+
#WBCR .wbcr-factory-pages-421-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 */
|
admin/assets/css/general.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["general.less"],"names":[],"mappings":"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
|
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/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/js/general.js
CHANGED
@@ -87,13 +87,13 @@
|
|
87 |
* Хук выполняет проивольную функцию, после того как получен ajax ответ о том, что в
|
88 |
* результате конфигурации произошла ошибка Реализация системы фильтров и хуков в файле
|
89 |
* libs/clearfy/admin/assests/js/global.js Пример регистрации хука
|
90 |
-
* $.
|
91 |
* function(noticeId) {});
|
92 |
* @param {string} modeName - имя режима конфигурации
|
93 |
* @param {object} data
|
94 |
*/
|
95 |
|
96 |
-
$.
|
97 |
modeName,
|
98 |
data
|
99 |
]);
|
@@ -110,12 +110,12 @@
|
|
110 |
* Хук выполняет проивольную функцию, после того как получен ajax ответ об успешном выполнении
|
111 |
* конфигурации Реализация системы фильтров и хуков в файле
|
112 |
* libs/clearfy/admin/assests/js/global.js Пример регистрации хука
|
113 |
-
* $.
|
114 |
* {});
|
115 |
* @param {string} modeName - имя режима конфигурации
|
116 |
* @param {object} data
|
117 |
*/
|
118 |
-
$.
|
119 |
|
120 |
if( modeName != 'reset' ) {
|
121 |
switcher.addClass('wbcr-clearfy-active');
|
@@ -183,12 +183,12 @@
|
|
183 |
$this = $(this);
|
184 |
|
185 |
if( !settings ) {
|
186 |
-
$.
|
187 |
return false;
|
188 |
}
|
189 |
|
190 |
if( void 0 == wbcr_clearfy_ajax || !wbcr_clearfy_ajax.import_options_nonce ) {
|
191 |
-
$.
|
192 |
return false;
|
193 |
}
|
194 |
|
@@ -203,7 +203,7 @@
|
|
203 |
|
204 |
if( response.data.update_notice ) {
|
205 |
if( !$('.wbcr-clr-update-package').length ) {
|
206 |
-
$.
|
207 |
}
|
208 |
} else {
|
209 |
if( $('.wbcr-clr-update-package').length ) {
|
@@ -240,15 +240,15 @@
|
|
240 |
console.log(data);
|
241 |
|
242 |
if( data ) {
|
243 |
-
noticeId = $.
|
244 |
} else {
|
245 |
if( void 0 != wbcr_clearfy_ajax ) {
|
246 |
-
noticeId = $.
|
247 |
}
|
248 |
}
|
249 |
|
250 |
setTimeout(function() {
|
251 |
-
$.
|
252 |
}, 5000);
|
253 |
return;
|
254 |
}
|
@@ -257,10 +257,10 @@
|
|
257 |
|
258 |
if( !request_data.flush_redirect ) {
|
259 |
if( void 0 != wbcr_clearfy_ajax ) {
|
260 |
-
noticeId = $.
|
261 |
|
262 |
setTimeout(function() {
|
263 |
-
$.
|
264 |
}, 5000);
|
265 |
}
|
266 |
return;
|
@@ -275,7 +275,7 @@
|
|
275 |
console.log(xhr.responseText);
|
276 |
console.log(thrownError);
|
277 |
|
278 |
-
var noticeId = $.
|
279 |
}
|
280 |
});
|
281 |
}
|
87 |
* Хук выполняет проивольную функцию, после того как получен ajax ответ о том, что в
|
88 |
* результате конфигурации произошла ошибка Реализация системы фильтров и хуков в файле
|
89 |
* libs/clearfy/admin/assests/js/global.js Пример регистрации хука
|
90 |
+
* $.wbcr_factory_clearfy_213.hooks.add('wbcr/factory_clearfy_213/updated',
|
91 |
* function(noticeId) {});
|
92 |
* @param {string} modeName - имя режима конфигурации
|
93 |
* @param {object} data
|
94 |
*/
|
95 |
|
96 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/quick_start/configurated_error', [
|
97 |
modeName,
|
98 |
data
|
99 |
]);
|
110 |
* Хук выполняет проивольную функцию, после того как получен ajax ответ об успешном выполнении
|
111 |
* конфигурации Реализация системы фильтров и хуков в файле
|
112 |
* libs/clearfy/admin/assests/js/global.js Пример регистрации хука
|
113 |
+
* $.wbcr_factory_clearfy_213.hooks.add('wbcr/factory_clearfy_213/updated', function(noticeId)
|
114 |
* {});
|
115 |
* @param {string} modeName - имя режима конфигурации
|
116 |
* @param {object} data
|
117 |
*/
|
118 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/quick_start/configurated', [modeName, data]);
|
119 |
|
120 |
if( modeName != 'reset' ) {
|
121 |
switcher.addClass('wbcr-clearfy-active');
|
183 |
$this = $(this);
|
184 |
|
185 |
if( !settings ) {
|
186 |
+
$.wbcr_factory_clearfy_213.app.showNotice('Import options is empty!', 'danger');
|
187 |
return false;
|
188 |
}
|
189 |
|
190 |
if( void 0 == wbcr_clearfy_ajax || !wbcr_clearfy_ajax.import_options_nonce ) {
|
191 |
+
$.wbcr_factory_clearfy_213.app.showNotice('Unknown Javascript error, most likely the wbcr_clearfy_ajax variable does not exist!', 'danger');
|
192 |
return false;
|
193 |
}
|
194 |
|
203 |
|
204 |
if( response.data.update_notice ) {
|
205 |
if( !$('.wbcr-clr-update-package').length ) {
|
206 |
+
$.wbcr_factory_clearfy_213.app.showNotice(response.data.update_notice);
|
207 |
}
|
208 |
} else {
|
209 |
if( $('.wbcr-clr-update-package').length ) {
|
240 |
console.log(data);
|
241 |
|
242 |
if( data ) {
|
243 |
+
noticeId = $.wbcr_factory_clearfy_213.app.showNotice(data.error_message, 'danger');
|
244 |
} else {
|
245 |
if( void 0 != wbcr_clearfy_ajax ) {
|
246 |
+
noticeId = $.wbcr_factory_clearfy_213.app.showNotice(wbcr_clearfy_ajax.i18n.unknown_error, 'danger');
|
247 |
}
|
248 |
}
|
249 |
|
250 |
setTimeout(function() {
|
251 |
+
$.wbcr_factory_clearfy_213.app.hideNotice(noticeId);
|
252 |
}, 5000);
|
253 |
return;
|
254 |
}
|
257 |
|
258 |
if( !request_data.flush_redirect ) {
|
259 |
if( void 0 != wbcr_clearfy_ajax ) {
|
260 |
+
noticeId = $.wbcr_factory_clearfy_213.app.showNotice(wbcr_clearfy_ajax.i18n.success_update_settings, 'success');
|
261 |
|
262 |
setTimeout(function() {
|
263 |
+
$.wbcr_factory_clearfy_213.app.hideNotice(noticeId);
|
264 |
}, 5000);
|
265 |
}
|
266 |
return;
|
275 |
console.log(xhr.responseText);
|
276 |
console.log(thrownError);
|
277 |
|
278 |
+
var noticeId = $.wbcr_factory_clearfy_213.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
|
279 |
}
|
280 |
});
|
281 |
}
|
admin/assets/js/install-addons.js
CHANGED
@@ -53,16 +53,16 @@
|
|
53 |
|
54 |
$this.addClass('disabled').text(button_i18n.loading);
|
55 |
|
56 |
-
$.
|
57 |
|
58 |
self.sendRequest(data, function(response) {
|
59 |
if( !response || !response.success ) {
|
60 |
|
61 |
if( response.data && response.data.error_message ) {
|
62 |
-
$.
|
63 |
}
|
64 |
|
65 |
-
$.
|
66 |
$this,
|
67 |
data,
|
68 |
response.data.error_message,
|
@@ -78,7 +78,7 @@
|
|
78 |
if( storage == 'freemius' ) {
|
79 |
if( response.data.update_notice ) {
|
80 |
if( !$('.wbcr-clr-update-package').length ) {
|
81 |
-
$.
|
82 |
}
|
83 |
} else {
|
84 |
if( $('.wbcr-clr-update-package').length ) {
|
@@ -97,7 +97,7 @@
|
|
97 |
$this.removeClass('button-default').addClass('button-primary');
|
98 |
}
|
99 |
|
100 |
-
$.
|
101 |
$this,
|
102 |
data,
|
103 |
response
|
@@ -147,7 +147,7 @@
|
|
147 |
$this.closest('.plugin-card').find('.delete-now').remove();
|
148 |
}
|
149 |
|
150 |
-
$.
|
151 |
$this,
|
152 |
data,
|
153 |
response
|
@@ -194,7 +194,7 @@
|
|
194 |
$this.closest('.wbcr-hide-after-action').remove();
|
195 |
}
|
196 |
|
197 |
-
$.
|
198 |
$this,
|
199 |
data,
|
200 |
response
|
@@ -217,7 +217,7 @@
|
|
217 |
$this.remove();
|
218 |
}
|
219 |
|
220 |
-
$.
|
221 |
}
|
222 |
} else {
|
223 |
if( plugin_action == 'install' ) {
|
@@ -228,10 +228,10 @@
|
|
228 |
$this.text(button_i18n[plugin_action]);
|
229 |
|
230 |
if( response.data.need_rewrite_rules && !$('.wbcr-clr-need-rewrite-rules-message').length ) {
|
231 |
-
$.
|
232 |
}
|
233 |
|
234 |
-
$.
|
235 |
});
|
236 |
|
237 |
return false;
|
@@ -254,7 +254,7 @@
|
|
254 |
self.sendRequest(data, function(response) {
|
255 |
if( !response || !response.success ) {
|
256 |
if( response.data && response.data.error_message ) {
|
257 |
-
$.
|
258 |
}
|
259 |
return;
|
260 |
}
|
@@ -317,17 +317,17 @@
|
|
317 |
self.setComponentDeactivate(componentButton);
|
318 |
|
319 |
if( response.data && response.data.error_message ) {
|
320 |
-
$.
|
321 |
}
|
322 |
|
323 |
-
$.
|
324 |
return;
|
325 |
}
|
326 |
|
327 |
componentButton.removeClass('button-primary').text(button_i18n['deactivate']);
|
328 |
self.setComponentActivate(componentButton);
|
329 |
|
330 |
-
$.
|
331 |
});
|
332 |
},
|
333 |
|
@@ -346,7 +346,7 @@
|
|
346 |
console.log(xhr.responseText);
|
347 |
console.log(thrownError);
|
348 |
|
349 |
-
$.
|
350 |
}
|
351 |
});
|
352 |
}
|
53 |
|
54 |
$this.addClass('disabled').text(button_i18n.loading);
|
55 |
|
56 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/components/pre_update', [$this, data]);
|
57 |
|
58 |
self.sendRequest(data, function(response) {
|
59 |
if( !response || !response.success ) {
|
60 |
|
61 |
if( response.data && response.data.error_message ) {
|
62 |
+
$.wbcr_factory_clearfy_213.app.showNotice(response.data.error_message, 'danger');
|
63 |
}
|
64 |
|
65 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/components/update_error', [
|
66 |
$this,
|
67 |
data,
|
68 |
response.data.error_message,
|
78 |
if( storage == 'freemius' ) {
|
79 |
if( response.data.update_notice ) {
|
80 |
if( !$('.wbcr-clr-update-package').length ) {
|
81 |
+
$.wbcr_factory_clearfy_213.app.showNotice(response.data.update_notice);
|
82 |
}
|
83 |
} else {
|
84 |
if( $('.wbcr-clr-update-package').length ) {
|
97 |
$this.removeClass('button-default').addClass('button-primary');
|
98 |
}
|
99 |
|
100 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/components/installed', [
|
101 |
$this,
|
102 |
data,
|
103 |
response
|
147 |
$this.closest('.plugin-card').find('.delete-now').remove();
|
148 |
}
|
149 |
|
150 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/components/pre_activate', [
|
151 |
$this,
|
152 |
data,
|
153 |
response
|
194 |
$this.closest('.wbcr-hide-after-action').remove();
|
195 |
}
|
196 |
|
197 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/components/deactivated', [
|
198 |
$this,
|
199 |
data,
|
200 |
response
|
217 |
$this.remove();
|
218 |
}
|
219 |
|
220 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/components/deleted', [$this, data, response]);
|
221 |
}
|
222 |
} else {
|
223 |
if( plugin_action == 'install' ) {
|
228 |
$this.text(button_i18n[plugin_action]);
|
229 |
|
230 |
if( response.data.need_rewrite_rules && !$('.wbcr-clr-need-rewrite-rules-message').length ) {
|
231 |
+
$.wbcr_factory_clearfy_213.app.showNotice(response.data.need_rewrite_rules, 'warning');
|
232 |
}
|
233 |
|
234 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/components/updated', [$this, data, response]);
|
235 |
});
|
236 |
|
237 |
return false;
|
254 |
self.sendRequest(data, function(response) {
|
255 |
if( !response || !response.success ) {
|
256 |
if( response.data && response.data.error_message ) {
|
257 |
+
$.wbcr_factory_clearfy_213.app.showNotice(response.data.error_message, 'danger');
|
258 |
}
|
259 |
return;
|
260 |
}
|
317 |
self.setComponentDeactivate(componentButton);
|
318 |
|
319 |
if( response.data && response.data.error_message ) {
|
320 |
+
$.wbcr_factory_clearfy_213.app.showNotice(response.data.error_message, 'danger');
|
321 |
}
|
322 |
|
323 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/components/activated_error', [sendData.plugin]);
|
324 |
return;
|
325 |
}
|
326 |
|
327 |
componentButton.removeClass('button-primary').text(button_i18n['deactivate']);
|
328 |
self.setComponentActivate(componentButton);
|
329 |
|
330 |
+
$.wbcr_factory_clearfy_213.hooks.run('clearfy/components/activated', [sendData.plugin]);
|
331 |
});
|
332 |
},
|
333 |
|
346 |
console.log(xhr.responseText);
|
347 |
console.log(thrownError);
|
348 |
|
349 |
+
$.wbcr_factory_clearfy_213.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
|
350 |
}
|
351 |
});
|
352 |
}
|
admin/assets/js/license-manager.js
CHANGED
@@ -20,7 +20,7 @@ jQuery(function($) {
|
|
20 |
// Глобальные уведомления не трогаем
|
21 |
|
22 |
for( i = 0; i < allNotices.length; i++ ) {
|
23 |
-
$.
|
24 |
}
|
25 |
|
26 |
$('.wcl-control-btn').hide();
|
@@ -55,7 +55,7 @@ jQuery(function($) {
|
|
55 |
|
56 |
if( response.data ) {
|
57 |
console.log(response.data.error_message);
|
58 |
-
noticeId = $.
|
59 |
allNotices.push(noticeId);
|
60 |
} else {
|
61 |
console.log(response);
|
@@ -65,7 +65,7 @@ jQuery(function($) {
|
|
65 |
}
|
66 |
|
67 |
if( response.data && response.data.message ) {
|
68 |
-
noticeId = $.
|
69 |
allNotices.push(noticeId);
|
70 |
|
71 |
// todo: доработать генерацию формы, вместо перезагрузки страницы
|
@@ -82,7 +82,7 @@ jQuery(function($) {
|
|
82 |
console.log(xhr.responseText);
|
83 |
console.log(thrownError);
|
84 |
|
85 |
-
var noticeId = $.
|
86 |
|
87 |
allNotices.push(noticeId);
|
88 |
}
|
20 |
// Глобальные уведомления не трогаем
|
21 |
|
22 |
for( i = 0; i < allNotices.length; i++ ) {
|
23 |
+
$.wbcr_factory_clearfy_213.app.hideNotice(allNotices[i]);
|
24 |
}
|
25 |
|
26 |
$('.wcl-control-btn').hide();
|
55 |
|
56 |
if( response.data ) {
|
57 |
console.log(response.data.error_message);
|
58 |
+
noticeId = $.wbcr_factory_clearfy_213.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
|
59 |
allNotices.push(noticeId);
|
60 |
} else {
|
61 |
console.log(response);
|
65 |
}
|
66 |
|
67 |
if( response.data && response.data.message ) {
|
68 |
+
noticeId = $.wbcr_factory_clearfy_213.app.showNotice(response.data.message, 'success');
|
69 |
allNotices.push(noticeId);
|
70 |
|
71 |
// todo: доработать генерацию формы, вместо перезагрузки страницы
|
82 |
console.log(xhr.responseText);
|
83 |
console.log(thrownError);
|
84 |
|
85 |
+
var noticeId = $.wbcr_factory_clearfy_213.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
|
86 |
|
87 |
allNotices.push(noticeId);
|
88 |
}
|
admin/assets/js/update-package.js
DELETED
@@ -1,88 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This code provides tools for downloading, installing external add-ons for the Clearfy plugin
|
3 |
-
*
|
4 |
-
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
5 |
-
* @copyright (c) 10.09.2017, Webcraftic
|
6 |
-
* @version 1.0
|
7 |
-
*/
|
8 |
-
|
9 |
-
|
10 |
-
(function($) {
|
11 |
-
'use strict';
|
12 |
-
|
13 |
-
var clearfyPackage = {
|
14 |
-
init: function() {
|
15 |
-
this.events();
|
16 |
-
},
|
17 |
-
events: function() {
|
18 |
-
var self = this;
|
19 |
-
|
20 |
-
/**
|
21 |
-
* This event is intended for installation, removal, activation, deactivation of external add-ons
|
22 |
-
*/
|
23 |
-
|
24 |
-
$(document).on('click', '.wbcr-clr-update-package', function() {
|
25 |
-
var $this = $(this),
|
26 |
-
loading = $(this).data('loading'),
|
27 |
-
wpnonce = $(this).data('wpnonce');
|
28 |
-
|
29 |
-
var data = {
|
30 |
-
action: 'wbcr-clearfy-update-package',
|
31 |
-
_wpnonce: wpnonce
|
32 |
-
};
|
33 |
-
|
34 |
-
$this.addClass('disabled').text(loading);
|
35 |
-
|
36 |
-
self.sendRequest(data, function(response) {
|
37 |
-
var noticeId;
|
38 |
-
|
39 |
-
$this.closest('.wbcr-factory-warning-notice').remove();
|
40 |
-
|
41 |
-
if( !response || !response.success ) {
|
42 |
-
|
43 |
-
if( response.data.error_message ) {
|
44 |
-
console.log(response.data.error_message);
|
45 |
-
noticeId = $.wbcr_factory_clearfy_206.app.showNotice('Error massage: [' + response.data.error_message + ']', 'danger');
|
46 |
-
} else {
|
47 |
-
console.log(response);
|
48 |
-
}
|
49 |
-
|
50 |
-
return;
|
51 |
-
}
|
52 |
-
|
53 |
-
noticeId = $.wbcr_factory_clearfy_206.app.showNotice(response.data.message, 'success');
|
54 |
-
|
55 |
-
setTimeout(function() {
|
56 |
-
$.wbcr_factory_clearfy_206.app.hideNotice(noticeId);
|
57 |
-
}, 5000);
|
58 |
-
});
|
59 |
-
|
60 |
-
return false;
|
61 |
-
});
|
62 |
-
},
|
63 |
-
sendRequest: function(data, callback) {
|
64 |
-
$.ajax(ajaxurl, {
|
65 |
-
type: 'post',
|
66 |
-
dataType: 'json',
|
67 |
-
data: data,
|
68 |
-
success: function(data, textStatus, jqXHR) {
|
69 |
-
callback && callback(data);
|
70 |
-
},
|
71 |
-
error: function(xhr, ajaxOptions, thrownError) {
|
72 |
-
console.log(xhr.status);
|
73 |
-
console.log(xhr.responseText);
|
74 |
-
console.log(thrownError);
|
75 |
-
|
76 |
-
var noticeId = $.wbcr_factory_clearfy_206.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
|
77 |
-
|
78 |
-
allNotices.push(noticeId);
|
79 |
-
}
|
80 |
-
});
|
81 |
-
}
|
82 |
-
};
|
83 |
-
|
84 |
-
$(document).ready(function() {
|
85 |
-
clearfyPackage.init();
|
86 |
-
});
|
87 |
-
|
88 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/boot.php
CHANGED
@@ -7,9 +7,9 @@
|
|
7 |
* I usually register administrator notifications, create handlers before saving
|
8 |
* plugin settings or after, register options in the Clearfy plugin.
|
9 |
*
|
10 |
-
* @author
|
11 |
* @copyright Webcraftic
|
12 |
-
* @version
|
13 |
*/
|
14 |
|
15 |
// Exit if accessed directly
|
@@ -25,111 +25,24 @@ add_action( 'wbcr/factory/pages/impressive/header', function ( $plugin_name ) {
|
|
25 |
return;
|
26 |
}
|
27 |
?>
|
28 |
-
<a href="
|
29 |
-
|
30 |
</a>
|
31 |
<?php
|
32 |
} );
|
33 |
|
34 |
/**
|
35 |
-
*
|
36 |
-
*
|
37 |
-
*
|
38 |
-
*
|
39 |
-
* @param mixed $transient - value of site transient.
|
40 |
-
*/
|
41 |
-
add_filter( 'site_transient_update_plugins', function ( $transient ) {
|
42 |
-
if ( empty( $transient->checked ) ) {
|
43 |
-
return $transient;
|
44 |
-
}
|
45 |
-
|
46 |
-
$package_plugin = WCL_Package::instance();
|
47 |
-
|
48 |
-
if ( ! $package_plugin->isActive() ) {
|
49 |
-
return $transient;
|
50 |
-
}
|
51 |
-
|
52 |
-
$need_update_package = $package_plugin->isNeedUpdate();
|
53 |
-
$need_update_addons = $package_plugin->isNeedUpdateAddons();
|
54 |
-
$info = $package_plugin->info();
|
55 |
-
|
56 |
-
if ( $need_update_package and $need_update_addons ) {
|
57 |
-
$update_data = new stdClass();
|
58 |
-
$update_data->slug = $info['plugin_slug'];
|
59 |
-
$update_data->plugin = $info['plugin_basename'];
|
60 |
-
$update_data->new_version = '1.1';
|
61 |
-
$update_data->package = $package_plugin->downloadUrl();
|
62 |
-
$transient->response[ $update_data->plugin ] = $update_data;
|
63 |
-
}
|
64 |
-
|
65 |
-
return $transient;
|
66 |
-
} );
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина.
|
70 |
-
* Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
|
71 |
-
* иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
|
72 |
-
*
|
73 |
-
* @param Wbcr_Factory409_Plugin $plugin
|
74 |
-
* @param Wbcr_FactoryPages410_ImpressiveThemplate $obj
|
75 |
-
*
|
76 |
-
* @return bool
|
77 |
*/
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
return false;
|
82 |
-
}
|
83 |
-
$package_plugin = WCL_Package::instance();
|
84 |
-
$package_update_notice = $package_plugin->getUpdateNotice();
|
85 |
-
|
86 |
-
if ( $package_update_notice ) {
|
87 |
-
$obj->printWarningNotice( $package_update_notice );
|
88 |
-
}
|
89 |
-
}, 10, 2 );
|
90 |
-
|
91 |
-
/**
|
92 |
-
* Выводит уведомление в строке плагина Clearfy (на странице плагинов),
|
93 |
-
* что нужно обновить пакет компонентов.
|
94 |
-
*
|
95 |
-
* @see WP_Plugins_List_Table
|
96 |
-
*
|
97 |
-
* @param string $plugin_file
|
98 |
-
* @param array $plugin_data
|
99 |
-
* @param string $status
|
100 |
-
*
|
101 |
-
* @return bool
|
102 |
-
*/
|
103 |
-
add_action( 'after_plugin_row_clearfy/clearfy.php', function ( $plugin_file, $plugin_data, $status ) {
|
104 |
-
$package_plugin = WCL_Package::instance();
|
105 |
-
$need_update_package = $package_plugin->isNeedUpdate();
|
106 |
-
|
107 |
-
if ( $need_update_package ) {
|
108 |
-
if ( $package_plugin->isNeedUpdateAddons() ) {
|
109 |
-
$update_link = ' <a href="#" data-wpnonce="' . wp_create_nonce( 'package' ) . '" data-loading="' . __( 'Update in progress...', 'clearfy' ) . '" data-ok="' . __( 'Components have been successfully updated!', 'clearfy' ) . '" class="wbcr-clr-plugin-update-link">' . __( 'update now', 'clearfy' ) . '</a>';
|
110 |
-
?>
|
111 |
-
<tr class="plugin-update-tr active update">
|
112 |
-
<td colspan="3" class="plugin-update colspanchange">
|
113 |
-
<div class="update-message notice inline notice-warning notice-alt" style="background-color:#f5e9f5;border-color: #dab9da;">
|
114 |
-
<p><?= __( 'Updates are available for one of the components.', 'clearfy' ) . $update_link; ?></p>
|
115 |
-
</div>
|
116 |
-
</td>
|
117 |
-
</tr>
|
118 |
-
<?php
|
119 |
-
}
|
120 |
}
|
121 |
-
}, 100, 3 );
|
122 |
|
123 |
-
|
124 |
-
|
125 |
-
* @param Wbcr_Factory409_Plugin $plugin
|
126 |
-
* @param Wbcr_FactoryPages410_ImpressiveThemplate $obj
|
127 |
-
*/
|
128 |
-
function wbcr_clearfy_multisite_before_save( $form, $plugin, $obj ) {
|
129 |
-
|
130 |
-
if ( $plugin->isNetworkActive() ) {
|
131 |
-
$licensing = WCL_Licensing::instance();
|
132 |
-
if ( ! $licensing->isLicenseValid() && WCL_Plugin::app()->isNetworkActive() && $plugin->getPluginName() == WCL_Plugin::app()->getPluginName() ) {
|
133 |
$obj->redirectToAction( 'multisite-pro' );
|
134 |
}
|
135 |
}
|
@@ -140,87 +53,67 @@ add_action( 'wbcr/factory/pages/impressive/before_form_save', 'wbcr_clearfy_mult
|
|
140 |
/**
|
141 |
* Устанавливает логотип Webcraftic и сборку плагина для Clearfy и всех его компонентов
|
142 |
*
|
|
|
|
|
143 |
* @param string $title
|
144 |
*
|
145 |
-
* @since 1.4.0
|
146 |
*/
|
147 |
function wbcr_clearfy_branding( $title ) {
|
148 |
-
$
|
149 |
-
|
150 |
-
return 'Webcraftic Clearfy ' . ( $licensing->isLicenseValid() ? '<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';
|
151 |
-
}
|
152 |
|
153 |
-
|
154 |
-
|
155 |
-
/**
|
156 |
-
* Подключаем скрипты отвественные за обновления пакетов для Clearfy
|
157 |
-
* Скрипты подключа.тся на каждой странице Clearfy и его компонентов
|
158 |
-
*
|
159 |
-
* @param string $page_id
|
160 |
-
* @param Wbcr_Factory409_ScriptList $scripts
|
161 |
-
* @param Wbcr_Factory409_StyleList $styles
|
162 |
-
*
|
163 |
-
* @since 1.4.0
|
164 |
-
*/
|
165 |
-
function wbcr_clearfy_enqueue_global_scripts( $page_id, $scripts, $styles ) {
|
166 |
-
$scripts->add( WCL_PLUGIN_URL . '/admin/assets/js/update-package.js', array(
|
167 |
-
'jquery',
|
168 |
-
'wbcr-factory-clearfy-206-global'
|
169 |
-
) );
|
170 |
}
|
171 |
|
172 |
-
add_action( 'wbcr/
|
173 |
|
174 |
/**
|
175 |
* Подключаем скрипты для установки компонентов Clearfy
|
176 |
* на все страницы админпанели
|
177 |
*/
|
178 |
add_action( 'admin_enqueue_scripts', function () {
|
179 |
-
wp_enqueue_style( 'wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/css/install-addons.css',
|
180 |
-
wp_enqueue_script( 'wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/js/install-addons.js',
|
181 |
'jquery',
|
182 |
-
'wbcr-factory-clearfy-
|
183 |
-
|
184 |
} );
|
185 |
|
186 |
/**
|
187 |
* Выводит уведомление, что нужно сбросить постоянные ссылки.
|
188 |
* Уведомление будет показано на всех страницах Clearfy и его компонентах.
|
189 |
*
|
190 |
-
* @param WCL_Plugin
|
191 |
-
* @param
|
192 |
-
*
|
193 |
-
* @return bool
|
194 |
*/
|
195 |
-
function wbcr_clearfy_print_notice_rewrite_rules( $plugin, $obj ) {
|
196 |
if ( WCL_Plugin::app()->getPopulateOption( 'need_rewrite_rules' ) ) {
|
197 |
$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>' );
|
198 |
}
|
199 |
}
|
200 |
|
201 |
-
add_action( 'wbcr/factory/pages/impressive/print_all_notices', 'wbcr_clearfy_print_notice_rewrite_rules', 10, 2 )
|
202 |
|
203 |
/**
|
204 |
* Удалем уведомление Clearfy о том, что нужно перезаписать постоянные ссылоки.s
|
205 |
*/
|
206 |
-
function wbcr_clearfy_flush_rewrite_rules() {
|
207 |
WCL_Plugin::app()->deletePopulateOption( 'need_rewrite_rules', 1 );
|
208 |
}
|
209 |
|
210 |
-
add_action( 'flush_rewrite_rules_hard', 'wbcr_clearfy_flush_rewrite_rules' )
|
211 |
|
212 |
/**
|
213 |
* Обновить постоынные ссылки, после выполнения быстрых настроек
|
214 |
*
|
215 |
-
* @param WHM_Plugin
|
216 |
-
* @param
|
217 |
*/
|
218 |
function wbcr_clearfy_after_form_save( $plugin, $obj ) {
|
219 |
if ( ! WCL_Plugin::app()->currentUserCan() ) {
|
220 |
return;
|
221 |
}
|
222 |
$is_clearfy = WCL_Plugin::app()->getPluginName() == $plugin->getPluginName();
|
223 |
-
|
224 |
if ( $is_clearfy && $obj->id == 'quick_start' && isset( $_GET['action'] ) && $_GET['action'] == 'flush-cache-and-rules' ) {
|
225 |
require_once ABSPATH . 'wp-admin/includes/file.php';
|
226 |
require_once ABSPATH . 'wp-admin/includes/misc.php';
|
@@ -230,122 +123,86 @@ function wbcr_clearfy_after_form_save( $plugin, $obj ) {
|
|
230 |
|
231 |
add_action( 'wbcr/factory/pages/impressive/after_form_save', 'wbcr_clearfy_after_form_save', 10, 2 );
|
232 |
|
233 |
-
/**
|
234 |
-
* Fake stubs for the Clearfy plugin board
|
235 |
-
*/
|
236 |
-
function wbcr_clearfy_fake_boards() {
|
237 |
-
if ( ! defined( 'WIO_PLUGIN_ACTIVE' ) ) {
|
238 |
-
?>
|
239 |
-
<div class="wio-image-optimize-board wbcr-clearfy-board">
|
240 |
-
<h4 class="wio-text-left"><?php _e( 'Images optimization', 'clearfy' ); ?></h4>
|
241 |
-
<div class="wio-columns wio-widget">
|
242 |
-
<div class="wio-col col-chart">
|
243 |
-
<div class="wio-chart-container wio-overview-chart-container">
|
244 |
-
<canvas id="wio-main-chart" width="110" height="110" data-unoptimized="1400" data-optimized="0" data-errors="0" style="display: block;"></canvas>
|
245 |
-
<div id="wio-overview-chart-percent" class="wio-chart-percent">0<span>%</span></div>
|
246 |
-
</div>
|
247 |
-
<div id="wio-overview-chart-legend">
|
248 |
-
<ul class="wio-doughnut-legend">
|
249 |
-
<li>
|
250 |
-
<span style="background-color:#d6d6d6"></span><?php _e( 'Unoptimized', 'clearfy' ); ?>
|
251 |
-
-
|
252 |
-
<span class="wio-num" id="wio-unoptimized-num">1400</span>
|
253 |
-
</li>
|
254 |
-
<li>
|
255 |
-
<span style="background-color:#8bc34a"></span><?php _e( 'Optimized', 'clearfy' ); ?>
|
256 |
-
-
|
257 |
-
<span class="wio-num" id="wio-optimized-num">0</span>
|
258 |
-
</li>
|
259 |
-
<li>
|
260 |
-
<span style="background-color:#f1b1b6"></span><?php _e( 'Error', 'clearfy' ); ?>
|
261 |
-
-
|
262 |
-
<span class="wio-num" id="wio-error-num">0</span>
|
263 |
-
</li>
|
264 |
-
</ul>
|
265 |
-
</div>
|
266 |
-
<div class="wio-bars">
|
267 |
-
<p><?php _e( 'Original size', 'clearfy' ); ?></p>
|
268 |
-
<div class="wio-bar-negative base-transparent wio-right-outside-number">
|
269 |
-
<div id="wio-original-bar" class="wio-progress" style="width: 100%">
|
270 |
-
<span class="wio-barnb" id="wio-original-size">75 MB</span>
|
271 |
-
</div>
|
272 |
-
</div>
|
273 |
-
<p><?php _e( 'Optimized size', 'clearfy' ); ?></p>
|
274 |
-
<div class="wio-bar-primary base-transparent wio-right-outside-number">
|
275 |
-
<div id="wio-optimized-bar" class="wio-progress" style="width: 100%;">
|
276 |
-
<span class="wio-barnb" id="wio-optimized-size">75 MB</span>
|
277 |
-
</div>
|
278 |
-
</div>
|
279 |
-
</div>
|
280 |
-
</div>
|
281 |
-
<ul class="wio-widget-bottom">
|
282 |
-
<li>
|
283 |
-
<p>
|
284 |
-
<a type="button" id="wio-start-optimization" href="<?= WCL_Plugin::app()->getPluginPageUrl( 'clrf_image_optimization' ) ?>" class="wio-optimize-button"><?php echo __( 'Bulk optimize', 'clearfy' ); ?></a>
|
285 |
-
</p>
|
286 |
-
</li>
|
287 |
-
<li>
|
288 |
-
<div class="factory-dropdown factory-from-control-dropdown factory-buttons-way" data-way="buttons">
|
289 |
-
<div id="wio-level-buttons" class="btn-group factory-buttons-group">
|
290 |
-
<button type="button" data-level="normal" class="btn btn-default btn-small active"><?php _e( 'Normal', 'clearfy' ); ?></button>
|
291 |
-
<button type="button" data-level="aggresive" class="btn btn-default btn-small"><?php _e( 'Medium', 'clearfy' ); ?></button>
|
292 |
-
<button type="button" data-level="ultra" class="btn btn-default btn-small"><?php _e( 'High', 'clearfy' ); ?></button>
|
293 |
-
</div>
|
294 |
-
</div>
|
295 |
-
</li>
|
296 |
-
</ul>
|
297 |
-
</div>
|
298 |
-
</div>
|
299 |
-
<?php
|
300 |
-
}
|
301 |
-
}
|
302 |
-
|
303 |
-
add_action( 'wbcr_clearfy_quick_boards', 'wbcr_clearfy_fake_boards' );
|
304 |
-
|
305 |
/**
|
306 |
* Widget with the offer to buy Clearfy Business
|
307 |
*
|
308 |
-
* @param array
|
309 |
-
* @param string
|
310 |
-
* @param
|
311 |
*/
|
312 |
|
313 |
add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
|
314 |
-
|
315 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
require_once WCL_PLUGIN_DIR . '/admin/includes/sidebar-widgets.php';
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
if ( $licensing->isLicenseValid() ) {
|
321 |
unset( $widgets['donate_widget'] );
|
322 |
-
|
323 |
if ( $position == 'right' ) {
|
324 |
-
unset( $widgets['
|
|
|
325 |
unset( $widgets['rating_widget'] );
|
326 |
unset( $widgets['info_widget'] );
|
327 |
}
|
328 |
-
|
329 |
-
if ( $position == 'bottom' ) {
|
330 |
-
$widgets['support'] = wbcr_clearfy_get_sidebar_support_widget();
|
331 |
-
}
|
332 |
-
|
333 |
return $widgets;
|
334 |
} else {
|
335 |
if ( $position == 'right' ) {
|
336 |
unset( $widgets['info_widget'] );
|
337 |
unset( $widgets['rating_widget'] );
|
338 |
-
$widgets['support'] = wbcr_clearfy_get_sidebar_support_widget();
|
339 |
}
|
340 |
}
|
341 |
-
|
342 |
if ( $position == 'bottom' ) {
|
|
|
343 |
$widgets['donate_widget'] = wbcr_clearfy_get_sidebar_premium_widget();
|
344 |
}
|
345 |
}
|
346 |
-
|
347 |
return $widgets;
|
348 |
-
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
|
350 |
|
351 |
|
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
|
25 |
return;
|
26 |
}
|
27 |
?>
|
28 |
+
<a href="<?php echo WCL_Plugin::app()->getPluginPageUrl( 'clearfy_settings' ) ?>" class="wbcr-factory-button wbcr-factory-type-settings">
|
29 |
+
<?php echo apply_filters( 'wbcr/clearfy/settings_button_title', __( 'Clearfy settings', 'clearfy' ) ); ?>
|
30 |
</a>
|
31 |
<?php
|
32 |
} );
|
33 |
|
34 |
/**
|
35 |
+
* @param $form
|
36 |
+
* @param Wbcr_Factory421_Plugin $plugin
|
37 |
+
* @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
*/
|
39 |
+
function wbcr_clearfy_multisite_before_save( $form, $plugin, $obj ) {
|
40 |
+
if ( $plugin->getPluginName() !== WCL_Plugin::app()->getPluginName() ) {
|
41 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
}
|
|
|
43 |
|
44 |
+
if ( $plugin->isNetworkAdmin() ) {
|
45 |
+
if ( ! $plugin->premium->is_activate() && $plugin->isNetworkActive() ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
$obj->redirectToAction( 'multisite-pro' );
|
47 |
}
|
48 |
}
|
53 |
/**
|
54 |
* Устанавливает логотип Webcraftic и сборку плагина для Clearfy и всех его компонентов
|
55 |
*
|
56 |
+
* @since 1.4.0
|
57 |
+
*
|
58 |
* @param string $title
|
59 |
*
|
|
|
60 |
*/
|
61 |
function wbcr_clearfy_branding( $title ) {
|
62 |
+
$is_premium = WCL_Plugin::app()->premium->is_activate();
|
|
|
|
|
|
|
63 |
|
64 |
+
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';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
}
|
66 |
|
67 |
+
add_action( 'wbcr/factory/pages/impressive/plugin_title', 'wbcr_clearfy_branding' );
|
68 |
|
69 |
/**
|
70 |
* Подключаем скрипты для установки компонентов Clearfy
|
71 |
* на все страницы админпанели
|
72 |
*/
|
73 |
add_action( 'admin_enqueue_scripts', function () {
|
74 |
+
wp_enqueue_style( 'wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/css/install-addons.css', [], WCL_Plugin::app()->getPluginVersion() );
|
75 |
+
wp_enqueue_script( 'wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/js/install-addons.js', [
|
76 |
'jquery',
|
77 |
+
'wbcr-factory-clearfy-213-global'
|
78 |
+
], WCL_Plugin::app()->getPluginVersion() );
|
79 |
} );
|
80 |
|
81 |
/**
|
82 |
* Выводит уведомление, что нужно сбросить постоянные ссылки.
|
83 |
* Уведомление будет показано на всех страницах Clearfy и его компонентах.
|
84 |
*
|
85 |
+
* @param WCL_Plugin $plugin
|
86 |
+
* @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
|
|
|
|
|
87 |
*/
|
88 |
+
/*function wbcr_clearfy_print_notice_rewrite_rules( $plugin, $obj ) {
|
89 |
if ( WCL_Plugin::app()->getPopulateOption( 'need_rewrite_rules' ) ) {
|
90 |
$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>' );
|
91 |
}
|
92 |
}
|
93 |
|
94 |
+
add_action( 'wbcr/factory/pages/impressive/print_all_notices', 'wbcr_clearfy_print_notice_rewrite_rules', 10, 2 );*/
|
95 |
|
96 |
/**
|
97 |
* Удалем уведомление Clearfy о том, что нужно перезаписать постоянные ссылоки.s
|
98 |
*/
|
99 |
+
/*function wbcr_clearfy_flush_rewrite_rules() {
|
100 |
WCL_Plugin::app()->deletePopulateOption( 'need_rewrite_rules', 1 );
|
101 |
}
|
102 |
|
103 |
+
add_action( 'flush_rewrite_rules_hard', 'wbcr_clearfy_flush_rewrite_rules' );*/
|
104 |
|
105 |
/**
|
106 |
* Обновить постоынные ссылки, после выполнения быстрых настроек
|
107 |
*
|
108 |
+
* @param WHM_Plugin $plugin
|
109 |
+
* @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
|
110 |
*/
|
111 |
function wbcr_clearfy_after_form_save( $plugin, $obj ) {
|
112 |
if ( ! WCL_Plugin::app()->currentUserCan() ) {
|
113 |
return;
|
114 |
}
|
115 |
$is_clearfy = WCL_Plugin::app()->getPluginName() == $plugin->getPluginName();
|
116 |
+
|
117 |
if ( $is_clearfy && $obj->id == 'quick_start' && isset( $_GET['action'] ) && $_GET['action'] == 'flush-cache-and-rules' ) {
|
118 |
require_once ABSPATH . 'wp-admin/includes/file.php';
|
119 |
require_once ABSPATH . 'wp-admin/includes/misc.php';
|
123 |
|
124 |
add_action( 'wbcr/factory/pages/impressive/after_form_save', 'wbcr_clearfy_after_form_save', 10, 2 );
|
125 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
/**
|
127 |
* Widget with the offer to buy Clearfy Business
|
128 |
*
|
129 |
+
* @param array $widgets
|
130 |
+
* @param string $position
|
131 |
+
* @param Wbcr_Factory421_Plugin $plugin
|
132 |
*/
|
133 |
|
134 |
add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
|
135 |
+
$is_current_plugin = $plugin->getPluginName() == WCL_Plugin::app()->getPluginName();
|
136 |
+
|
137 |
+
if ( class_exists( 'WRIO_Plugin' ) ) {
|
138 |
+
$is_current_plugin = $plugin->getPluginName() === WRIO_Plugin::app()->getPluginName() || $plugin->getPluginName() === WCL_Plugin::app()->getPluginName();
|
139 |
+
}
|
140 |
+
|
141 |
+
if ( $is_current_plugin ) {
|
142 |
+
|
143 |
require_once WCL_PLUGIN_DIR . '/admin/includes/sidebar-widgets.php';
|
144 |
+
|
145 |
+
if ( WCL_Plugin::app()->premium->is_activate() ) {
|
|
|
|
|
146 |
unset( $widgets['donate_widget'] );
|
147 |
+
|
148 |
if ( $position == 'right' ) {
|
149 |
+
unset( $widgets['adverts_widget'] );
|
150 |
+
unset( $widgets['business_suggetion'] );
|
151 |
unset( $widgets['rating_widget'] );
|
152 |
unset( $widgets['info_widget'] );
|
153 |
}
|
154 |
+
|
|
|
|
|
|
|
|
|
155 |
return $widgets;
|
156 |
} else {
|
157 |
if ( $position == 'right' ) {
|
158 |
unset( $widgets['info_widget'] );
|
159 |
unset( $widgets['rating_widget'] );
|
|
|
160 |
}
|
161 |
}
|
162 |
+
|
163 |
if ( $position == 'bottom' ) {
|
164 |
+
unset( $widgets['support_widget'] );
|
165 |
$widgets['donate_widget'] = wbcr_clearfy_get_sidebar_premium_widget();
|
166 |
}
|
167 |
}
|
168 |
+
|
169 |
return $widgets;
|
170 |
+
}, 9999, 3 );
|
171 |
+
|
172 |
+
/**
|
173 |
+
* Remove adverts notices for premium users
|
174 |
+
*/
|
175 |
+
add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) {
|
176 |
+
if ( $plugin_name != WCL_Plugin::app()->getPluginName() ) {
|
177 |
+
return $notices;
|
178 |
+
}
|
179 |
+
|
180 |
+
if ( WCL_Plugin::app()->premium->is_activate() ) {
|
181 |
+
unset( $notices['adverts_notice'] );
|
182 |
+
}
|
183 |
+
|
184 |
+
return $notices;
|
185 |
+
}, 9999, 2 );
|
186 |
+
|
187 |
+
/**
|
188 |
+
* Remove adverts widgets for premium users
|
189 |
+
*/
|
190 |
+
add_action( 'wp_dashboard_setup', function () {
|
191 |
+
global $wp_meta_boxes;
|
192 |
+
|
193 |
+
if ( WCL_Plugin::app()->premium->is_activate() ) {
|
194 |
+
if ( isset( $wp_meta_boxes['dashboard'] ) ) {
|
195 |
+
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'] ) ) {
|
196 |
+
unset( $wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget'] );
|
197 |
+
}
|
198 |
+
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'] ) ) {
|
199 |
+
unset( $wp_meta_boxes['dashboard']['normal']['core']['wbcr-factory-adverts-widget'] );
|
200 |
+
}
|
201 |
+
}
|
202 |
+
}
|
203 |
+
}, 9999 );
|
204 |
+
|
205 |
+
|
206 |
|
207 |
|
208 |
|
admin/includes/classes/class.delete-plugins-button.php
CHANGED
@@ -1,62 +1,50 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
// Exit if accessed directly
|
11 |
-
if( !defined('ABSPATH') ) {
|
12 |
-
exit;
|
13 |
-
}
|
14 |
|
15 |
-
|
|
|
|
|
|
|
16 |
|
17 |
-
|
18 |
|
19 |
-
|
20 |
-
* @throws Exception
|
21 |
-
*/
|
22 |
-
protected function buildWordpress()
|
23 |
-
{
|
24 |
-
parent::buildWordpress();
|
25 |
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
protected function buildInternal()
|
32 |
-
{
|
33 |
-
// nothing
|
34 |
-
}
|
35 |
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
{
|
41 |
-
parent::buildFreemius();
|
42 |
-
$this->action = 'delete';
|
43 |
-
$this->addData('plugin-action', $this->action);
|
44 |
-
$this->removeClass('button-primary');
|
45 |
-
}
|
46 |
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
*/
|
51 |
-
public function getButton()
|
52 |
-
{
|
53 |
-
$button = '<a href="#" class="' . implode(' ', $this->getClasses()) . '" ' . implode(' ', $this->getData()) . '><span class="dashicons dashicons-trash"></span></a>';
|
54 |
|
55 |
-
|
56 |
-
|
57 |
-
|
|
|
|
|
|
|
|
|
58 |
|
59 |
-
|
|
|
60 |
}
|
|
|
|
|
61 |
}
|
|
|
62 |
|
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.install-plugins-button.php
CHANGED
@@ -1,392 +1,354 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
// Exit if accessed directly
|
11 |
-
if( !defined('ABSPATH') ) {
|
12 |
-
exit;
|
13 |
-
}
|
14 |
-
|
15 |
-
class WCL_InstallPluginsButton {
|
16 |
-
|
17 |
-
protected $type;
|
18 |
-
protected $plugin_slug;
|
19 |
-
protected $classes = array(
|
20 |
-
'button',
|
21 |
-
'wbcr-clr-proccess-button',
|
22 |
-
'wbcr-clr-update-component-button'
|
23 |
-
);
|
24 |
-
protected $data = array();
|
25 |
-
protected $base_path;
|
26 |
-
|
27 |
-
protected $action;
|
28 |
-
|
29 |
-
protected $url;
|
30 |
-
|
31 |
-
/**
|
32 |
-
* @param string $group_name
|
33 |
-
* @throws Exception
|
34 |
-
*/
|
35 |
-
public function __construct($type, $plugin_slug)
|
36 |
-
{
|
37 |
-
if( empty($type) || !is_string($plugin_slug) ) {
|
38 |
-
throw new Exception('Empty type or plugin_slug attribute.');
|
39 |
-
}
|
40 |
-
$this->type = $type;
|
41 |
-
$this->plugin_slug = $plugin_slug;
|
42 |
-
|
43 |
-
if( $this->type == 'wordpress' ) {
|
44 |
-
if( strpos(rtrim(trim($this->plugin_slug)), '/') !== false ) {
|
45 |
-
$this->base_path = $this->plugin_slug;
|
46 |
-
$base_path_parts = explode('/', $this->base_path);
|
47 |
-
if( sizeof($base_path_parts) === 2 ) {
|
48 |
-
$this->plugin_slug = $base_path_parts[0];
|
49 |
-
}
|
50 |
-
} else {
|
51 |
-
$this->base_path = $this->getPluginBasePathBySlug($this->plugin_slug);
|
52 |
-
}
|
53 |
-
|
54 |
-
$this->buildWordpress();
|
55 |
-
} else if( $this->type == 'internal' ) {
|
56 |
-
$this->buildInternal();
|
57 |
-
} else if( $this->type == 'freemius' ) {
|
58 |
-
$this->buildFreemius();
|
59 |
-
} else {
|
60 |
-
throw new Exception('Invalid button type.');
|
61 |
-
}
|
62 |
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
}
|
68 |
|
69 |
-
|
70 |
-
* @return bool
|
71 |
-
*/
|
72 |
-
public function isPluginActivate()
|
73 |
-
{
|
74 |
-
if( $this->type == 'wordpress' && $this->isPluginInstall() ) {
|
75 |
-
require_once ABSPATH . '/wp-admin/includes/plugin.php';
|
76 |
-
return is_plugin_active($this->base_path);
|
77 |
-
} elseif( $this->type == 'internal' ) {
|
78 |
-
$preinsatall_components = WCL_Plugin::app()->getPopulateOption('deactive_preinstall_components', array());
|
79 |
-
|
80 |
-
return !in_array($this->plugin_slug, $preinsatall_components);
|
81 |
-
} elseif( $this->type == 'freemius' ) {
|
82 |
-
$freemius_activated_addons = WCL_Plugin::app()->getPopulateOption( 'freemius_activated_addons', array() );
|
83 |
-
return in_array( $this->plugin_slug, $freemius_activated_addons );
|
84 |
-
}
|
85 |
|
86 |
-
|
87 |
-
|
88 |
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
return false;
|
97 |
-
}
|
98 |
|
99 |
-
|
100 |
-
// usually get_plugins() only works in the admin panel.
|
101 |
-
if( !function_exists('get_plugins') ) {
|
102 |
-
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
103 |
-
}
|
104 |
|
105 |
-
|
106 |
|
107 |
-
|
108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
}
|
110 |
-
} else
|
111 |
-
|
112 |
-
} else if( $this->type == 'freemius' ) {
|
113 |
-
$freemius_activated_addons = WCL_Plugin::app()->getPopulateOption( 'freemius_activated_addons', array() );
|
114 |
-
return in_array( $this->plugin_slug, $freemius_activated_addons );
|
115 |
}
|
116 |
|
117 |
-
|
|
|
|
|
|
|
|
|
118 |
}
|
119 |
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
{
|
126 |
-
if( !is_string($class) ) {
|
127 |
-
throw new Exception('Attribute class must be a string.');
|
128 |
-
}
|
129 |
-
$this->classes[] = $class;
|
130 |
-
}
|
131 |
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
{
|
139 |
-
if( !is_string($class) ) {
|
140 |
-
throw new Exception('Attribute class must be a string.');
|
141 |
-
}
|
142 |
-
$key = array_search($class, $this->classes);
|
143 |
-
if( isset($this->classes[$key]) ) {
|
144 |
-
unset($this->classes[$key]);
|
145 |
|
146 |
-
|
147 |
-
|
|
|
148 |
|
149 |
-
return
|
150 |
}
|
151 |
|
152 |
-
|
153 |
-
|
154 |
-
* @param $value
|
155 |
-
* @throws Exception
|
156 |
-
*/
|
157 |
-
public function addData($name, $value)
|
158 |
-
{
|
159 |
-
if( !is_string($name) || !is_string($value) ) {
|
160 |
-
throw new Exception('Attributes name and value must be a string.');
|
161 |
-
}
|
162 |
|
163 |
-
|
164 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
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 |
-
|
178 |
-
unset($this->data[$name]);
|
179 |
|
|
|
180 |
return true;
|
181 |
}
|
182 |
-
|
183 |
-
return
|
184 |
}
|
185 |
|
186 |
-
|
187 |
-
|
188 |
-
*/
|
189 |
-
public function getButton()
|
190 |
-
{
|
191 |
-
$i18n = $this->getI18n();
|
192 |
-
|
193 |
-
if( $this->type == 'freemius' ) {
|
194 |
-
if ( $this->action == 'read' and isset( $this->url ) ) {
|
195 |
-
$button = '<a target="_blank" href="' .esc_attr( $this->url ) . '" class="button button-default install-now">' . $i18n[$this->action] . '</a>';
|
196 |
-
return $button;
|
197 |
-
}
|
198 |
-
}
|
199 |
|
200 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
|
202 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
}
|
|
|
|
|
|
|
204 |
|
205 |
-
|
206 |
-
|
207 |
-
* @throws Exception
|
208 |
-
*/
|
209 |
-
public function getLink()
|
210 |
-
{
|
211 |
-
$this->removeClass('button');
|
212 |
-
$this->removeClass('button-default');
|
213 |
-
$this->removeClass('button-primary');
|
214 |
|
215 |
-
|
216 |
-
|
217 |
|
218 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
}
|
220 |
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
}
|
228 |
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
{
|
234 |
-
echo $this->getLink();
|
235 |
}
|
236 |
|
237 |
-
|
238 |
-
|
239 |
-
*/
|
240 |
-
protected function getData()
|
241 |
-
{
|
242 |
-
$data_to_print = array();
|
243 |
|
244 |
-
|
245 |
-
|
246 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
|
248 |
-
|
249 |
-
|
|
|
|
|
|
|
250 |
|
251 |
-
|
252 |
-
* @return array
|
253 |
-
*/
|
254 |
-
protected function getClasses()
|
255 |
-
{
|
256 |
-
return array_map('esc_attr', $this->classes);
|
257 |
-
}
|
258 |
|
259 |
-
|
260 |
-
|
261 |
-
if( $this->type != 'wordpress' || empty($this->base_path) ) {
|
262 |
-
return;
|
263 |
-
}
|
264 |
|
265 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
|
267 |
-
|
268 |
-
|
269 |
-
if( !$this->isPluginActivate() ) {
|
270 |
-
$this->action = 'activate';
|
271 |
-
}
|
272 |
-
}
|
273 |
|
274 |
-
|
275 |
-
|
276 |
-
$this->addData('plugin', $this->base_path);
|
277 |
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
|
|
|
|
|
|
|
|
284 |
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
|
|
|
|
290 |
|
291 |
-
|
|
|
|
|
292 |
|
293 |
-
|
294 |
-
|
295 |
-
}
|
296 |
|
297 |
-
|
298 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
299 |
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
|
|
|
|
|
|
305 |
}
|
306 |
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
|
|
|
|
311 |
}
|
|
|
312 |
|
313 |
-
|
|
|
|
|
314 |
|
315 |
-
|
316 |
-
|
317 |
-
|
|
|
|
|
|
|
318 |
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
}
|
331 |
-
} else {
|
332 |
-
if ( $component['is_actived'] ) {
|
333 |
-
// если лицензия не валидна, но аддон уже был активирован
|
334 |
-
$this->action = 'deactivate';
|
335 |
-
} else {
|
336 |
-
// если лицензия не валидна, то показываем ссылку на страницу аддона
|
337 |
-
$this->action = 'read';
|
338 |
-
$this->url = $component['url'];
|
339 |
-
}
|
340 |
-
}
|
341 |
-
}
|
342 |
|
343 |
-
|
344 |
-
$this->addData('plugin', $this->plugin_slug);
|
345 |
|
346 |
-
|
347 |
-
|
348 |
-
} else {
|
349 |
-
$this->addClass('button-default');
|
350 |
-
}
|
351 |
}
|
352 |
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
'loading' => __('Please wait...', 'clearfy'),
|
361 |
-
'preparation' => __('Preparation...', 'clearfy'),
|
362 |
-
'read' => __('Read more', 'clearfy')
|
363 |
-
);
|
364 |
}
|
|
|
365 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
|
367 |
-
/**
|
368 |
-
* Allows you to get the base path to the plugin in the directory wp-content/plugins/
|
369 |
-
*
|
370 |
-
* @param $slug - slug for example "clearfy", "hide-login-page"
|
371 |
-
* @return int|null|string - "clearfy/clearfy.php"
|
372 |
-
*/
|
373 |
-
protected function getPluginBasePathBySlug($slug)
|
374 |
-
{
|
375 |
-
// Check if the function get_plugins() is registered. It is necessary for the front-end
|
376 |
-
// usually get_plugins() only works in the admin panel.
|
377 |
-
if( !function_exists('get_plugins') ) {
|
378 |
-
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
379 |
-
}
|
380 |
|
381 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
382 |
|
383 |
-
|
384 |
-
if( strpos($base_path, rtrim(trim($slug))) !== false ) {
|
385 |
-
return $base_path;
|
386 |
-
}
|
387 |
-
}
|
388 |
|
389 |
-
|
|
|
|
|
|
|
390 |
}
|
|
|
|
|
391 |
}
|
|
|
392 |
|
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 |
+
if ( empty( $type ) || ! is_string( $plugin_slug ) ) {
|
40 |
+
throw new Exception( 'Empty type or plugin_slug attribute.' );
|
41 |
+
}
|
42 |
+
$this->type = $type;
|
43 |
+
$this->plugin_slug = $plugin_slug;
|
44 |
+
|
45 |
+
if ( $this->type == 'wordpress' ) {
|
46 |
+
if ( strpos( rtrim( trim( $this->plugin_slug ) ), '/' ) !== false ) {
|
47 |
+
$this->base_path = $this->plugin_slug;
|
48 |
+
$base_path_parts = explode( '/', $this->base_path );
|
49 |
+
if ( sizeof( $base_path_parts ) === 2 ) {
|
50 |
+
$this->plugin_slug = $base_path_parts[0];
|
51 |
}
|
52 |
+
} else {
|
53 |
+
$this->base_path = $this->get_plugin_base_path_by_slug( $this->plugin_slug );
|
|
|
|
|
|
|
54 |
}
|
55 |
|
56 |
+
$this->build_wordpress();
|
57 |
+
} else if ( $this->type == 'internal' ) {
|
58 |
+
$this->build_internal();
|
59 |
+
} else {
|
60 |
+
throw new Exception( 'Invalid button type.' );
|
61 |
}
|
62 |
|
63 |
+
// Set default data
|
64 |
+
$this->addData( 'storage', $this->type );
|
65 |
+
$this->addData( 'i18n', WCL_Helper::getEscapeJson( $this->get_i18n() ) );
|
66 |
+
$this->addData( 'wpnonce', wp_create_nonce( 'updates' ) );
|
67 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
+
/**
|
70 |
+
* @return bool
|
71 |
+
*/
|
72 |
+
public function isPluginActivate() {
|
73 |
+
if ( $this->type == 'wordpress' && $this->isPluginInstall() ) {
|
74 |
+
require_once ABSPATH . '/wp-admin/includes/plugin.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
|
76 |
+
return is_plugin_active( $this->base_path );
|
77 |
+
} else if ( $this->type == 'internal' ) {
|
78 |
+
$preinsatall_components = WCL_Plugin::app()->getPopulateOption( 'deactive_preinstall_components', [] );
|
79 |
|
80 |
+
return ! in_array( $this->plugin_slug, $preinsatall_components );
|
81 |
}
|
82 |
|
83 |
+
return false;
|
84 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
|
86 |
+
/**
|
87 |
+
* @return bool
|
88 |
+
*/
|
89 |
+
public function isPluginInstall() {
|
90 |
+
if ( $this->type == 'wordpress' ) {
|
91 |
+
if ( empty( $this->base_path ) ) {
|
92 |
+
return false;
|
93 |
+
}
|
94 |
|
95 |
+
// Check if the function get_plugins() is registered. It is necessary for the front-end
|
96 |
+
// usually get_plugins() only works in the admin panel.
|
97 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
98 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
|
|
|
|
|
|
|
|
|
|
99 |
}
|
100 |
|
101 |
+
$plugins = get_plugins();
|
|
|
102 |
|
103 |
+
if ( isset( $plugins[ $this->base_path ] ) ) {
|
104 |
return true;
|
105 |
}
|
106 |
+
} else if ( $this->type == 'internal' ) {
|
107 |
+
return true;
|
108 |
}
|
109 |
|
110 |
+
return false;
|
111 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
|
113 |
+
/**
|
114 |
+
* @param $class
|
115 |
+
*
|
116 |
+
* @throws Exception
|
117 |
+
*/
|
118 |
+
public function addClass( $class ) {
|
119 |
+
if ( ! is_string( $class ) ) {
|
120 |
+
throw new Exception( 'Attribute class must be a string.' );
|
121 |
+
}
|
122 |
+
$this->classes[] = $class;
|
123 |
+
}
|
124 |
|
125 |
+
/**
|
126 |
+
* @param $class
|
127 |
+
*
|
128 |
+
* @return bool
|
129 |
+
* @throws Exception
|
130 |
+
*/
|
131 |
+
public function removeClass( $class ) {
|
132 |
+
if ( ! is_string( $class ) ) {
|
133 |
+
throw new Exception( 'Attribute class must be a string.' );
|
134 |
}
|
135 |
+
$key = array_search( $class, $this->classes );
|
136 |
+
if ( isset( $this->classes[ $key ] ) ) {
|
137 |
+
unset( $this->classes[ $key ] );
|
138 |
|
139 |
+
return true;
|
140 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
|
142 |
+
return false;
|
143 |
+
}
|
144 |
|
145 |
+
/**
|
146 |
+
* @param $name
|
147 |
+
* @param $value
|
148 |
+
*
|
149 |
+
* @throws Exception
|
150 |
+
*/
|
151 |
+
public function addData( $name, $value ) {
|
152 |
+
if ( ! is_string( $name ) || ! is_string( $value ) ) {
|
153 |
+
throw new Exception( 'Attributes name and value must be a string.' );
|
154 |
}
|
155 |
|
156 |
+
$this->data[ $name ] = $value;
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* @param $name
|
161 |
+
*
|
162 |
+
* @return bool
|
163 |
+
* @throws Exception
|
164 |
+
*/
|
165 |
+
public function removeData( $name ) {
|
166 |
+
if ( ! is_string( $name ) ) {
|
167 |
+
throw new Exception( 'Attribute name must be a string.' );
|
168 |
}
|
169 |
|
170 |
+
if ( isset( $this->data[ $name ] ) ) {
|
171 |
+
unset( $this->data[ $name ] );
|
172 |
+
|
173 |
+
return true;
|
|
|
|
|
174 |
}
|
175 |
|
176 |
+
return false;
|
177 |
+
}
|
|
|
|
|
|
|
|
|
178 |
|
179 |
+
/**
|
180 |
+
* Print an install button
|
181 |
+
*
|
182 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
183 |
+
* @since 1.5.0
|
184 |
+
* @throws \Exception
|
185 |
+
*/
|
186 |
+
public function renderButton() {
|
187 |
+
echo $this->getButton();
|
188 |
+
}
|
189 |
|
190 |
+
/**
|
191 |
+
* @return string
|
192 |
+
*/
|
193 |
+
public function getButton() {
|
194 |
+
$i18n = $this->get_i18n();
|
195 |
|
196 |
+
$button = '<a href="#" class="' . implode( ' ', $this->get_classes() ) . '" ' . implode( ' ', $this->get_data() ) . '>' . $i18n[ $this->action ] . '</a>';
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
|
198 |
+
return $button;
|
199 |
+
}
|
|
|
|
|
|
|
200 |
|
201 |
+
/**
|
202 |
+
* @return string
|
203 |
+
* @throws Exception
|
204 |
+
*/
|
205 |
+
public function getLink() {
|
206 |
+
$this->removeClass( 'button' );
|
207 |
+
$this->removeClass( 'button-default' );
|
208 |
+
$this->removeClass( 'button-primary' );
|
209 |
|
210 |
+
//$this->addClass('link');
|
211 |
+
$this->addClass( 'button-link' );
|
|
|
|
|
|
|
|
|
212 |
|
213 |
+
return $this->getButton();
|
214 |
+
}
|
|
|
215 |
|
216 |
+
/**
|
217 |
+
* Print an install a link
|
218 |
+
*
|
219 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
220 |
+
* @since 1.5.0
|
221 |
+
* @throws \Exception
|
222 |
+
*/
|
223 |
+
public function renderLink() {
|
224 |
+
echo $this->getLink();
|
225 |
+
}
|
226 |
|
227 |
+
/**
|
228 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
229 |
+
* @since 1.5.0
|
230 |
+
* @return array
|
231 |
+
*/
|
232 |
+
protected function get_data() {
|
233 |
+
$data_to_print = [];
|
234 |
|
235 |
+
foreach ( (array) $this->data as $key => $value ) {
|
236 |
+
$data_to_print[ $key ] = 'data-' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
|
237 |
+
}
|
238 |
|
239 |
+
return $data_to_print;
|
240 |
+
}
|
|
|
241 |
|
242 |
+
/**
|
243 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
244 |
+
* @since 1.5.0
|
245 |
+
* @return array
|
246 |
+
*/
|
247 |
+
protected function get_classes() {
|
248 |
+
return array_map( 'esc_attr', $this->classes );
|
249 |
+
}
|
250 |
|
251 |
+
/**
|
252 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
253 |
+
* @since 1.5.0
|
254 |
+
* @throws \Exception
|
255 |
+
*/
|
256 |
+
protected function build_wordpress() {
|
257 |
+
if ( $this->type != 'wordpress' || empty( $this->base_path ) ) {
|
258 |
+
return;
|
259 |
}
|
260 |
|
261 |
+
$this->action = 'install';
|
262 |
+
|
263 |
+
if ( $this->isPluginInstall() ) {
|
264 |
+
$this->action = 'deactivate';
|
265 |
+
if ( ! $this->isPluginActivate() ) {
|
266 |
+
$this->action = 'activate';
|
267 |
}
|
268 |
+
}
|
269 |
|
270 |
+
$this->addData( 'plugin-action', $this->action );
|
271 |
+
$this->addData( 'slug', $this->plugin_slug );
|
272 |
+
$this->addData( 'plugin', $this->base_path );
|
273 |
|
274 |
+
if ( $this->action == 'activate' ) {
|
275 |
+
$this->addClass( 'button-primary' );
|
276 |
+
} else {
|
277 |
+
$this->addClass( 'button-default' );
|
278 |
+
}
|
279 |
+
}
|
280 |
|
281 |
+
/**
|
282 |
+
* Configurate button of internal components
|
283 |
+
*
|
284 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
285 |
+
* @since 1.5.0
|
286 |
+
* @throws \Exception
|
287 |
+
*/
|
288 |
+
protected function build_internal() {
|
289 |
+
if ( $this->type != 'internal' ) {
|
290 |
+
return;
|
291 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
292 |
|
293 |
+
$this->action = 'activate';
|
|
|
294 |
|
295 |
+
if ( $this->isPluginActivate() ) {
|
296 |
+
$this->action = 'deactivate';
|
|
|
|
|
|
|
297 |
}
|
298 |
|
299 |
+
$this->addData( 'plugin-action', $this->action );
|
300 |
+
$this->addData( 'plugin', $this->plugin_slug );
|
301 |
+
|
302 |
+
if ( $this->action == 'activate' ) {
|
303 |
+
$this->addClass( 'button-primary' );
|
304 |
+
} else {
|
305 |
+
$this->addClass( 'button-default' );
|
|
|
|
|
|
|
|
|
306 |
}
|
307 |
+
}
|
308 |
|
309 |
+
/**
|
310 |
+
* Internalization for action buttons
|
311 |
+
*
|
312 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
313 |
+
* @since 1.5.0
|
314 |
+
* @return array
|
315 |
+
*/
|
316 |
+
protected function get_i18n() {
|
317 |
+
return [
|
318 |
+
'activate' => __( 'Activate', 'clearfy' ),
|
319 |
+
'install' => __( 'Install', 'clearfy' ),
|
320 |
+
'deactivate' => __( 'Deactivate', 'clearfy' ),
|
321 |
+
'delete' => __( 'Delete', 'clearfy' ),
|
322 |
+
'loading' => __( 'Please wait...', 'clearfy' ),
|
323 |
+
'preparation' => __( 'Preparation...', 'clearfy' ),
|
324 |
+
'read' => __( 'Read more', 'clearfy' )
|
325 |
+
];
|
326 |
+
}
|
327 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
328 |
|
329 |
+
/**
|
330 |
+
* Allows you to get the base path to the plugin in the directory wp-content/plugins/
|
331 |
+
*
|
332 |
+
* @param $slug - slug for example "clearfy", "hide-login-page"
|
333 |
+
*
|
334 |
+
* @return int|null|string - "clearfy/clearfy.php"
|
335 |
+
*/
|
336 |
+
protected function get_plugin_base_path_by_slug( $slug ) {
|
337 |
+
// Check if the function get_plugins() is registered. It is necessary for the front-end
|
338 |
+
// usually get_plugins() only works in the admin panel.
|
339 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
340 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
341 |
+
}
|
342 |
|
343 |
+
$plugins = get_plugins();
|
|
|
|
|
|
|
|
|
344 |
|
345 |
+
foreach ( $plugins as $base_path => $plugin ) {
|
346 |
+
if ( strpos( $base_path, rtrim( trim( $slug ) ) ) !== false ) {
|
347 |
+
return $base_path;
|
348 |
+
}
|
349 |
}
|
350 |
+
|
351 |
+
return null;
|
352 |
}
|
353 |
+
}
|
354 |
|
admin/includes/classes/class.upgrader-skin.php
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class WCL_Upgrader_Skin extends WP_Upgrader_Skin {
|
3 |
-
public function feedback($string) {
|
4 |
-
// @note: Keep it empty.
|
5 |
-
}
|
6 |
-
|
7 |
-
public function header() {
|
8 |
-
|
9 |
-
}
|
10 |
-
|
11 |
-
public function footer() {
|
12 |
-
|
13 |
-
}
|
14 |
-
|
15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/includes/classes/class.upgrader.php
DELETED
@@ -1,59 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class WCL_Plugin_Upgrader extends Plugin_Upgrader {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Download a package.
|
7 |
-
*
|
8 |
-
* @since 2.8.0
|
9 |
-
*
|
10 |
-
* @param string $package The URI of the package. If this is the full path to an
|
11 |
-
* existing local file, it will be returned untouched.
|
12 |
-
*
|
13 |
-
* @return string|WP_Error The full path to the downloaded package file, or a WP_Error object.
|
14 |
-
*/
|
15 |
-
public function download_package( $package ) {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Filters whether to return the package.
|
19 |
-
*
|
20 |
-
* @since 3.7.0
|
21 |
-
*
|
22 |
-
* @param bool $reply Whether to bail without returning the package.
|
23 |
-
* Default false.
|
24 |
-
* @param string $package The package file name.
|
25 |
-
* @param WP_Upgrader $this The WP_Upgrader instance.
|
26 |
-
*/
|
27 |
-
$reply = apply_filters( 'upgrader_pre_download', false, $package, $this );
|
28 |
-
if ( false !== $reply ) {
|
29 |
-
return $reply;
|
30 |
-
}
|
31 |
-
|
32 |
-
if ( ! preg_match( '!^(http|https|ftp)://!i', $package ) && file_exists( $package ) ) //Local file or remote?
|
33 |
-
{
|
34 |
-
return $package;
|
35 |
-
} //must be a local file..
|
36 |
-
|
37 |
-
if ( empty( $package ) ) {
|
38 |
-
return new WP_Error( 'no_package', $this->strings['no_package'] );
|
39 |
-
}
|
40 |
-
|
41 |
-
$download_file = download_url( $package, 10000 );
|
42 |
-
|
43 |
-
if ( is_wp_error( $download_file ) ) {
|
44 |
-
return new WP_Error( 'download_failed', $this->strings['download_failed'], $download_file->get_error_message() );
|
45 |
-
}
|
46 |
-
|
47 |
-
// Temporary fix. Components package is definitely more than 2kb,
|
48 |
-
// if the file weight is less than 2kb, the server returned an error and
|
49 |
-
// empty file saved
|
50 |
-
$filesize = filesize( $download_file );
|
51 |
-
if ( $filesize < ( 2 * 1000 ) ) {
|
52 |
-
@unlink( $download_file );
|
53 |
-
|
54 |
-
return new WP_Error( 'download_failed', 'Component package cannot be loaded. The server returned an error.' );
|
55 |
-
}
|
56 |
-
|
57 |
-
return $download_file;
|
58 |
-
}
|
59 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/includes/compatibility.php
CHANGED
@@ -21,8 +21,8 @@
|
|
21 |
* Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
|
22 |
* иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
|
23 |
*
|
24 |
-
* @param
|
25 |
-
* @param
|
26 |
* @return bool
|
27 |
*/
|
28 |
add_action('wbcr/factory/pages/impressive/print_all_notices', function ($plugin, $obj) use ($notice) {
|
@@ -50,8 +50,8 @@
|
|
50 |
* Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
|
51 |
* иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
|
52 |
*
|
53 |
-
* @param
|
54 |
-
* @param
|
55 |
* @return bool
|
56 |
*/
|
57 |
add_action('wbcr/factory/pages/impressive/print_all_notices', function ($plugin, $obj) use ($notice) {
|
@@ -71,7 +71,7 @@
|
|
71 |
*/
|
72 |
add_action('admin_enqueue_scripts', function ($page_id) {
|
73 |
|
74 |
-
if( !
|
75 |
return;
|
76 |
}
|
77 |
|
21 |
* Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
|
22 |
* иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
|
23 |
*
|
24 |
+
* @param Wbcr_Factory421_Plugin $plugin
|
25 |
+
* @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
|
26 |
* @return bool
|
27 |
*/
|
28 |
add_action('wbcr/factory/pages/impressive/print_all_notices', function ($plugin, $obj) use ($notice) {
|
50 |
* Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
|
51 |
* иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
|
52 |
*
|
53 |
+
* @param Wbcr_Factory421_Plugin $plugin
|
54 |
+
* @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
|
55 |
* @return bool
|
56 |
*/
|
57 |
add_action('wbcr/factory/pages/impressive/print_all_notices', function ($plugin, $obj) use ($notice) {
|
71 |
*/
|
72 |
add_action('admin_enqueue_scripts', function ($page_id) {
|
73 |
|
74 |
+
if( !WbcrFactoryClearfy213_Helpers::strContains($page_id, WCL_Plugin::app()->getPluginName()) ) {
|
75 |
return;
|
76 |
}
|
77 |
|
admin/includes/sidebar-widgets.php
CHANGED
@@ -12,8 +12,8 @@
|
|
12 |
*/
|
13 |
function wbcr_clearfy_get_sidebar_premium_widget() {
|
14 |
|
15 |
-
$buy_premium_url =
|
16 |
-
$upgrade_price =
|
17 |
|
18 |
ob_start();
|
19 |
?>
|
@@ -49,8 +49,8 @@ function wbcr_clearfy_get_sidebar_support_widget() {
|
|
49 |
|
50 |
$output = '';
|
51 |
|
52 |
-
$free_support_url =
|
53 |
-
$page_hot_support_url =
|
54 |
|
55 |
ob_start();
|
56 |
?>
|
12 |
*/
|
13 |
function wbcr_clearfy_get_sidebar_premium_widget() {
|
14 |
|
15 |
+
$buy_premium_url = WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'pricing', 'license_page' );
|
16 |
+
$upgrade_price = WbcrFactoryClearfy213_Helpers::getClearfyBusinessPrice();
|
17 |
|
18 |
ob_start();
|
19 |
?>
|
49 |
|
50 |
$output = '';
|
51 |
|
52 |
+
$free_support_url = WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'support', 'support_widget' );
|
53 |
+
$page_hot_support_url = WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'hot-support', 'support_widget' );
|
54 |
|
55 |
ob_start();
|
56 |
?>
|
admin/pages/class-page.php
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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_FactoryClearfy213_PageBase {
|
11 |
+
|
12 |
+
}
|
admin/pages/{advanced.php → class-pages-advanced.php}
RENAMED
@@ -11,13 +11,13 @@
|
|
11 |
exit;
|
12 |
}
|
13 |
|
14 |
-
class WCL_AdvancedPage extends
|
15 |
|
16 |
/**
|
17 |
* The id of the page in the admin menu.
|
18 |
*
|
19 |
* Mainly used to navigate between pages.
|
20 |
-
* @see
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
* @var string
|
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 FactoryPages421_AdminPage
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
* @var string
|
admin/pages/{clearfy-settings.php → class-pages-clearfy-settings.php}
RENAMED
@@ -11,7 +11,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
11 |
exit;
|
12 |
}
|
13 |
|
14 |
-
class WCL_ClearfySettingsPage extends
|
15 |
|
16 |
/**
|
17 |
* The id of the page in the admin menu.
|
@@ -19,7 +19,7 @@ class WCL_ClearfySettingsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
19 |
* Mainly used to navigate between pages.
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
-
* @see
|
23 |
*
|
24 |
* @var string
|
25 |
*/
|
@@ -58,7 +58,7 @@ class WCL_ClearfySettingsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
58 |
*
|
59 |
* @since 1.0.0
|
60 |
* @return void
|
61 |
-
* @see
|
62 |
*
|
63 |
*/
|
64 |
public function assets( $scripts, $styles ) {
|
11 |
exit;
|
12 |
}
|
13 |
|
14 |
+
class WCL_ClearfySettingsPage extends WCL_Page {
|
15 |
|
16 |
/**
|
17 |
* The id of the page in the admin menu.
|
19 |
* Mainly used to navigate between pages.
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
+
* @see FactoryPages421_AdminPage
|
23 |
*
|
24 |
* @var string
|
25 |
*/
|
58 |
*
|
59 |
* @since 1.0.0
|
60 |
* @return void
|
61 |
+
* @see FactoryPages421_AdminPage
|
62 |
*
|
63 |
*/
|
64 |
public function assets( $scripts, $styles ) {
|
admin/pages/{components.php → class-pages-components.php}
RENAMED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
13 |
exit;
|
14 |
}
|
15 |
|
16 |
-
class WCL_ComponentsPage extends
|
17 |
|
18 |
/**
|
19 |
* The id of the page in the admin menu.
|
@@ -21,7 +21,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
21 |
* Mainly used to navigate between pages.
|
22 |
*
|
23 |
* @since 1.0.0
|
24 |
-
* @see
|
25 |
*
|
26 |
* @var string
|
27 |
*/
|
@@ -54,7 +54,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
54 |
*
|
55 |
* @since 1.0.0
|
56 |
* @return void
|
57 |
-
* @see
|
58 |
*
|
59 |
*/
|
60 |
public function assets( $scripts, $styles ) {
|
@@ -65,33 +65,20 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
65 |
/**
|
66 |
* @since 1.4.0
|
67 |
*
|
68 |
-
* @param
|
69 |
-
* @param
|
70 |
*/
|
71 |
do_action( 'wbcr/clearfy/components/page_assets', $scripts, $styles );
|
72 |
}
|
73 |
|
74 |
-
/**
|
75 |
-
* Shows notification inside Clearfy interface
|
76 |
-
*/
|
77 |
-
public function warningNotice() {
|
78 |
-
$package_plugin = WCL_Package::instance();
|
79 |
-
$package_update_notice = $package_plugin->getUpdateNotice();
|
80 |
-
|
81 |
-
if ( $package_update_notice ) {
|
82 |
-
$this->printWarningNotice( $package_update_notice );
|
83 |
-
}
|
84 |
-
}
|
85 |
-
|
86 |
-
|
87 |
/**
|
88 |
* We register notifications for some actions
|
89 |
*
|
90 |
* @param $notices
|
91 |
-
* @param
|
92 |
*
|
93 |
* @return array
|
94 |
-
* @see libs\factory\pages\themplates\
|
95 |
*/
|
96 |
public function getActionNotices( $notices ) {
|
97 |
$notices[] = [
|
@@ -121,33 +108,6 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
121 |
return $notices;
|
122 |
}
|
123 |
|
124 |
-
public function forceUpdateComponentsAction() {
|
125 |
-
check_admin_referer( 'force_update_componetns' );
|
126 |
-
|
127 |
-
$licensing = WCL_Licensing::instance();
|
128 |
-
$licensing->getAddons( true ); // обновляем список аддонов
|
129 |
-
|
130 |
-
if ( ! $licensing->isLicenseValid() and $licensing->isActivePaidAddons() ) {
|
131 |
-
$this->redirectToAction( 'index', [ 'wbcr-force-update-components-error' => 'inactive_licence' ] );
|
132 |
-
}
|
133 |
-
|
134 |
-
$package_plugin = WCL_Package::instance();
|
135 |
-
|
136 |
-
try {
|
137 |
-
$result = $package_plugin->update();
|
138 |
-
|
139 |
-
if ( is_wp_error( $result ) ) {
|
140 |
-
$this->redirectToAction( 'index', [ 'wbcr-force-update-components-error' => 'unknown_error' ] );
|
141 |
-
}
|
142 |
-
|
143 |
-
$this->redirectToAction( 'index', [ 'wbcr-force-update-components-success' => 1 ] );
|
144 |
-
} catch( Exception $e ) {
|
145 |
-
$this->redirectToAction( 'index', [ 'wbcr-force-update-components-error' => 'unknown_error' ] );
|
146 |
-
}
|
147 |
-
|
148 |
-
$this->redirectToAction( 'index' );
|
149 |
-
}
|
150 |
-
|
151 |
/**
|
152 |
* This method simply sorts the list of components.
|
153 |
*
|
@@ -156,46 +116,32 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
156 |
* @return array
|
157 |
*/
|
158 |
public function order( $components ) {
|
159 |
-
|
160 |
$deactivate_components = WCL_Plugin::app()->getPopulateOption( 'deactive_preinstall_components', [] );
|
161 |
|
162 |
$ordered_components = [
|
163 |
'premium_active' => [],
|
164 |
'premium_deactive' => [],
|
165 |
-
'
|
166 |
-
'free_deactive' => [],
|
167 |
];
|
168 |
-
|
169 |
-
foreach ( $components as $component ) {
|
170 |
-
|
|
|
171 |
if ( in_array( $component['name'], $deactivate_components ) ) {
|
172 |
// free component is deactivated
|
173 |
-
$order_key = '
|
174 |
} else {
|
175 |
// free component activated
|
176 |
-
$order_key = '
|
177 |
-
}
|
178 |
-
} else if ( $component['type'] == 'freemius' ) {
|
179 |
-
if ( $component['is_free'] ) {
|
180 |
-
// freemius free
|
181 |
-
if ( $component['actived'] ) {
|
182 |
-
$order_key = 'free_active';
|
183 |
-
} else {
|
184 |
-
$order_key = 'free_deactive';
|
185 |
-
}
|
186 |
-
} else {
|
187 |
-
// freemius premium
|
188 |
-
if ( $component['actived'] ) {
|
189 |
-
$order_key = 'premium_active';
|
190 |
-
} else {
|
191 |
-
$order_key = 'premium_deactive';
|
192 |
-
}
|
193 |
}
|
|
|
|
|
194 |
}
|
|
|
195 |
$ordered_components[ $order_key ][] = $component;
|
196 |
}
|
197 |
|
198 |
-
return array_merge( $ordered_components['premium_active'], $ordered_components['premium_deactive'], $ordered_components['
|
199 |
}
|
200 |
|
201 |
/**
|
@@ -204,19 +150,33 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
204 |
* @throws Exception
|
205 |
*/
|
206 |
public function showPageContent() {
|
207 |
-
$freemius_activated_addons = WCL_Plugin::app()->getPopulateOption( 'freemius_activated_addons', [] ); // это только для фримиус
|
208 |
-
|
209 |
$default_image = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMzYwIiB2aWV3Ym94PSIwIDAgMzYwIDM2MCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0icmdiKDcwLCA4MSwgOTMpIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wNTQ2NjY2NjY2NjY2NjciIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4wNDYiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDU0NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsIDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjAyODY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4xMDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgNjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA5OCIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIwLCA2MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDYzMzMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0MCwgNjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjE0MTMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDEyMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDg5MzMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wODkzMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4wODA2NjY2NjY2NjY2NjciIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAxMjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDEyMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDk4IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDE4MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMTgwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMTgwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjA1NDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgMjQwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4xMDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDI0MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDcyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsIDI0MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMTE1MzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMjQwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAyNDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA4MDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAyNDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjEzMjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAzMDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjAzNzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMTI0IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDcyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDMwMCkiIC8+PC9zdmc+';
|
210 |
$response = [];
|
211 |
|
212 |
-
// Удаляется при компиляции
|
213 |
-
|
214 |
$response = array_merge( $response, [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
[
|
216 |
'name' => 'robin_image_optimizer',
|
217 |
'title' => __( 'Robin image optimizer', 'clearfy' ),
|
218 |
'url' => 'https://wordpress.org/plugins/robin-image-optimizer/',
|
219 |
'type' => 'wordpress',
|
|
|
220 |
'base_path' => 'robin-image-optimizer/robin-image-optimizer.php',
|
221 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/rio-icon-128x128.png',
|
222 |
'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' )
|
@@ -226,6 +186,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
226 |
'title' => __( 'Hide login page', 'clearfy' ),
|
227 |
'url' => 'https://wordpress.org/plugins/hide-login-page/',
|
228 |
'type' => 'wordpress',
|
|
|
229 |
'base_path' => 'hide-login-page/hide-login-page.php',
|
230 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/hlp-icon-128x128.png',
|
231 |
'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' )
|
@@ -235,6 +196,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
235 |
'title' => __( 'Html minify', 'clearfy' ),
|
236 |
'url' => '#',
|
237 |
'type' => 'internal',
|
|
|
238 |
'icon' => $default_image,
|
239 |
'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' )
|
240 |
],
|
@@ -243,6 +205,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
243 |
'title' => __( 'Minify and combine (JS, CSS)', 'clearfy' ),
|
244 |
'url' => '#',
|
245 |
'type' => 'internal',
|
|
|
246 |
'icon' => $default_image,
|
247 |
'description' => __( 'Improve your speed score on GTmetrix, Pingdom Tools and Google PageSpeed Insights by merging and minifying CSS, JavaScript.', 'clearfy' )
|
248 |
],
|
@@ -251,6 +214,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
251 |
'title' => __( 'Google Analytics Cache', 'clearfy' ),
|
252 |
'url' => 'https://wordpress.org/plugins/simple-google-analytics/',
|
253 |
'type' => 'internal',
|
|
|
254 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/gac-icon-128x128.jpg',
|
255 |
'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' )
|
256 |
],
|
@@ -259,6 +223,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
259 |
'title' => __( 'Updates manager', 'clearfy' ),
|
260 |
'url' => 'https://wordpress.org/plugins/webcraftic-updates-manager/',
|
261 |
'type' => 'internal',
|
|
|
262 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/upm-icon-128x128.png',
|
263 |
'description' => __( 'Disable updates enable auto updates for themes, plugins and WordPress.', 'clearfy' )
|
264 |
],
|
@@ -267,6 +232,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
267 |
'title' => __( 'Comments tools', 'clearfy' ),
|
268 |
'url' => '#',
|
269 |
'type' => 'internal',
|
|
|
270 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/dic-icon-128x128.png',
|
271 |
'description' => __( 'Bulk disable and remove comments, disable “Website” field, hides external links, disable XML-RPC.', 'clearfy' )
|
272 |
],
|
@@ -275,6 +241,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
275 |
'title' => __( 'Widgets tools', 'clearfy' ),
|
276 |
'url' => '#',
|
277 |
'type' => 'internal',
|
|
|
278 |
'icon' => $default_image,
|
279 |
'description' => __( 'Disable unused widgets such as tag cloud, links, calendar etc.', 'clearfy' )
|
280 |
],
|
@@ -283,6 +250,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
283 |
'title' => __( 'Asset manager', 'clearfy' ),
|
284 |
'url' => '#',
|
285 |
'type' => 'internal',
|
|
|
286 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png',
|
287 |
'description' => __( 'Selectively disable unused scripts and styles on the pages of your website.', 'clearfy' )
|
288 |
],
|
@@ -291,6 +259,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
291 |
'title' => __( 'Disable admin notices', 'clearfy' ),
|
292 |
'url' => '#',
|
293 |
'type' => 'internal',
|
|
|
294 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/dan-icon-128x128.png',
|
295 |
'description' => __( 'Disables admin notices bulk or individually. Collects notices into the admin bar.', 'clearfy' )
|
296 |
],
|
@@ -299,6 +268,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
299 |
'title' => __( 'Admin bar manager', 'clearfy' ),
|
300 |
'url' => '#',
|
301 |
'type' => 'internal',
|
|
|
302 |
'icon' => $default_image,
|
303 |
'description' => __( 'Disables admin bar. Allows to change and remove admin bar elements.', 'clearfy' )
|
304 |
],
|
@@ -307,6 +277,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
307 |
'title' => __( 'Yoast SEO optimization', 'clearfy' ),
|
308 |
'url' => '#',
|
309 |
'type' => 'internal',
|
|
|
310 |
'icon' => $default_image,
|
311 |
'description' => __( 'Set of optimization functions for the popular Yoast SEO plugin.', 'clearfy' )
|
312 |
]
|
@@ -316,46 +287,11 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
316 |
'name' => 'cyrlitera',
|
317 |
'title' => __( 'Transliteration of Cyrillic alphabet', 'clearfy' ),
|
318 |
'type' => 'internal',
|
|
|
319 |
'url' => 'https://wordpress.org/plugins/cyrlitera/',
|
320 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/ctr-icon-128x128.png',
|
321 |
'description' => __( 'Converts Cyrillic permalinks of post, pages, taxonomies and media files to the Latin alphabet. Supports Russian, Ukrainian, Georgian, Bulgarian languages.', 'clearfy' )
|
322 |
];
|
323 |
-
$licensing = WCL_Licensing::instance();
|
324 |
-
$freemius_addons_data = $licensing->getAddons(); // получаем все аддоны
|
325 |
-
|
326 |
-
if ( isset( $freemius_addons_data->plugins ) ) {
|
327 |
-
foreach ( $freemius_addons_data->plugins as $freemius_addon ) {
|
328 |
-
$is_free_addon = false;
|
329 |
-
if ( $freemius_addon->free_releases_count ) {
|
330 |
-
$is_free_addon = true;
|
331 |
-
}
|
332 |
-
$actual_version = isset( $freemius_addon->info ) ? $freemius_addon->info->selling_point_0 : '';
|
333 |
-
if ( ! $actual_version ) {
|
334 |
-
$actual_version = $licensing->getAddonCurrentVersion( $freemius_addon->slug );
|
335 |
-
}
|
336 |
-
$component = [
|
337 |
-
'name' => $freemius_addon->slug,
|
338 |
-
'slug' => $freemius_addon->slug,
|
339 |
-
'title' => __( $freemius_addon->title, 'clearfy' ),
|
340 |
-
'type' => 'freemius',
|
341 |
-
'installed' => false,
|
342 |
-
'is_free' => $is_free_addon,
|
343 |
-
'actived' => false,
|
344 |
-
'version' => $actual_version,
|
345 |
-
'url' => isset( $freemius_addon->info ) ? $freemius_addon->info->url : '#',
|
346 |
-
'icon' => isset( $freemius_addon->icon ) ? $freemius_addon->icon : WCL_PLUGIN_URL . '/admin/assets/img/ctr-icon-128x128.png',
|
347 |
-
'description' => isset( $freemius_addon->info ) ? __( $freemius_addon->info->short_description, 'clearfy' ) : '',
|
348 |
-
];
|
349 |
-
|
350 |
-
if ( in_array( $component['name'], $freemius_activated_addons ) ) {
|
351 |
-
$component['actived'] = true;
|
352 |
-
}
|
353 |
-
|
354 |
-
array_unshift( $response, $component );
|
355 |
-
}
|
356 |
-
}
|
357 |
-
|
358 |
-
|
359 |
|
360 |
$components = $this->order( $response );
|
361 |
|
@@ -380,7 +316,7 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
380 |
do_action( 'wbcr/clearfy/components/custom_plugins_card', $components );
|
381 |
?>
|
382 |
|
383 |
-
<?php foreach ( $components as $component ): ?>
|
384 |
<?php
|
385 |
|
386 |
$slug = $component['name'];
|
@@ -389,25 +325,11 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
389 |
$slug = $component['base_path'];
|
390 |
}
|
391 |
|
392 |
-
|
393 |
-
$install_button = WCL_Plugin::app()->getInstallComponentsButton( $component['type'], $slug );
|
394 |
-
|
395 |
-
if ( ! $component['actived'] ) {
|
396 |
-
$status_class = ' plugin-status-deactive';
|
397 |
-
} else {
|
398 |
-
$status_class = ' plugin-status-active';
|
399 |
-
}
|
400 |
-
|
401 |
-
if ( ! $component['is_free'] ) {
|
402 |
-
$status_class .= ' premium';
|
403 |
-
}
|
404 |
-
} else {
|
405 |
-
$install_button = WCL_Plugin::app()->getInstallComponentsButton( $component['type'], $slug );
|
406 |
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
}
|
411 |
}
|
412 |
|
413 |
$install_button->addClass( 'install-now' );
|
@@ -417,29 +339,29 @@ class WCL_ComponentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
|
417 |
$delete_button->addClass( 'delete-now' );
|
418 |
|
419 |
?>
|
420 |
-
<div class="plugin-card
|
421 |
-
<?php if (
|
422 |
-
<div class="
|
423 |
<?php endif; ?>
|
424 |
<div class="plugin-card-top">
|
425 |
<div class="name column-name">
|
426 |
<h3>
|
427 |
-
<a href="
|
428 |
-
|
429 |
-
<img src="
|
430 |
</a>
|
431 |
</h3>
|
432 |
</div>
|
433 |
<div class="desc column-description">
|
434 |
-
<p
|
435 |
-
<?php // For the test, we display the current version and the current one ?>
|
436 |
-
<?php if ( isset( $component['version'] ) ) : ?><p>
|
437 |
-
Freemius: <?php echo $component['version']; ?>,
|
438 |
-
current: <?php echo $licensing->getAddonCurrentVersion( $slug ); ?></p><?php endif; ?>
|
439 |
</div>
|
440 |
</div>
|
441 |
<div class="plugin-card-bottom">
|
442 |
-
<?php $
|
|
|
|
|
|
|
|
|
443 |
</div>
|
444 |
</div>
|
445 |
<?php endforeach; ?>
|
13 |
exit;
|
14 |
}
|
15 |
|
16 |
+
class WCL_ComponentsPage extends WCL_Page {
|
17 |
|
18 |
/**
|
19 |
* The id of the page in the admin menu.
|
21 |
* Mainly used to navigate between pages.
|
22 |
*
|
23 |
* @since 1.0.0
|
24 |
+
* @see FactoryPages421_AdminPage
|
25 |
*
|
26 |
* @var string
|
27 |
*/
|
54 |
*
|
55 |
* @since 1.0.0
|
56 |
* @return void
|
57 |
+
* @see FactoryPages421_AdminPage
|
58 |
*
|
59 |
*/
|
60 |
public function assets( $scripts, $styles ) {
|
65 |
/**
|
66 |
* @since 1.4.0
|
67 |
*
|
68 |
+
* @param Wbcr_Factory421_StyleList $styles
|
69 |
+
* @param Wbcr_Factory421_ScriptList $scripts
|
70 |
*/
|
71 |
do_action( 'wbcr/clearfy/components/page_assets', $scripts, $styles );
|
72 |
}
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
/**
|
75 |
* We register notifications for some actions
|
76 |
*
|
77 |
* @param $notices
|
78 |
+
* @param Wbcr_Factory421_Plugin $plugin
|
79 |
*
|
80 |
* @return array
|
81 |
+
* @see libs\factory\pages\themplates\FactoryPages421_ImpressiveThemplate
|
82 |
*/
|
83 |
public function getActionNotices( $notices ) {
|
84 |
$notices[] = [
|
108 |
return $notices;
|
109 |
}
|
110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
/**
|
112 |
* This method simply sorts the list of components.
|
113 |
*
|
116 |
* @return array
|
117 |
*/
|
118 |
public function order( $components ) {
|
|
|
119 |
$deactivate_components = WCL_Plugin::app()->getPopulateOption( 'deactive_preinstall_components', [] );
|
120 |
|
121 |
$ordered_components = [
|
122 |
'premium_active' => [],
|
123 |
'premium_deactive' => [],
|
124 |
+
'other' => []
|
|
|
125 |
];
|
126 |
+
|
127 |
+
foreach ( (array) $components as $component ) {
|
128 |
+
|
129 |
+
if ( ( 'premium' === $component['build'] || 'freemium' === $component['build'] ) && 'internal' === $component['type'] ) {
|
130 |
if ( in_array( $component['name'], $deactivate_components ) ) {
|
131 |
// free component is deactivated
|
132 |
+
$order_key = 'premium_deactive';
|
133 |
} else {
|
134 |
// free component activated
|
135 |
+
$order_key = 'premium_active';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
}
|
137 |
+
} else {
|
138 |
+
$order_key = 'other';
|
139 |
}
|
140 |
+
|
141 |
$ordered_components[ $order_key ][] = $component;
|
142 |
}
|
143 |
|
144 |
+
return array_merge( $ordered_components['premium_active'], $ordered_components['premium_deactive'], $ordered_components['other'] );
|
145 |
}
|
146 |
|
147 |
/**
|
150 |
* @throws Exception
|
151 |
*/
|
152 |
public function showPageContent() {
|
|
|
|
|
153 |
$default_image = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjAiIGhlaWdodD0iMzYwIiB2aWV3Ym94PSIwIDAgMzYwIDM2MCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0icmdiKDcwLCA4MSwgOTMpIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wNTQ2NjY2NjY2NjY2NjciIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4wNDYiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDU0NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsIDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjAyODY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4xMDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgNjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA5OCIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIwLCA2MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDYzMzMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI0MCwgNjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjE0MTMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDYwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDEyMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDg5MzMzMzMzMzMzMzMzIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wODkzMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4wODA2NjY2NjY2NjY2NjciIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMTIwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAxMjApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjE1IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDEyMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDk4IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDE4MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEyMCwgMTgwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4wMzczMzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMTgwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMTUzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA2MzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAxODApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjA1NDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgMjQwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiNkZGQiIGZpbGwtb3BhY2l0eT0iMC4xMDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDI0MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDcyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsIDI0MCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMTE1MzMzMzMzMzMzMzMiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLW9wYWNpdHk9IjAuMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4MCwgMjQwKSIgLz48cG9seWxpbmUgcG9pbnRzPSIxOS44LDAsNDAuMiwwLDYwLDE5LjgsNjAsNDAuMiw0MC4yLDYwLDE5LjgsNjAsMCw0MC4yLDAsMTkuOCwxOS44LDAiIGZpbGw9IiMyMjIiIGZpbGwtb3BhY2l0eT0iMC4xMzI2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQwLCAyNDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjA4MDY2NjY2NjY2NjY2NyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAwLCAyNDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iIzIyMiIgZmlsbC1vcGFjaXR5PSIwLjEzMjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLCAzMDApIiAvPjxwb2x5bGluZSBwb2ludHM9IjE5LjgsMCw0MC4yLDAsNjAsMTkuOCw2MCw0MC4yLDQwLjIsNjAsMTkuOCw2MCwwLDQwLjIsMCwxOS44LDE5LjgsMCIgZmlsbD0iI2RkZCIgZmlsbC1vcGFjaXR5PSIwLjAzNzMzMzMzMzMzMzMzMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utb3BhY2l0eT0iMC4wMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMTI0IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxODAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjZGRkIiBmaWxsLW9wYWNpdHk9IjAuMDcyIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDAsIDMwMCkiIC8+PHBvbHlsaW5lIHBvaW50cz0iMTkuOCwwLDQwLjIsMCw2MCwxOS44LDYwLDQwLjIsNDAuMiw2MCwxOS44LDYwLDAsNDAuMiwwLDE5LjgsMTkuOCwwIiBmaWxsPSIjMjIyIiBmaWxsLW9wYWNpdHk9IjAuMDI4NjY2NjY2NjY2NjY3IiBzdHJva2U9IiMwMDAiIHN0cm9rZS1vcGFjaXR5PSIwLjAyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMDAsIDMwMCkiIC8+PC9zdmc+';
|
154 |
$response = [];
|
155 |
|
|
|
|
|
156 |
$response = array_merge( $response, [
|
157 |
+
/*[
|
158 |
+
'name' => 'hide_my_wp',
|
159 |
+
'title' => __( 'Hide my wp', 'clearfy' ),
|
160 |
+
'type' => 'internal',
|
161 |
+
'build' => 'premium',
|
162 |
+
'url' => 'http://clearfy.pro/hide-my-wp/',
|
163 |
+
'icon' => '//s3-us-west-2.amazonaws.com/freemius/plugins/2318/icons/db36219969de82e3d07042cc03eb53b0.png',
|
164 |
+
'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' )
|
165 |
+
],*/ [
|
166 |
+
'name' => 'seo_friendly_images_premium',
|
167 |
+
'title' => __( 'Seo friendly images', 'clearfy' ),
|
168 |
+
'type' => 'internal',
|
169 |
+
'build' => 'premium',
|
170 |
+
'url' => 'https://clearfy.pro/',
|
171 |
+
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/sfi-icon-256x256.png',
|
172 |
+
'description' => __( 'Automatically assign alt and title for images, flexibly customize the template.', 'clearfy' )
|
173 |
+
],
|
174 |
[
|
175 |
'name' => 'robin_image_optimizer',
|
176 |
'title' => __( 'Robin image optimizer', 'clearfy' ),
|
177 |
'url' => 'https://wordpress.org/plugins/robin-image-optimizer/',
|
178 |
'type' => 'wordpress',
|
179 |
+
'build' => 'freemium',
|
180 |
'base_path' => 'robin-image-optimizer/robin-image-optimizer.php',
|
181 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/rio-icon-128x128.png',
|
182 |
'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' )
|
186 |
'title' => __( 'Hide login page', 'clearfy' ),
|
187 |
'url' => 'https://wordpress.org/plugins/hide-login-page/',
|
188 |
'type' => 'wordpress',
|
189 |
+
'build' => 'free',
|
190 |
'base_path' => 'hide-login-page/hide-login-page.php',
|
191 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/hlp-icon-128x128.png',
|
192 |
'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' )
|
196 |
'title' => __( 'Html minify', 'clearfy' ),
|
197 |
'url' => '#',
|
198 |
'type' => 'internal',
|
199 |
+
'build' => 'free',
|
200 |
'icon' => $default_image,
|
201 |
'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' )
|
202 |
],
|
205 |
'title' => __( 'Minify and combine (JS, CSS)', 'clearfy' ),
|
206 |
'url' => '#',
|
207 |
'type' => 'internal',
|
208 |
+
'build' => 'free',
|
209 |
'icon' => $default_image,
|
210 |
'description' => __( 'Improve your speed score on GTmetrix, Pingdom Tools and Google PageSpeed Insights by merging and minifying CSS, JavaScript.', 'clearfy' )
|
211 |
],
|
214 |
'title' => __( 'Google Analytics Cache', 'clearfy' ),
|
215 |
'url' => 'https://wordpress.org/plugins/simple-google-analytics/',
|
216 |
'type' => 'internal',
|
217 |
+
'build' => 'free',
|
218 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/gac-icon-128x128.jpg',
|
219 |
'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' )
|
220 |
],
|
223 |
'title' => __( 'Updates manager', 'clearfy' ),
|
224 |
'url' => 'https://wordpress.org/plugins/webcraftic-updates-manager/',
|
225 |
'type' => 'internal',
|
226 |
+
'build' => 'freemium',
|
227 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/upm-icon-128x128.png',
|
228 |
'description' => __( 'Disable updates enable auto updates for themes, plugins and WordPress.', 'clearfy' )
|
229 |
],
|
232 |
'title' => __( 'Comments tools', 'clearfy' ),
|
233 |
'url' => '#',
|
234 |
'type' => 'internal',
|
235 |
+
'build' => 'free',
|
236 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/dic-icon-128x128.png',
|
237 |
'description' => __( 'Bulk disable and remove comments, disable “Website” field, hides external links, disable XML-RPC.', 'clearfy' )
|
238 |
],
|
241 |
'title' => __( 'Widgets tools', 'clearfy' ),
|
242 |
'url' => '#',
|
243 |
'type' => 'internal',
|
244 |
+
'build' => 'free',
|
245 |
'icon' => $default_image,
|
246 |
'description' => __( 'Disable unused widgets such as tag cloud, links, calendar etc.', 'clearfy' )
|
247 |
],
|
250 |
'title' => __( 'Asset manager', 'clearfy' ),
|
251 |
'url' => '#',
|
252 |
'type' => 'internal',
|
253 |
+
'build' => 'freemium',
|
254 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png',
|
255 |
'description' => __( 'Selectively disable unused scripts and styles on the pages of your website.', 'clearfy' )
|
256 |
],
|
259 |
'title' => __( 'Disable admin notices', 'clearfy' ),
|
260 |
'url' => '#',
|
261 |
'type' => 'internal',
|
262 |
+
'build' => 'free',
|
263 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/dan-icon-128x128.png',
|
264 |
'description' => __( 'Disables admin notices bulk or individually. Collects notices into the admin bar.', 'clearfy' )
|
265 |
],
|
268 |
'title' => __( 'Admin bar manager', 'clearfy' ),
|
269 |
'url' => '#',
|
270 |
'type' => 'internal',
|
271 |
+
'build' => 'free',
|
272 |
'icon' => $default_image,
|
273 |
'description' => __( 'Disables admin bar. Allows to change and remove admin bar elements.', 'clearfy' )
|
274 |
],
|
277 |
'title' => __( 'Yoast SEO optimization', 'clearfy' ),
|
278 |
'url' => '#',
|
279 |
'type' => 'internal',
|
280 |
+
'build' => 'free',
|
281 |
'icon' => $default_image,
|
282 |
'description' => __( 'Set of optimization functions for the popular Yoast SEO plugin.', 'clearfy' )
|
283 |
]
|
287 |
'name' => 'cyrlitera',
|
288 |
'title' => __( 'Transliteration of Cyrillic alphabet', 'clearfy' ),
|
289 |
'type' => 'internal',
|
290 |
+
'build' => 'free',
|
291 |
'url' => 'https://wordpress.org/plugins/cyrlitera/',
|
292 |
'icon' => WCL_PLUGIN_URL . '/admin/assets/img/ctr-icon-128x128.png',
|
293 |
'description' => __( 'Converts Cyrillic permalinks of post, pages, taxonomies and media files to the Latin alphabet. Supports Russian, Ukrainian, Georgian, Bulgarian languages.', 'clearfy' )
|
294 |
];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
|
296 |
$components = $this->order( $response );
|
297 |
|
316 |
do_action( 'wbcr/clearfy/components/custom_plugins_card', $components );
|
317 |
?>
|
318 |
|
319 |
+
<?php foreach ( (array) $components as $component ): ?>
|
320 |
<?php
|
321 |
|
322 |
$slug = $component['name'];
|
325 |
$slug = $component['base_path'];
|
326 |
}
|
327 |
|
328 |
+
$install_button = WCL_Plugin::app()->getInstallComponentsButton( $component['type'], $slug );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
329 |
|
330 |
+
$status_class = '';
|
331 |
+
if ( ! $install_button->isPluginActivate() ) {
|
332 |
+
$status_class = ' plugin-status-deactive';
|
|
|
333 |
}
|
334 |
|
335 |
$install_button->addClass( 'install-now' );
|
339 |
$delete_button->addClass( 'delete-now' );
|
340 |
|
341 |
?>
|
342 |
+
<div class="plugin-card<?php echo esc_attr( $status_class ) ?>">
|
343 |
+
<?php if ( isset( $component['build'] ) ): ?>
|
344 |
+
<div class="plugin-card-<?php echo esc_attr( $component['build'] ) ?>-ribbon"><?php echo ucfirst( esc_html( $component['build'] ) ) ?></div>
|
345 |
<?php endif; ?>
|
346 |
<div class="plugin-card-top">
|
347 |
<div class="name column-name">
|
348 |
<h3>
|
349 |
+
<a href="<?php echo esc_url( $component['url'] ) ?>" class="thickbox open-plugin-details-modal">
|
350 |
+
<?php echo esc_html( $component['title'] ) ?>
|
351 |
+
<img src="<?php echo esc_attr( $component['icon'] ) ?>" class="plugin-icon" alt="<?php echo esc_attr( $component['title'] ) ?>">
|
352 |
</a>
|
353 |
</h3>
|
354 |
</div>
|
355 |
<div class="desc column-description">
|
356 |
+
<p><?php echo esc_html( $component['description'] ); ?></p>
|
|
|
|
|
|
|
|
|
357 |
</div>
|
358 |
</div>
|
359 |
<div class="plugin-card-bottom">
|
360 |
+
<?php if ( 'premium' === $component['build'] && ! ( WCL_plugin::app()->premium->is_activate() && WCL_plugin::app()->premium->is_install_package() ) ): ?>
|
361 |
+
<a target="_blank" href="<?php echo esc_url( $component['url'] ) ?>" class="button button-default install-now"><?php _e( 'Read more', 'clearfy' ); ?></a>
|
362 |
+
<?php else: ?>
|
363 |
+
<?php $delete_button->renderButton(); ?><?php $install_button->renderButton(); ?>
|
364 |
+
<?php endif; ?>
|
365 |
</div>
|
366 |
</div>
|
367 |
<?php endforeach; ?>
|
admin/pages/{defence.php → class-pages-defence.php}
RENAMED
@@ -11,13 +11,13 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
11 |
exit;
|
12 |
}
|
13 |
|
14 |
-
class WCL_DefencePage extends
|
15 |
|
16 |
/**
|
17 |
* The id of the page in the admin menu.
|
18 |
*
|
19 |
* Mainly used to navigate between pages.
|
20 |
-
* @see
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
* @var string
|
@@ -132,7 +132,7 @@ class WCL_DefencePage extends Wbcr_FactoryClearfy206_PageBase {
|
|
132 |
//'cssClass' => 'postbox'
|
133 |
);
|
134 |
|
135 |
-
return
|
136 |
$form_options,
|
137 |
$this
|
138 |
), '1.3.1', 'wbcr_clearfy_defence_form_options' );
|
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 FactoryPages421_AdminPage
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
* @var string
|
132 |
//'cssClass' => 'postbox'
|
133 |
);
|
134 |
|
135 |
+
return wbcr_factory_421_apply_filters_deprecated( 'wbcr_clr_defence_form_options', array(
|
136 |
$form_options,
|
137 |
$this
|
138 |
), '1.3.1', 'wbcr_clearfy_defence_form_options' );
|
admin/pages/{hide-login-page.php → class-pages-hide-login-page.php}
RENAMED
@@ -11,13 +11,13 @@
|
|
11 |
exit;
|
12 |
}
|
13 |
|
14 |
-
class WCL_HideLoginPage extends
|
15 |
|
16 |
/**
|
17 |
* The id of the page in the admin menu.
|
18 |
*
|
19 |
* Mainly used to navigate between pages.
|
20 |
-
* @see
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
* @var string
|
@@ -78,7 +78,7 @@
|
|
78 |
?>
|
79 |
<script>
|
80 |
jQuery(document).ready(function($) {
|
81 |
-
$.
|
82 |
if( component_name.plugin_action == 'install' ) {
|
83 |
button.removeClass('wbcr-factory-purchase-premium');
|
84 |
button.addClass('wbcr-factory-activate-premium');
|
@@ -91,7 +91,7 @@
|
|
91 |
});
|
92 |
});
|
93 |
</script>
|
94 |
-
<div class="wbcr-factory-clearfy-
|
95 |
<div class="wbcr-factory-inner-contanier">
|
96 |
<h3><?php _e('Install Hide login page component', 'clearfy') ?></h3>
|
97 |
|
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 FactoryPages421_AdminPage
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
* @var string
|
78 |
?>
|
79 |
<script>
|
80 |
jQuery(document).ready(function($) {
|
81 |
+
$.wbcr_factory_clearfy_213.hooks.add('clearfy/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');
|
91 |
});
|
92 |
});
|
93 |
</script>
|
94 |
+
<div class="wbcr-factory-clearfy-213-multisite-suggetion">
|
95 |
<div class="wbcr-factory-inner-contanier">
|
96 |
<h3><?php _e('Install Hide login page component', 'clearfy') ?></h3>
|
97 |
|
admin/pages/class-pages-image-optimization.php
ADDED
@@ -0,0 +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 FactoryPages421_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 = new WCL_InstallPluginsButton( 'wordpress', 'robin-image-optimizer/robin-image-optimizer.php' );
|
78 |
+
$install_button->addClass( 'wbcr-factory-purchase-premium' );
|
79 |
+
?>
|
80 |
+
<script>
|
81 |
+
jQuery(document).ready(function($) {
|
82 |
+
$.wbcr_factory_clearfy_213.hooks.add('clearfy/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-213-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->renderLink(); ?>
|
102 |
+
</p>
|
103 |
+
</div>
|
104 |
+
</div>
|
105 |
+
<?php
|
106 |
+
}
|
107 |
+
}
|
admin/pages/class-pages-license.php
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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_FactoryClearfy213_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 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
40 |
+
*
|
41 |
+
* @param \Wbcr_Factory421_Plugin $plugin
|
42 |
+
*/
|
43 |
+
public function __construct( Wbcr_Factory421_Plugin $plugin ) {
|
44 |
+
$this->menu_title = __( 'License', 'robin-image-optimizer' );
|
45 |
+
$this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
|
46 |
+
$this->plan_name = __( 'Clearfy Business', 'robin-image-optimizer' );
|
47 |
+
|
48 |
+
parent::__construct( $plugin );
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* {@inheritdoc}
|
53 |
+
*
|
54 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
55 |
+
* @since 1.6.0
|
56 |
+
* @return string
|
57 |
+
*/
|
58 |
+
public function get_plan_description() {
|
59 |
+
$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>';
|
60 |
+
$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>';
|
61 |
+
|
62 |
+
return $description;
|
63 |
+
}
|
64 |
+
}
|
admin/pages/{performance-google.php → class-pages-performance-google.php}
RENAMED
@@ -10,13 +10,13 @@
|
|
10 |
exit;
|
11 |
}
|
12 |
|
13 |
-
class WCL_PerformanceGooglePage extends
|
14 |
|
15 |
/**
|
16 |
* The id of the page in the admin menu.
|
17 |
*
|
18 |
* Mainly used to navigate between pages.
|
19 |
-
* @see
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
* @var string
|
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 FactoryPages421_AdminPage
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
* @var string
|
admin/pages/{performance.php → class-pages-performance.php}
RENAMED
@@ -10,30 +10,34 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
10 |
exit;
|
11 |
}
|
12 |
|
13 |
-
class WCL_PerformancePage extends
|
14 |
|
15 |
/**
|
16 |
-
*
|
17 |
-
*
|
18 |
-
* Mainly used to navigate between pages.
|
19 |
-
*
|
20 |
-
* @since 1.0.0
|
21 |
-
* @see FactoryPages410_AdminPage
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
public $id = "performance";
|
26 |
|
27 |
/**
|
|
|
|
|
28 |
* @var string
|
29 |
*/
|
30 |
public $page_menu_dashicon = 'dashicons-performance';
|
31 |
|
32 |
/**
|
|
|
|
|
33 |
* @var int
|
34 |
*/
|
35 |
public $page_menu_position = 20;
|
36 |
|
|
|
|
|
|
|
|
|
|
|
37 |
public $available_for_multisite = true;
|
38 |
|
39 |
/**
|
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 |
/**
|
admin/pages/{quick-start.php → class-pages-quick-start.php}
RENAMED
@@ -11,13 +11,13 @@
|
|
11 |
exit;
|
12 |
}
|
13 |
|
14 |
-
class WCL_QuickStartPage extends
|
15 |
|
16 |
/**
|
17 |
* The id of the page in the admin menu.
|
18 |
*
|
19 |
* Mainly used to navigate between pages.
|
20 |
-
* @see
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
* @var string
|
@@ -79,7 +79,7 @@
|
|
79 |
/**
|
80 |
* Requests assets (js and css) for the page.
|
81 |
*
|
82 |
-
* @see
|
83 |
*
|
84 |
* @since 1.0.0
|
85 |
* @return void
|
@@ -175,7 +175,7 @@
|
|
175 |
|
176 |
<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>
|
177 |
|
178 |
-
<
|
179 |
<?php foreach($allow_mods as $mode_name => $mode): ?>
|
180 |
<?php
|
181 |
$mode_title = $mode;
|
@@ -189,7 +189,7 @@
|
|
189 |
}
|
190 |
?>
|
191 |
|
192 |
-
<
|
193 |
<?php
|
194 |
$group = WCL_Group::getInstance($mode_name);
|
195 |
|
@@ -221,9 +221,9 @@
|
|
221 |
</button>
|
222 |
</div>
|
223 |
</div>
|
224 |
-
</
|
225 |
<?php endforeach; ?>
|
226 |
-
</
|
227 |
</div>
|
228 |
</div>
|
229 |
<?php
|
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 FactoryPages421_AdminPage
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
* @var string
|
79 |
/**
|
80 |
* Requests assets (js and css) for the page.
|
81 |
*
|
82 |
+
* @see FactoryPages421_AdminPage
|
83 |
*
|
84 |
* @since 1.0.0
|
85 |
* @return void
|
175 |
|
176 |
<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>
|
177 |
|
178 |
+
<ul>
|
179 |
<?php foreach($allow_mods as $mode_name => $mode): ?>
|
180 |
<?php
|
181 |
$mode_title = $mode;
|
189 |
}
|
190 |
?>
|
191 |
|
192 |
+
<li>
|
193 |
<?php
|
194 |
$group = WCL_Group::getInstance($mode_name);
|
195 |
|
221 |
</button>
|
222 |
</div>
|
223 |
</div>
|
224 |
+
</li>
|
225 |
<?php endforeach; ?>
|
226 |
+
</ul>
|
227 |
</div>
|
228 |
</div>
|
229 |
<?php
|
admin/pages/{seo-double-pages.php → class-pages-seo-double-pages.php}
RENAMED
@@ -10,13 +10,13 @@
|
|
10 |
exit;
|
11 |
}
|
12 |
|
13 |
-
class WCL_DoublePagesPage extends
|
14 |
|
15 |
/**
|
16 |
* The id of the page in the admin menu.
|
17 |
*
|
18 |
* Mainly used to navigate between pages.
|
19 |
-
* @see
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
* @var string
|
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 FactoryPages421_AdminPage
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
* @var string
|
admin/pages/{seo.php → class-pages-seo.php}
RENAMED
@@ -10,13 +10,13 @@
|
|
10 |
exit;
|
11 |
}
|
12 |
|
13 |
-
class WCL_SeoPage extends
|
14 |
|
15 |
/**
|
16 |
* The id of the page in the admin menu.
|
17 |
*
|
18 |
* Mainly used to navigate between pages.
|
19 |
-
* @see
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
* @var string
|
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 FactoryPages421_AdminPage
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
* @var string
|
admin/pages/{widgets.php → class-pages-widgets.php}
RENAMED
@@ -10,13 +10,13 @@
|
|
10 |
exit;
|
11 |
}
|
12 |
|
13 |
-
class WCL_WidgetsPage extends
|
14 |
|
15 |
/**
|
16 |
* The id of the page in the admin menu.
|
17 |
*
|
18 |
* Mainly used to navigate between pages.
|
19 |
-
* @see
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
* @var string
|
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 FactoryPages421_AdminPage
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
* @var string
|
admin/pages/image-optimization.php
DELETED
@@ -1,111 +0,0 @@
|
|
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 Wbcr_FactoryClearfy206_PageBase {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* The id of the page in the admin menu.
|
18 |
-
*
|
19 |
-
* Mainly used to navigate between pages.
|
20 |
-
* @see FactoryPages410_AdminPage
|
21 |
-
*
|
22 |
-
* @since 1.0.0
|
23 |
-
* @var string
|
24 |
-
*/
|
25 |
-
public $id = "clrf_image_optimization";
|
26 |
-
|
27 |
-
/**
|
28 |
-
* @var string
|
29 |
-
*/
|
30 |
-
public $page_parent_page = 'performance';
|
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 = __('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 |
-
{
|
77 |
-
require_once WCL_PLUGIN_DIR . '/admin/includes/classes/class.install-plugins-button.php';
|
78 |
-
$install_button = new WCL_InstallPluginsButton('wordpress', 'robin-image-optimizer/robin-image-optimizer.php');
|
79 |
-
$install_button->addClass('wbcr-factory-purchase-premium');
|
80 |
-
?>
|
81 |
-
<script>
|
82 |
-
jQuery(document).ready(function($) {
|
83 |
-
$.wbcr_factory_clearfy_206.hooks.add('clearfy/components/updated', function(button, component_name) {
|
84 |
-
if( component_name.plugin_action == 'install' ) {
|
85 |
-
button.removeClass('wbcr-factory-purchase-premium');
|
86 |
-
button.addClass('wbcr-factory-activate-premium');
|
87 |
-
}
|
88 |
-
|
89 |
-
if( component_name.plugin_action == 'activate' ) {
|
90 |
-
button.remove();
|
91 |
-
window.location.href = '<?= $this->getBaseUrl('io_general'); ?>';
|
92 |
-
}
|
93 |
-
});
|
94 |
-
});
|
95 |
-
</script>
|
96 |
-
<div class="wbcr-factory-clearfy-206-multisite-suggetion">
|
97 |
-
<div class="wbcr-factory-inner-contanier">
|
98 |
-
<h3><?php _e('Install Robin Image Optimizer component', 'clearfy') ?></h3>
|
99 |
-
|
100 |
-
<p><?php _e('To start optimizing images, you need to install the additional component Robin image optimizer!', 'clearfy') ?></p>
|
101 |
-
|
102 |
-
<p><?php _e('Installing the component will not take you long, just click the install button, then activate.', 'clearfy') ?></p>
|
103 |
-
|
104 |
-
<p style="margin-top:20px">
|
105 |
-
<?php $install_button->renderLink(); ?>
|
106 |
-
</p>
|
107 |
-
</div>
|
108 |
-
</div>
|
109 |
-
<?php
|
110 |
-
}
|
111 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/pages/license.php
DELETED
@@ -1,270 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* The page License page class.
|
4 |
-
*
|
5 |
-
* @since 1.0.0
|
6 |
-
*/
|
7 |
-
|
8 |
-
// Exit if accessed directly
|
9 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
-
exit;
|
11 |
-
}
|
12 |
-
|
13 |
-
class WCL_LicensePage extends Wbcr_FactoryClearfy206_PageBase {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* The id of the page in the admin menu.
|
17 |
-
*
|
18 |
-
* Mainly used to navigate between pages.
|
19 |
-
* @see Wbcr_FactoryPages410_AdminPage
|
20 |
-
*
|
21 |
-
* @since 1.0.0
|
22 |
-
* @var string
|
23 |
-
*/
|
24 |
-
public $id = "license";
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Тип страницы - произвольный контент
|
28 |
-
* @var string
|
29 |
-
*/
|
30 |
-
public $type = "page";
|
31 |
-
|
32 |
-
/**
|
33 |
-
* Иконка страницы
|
34 |
-
* Полный список иконок смотреть тут:
|
35 |
-
* https://developer.wordpress.org/resource/dashicons/#admin-network
|
36 |
-
* @var string
|
37 |
-
*/
|
38 |
-
public $page_menu_dashicon = 'dashicons-admin-network';
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Показывать правый сайдбар?
|
42 |
-
* Сайдбар будет показан на внутренних страницах шаблона.
|
43 |
-
*
|
44 |
-
* @var bool
|
45 |
-
*/
|
46 |
-
public $show_right_sidebar_in_options = false;
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Позиция закладки в меню плагина.
|
50 |
-
* 0 - в самом конце, 100 - в самом начале
|
51 |
-
* @var int
|
52 |
-
*/
|
53 |
-
public $page_menu_position = 0;
|
54 |
-
|
55 |
-
public $available_for_multisite = true;
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @param WCL_Plugin $plugin
|
59 |
-
*/
|
60 |
-
public function __construct( WCL_Plugin $plugin ) {
|
61 |
-
$this->menu_title = __( 'License', 'clearfy' );
|
62 |
-
$this->page_menu_short_description = __( 'Product activation', 'clearfy' );
|
63 |
-
|
64 |
-
parent::__construct( $plugin );
|
65 |
-
|
66 |
-
$this->plugin = $plugin;
|
67 |
-
}
|
68 |
-
|
69 |
-
/**
|
70 |
-
* [MAGIC] Magic method that configures assets for a page.
|
71 |
-
*/
|
72 |
-
public function assets( $scripts, $styles ) {
|
73 |
-
parent::assets( $scripts, $styles );
|
74 |
-
|
75 |
-
$this->styles->add( WCL_PLUGIN_URL . '/admin/assets/css/license-manager.css' );
|
76 |
-
$this->scripts->add( WCL_PLUGIN_URL . '/admin/assets/js/license-manager.js' );
|
77 |
-
}
|
78 |
-
|
79 |
-
/**
|
80 |
-
* Метод печатает html содержимое страницы
|
81 |
-
* @return void
|
82 |
-
*/
|
83 |
-
public function showPageContent() {
|
84 |
-
?>
|
85 |
-
<?php wp_nonce_field( 'license' ); ?>
|
86 |
-
<div id="wcl-license-wrapper" data-loader="<?php echo WCL_PLUGIN_URL . '/admin/assets/img/loader.gif'; ?>">
|
87 |
-
<?php $this->showLicenseForm(); ?>
|
88 |
-
</div>
|
89 |
-
<?php
|
90 |
-
}
|
91 |
-
|
92 |
-
public function showLicenseForm() {
|
93 |
-
|
94 |
-
$licensing = WCL_Licensing::instance();
|
95 |
-
$storage = $licensing->getStorage();
|
96 |
-
$license = $storage->getLicense();
|
97 |
-
|
98 |
-
$license_type = 'free';
|
99 |
-
$license_key = '';
|
100 |
-
$plan = 'free';
|
101 |
-
$premium = false;
|
102 |
-
$has_key = false;
|
103 |
-
|
104 |
-
$remained = 999;
|
105 |
-
$subscribe = false;
|
106 |
-
|
107 |
-
if ( isset( $license->id ) ) {
|
108 |
-
$subscribe = true;
|
109 |
-
$license_type = 'paid';
|
110 |
-
$activated = $license->activated;
|
111 |
-
$quota = $license->quota;
|
112 |
-
$license_key = substr_replace( $license->secret_key, '******', 15, 6 );
|
113 |
-
$plan = $license->plan_title;
|
114 |
-
$premium = true;
|
115 |
-
$has_key = true;
|
116 |
-
|
117 |
-
$remained = $license->remainingDays();
|
118 |
-
|
119 |
-
if ( 1 == $license->billing_cycle ) {
|
120 |
-
$billing = 'month';
|
121 |
-
}
|
122 |
-
|
123 |
-
if ( 12 == $license->billing_cycle ) {
|
124 |
-
$billing = 'year';
|
125 |
-
}
|
126 |
-
|
127 |
-
if ( 0 == $license->billing_cycle ) {
|
128 |
-
$billing = 'lifetime';
|
129 |
-
}
|
130 |
-
|
131 |
-
if ( $license->is_lifetime() ) {
|
132 |
-
$billing = 'lifetime';
|
133 |
-
$license_type = 'gift';
|
134 |
-
$quota = 999;
|
135 |
-
}
|
136 |
-
|
137 |
-
if ( is_null( $license->billing_cycle ) ) {
|
138 |
-
$billing = 'month';
|
139 |
-
$subscribe = false;
|
140 |
-
}
|
141 |
-
}
|
142 |
-
|
143 |
-
if ( $remained < 1 ) {
|
144 |
-
$license_type = 'trial';
|
145 |
-
}
|
146 |
-
|
147 |
-
?>
|
148 |
-
<div class="factory-bootstrap-409 onp-page-wrap <?= $license_type ?>-license-manager-content" id="license-manager">
|
149 |
-
<div>
|
150 |
-
<h3><?php _e( 'Activation Clearfy Business', 'clearfy' ) ?></h3>
|
151 |
-
<p style="font-size: 16px;"><?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>
|
152 |
-
<p style="font-size: 16px;"><?php _e( 'Paid license guarantees that you can download and update existing and future paid components of the plugin.', 'clearfy' ) ?></p>
|
153 |
-
</div>
|
154 |
-
<br>
|
155 |
-
<div class="onp-container">
|
156 |
-
<div class="license-details">
|
157 |
-
<?php if ( $license_type == 'free' ): ?>
|
158 |
-
<a href="<?= WbcrFactoryClearfy206_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'pricing', 'license_page' ) ?>" class="purchase-premium" target="_blank" rel="noopener">
|
159 |
-
<span class="btn btn-gold btn-inner-wrap">
|
160 |
-
<i class="fa fa-star"></i> <?php printf( __( 'Upgrade to Premium for $%s', 'clearfy' ), WbcrFactoryClearfy206_Helpers::getClearfyBusinessPrice() ) ?>
|
161 |
-
<i class="fa fa-star"></i>
|
162 |
-
</span>
|
163 |
-
</a>
|
164 |
-
<p><?php printf( __( 'Your current license for %1$s:', 'clearfy' ), $this->plugin->getPluginTitle() ) ?></p>
|
165 |
-
<?php endif; ?>
|
166 |
-
<div class="license-details-block <?= $license_type ?>-details-block">
|
167 |
-
<?php if ( $has_key ) { ?>
|
168 |
-
<a data-action="deactivate" href="#" class="btn btn-default btn-small license-delete-button wcl-control-btn"><i class="icon-remove-sign"></i> <?php _e( 'Delete Key', 'clearfy' ) ?>
|
169 |
-
</a>
|
170 |
-
<a data-action="sync" href="#" class="btn btn-default btn-small license-synchronization-button wcl-control-btn"><i class="icon-remove-sign"></i> <?php _e( 'Synchronization', 'clearfy' ) ?>
|
171 |
-
</a>
|
172 |
-
<?php } ?>
|
173 |
-
<h3>
|
174 |
-
<?= ucfirst( $plan ); ?>
|
175 |
-
<?php if ( $premium and $subscribe ) { ?>
|
176 |
-
<span style="font-size: 15px;"><?php printf( __( '(Automatic renewal, every %s', '' ), esc_attr( $billing ) ); ?>
|
177 |
-
)</span>
|
178 |
-
<?php } ?>
|
179 |
-
</h3>
|
180 |
-
<?php if ( $has_key ) { ?>
|
181 |
-
<div class="license-key-identity"><code><?= esc_attr( $license_key ) ?></code></div>
|
182 |
-
<?php } ?>
|
183 |
-
<div class="license-key-description">
|
184 |
-
<p><?php _e( 'Public License is a GPLv2 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' ) ?>
|
185 |
-
</p>
|
186 |
-
<?php if ( $premium and $subscribe and $license->billing_cycle ) { ?>
|
187 |
-
<p class="activate-trial-hint">
|
188 |
-
<?php _e( 'You use a paid subscription for the plugin updates. In case you don’t want to receive paid updates, please, click <a data-action="unsubscribe" class="wcl-control-btn" href="#">cancel subscription</a>', 'clearfy' ) ?>
|
189 |
-
</p>
|
190 |
-
<?php } ?>
|
191 |
-
<?php if ( $remained < 1 ) { ?>
|
192 |
-
<p class="activate-error-hint">
|
193 |
-
<?php printf( __( 'Your license has expired, please extend the license to get updates and support.', 'clearfy' ), '' ) ?>
|
194 |
-
</p>
|
195 |
-
<?php } ?>
|
196 |
-
</div>
|
197 |
-
<table class="license-params" colspacing="0" colpadding="0">
|
198 |
-
<tr>
|
199 |
-
<!--<td class="license-param license-param-domain">
|
200 |
-
<span class="license-value"><?php echo esc_attr( $_SERVER['SERVER_NAME'] ); ?></span>
|
201 |
-
<span class="license-value-name"><?php _e( 'domain', 'clearfy' ) ?></span>
|
202 |
-
</td>-->
|
203 |
-
<td class="license-param license-param-days">
|
204 |
-
<span class="license-value"><?= $plan ?></span>
|
205 |
-
<span class="license-value-name"><?php _e( 'plan', 'clearfy' ) ?></span>
|
206 |
-
</td>
|
207 |
-
<?php if ( $premium ) : ?>
|
208 |
-
<td class="license-param license-param-sites">
|
209 |
-
<span class="license-value"><?php echo esc_attr( $activated ); ?> <?php _e( 'of', 'clearfy' ) ?> <?php echo esc_attr( $quota ); ?></span>
|
210 |
-
<span class="license-value-name"><?php _e( 'active sites', 'clearfy' ) ?></span>
|
211 |
-
</td>
|
212 |
-
<?php endif; ?>
|
213 |
-
<td class="license-param license-param-version">
|
214 |
-
<span class="license-value"><?= $this->plugin->getPluginVersion() ?>
|
215 |
-
<small><?php _e( 'version', 'clearfy' ) ?></small></span>
|
216 |
-
<span class="license-value-name"><span><?php _e( 'up-to-date', 'clearfy' ) ?></span></span>
|
217 |
-
</td>
|
218 |
-
<?php if ( $premium ) { ?>
|
219 |
-
<td class="license-param license-param-days">
|
220 |
-
<?php if ( $remained < 1 ) { ?>
|
221 |
-
<span class="license-value"><?php _e( 'EXPIRED!', 'clearfy' ) ?></span>
|
222 |
-
<span class="license-value-name"><?php _e( 'please update the key', 'clearfy' ) ?></span>
|
223 |
-
<?php } else { ?>
|
224 |
-
<span class="license-value">
|
225 |
-
<?php
|
226 |
-
if ( $billing == 'lifetime' ) {
|
227 |
-
$remained = 'infiniate';
|
228 |
-
}
|
229 |
-
?>
|
230 |
-
<?= $remained ?>
|
231 |
-
<small> <?php _e( 'day(s)', 'clearfy' ) ?></small>
|
232 |
-
</span>
|
233 |
-
<span class="license-value-name"><?php _e( 'remained', 'clearfy' ) ?></span>
|
234 |
-
<?php } ?>
|
235 |
-
</td>
|
236 |
-
<?php } ?>
|
237 |
-
</tr>
|
238 |
-
</table>
|
239 |
-
</div>
|
240 |
-
</div>
|
241 |
-
<div class="license-input">
|
242 |
-
<form action="" method="post">
|
243 |
-
<?php if ( $premium ) { ?>
|
244 |
-
<p><?php _e( 'Have a key to activate the premium version? Paste it here:', 'clearfy' ) ?><p>
|
245 |
-
<?php } else { ?>
|
246 |
-
<p><?php _e( 'Have a key to activate the plugin? Paste it here:', 'clearfy' ) ?>
|
247 |
-
<p>
|
248 |
-
<?php } ?>
|
249 |
-
<button data-action="activate" class="btn btn-default wcl-control-btn" type="button" id="license-submit">
|
250 |
-
<?php _e( 'Submit Key', 'clearfy' ) ?>
|
251 |
-
</button>
|
252 |
-
<div class="license-key-wrap">
|
253 |
-
<input type="text" id="license-key" name="licensekey" value="" class="form-control"/>
|
254 |
-
</div>
|
255 |
-
<?php if ( $premium ) { ?>
|
256 |
-
<p style="margin-top: 10px;">
|
257 |
-
<?php printf( __( '<a href="%s" target="_blank" rel="noopener">Lean more</a> about the premium version and get the license key to activate it now!', 'clearfy' ), WbcrFactoryClearfy206_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'pricing', 'license_page' ) ) ?>
|
258 |
-
</p>
|
259 |
-
<?php } else { ?>
|
260 |
-
<p style="margin-top: 10px;">
|
261 |
-
<?php printf( __( 'Can’t find your key? Go to <a href="%s" target="_blank" rel="noopener">this page</a> and login using the e-mail address associated with your purchase.', 'clearfy' ), WbcrFactoryClearfy206_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'contact-us', 'license_page' ) ) ?>
|
262 |
-
</p>
|
263 |
-
<?php } ?>
|
264 |
-
</form>
|
265 |
-
</div>
|
266 |
-
</div>
|
267 |
-
</div>
|
268 |
-
<?php
|
269 |
-
}
|
270 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
clearfy.php
CHANGED
@@ -4,88 +4,185 @@
|
|
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 |
* Text Domain: clearfy
|
9 |
* Domain Path: /languages/
|
10 |
* Author URI: http://clearfy.pro
|
11 |
-
* Framework Version:
|
12 |
*/
|
13 |
|
14 |
-
// @formatter:off
|
15 |
// Exit if accessed directly
|
16 |
if ( ! defined( 'ABSPATH' ) ) {
|
17 |
exit;
|
18 |
}
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
23 |
|
24 |
-
|
25 |
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
-
define( 'WBCR_CLEARFY_FRAMEWORK_VER', 'FACTORY_409_VERSION' );
|
29 |
|
30 |
-
define( 'WCL_PLUGIN_DIR', dirname( __FILE__ ) );
|
31 |
-
define( 'WCL_PLUGIN_BASE', plugin_basename( __FILE__ ) );
|
32 |
-
define( 'WCL_PLUGIN_URL', plugins_url( null, __FILE__ ) );
|
33 |
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
|
42 |
-
|
|
|
|
|
|
|
|
|
43 |
return;
|
44 |
}
|
45 |
-
// ----------------------------------------
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
|
|
|
|
48 |
|
49 |
-
|
50 |
-
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
'freemius_public_key' => 'pk_70e226af07d37d2b9a69720e0952c',
|
60 |
-
'plugin_build' => 'free',
|
61 |
-
'updates' => WCL_PLUGIN_DIR . '/updates/',
|
62 |
-
'plugin_as_component' => false,
|
63 |
-
'plugin_dir' => WCL_PLUGIN_DIR,
|
64 |
-
'plugin_base' => WCL_PLUGIN_BASE,
|
65 |
-
'plugin_url' => WCL_PLUGIN_URL,
|
66 |
-
'required_php_version' => '5.4',
|
67 |
-
'required_wp_version' => '4.2.0',
|
68 |
-
'factory_version' => 'FACTORY_409_VERSION'
|
69 |
-
);
|
70 |
|
71 |
|
72 |
|
73 |
/**
|
74 |
-
*
|
|
|
|
|
75 |
*/
|
76 |
-
|
|
|
77 |
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
|
82 |
-
|
|
|
|
|
|
|
83 |
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
new WCL_Plugin( __FILE__, $plugin_info );
|
89 |
|
|
|
|
|
|
|
|
|
90 |
|
|
|
|
|
|
|
91 |
// @formatter:on
|
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.6.0
|
8 |
* Text Domain: clearfy
|
9 |
* Domain Path: /languages/
|
10 |
* Author URI: http://clearfy.pro
|
11 |
+
* Framework Version: FACTORY_421_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 |
+
// PLUGIN SUPPORT
|
36 |
+
'support_details' => array(
|
37 |
+
'url' => 'http://clearfy.pro',
|
38 |
+
'pages_map' => array(
|
39 |
+
'features' => 'premium-features', // {site}/premium-features
|
40 |
+
'pricing' => 'pricing', // {site}/prices
|
41 |
+
'support' => 'support', // {site}/support
|
42 |
+
'docs' => 'docs' // {site}/docs
|
43 |
+
)
|
44 |
+
),
|
45 |
+
//todo: for compatibility with Robin image optimizer
|
46 |
+
'freemius_plugin_id' => '2315',
|
47 |
+
'freemius_public_key' => 'pk_70e226af07d37d2b9a69720e0952c',
|
48 |
+
|
49 |
+
// PLUGIN PREMIUM SETTINGS
|
50 |
+
'has_premium' => true,
|
51 |
+
'license_settings' => array(
|
52 |
+
'provider' => 'freemius',
|
53 |
+
'slug' => 'clearfy_package',
|
54 |
+
'plugin_id' => '2315',
|
55 |
+
'public_key' => 'pk_70e226af07d37d2b9a69720e0952c',
|
56 |
+
'price' => 19,
|
57 |
+
'has_updates' => true,
|
58 |
+
'updates_settings' => array(
|
59 |
+
'maybe_rollback' => true,
|
60 |
+
'rollback_settings' => array(
|
61 |
+
'prev_stable_version' => '0.0.0'
|
62 |
+
)
|
63 |
+
)
|
64 |
+
),
|
65 |
+
// PLUGIN ADVERTS
|
66 |
+
'render_adverts' => true,
|
67 |
+
'adverts_settings' => array(
|
68 |
+
'dashboard_widget' => true, // show dashboard widget (default: false)
|
69 |
+
'right_sidebar' => true, // show adverts sidebar (default: false)
|
70 |
+
'notice' => true, // show notice message (default: false)
|
71 |
+
),
|
72 |
+
// FRAMEWORK MODULES
|
73 |
+
'load_factory_modules' => array(
|
74 |
+
array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
|
75 |
+
array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
|
76 |
+
array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
|
77 |
+
array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
|
78 |
+
array( 'libs/factory/freemius', 'factory_freemius_109', 'all' ),
|
79 |
+
array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
|
80 |
+
),
|
81 |
+
'load_plugin_components' => array(
|
82 |
+
'disable_notices' => array(
|
83 |
+
'autoload' => 'components/disable-admin-notices/clearfy.php',
|
84 |
+
'plugin_prefix' => 'WDN_'
|
85 |
+
),
|
86 |
+
'cyrlitera' => array(
|
87 |
+
'autoload' => 'components/cyrlitera/clearfy.php',
|
88 |
+
'plugin_prefix' => 'WCTR_'
|
89 |
+
),
|
90 |
+
'updates_manager' => array(
|
91 |
+
'autoload' => 'components/updates-manager/clearfy.php',
|
92 |
+
'plugin_prefix' => 'WUPM_'
|
93 |
+
),
|
94 |
+
'comments_tools' => array(
|
95 |
+
'autoload' => 'components/comments-plus/clearfy.php',
|
96 |
+
'plugin_prefix' => 'WCM_'
|
97 |
+
),
|
98 |
+
'ga_cache' => array(
|
99 |
+
'autoload' => 'components/ga-cache/clearfy.php',
|
100 |
+
'plugin_prefix' => 'WGA_'
|
101 |
+
),
|
102 |
+
'assets_manager' => array(
|
103 |
+
'autoload' => 'components/assets-manager/clearfy.php',
|
104 |
+
'plugin_prefix' => 'WGZ_'
|
105 |
+
),
|
106 |
+
'minify_and_combine' => array(
|
107 |
+
'autoload' => 'components/minify-and-combine/clearfy.php',
|
108 |
+
'plugin_prefix' => 'WMAC_'
|
109 |
+
),
|
110 |
+
'html_minify' => array(
|
111 |
+
'autoload' => 'components/html-minify/clearfy.php',
|
112 |
+
'plugin_prefix' => 'WHTM_'
|
113 |
+
),
|
114 |
+
)
|
115 |
+
);
|
116 |
|
|
|
117 |
|
|
|
|
|
|
|
118 |
|
119 |
+
$clearfy_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $plugin_info, array(
|
120 |
+
'plugin_already_activate' => defined( 'WCL_PLUGIN_ACTIVE' ),
|
121 |
+
'required_php_version' => '5.4',
|
122 |
+
'required_wp_version' => '4.2.0',
|
123 |
+
'required_clearfy_check_component' => false
|
124 |
+
) ) );
|
125 |
+
|
126 |
|
127 |
+
/**
|
128 |
+
* If the plugin is compatible, then it will continue its work, otherwise it will be stopped,
|
129 |
+
* and the user will throw a warning.
|
130 |
+
*/
|
131 |
+
if ( ! $clearfy_compatibility->check() ) {
|
132 |
return;
|
133 |
}
|
|
|
134 |
|
135 |
+
/**
|
136 |
+
* -----------------------------------------------------------------------------
|
137 |
+
* CONSTANTS
|
138 |
+
* Install frequently used constants and constants for debugging, which will be
|
139 |
+
* removed after compiling the plugin.
|
140 |
+
* -----------------------------------------------------------------------------
|
141 |
+
*/
|
142 |
|
143 |
+
// This plugin is activated
|
144 |
+
define( 'WCL_PLUGIN_ACTIVE', true );
|
145 |
|
146 |
+
// For for compatibility with old plugins
|
147 |
+
define( 'WBCR_CLEARFY_PLUGIN_ACTIVE', true );
|
148 |
|
149 |
+
// Plugin version
|
150 |
+
define( 'WCL_PLUGIN_VERSION', $clearfy_compatibility->get_plugin_version() );
|
151 |
+
define( 'WCL_FRAMEWORK_VER', 'FACTORY_421_VERSION' );
|
152 |
+
|
153 |
+
define( 'WCL_PLUGIN_DIR', dirname( __FILE__ ) );
|
154 |
+
define( 'WCL_PLUGIN_BASE', plugin_basename( __FILE__ ) );
|
155 |
+
define( 'WCL_PLUGIN_URL', plugins_url( null, __FILE__ ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
|
158 |
|
159 |
/**
|
160 |
+
* -----------------------------------------------------------------------------
|
161 |
+
* PLUGIN INIT
|
162 |
+
* -----------------------------------------------------------------------------
|
163 |
*/
|
164 |
+
try {
|
165 |
+
require_once( WCL_PLUGIN_DIR . '/includes/helpers.php' );
|
166 |
|
167 |
+
// creating a plugin via the factory
|
168 |
+
require_once( WCL_PLUGIN_DIR . '/libs/factory/core/boot.php' );
|
169 |
+
require_once( WCL_PLUGIN_DIR . '/includes/class.plugin.php' );
|
170 |
|
171 |
+
new WCL_Plugin( __FILE__, array_merge( $plugin_info, array(
|
172 |
+
'plugin_version' => WCL_PLUGIN_VERSION,
|
173 |
+
'plugin_text_domain' => $clearfy_compatibility->get_text_domain(),
|
174 |
+
) ) );
|
175 |
|
176 |
+
} catch( Exception $e ) {
|
177 |
+
// Plugin wasn't initialized due to an error
|
178 |
+
define( 'WRIO_PLUGIN_THROW_ERROR', true );
|
|
|
|
|
179 |
|
180 |
+
$clearfy_plugin_error_func = function () use ( $e ) {
|
181 |
+
$error = sprintf( "The %s plugin has stopped. <b>Error:</b> %s Code: %s", 'Clearfy', $e->getMessage(), $e->getCode() );
|
182 |
+
echo '<div class="notice notice-error"><p>' . $error . '</p></div>';
|
183 |
+
};
|
184 |
|
185 |
+
add_action( 'admin_notices', $clearfy_plugin_error_func );
|
186 |
+
add_action( 'network_admin_notices', $clearfy_plugin_error_func );
|
187 |
+
}
|
188 |
// @formatter:on
|
components/assets-manager/admin/activation.php
ADDED
@@ -0,0 +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_Factory421_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_Factory421_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
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 действие для сохранения настроек менеджера скриптов
|
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 ( ! WCL_Plugin::app()->currentUserCan() ) {
|
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 |
+
$save_message_title = __( 'Settings saved successfully!', 'clearfy' );
|
32 |
+
$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' );
|
33 |
+
$raw_updated_settings = WGZ_Plugin::app()->request->post( 'settings' );
|
34 |
+
|
35 |
+
if ( ! empty( $raw_updated_settings ) ) {
|
36 |
+
$settings = WGZ_Plugin::app()->getOption( 'assets_states', [] );
|
37 |
+
|
38 |
+
if ( ! defined( 'WGZP_PLUGIN_ACTIVE' ) || ( is_array( $settings ) && ! isset( $settings['save_mode'] ) ) ) {
|
39 |
+
$settings['save_mode'] = false;
|
40 |
+
}
|
41 |
+
|
42 |
+
if ( ! empty( $raw_updated_settings['plugins'] ) ) {
|
43 |
+
foreach ( (array) $raw_updated_settings['plugins'] as $plugin_name => $plugin_group ) {
|
44 |
+
if ( ! empty( $plugin_group['load_mode'] ) ) {
|
45 |
+
if ( 'enable' == $plugin_group['load_mode'] ) {
|
46 |
+
$plugin_group['visability'] = "";
|
47 |
+
} else {
|
48 |
+
foreach ( [ 'js', 'css' ] as $assets_type ) {
|
49 |
+
if ( ! empty( $plugin_group[ $assets_type ] ) ) {
|
50 |
+
foreach ( $plugin_group[ $assets_type ] as $resource_handle => $resource_params ) {
|
51 |
+
$plugin_group[ $assets_type ][ $resource_handle ]['visability'] = "";
|
52 |
+
}
|
53 |
+
}
|
54 |
+
}
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
$settings['plugins'][ $plugin_name ] = $plugin_group;
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
if ( ! empty( $raw_updated_settings['theme'] ) ) {
|
63 |
+
$settings['theme'] = $raw_updated_settings['theme'];
|
64 |
+
}
|
65 |
+
|
66 |
+
if ( ! empty( $raw_updated_settings['misc'] ) ) {
|
67 |
+
$settings['misc'] = $raw_updated_settings['misc'];
|
68 |
+
}
|
69 |
+
|
70 |
+
$settings = apply_filters( 'wam/before_save_settings', $settings, $raw_updated_settings );
|
71 |
+
|
72 |
+
WGZ_Plugin::app()->updateOption( 'assets_states', $settings );
|
73 |
+
|
74 |
+
// If mu plugin does not exist, install it.
|
75 |
+
wbcr_gnz_deploy_mu_plugin();
|
76 |
+
|
77 |
+
// Flush cache for all cache plugins
|
78 |
+
WbcrFactoryClearfy213_Helpers::flushPageCache();
|
79 |
+
}
|
80 |
+
|
81 |
+
wp_send_json_success( [
|
82 |
+
'save_massage_title' => $save_message_title,
|
83 |
+
'save_message_content' => $save_message_content
|
84 |
+
] );
|
85 |
+
}
|
86 |
+
|
87 |
+
add_action( 'wp_ajax_nopriv_wam-save-settings', 'wam_save_settings_action' );
|
88 |
+
add_action( 'wp_ajax_wam-save-settings', 'wam_save_settings_action' );
|
components/assets-manager/admin/boot.php
CHANGED
@@ -1,9 +1,10 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Admin boot
|
4 |
-
*
|
|
|
5 |
* @copyright Webcraftic 25.05.2017
|
6 |
-
* @version
|
7 |
*/
|
8 |
|
9 |
// Exit if accessed directly
|
@@ -12,67 +13,67 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
12 |
}
|
13 |
|
14 |
if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
|
15 |
-
|
16 |
/**
|
17 |
* Уведомление, которое сообщает о возможности импорта опций из плагина Assets manager в Clearfy
|
18 |
*
|
19 |
* @param array $notices
|
20 |
*/
|
21 |
-
add_filter( '
|
22 |
-
|
23 |
if ( is_multisite() && is_network_admin() ) {
|
24 |
$am_options = get_site_option( 'wbcr_gnz_assets_manager_options' );
|
25 |
} else {
|
26 |
$am_options = get_option( 'wbcr_gnz_assets_manager_options' );
|
27 |
}
|
28 |
-
|
29 |
if ( $am_options ) {
|
30 |
$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>';
|
31 |
$notice_text .= '<p><a href="' . admin_url( '?wbcr_assets_manager_transfer' ) . '" class="button button-default">' . __( 'Import options', 'gonzales' ) . '</a></p>';
|
32 |
-
|
33 |
-
$notices[] =
|
34 |
'id' => 'gnz_plugin_import_options',
|
35 |
'type' => 'warning',
|
36 |
'dismissible' => true,
|
37 |
'dismiss_expires' => 0,
|
38 |
'text' => $notice_text
|
39 |
-
|
40 |
}
|
41 |
-
|
42 |
if ( isset( $_GET['wbcr_assets_manager_transfer_completed'] ) ) {
|
43 |
-
$notices[] =
|
44 |
'id' => 'gnz_plugin_transfer_options_completed',
|
45 |
'type' => 'success',
|
46 |
'dismissible' => false,
|
47 |
'dismiss_expires' => 0,
|
48 |
'text' => '<p><b>Clearfy:</b> ' . __( 'Settings has been successfully imported!', 'gonzales' )
|
49 |
-
|
50 |
}
|
51 |
-
|
52 |
return $notices;
|
53 |
-
}, 10, 2 )
|
54 |
-
|
55 |
/**
|
56 |
* Импорт опций из плагина Assets manager в плагин Clearfy.
|
57 |
* При попытке использовать премиум версию, у многих пользователей уже настроен бесплатный плагин и
|
58 |
* на ручной перенос настроек уходит очень много времени. Этот кусок кода решает проблему переноса настроек между плагинами.
|
59 |
*/
|
60 |
-
add_action( 'admin_init', function () {
|
61 |
if ( isset( $_GET['wbcr_assets_manager_transfer'] ) ) {
|
62 |
global $wpdb;
|
63 |
-
|
64 |
if ( is_multisite() && is_network_admin() ) {
|
65 |
$am_options = get_site_option( 'wbcr_gnz_assets_manager_options' );
|
66 |
} else {
|
67 |
$am_options = get_option( 'wbcr_gnz_assets_manager_options' );
|
68 |
}
|
69 |
-
|
70 |
if ( ! $am_options || ! class_exists( 'WCL_Plugin' ) ) {
|
71 |
return;
|
72 |
}
|
73 |
-
|
74 |
$am_prefix = 'wbcr_gnz_';
|
75 |
-
|
76 |
if ( is_multisite() && is_network_admin() ) {
|
77 |
$request = $wpdb->get_results( "SELECT meta_key, meta_value
|
78 |
FROM {$wpdb->sitemeta}
|
@@ -82,7 +83,7 @@ if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
|
|
82 |
FROM {$wpdb->options}
|
83 |
WHERE option_name LIKE '{$am_prefix}_%'" );
|
84 |
}
|
85 |
-
|
86 |
if ( $request ) {
|
87 |
foreach ( (array) $request as $option ) {
|
88 |
if ( is_multisite() && is_network_admin() ) {
|
@@ -95,89 +96,57 @@ if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
|
|
95 |
delete_option( $option->option_name );
|
96 |
}
|
97 |
}
|
98 |
-
|
99 |
wp_redirect( admin_url( '?wbcr_assets_manager_transfer_completed' ) );
|
100 |
die();
|
101 |
}
|
102 |
}
|
103 |
-
} )
|
104 |
-
|
105 |
-
/**
|
106 |
-
* This action is executed when the component of the Clearfy plugin is activate and if this component is name ga_cache
|
107 |
-
*
|
108 |
-
* @param string $component_name
|
109 |
-
*/
|
110 |
-
add_action( 'wbcr/clearfy/activated_component', function ( $component_name ) {
|
111 |
-
if ( $component_name == 'assets_manager' ) {
|
112 |
-
if ( class_exists( 'WCL_Plugin' ) ) {
|
113 |
-
$license = WCL_Plugin::app()->getLicense();
|
114 |
-
if ( ( $license->isLicenseValid() || ( defined( 'WCL_PLUGIN_DEBUG' ) && WCL_PLUGIN_DEBUG ) ) && ! WCL_Plugin::app()->isActivateComponent( 'assets-manager-premium' ) ) {
|
115 |
-
WCL_Plugin::app()->activateComponent( 'assets-manager-premium' );
|
116 |
-
}
|
117 |
-
}
|
118 |
-
}
|
119 |
-
} );
|
120 |
-
|
121 |
-
/**
|
122 |
-
* This action is executed when the component of the Clearfy plugin is activate and if this component is name ga_cache
|
123 |
-
*
|
124 |
-
* @param string $component_name
|
125 |
-
*/
|
126 |
-
add_action( 'wbcr_clearfy_deactivated_component', function ( $component_name ) {
|
127 |
-
if ( $component_name == 'assets_manager' ) {
|
128 |
-
if ( class_exists( 'WCL_Plugin' ) ) {
|
129 |
-
$license = WCL_Plugin::app()->getLicense();
|
130 |
-
if ( ( $license->isLicenseValid() || ( defined( 'WCL_PLUGIN_DEBUG' ) && WCL_PLUGIN_DEBUG ) ) && WCL_Plugin::app()->isActivateComponent( 'assets-manager-premium' ) ) {
|
131 |
-
WCL_Plugin::app()->deactivateComponent( 'assets-manager-premium' );
|
132 |
-
}
|
133 |
-
}
|
134 |
-
}
|
135 |
-
} );
|
136 |
-
|
137 |
function wbcr_gnz_group_options( $options ) {
|
138 |
-
$options[] =
|
139 |
'name' => 'disable_assets_manager',
|
140 |
'title' => __( 'Disable assets manager', 'gonzales' ),
|
141 |
-
'tags' =>
|
142 |
-
'values' =>
|
143 |
-
|
144 |
-
|
145 |
-
$options[] =
|
146 |
'name' => 'disable_assets_manager_panel',
|
147 |
'title' => __( 'Disable assets manager panel', 'gonzales' ),
|
148 |
-
'tags' =>
|
149 |
-
|
150 |
-
|
151 |
-
$options[] =
|
152 |
'name' => 'disable_assets_manager_on_front',
|
153 |
'title' => __( 'Disable assets manager on front', 'gonzales' ),
|
154 |
-
'tags' =>
|
155 |
-
|
156 |
-
|
157 |
-
$options[] =
|
158 |
'name' => 'disable_assets_manager_on_backend',
|
159 |
'title' => __( 'Disable assets manager on back-end', 'gonzales' ),
|
160 |
-
'tags' =>
|
161 |
-
|
162 |
-
|
163 |
-
$options[] =
|
164 |
'name' => 'manager_options',
|
165 |
'title' => __( 'Assets manager options', 'gonzales' ),
|
166 |
-
'tags' =>
|
167 |
-
|
168 |
-
|
169 |
return $options;
|
170 |
}
|
171 |
-
|
172 |
add_filter( "wbcr_clearfy_group_options", 'wbcr_gnz_group_options' );
|
173 |
} else {
|
174 |
-
|
175 |
/**
|
176 |
* Удаляем лишние виджеты в левом сайдбаре
|
177 |
*
|
178 |
-
* @param array
|
179 |
-
* @param string
|
180 |
-
* @param
|
181 |
*/
|
182 |
add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
|
183 |
if ( $plugin->getPluginName() == WGZ_Plugin::app()->getPluginName() ) {
|
@@ -187,51 +156,51 @@ if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
|
|
187 |
unset( $widgets['info_widget'] );
|
188 |
}
|
189 |
}
|
190 |
-
|
191 |
return $widgets;
|
192 |
}, 20, 3 );
|
193 |
-
|
194 |
/**
|
195 |
* Заменяем премиум возможности в бизнес виджете
|
196 |
*
|
197 |
-
* @param array
|
198 |
* @param string $page_id
|
199 |
* @param string $plugin
|
200 |
*/
|
201 |
add_filter( 'wbcr/clearfy/page_bussines_suggetion_features', function ( $features, $plugin_name, $page_id ) {
|
202 |
-
|
203 |
if ( ! empty( $plugin_name ) && ( $plugin_name == WGZ_Plugin::app()->getPluginName() ) ) {
|
204 |
-
$upgrade_feature =
|
205 |
$upgrade_feature[] = __( 'Disable plugins (groups of scripts)', 'gonzales' );
|
206 |
$upgrade_feature[] = __( 'Conditions by the link template', 'gonzales' );
|
207 |
$upgrade_feature[] = __( 'Conditions by the regular expression', 'gonzales' );
|
208 |
$upgrade_feature[] = __( 'Safe mode', 'gonzales' );
|
209 |
$upgrade_feature[] = __( 'Statistics and optimization results', 'gonzales' );
|
210 |
-
|
211 |
return $upgrade_feature;
|
212 |
}
|
213 |
-
|
214 |
return $features;
|
215 |
}, 20, 3 );
|
216 |
-
|
217 |
function wbcr_gnz_set_plugin_meta( $links, $file ) {
|
218 |
if ( $file == WGZ_PLUGIN_BASE ) {
|
219 |
-
$url =
|
220 |
$links[] = '<a href="' . $url . '" style="color: #FF5722;font-weight: bold;" target="_blank">' . __( 'Get premium', 'gonzales' ) . '</a>';
|
221 |
}
|
222 |
-
|
223 |
return $links;
|
224 |
}
|
225 |
-
|
226 |
add_filter( 'plugin_row_meta', 'wbcr_gnz_set_plugin_meta', 10, 2 );
|
227 |
-
|
228 |
function wbcr_gnz_rating_widget_url( $page_url, $plugin_name ) {
|
229 |
if ( ! defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) && ( $plugin_name == WGZ_Plugin::app()->getPluginName() ) ) {
|
230 |
return 'https://goo.gl/zyNV6z';
|
231 |
}
|
232 |
-
|
233 |
return $page_url;
|
234 |
}
|
235 |
-
|
236 |
-
add_filter( '
|
237 |
}
|
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
|
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}
|
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() ) {
|
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 |
+
$options[] = [
|
108 |
'name' => 'disable_assets_manager',
|
109 |
'title' => __( 'Disable assets manager', 'gonzales' ),
|
110 |
+
'tags' => [],
|
111 |
+
'values' => []
|
112 |
+
];
|
113 |
+
|
114 |
+
$options[] = [
|
115 |
'name' => 'disable_assets_manager_panel',
|
116 |
'title' => __( 'Disable assets manager panel', 'gonzales' ),
|
117 |
+
'tags' => []
|
118 |
+
];
|
119 |
+
|
120 |
+
$options[] = [
|
121 |
'name' => 'disable_assets_manager_on_front',
|
122 |
'title' => __( 'Disable assets manager on front', 'gonzales' ),
|
123 |
+
'tags' => []
|
124 |
+
];
|
125 |
+
|
126 |
+
$options[] = [
|
127 |
'name' => 'disable_assets_manager_on_backend',
|
128 |
'title' => __( 'Disable assets manager on back-end', 'gonzales' ),
|
129 |
+
'tags' => []
|
130 |
+
];
|
131 |
+
|
132 |
+
$options[] = [
|
133 |
'name' => 'manager_options',
|
134 |
'title' => __( 'Assets manager options', 'gonzales' ),
|
135 |
+
'tags' => []
|
136 |
+
];
|
137 |
+
|
138 |
return $options;
|
139 |
}
|
140 |
+
|
141 |
add_filter( "wbcr_clearfy_group_options", 'wbcr_gnz_group_options' );
|
142 |
} else {
|
143 |
+
|
144 |
/**
|
145 |
* Удаляем лишние виджеты в левом сайдбаре
|
146 |
*
|
147 |
+
* @param array $widgets
|
148 |
+
* @param string $position
|
149 |
+
* @param Wbcr_Factory421_Plugin $plugin
|
150 |
*/
|
151 |
add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
|
152 |
if ( $plugin->getPluginName() == WGZ_Plugin::app()->getPluginName() ) {
|
156 |
unset( $widgets['info_widget'] );
|
157 |
}
|
158 |
}
|
159 |
+
|
160 |
return $widgets;
|
161 |
}, 20, 3 );
|
162 |
+
|
163 |
/**
|
164 |
* Заменяем премиум возможности в бизнес виджете
|
165 |
*
|
166 |
+
* @param array $features
|
167 |
* @param string $page_id
|
168 |
* @param string $plugin
|
169 |
*/
|
170 |
add_filter( 'wbcr/clearfy/page_bussines_suggetion_features', function ( $features, $plugin_name, $page_id ) {
|
171 |
+
|
172 |
if ( ! empty( $plugin_name ) && ( $plugin_name == WGZ_Plugin::app()->getPluginName() ) ) {
|
173 |
+
$upgrade_feature = [];
|
174 |
$upgrade_feature[] = __( 'Disable plugins (groups of scripts)', 'gonzales' );
|
175 |
$upgrade_feature[] = __( 'Conditions by the link template', 'gonzales' );
|
176 |
$upgrade_feature[] = __( 'Conditions by the regular expression', 'gonzales' );
|
177 |
$upgrade_feature[] = __( 'Safe mode', 'gonzales' );
|
178 |
$upgrade_feature[] = __( 'Statistics and optimization results', 'gonzales' );
|
179 |
+
|
180 |
return $upgrade_feature;
|
181 |
}
|
182 |
+
|
183 |
return $features;
|
184 |
}, 20, 3 );
|
185 |
+
|
186 |
function wbcr_gnz_set_plugin_meta( $links, $file ) {
|
187 |
if ( $file == WGZ_PLUGIN_BASE ) {
|
188 |
+
$url = WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'assets-manager', 'plugin_row' );
|
189 |
$links[] = '<a href="' . $url . '" style="color: #FF5722;font-weight: bold;" target="_blank">' . __( 'Get premium', 'gonzales' ) . '</a>';
|
190 |
}
|
191 |
+
|
192 |
return $links;
|
193 |
}
|
194 |
+
|
195 |
add_filter( 'plugin_row_meta', 'wbcr_gnz_set_plugin_meta', 10, 2 );
|
196 |
+
|
197 |
function wbcr_gnz_rating_widget_url( $page_url, $plugin_name ) {
|
198 |
if ( ! defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) && ( $plugin_name == WGZ_Plugin::app()->getPluginName() ) ) {
|
199 |
return 'https://goo.gl/zyNV6z';
|
200 |
}
|
201 |
+
|
202 |
return $page_url;
|
203 |
}
|
204 |
+
|
205 |
+
add_filter( 'wbcr_factory_pages_421_imppage_rating_widget_url', 'wbcr_gnz_rating_widget_url', 10, 2 );
|
206 |
}
|
components/assets-manager/admin/index.php
CHANGED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/assets-manager/admin/pages/assets-manager.php
DELETED
@@ -1,161 +0,0 @@
|
|
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 WbcrGnz_AssetsManagerPage extends Wbcr_FactoryClearfy206_PageBase {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* The id of the page in the admin menu.
|
18 |
-
*
|
19 |
-
* Mainly used to navigate between pages.
|
20 |
-
* @see FactoryPages410_AdminPage
|
21 |
-
*
|
22 |
-
* @since 1.0.0
|
23 |
-
* @var string
|
24 |
-
*/
|
25 |
-
public $id = "gonzales";
|
26 |
-
|
27 |
-
/**
|
28 |
-
* @var string
|
29 |
-
*/
|
30 |
-
public $page_menu_dashicon = 'dashicons-image-filter';
|
31 |
-
|
32 |
-
/**
|
33 |
-
* @var int
|
34 |
-
*/
|
35 |
-
public $page_menu_position = 95;
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Доступена для мультисайтов
|
39 |
-
* @var bool
|
40 |
-
*/
|
41 |
-
public $available_for_multisite = true;
|
42 |
-
|
43 |
-
/**
|
44 |
-
* @param Wbcr_Factory409_Plugin $plugin
|
45 |
-
*/
|
46 |
-
public function __construct(Wbcr_Factory409_Plugin $plugin)
|
47 |
-
{
|
48 |
-
$this->menu_title = __('Assets manager', 'gonzales');
|
49 |
-
|
50 |
-
if( !defined('LOADING_ASSETS_MANAGER_AS_ADDON') ) {
|
51 |
-
$this->internal = false;
|
52 |
-
$this->menu_target = 'options-general.php';
|
53 |
-
$this->add_link_to_plugin_actions = true;
|
54 |
-
} else {
|
55 |
-
$this->page_parent_page = 'performance';
|
56 |
-
}
|
57 |
-
|
58 |
-
parent::__construct($plugin);
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Метод позволяет менять заголовок меню, в зависимости от сборки плагина.
|
63 |
-
* @return string|void
|
64 |
-
*/
|
65 |
-
public function getMenuTitle()
|
66 |
-
{
|
67 |
-
return defined('LOADING_ASSETS_MANAGER_AS_ADDON') ? __('General', 'hide-login-page') : __('Assets manager', 'gonzales');
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* @return string|void *
|
72 |
-
*/
|
73 |
-
public function getPageTitle()
|
74 |
-
{
|
75 |
-
return defined('LOADING_ASSETS_MANAGER_AS_ADDON') ? __('Assets manager', 'gonzales') : __('General', 'hide-login-page');
|
76 |
-
}
|
77 |
-
|
78 |
-
/**
|
79 |
-
* Permalinks options.
|
80 |
-
*
|
81 |
-
* @since 1.0.0
|
82 |
-
* @return mixed[]
|
83 |
-
*/
|
84 |
-
public function getPageOptions()
|
85 |
-
{
|
86 |
-
$options = array();
|
87 |
-
$options[] = array(
|
88 |
-
'type' => 'html',
|
89 |
-
'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>'
|
90 |
-
);
|
91 |
-
|
92 |
-
$options[] = array(
|
93 |
-
'type' => 'checkbox',
|
94 |
-
'way' => 'buttons',
|
95 |
-
'name' => 'disable_assets_manager',
|
96 |
-
'title' => __('Disable assets manager', 'gonzales'),
|
97 |
-
'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
|
98 |
-
'hint' => __('Full disable of the module.', 'gonzales'),
|
99 |
-
'eventsOn' => array(
|
100 |
-
'hide' => '#wbcr-gnz-asset-manager-extend-options'
|
101 |
-
),
|
102 |
-
'eventsOff' => array(
|
103 |
-
'show' => '#wbcr-gnz-asset-manager-extend-options'
|
104 |
-
),
|
105 |
-
'default' => false
|
106 |
-
);
|
107 |
-
|
108 |
-
$options[] = array(
|
109 |
-
'type' => 'div',
|
110 |
-
'id' => 'wbcr-gnz-asset-manager-extend-options',
|
111 |
-
'items' => array(
|
112 |
-
array(
|
113 |
-
'type' => 'separator',
|
114 |
-
'cssClass' => 'factory-separator-dashed'
|
115 |
-
),
|
116 |
-
array(
|
117 |
-
'type' => 'checkbox',
|
118 |
-
'way' => 'buttons',
|
119 |
-
'name' => 'disable_assets_manager_panel',
|
120 |
-
'title' => __('Disable assets manager panel', 'gonzales'),
|
121 |
-
'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'green'),
|
122 |
-
'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'),
|
123 |
-
'default' => false
|
124 |
-
),
|
125 |
-
array(
|
126 |
-
'type' => 'checkbox',
|
127 |
-
'way' => 'buttons',
|
128 |
-
'name' => 'disable_assets_manager_on_front',
|
129 |
-
'title' => __('Disable assets manager on front', 'gonzales'),
|
130 |
-
'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
|
131 |
-
'hint' => __('Disables assets manager initialization for frontend.', 'gonzales'),
|
132 |
-
'default' => false
|
133 |
-
),
|
134 |
-
array(
|
135 |
-
'type' => 'checkbox',
|
136 |
-
'way' => 'buttons',
|
137 |
-
'name' => 'disable_assets_manager_on_backend',
|
138 |
-
'title' => __('Disable assets manager on back-end', 'gonzales'),
|
139 |
-
'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
|
140 |
-
'hint' => __('Disables assets manager initialization for backend.', 'gonzales'),
|
141 |
-
'default' => true
|
142 |
-
)
|
143 |
-
)
|
144 |
-
);
|
145 |
-
|
146 |
-
$options[] = array(
|
147 |
-
'type' => 'separator',
|
148 |
-
'cssClass' => 'factory-separator-dashed'
|
149 |
-
);
|
150 |
-
|
151 |
-
$formOptions = array();
|
152 |
-
|
153 |
-
$formOptions[] = array(
|
154 |
-
'type' => 'form-group',
|
155 |
-
'items' => $options,
|
156 |
-
//'cssClass' => 'postbox'
|
157 |
-
);
|
158 |
-
|
159 |
-
return apply_filters('wbcr_gnz_assets_manager_options', $formOptions);
|
160 |
-
}
|
161 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components/assets-manager/admin/pages/class-pages-more-features.php
ADDED
@@ -0,0 +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_FactoryClearfy213_MoreFeaturesPage {
|
21 |
+
|
22 |
+
}
|
components/assets-manager/admin/pages/class-pages-settings.php
ADDED
@@ -0,0 +1,165 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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_FactoryClearfy213_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 FactoryPages421_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_Factory421_Plugin $plugin
|
52 |
+
*/
|
53 |
+
public function __construct( Wbcr_Factory421_Plugin $plugin ) {
|
54 |
+
$this->menu_title = __( 'Assets manager', 'gonzales' );
|
55 |
+
|
56 |
+
if ( ! defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
|
57 |
+
$this->internal = false;
|
58 |
+
$this->menu_target = 'options-general.php';
|
59 |
+
$this->add_link_to_plugin_actions = true;
|
60 |
+
} else {
|
61 |
+
$this->page_parent_page = 'performance';
|
62 |
+
}
|
63 |
+
|
64 |
+
parent::__construct( $plugin );
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Метод позволяет менять заголовок меню, в зависимости от сборки плагина.
|
69 |
+
*
|
70 |
+
* @return string|void
|
71 |
+
*/
|
72 |
+
public function getMenuTitle() {
|
73 |
+
return defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ? __( 'General', 'hide-login-page' ) : __( 'Assets manager', 'gonzales' );
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* @return string|void *
|
78 |
+
*/
|
79 |
+
public function getPageTitle() {
|
80 |
+
return defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ? __( 'Assets manager', 'gonzales' ) : __( 'General', 'hide-login-page' );
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Permalinks options.
|
85 |
+
*
|
86 |
+
* @since 1.0.0
|
87 |
+
* @return mixed[]
|
88 |
+
*/
|
89 |
+
public function getPageOptions() {
|
90 |
+
$options = [];
|
91 |
+
$options[] = [
|
92 |
+
'type' => 'html',
|
93 |
+
'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>'
|
94 |
+
];
|
95 |
+
|
96 |
+
$options[] = [
|
97 |
+
'type' => 'checkbox',
|
98 |
+
'way' => 'buttons',
|
99 |
+
'name' => 'disable_assets_manager',
|
100 |
+
'title' => __( 'Disable assets manager', 'gonzales' ),
|
101 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
|
102 |
+
'hint' => __( 'Full disable of the module.', 'gonzales' ),
|
103 |
+
'eventsOn' => [
|
104 |
+
'hide' => '#wbcr-gnz-asset-manager-extend-options'
|
105 |
+
],
|
106 |
+
'eventsOff' => [
|
107 |
+
'show' => '#wbcr-gnz-asset-manager-extend-options'
|
108 |
+
],
|
109 |
+
'default' => false
|
110 |
+
];
|
111 |
+
|
112 |
+
$options[] = [
|
113 |
+
'type' => 'div',
|
114 |
+
'id' => 'wbcr-gnz-asset-manager-extend-options',
|
115 |
+
'items' => [
|
116 |
+
[
|
117 |
+
'type' => 'separator',
|
118 |
+
'cssClass' => 'factory-separator-dashed'
|
119 |
+
],
|
120 |
+
[
|
121 |
+
'type' => 'checkbox',
|
122 |
+
'way' => 'buttons',
|
123 |
+
'name' => 'disable_assets_manager_panel',
|
124 |
+
'title' => __( 'Disable assets manager panel', 'gonzales' ),
|
125 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'green' ],
|
126 |
+
'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' ),
|
127 |
+
'default' => false
|
128 |
+
],
|
129 |
+
[
|
130 |
+
'type' => 'checkbox',
|
131 |
+
'way' => 'buttons',
|
132 |
+
'name' => 'disable_assets_manager_on_front',
|
133 |
+
'title' => __( 'Disable assets manager on front', 'gonzales' ),
|
134 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
|
135 |
+
'hint' => __( 'Disables assets manager initialization for frontend.', 'gonzales' ),
|
136 |
+
'default' => false
|
137 |
+
],
|
138 |
+
/*[
|
139 |
+
'type' => 'checkbox',
|
140 |
+
'way' => 'buttons',
|
141 |
+
'name' => 'disable_assets_manager_on_backend',
|
142 |
+
'title' => __( 'Disable assets manager on back-end', 'gonzales' ),
|
143 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
|
144 |
+
'hint' => __( 'Disables assets manager initialization for backend.', 'gonzales' ),
|
145 |
+
'default' => true
|
146 |
+
]*/
|
147 |
+
]
|
148 |
+
];
|
149 |
+
|
150 |
+
$options[] = [
|
151 |
+
'type' => 'separator',
|
152 |
+
'cssClass' => 'factory-separator-dashed'
|
153 |
+
];
|
154 |
+
|
155 |
+
$formOptions = [];
|
156 |
+
|
157 |
+
$formOptions[] = [
|
158 |
+
'type' => 'form-group',
|
159 |
+
'items' => $options,
|
160 |
+
//'cssClass' => 'postbox'
|
161 |
+
];
|
162 |
+
|
163 |
+
return apply_filters( 'wbcr_gnz_assets_manager_options', $formOptions );
|
164 |
+
}
|
165 |
+
}
|
components/assets-manager/admin/pages/index.php
CHANGED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/assets-manager/admin/pages/more-features.php
DELETED
@@ -1,20 +0,0 @@
|
|
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 WbcrGnz_MoreFeaturesPage extends Wbcr_FactoryClearfy206_MoreFeaturesPage {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @var bool
|
18 |
-
*/
|
19 |
-
public $available_for_multisite = true;
|
20 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components/assets-manager/assets/css/PNotifyBrightTheme.css
ADDED
@@ -0,0 +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 |
+
}
|
components/assets-manager/assets/css/assets-conditions.css
ADDED
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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__text {
|
14 |
+
width: 300px;
|
15 |
+
}
|
16 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__box {
|
17 |
+
padding: 25px 15px 15px 15px;
|
18 |
+
border-left: 1px solid #ddd;
|
19 |
+
background-color: #f9f9f9;
|
20 |
+
}
|
21 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__when-empty {
|
22 |
+
display: none;
|
23 |
+
}
|
24 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__empty .wam-cleditor__when-empty {
|
25 |
+
display: block;
|
26 |
+
}
|
27 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__head {
|
28 |
+
display: flex;
|
29 |
+
overflow: auto;
|
30 |
+
background-color: #fff;
|
31 |
+
border-bottom: 1px solid #ddd;
|
32 |
+
border-left: 1px solid #ddd;
|
33 |
+
padding: 10px 15px;
|
34 |
+
}
|
35 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-left,
|
36 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-right {
|
37 |
+
display: inline-block;
|
38 |
+
}
|
39 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-left {
|
40 |
+
text-align: left;
|
41 |
+
flex: 2 0 0;
|
42 |
+
}
|
43 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__head-right {
|
44 |
+
text-align: right;
|
45 |
+
flex: 1 0 0;
|
46 |
+
}
|
47 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__head .wam-cleditor__first-group-title {
|
48 |
+
text-transform: uppercase;
|
49 |
+
margin: 0;
|
50 |
+
font-weight: 600;
|
51 |
+
font-size: 14px;
|
52 |
+
line-height: 2.3;
|
53 |
+
}
|
54 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__wrap .wam-cleditor__groups {
|
55 |
+
padding-left: 20px;
|
56 |
+
border-left: 1px solid #ddd;
|
57 |
+
}
|
58 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__groups .wam-cleditor__point {
|
59 |
+
background-color: #fff;
|
60 |
+
border: 1px solid #0073aa;
|
61 |
+
border-radius: 100%;
|
62 |
+
width: 11px;
|
63 |
+
height: 11px;
|
64 |
+
display: block;
|
65 |
+
position: absolute;
|
66 |
+
margin-left: -26px;
|
67 |
+
margin-top: 19px;
|
68 |
+
}
|
69 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__groups .wam-cleditor__point:after {
|
70 |
+
position: absolute;
|
71 |
+
content: " ";
|
72 |
+
display: block;
|
73 |
+
width: 15px;
|
74 |
+
border-top: 1px solid #ddd;
|
75 |
+
margin-left: 10px;
|
76 |
+
margin-top: 4px;
|
77 |
+
}
|
78 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__group {
|
79 |
+
/*@{prefix}__group + @{prefix}__group {
|
80 |
+
margin-top: 20px;
|
81 |
+
}*/
|
82 |
+
}
|
83 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__group .wam-cleditor__group-type {
|
84 |
+
display: none;
|
85 |
+
text-transform: uppercase;
|
86 |
+
margin: 0;
|
87 |
+
line-height: 2.3;
|
88 |
+
font-size: 12px;
|
89 |
+
font-weight: bold;
|
90 |
+
font-style: normal;
|
91 |
+
color: #222;
|
92 |
+
background: #f3f3f3;
|
93 |
+
text-align: center;
|
94 |
+
border-radius: 3px;
|
95 |
+
padding: 5px 10px 5px 10px;
|
96 |
+
}
|
97 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__empty .wam-cleditor__conditions {
|
98 |
+
display: none;
|
99 |
+
}
|
100 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition {
|
101 |
+
position: relative;
|
102 |
+
}
|
103 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint,
|
104 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint-content {
|
105 |
+
display: none;
|
106 |
+
}
|
107 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint {
|
108 |
+
position: relative;
|
109 |
+
display: inline-block;
|
110 |
+
padding: 0 6px 0 3px;
|
111 |
+
}
|
112 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint-icon {
|
113 |
+
background: url('../img/help.png') no-repeat 0 0 transparent;
|
114 |
+
position: relative;
|
115 |
+
height: 14px;
|
116 |
+
width: 13px;
|
117 |
+
display: inline-block;
|
118 |
+
cursor: help;
|
119 |
+
vertical-align: middle;
|
120 |
+
top: -1px;
|
121 |
+
opacity: 0.55;
|
122 |
+
}
|
123 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint:hover .wam-cleditor__hint-content {
|
124 |
+
display: block;
|
125 |
+
position: absolute;
|
126 |
+
width: 280px;
|
127 |
+
background-color: rgba(0, 0, 0, 0.8);
|
128 |
+
white-space: normal;
|
129 |
+
padding: 10px 12px 12px 12px;
|
130 |
+
font-weight: normal;
|
131 |
+
line-height: 150%;
|
132 |
+
border-radius: 4px;
|
133 |
+
color: #fff;
|
134 |
+
font-size: 13px;
|
135 |
+
z-index: 999;
|
136 |
+
}
|
137 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint .wam-cleditor__hint-content,
|
138 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__hint .wam-cleditor__hint-content a {
|
139 |
+
color: #fff;
|
140 |
+
}
|
141 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__operator-and {
|
142 |
+
display: block;
|
143 |
+
color: rgba(0, 0, 0, 0.7);
|
144 |
+
font-weight: bold;
|
145 |
+
border-top: 1px solid #ddd;
|
146 |
+
margin: 18px 0;
|
147 |
+
position: relative;
|
148 |
+
}
|
149 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__operator-and span {
|
150 |
+
position: absolute;
|
151 |
+
top: -10px;
|
152 |
+
background-color: #f9f9f9;
|
153 |
+
padding-right: 7px;
|
154 |
+
text-transform: uppercase;
|
155 |
+
}
|
156 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition:first-child .wam-cleditor__operator-and {
|
157 |
+
display: none;
|
158 |
+
}
|
159 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition > span {
|
160 |
+
display: inline-block;
|
161 |
+
vertical-align: top;
|
162 |
+
}
|
163 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__condition .wam-cleditor__condition-actions {
|
164 |
+
position: absolute;
|
165 |
+
right: 0;
|
166 |
+
}
|
167 |
+
#WBCR-AM .wam-cleditor .wam-cleditor__buttons-group {
|
168 |
+
margin-top: 20px;
|
169 |
+
}
|
170 |
+
/*# sourceMappingURL=assets-conditions.css.map */
|
components/assets-manager/assets/css/assets-conditions.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["assets-conditions.less"],"names":[],"mappings":";AACA,QAGE;EACE,sBAAA;;;;AAJJ,QAGE,cAGE;EACE,WAAA;EACA,kBAAA;EACA,MAAA;EACA,YAAA;;AAVN,QAGE,cAJD;EAeK,YAAA;;AAdN,QAGE,cAJD;EAmBK,4BAAA;EACA,2BAAA;EACA,yBAAA;;AApBN,QAGE,cAJD;EAyBK,aAAA;;AAxBN,QAGE,cAJD,qBAEE;EA2BG,cAAA;;AA5BN,QAGE,cAJD;EAiCK,aAAA;EACA,cAAA;EACA,sBAAA;EACA,6BAAA;EACA,2BAAA;EACA,kBAAA;;AArCN,QAGE,cAJD,oBAAA;AACD,QAGE,cAJD,oBAEO;EAuCA,qBAAA;;AAxCR,QAGE,cAJD,oBAAA;EA6CO,gBAAA;EACA,WAAA;;AA7CR,QAGE,cAJD,oBAAA;EAkDO,iBAAA;EACA,WAAA;;AAlDR,QAGE,cAJD,oBAAA;EAuDO,yBAAA;EACA,SAAA;EACA,gBAAA;EACA,eAAA;EACA,gBAAA;;AA1DR,QAGE,cAJD,oBAEC;EA8DI,kBAAA;EACA,2BAAA;;AAhEN,QAGE,cAJD,sBAAA;EAuEO,sBAAA;EACA,yBAAA;EACA,mBAAA;EACA,WAAA;EACA,YAAA;EACA,cAAA;EACA,kBAAA;EACA,kBAAA;EACA,gBAAA;;AA9ER,QAGE,cAJD,sBAAA,qBAEC;EAiFM,kBAAA;EACA,SAAS,GAAT;EACA,cAAA;EACA,WAAA;EACA,0BAAA;EACA,iBAAA;EACA,eAAA;;AAxFR,QAGE,cAJD;;;;;AACD,QAGE,cAJD,qBAAA;EA+FO,aAAA;EACA,yBAAA;EACA,SAAA;EACA,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,kBAAA;EACA,kBAAA;EACA,0BAAA;;AAzGR,QAGE,cAJD,qBAEE;EAiHG,aAAA;;AAlHN,QAGE,cAJD;EAyHK,kBAAA;;AAxHN,QAGE,cAJD,yBAAA;AACD,QAGE,cAJD,yBAEE;EA2HK,aAAA;;AA5HR,QAGE,cAJD,yBAAA;EAiIO,kBAAA;EACA,qBAAA;EACA,oBAAA;;AAlIR,QAGE,cAJD,yBAAA;EAuIO,gBAAgB,4CAAhB;EACA,kBAAA;EACA,YAAA;EACA,WAAA;EACA,qBAAA;EACA,YAAA;EACA,sBAAA;EACA,SAAA;EACA,aAAA;;AA9IR,QAGE,cAJD,yBAAA,oBAEA,MAAO;EAiJA,cAAA;EACA,kBAAA;EACA,YAAA;EACA,oCAAA;EACA,mBAAA;EACA,4BAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;;AA7JR,QAGE,cAJD,yBAAA,oBAEC;AADF,QAGE,cAJD,yBAIA,oBACE,4BAED;EA4JM,WAAA;;AAlKR,QAGE,cAJD,yBAAA;EAuKO,cAAA;EACA,yBAAA;EACA,iBAAA;EACA,0BAAA;EACA,cAAA;EACA,kBAAA;;AA3KR,QAGE,cAJD,yBAAA,4BAgLO;EACE,kBAAA;EACA,UAAA;EACA,yBAAA;EACA,kBAAA;EACA,yBAAA;;AArLT,QAIC,cAJD,yBAAC,YACK;EAyLC,aAAA;;AAGF,QAzLJ,cAJD,yBA6LO;EACA,qBAAA;EACA,mBAAA;;AA9LR,QAGE,cAJD,yBAAA;EAmMO,kBAAA;EACA,QAAA;;AAnMR,QAGE,cAJD;EA4MK,gBAAA","file":"assets-conditions.css"}
|
components/assets-manager/assets/css/assets-conditions.less
ADDED
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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}__text {
|
16 |
+
width: 300px;
|
17 |
+
}
|
18 |
+
|
19 |
+
@{prefix}__box {
|
20 |
+
padding: 25px 15px 15px 15px;
|
21 |
+
border-left: 1px solid #ddd;
|
22 |
+
background-color: #f9f9f9;
|
23 |
+
}
|
24 |
+
|
25 |
+
@{prefix}__when-empty {
|
26 |
+
display: none;
|
27 |
+
}
|
28 |
+
|
29 |
+
@{prefix}__empty @{prefix}__when-empty {
|
30 |
+
display: block;
|
31 |
+
}
|
32 |
+
|
33 |
+
@{prefix}__head {
|
34 |
+
display: flex;
|
35 |
+
overflow: auto;
|
36 |
+
background-color: #fff;
|
37 |
+
border-bottom: 1px solid #ddd;
|
38 |
+
border-left: 1px solid #ddd;
|
39 |
+
padding: 10px 15px;
|
40 |
+
|
41 |
+
@{prefix}__head-left, @{prefix}__head-right {
|
42 |
+
display: inline-block;
|
43 |
+
}
|
44 |
+
|
45 |
+
@{prefix}__head-left {
|
46 |
+
text-align: left;
|
47 |
+
flex: 2 0 0;
|
48 |
+
}
|
49 |
+
|
50 |
+
@{prefix}__head-right {
|
51 |
+
text-align: right;
|
52 |
+
flex: 1 0 0;
|
53 |
+
}
|
54 |
+
|
55 |
+
@{prefix}__first-group-title {
|
56 |
+
text-transform: uppercase;
|
57 |
+
margin: 0;
|
58 |
+
font-weight: 600;
|
59 |
+
font-size: 14px;
|
60 |
+
line-height: 2.3;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
@{prefix}__wrap @{prefix}__groups {
|
65 |
+
padding-left: 20px;
|
66 |
+
border-left: 1px solid #ddd;
|
67 |
+
}
|
68 |
+
|
69 |
+
@{prefix}__groups {
|
70 |
+
|
71 |
+
@{prefix}__point {
|
72 |
+
background-color: #fff;
|
73 |
+
border: 1px solid #0073aa;
|
74 |
+
border-radius: 100%;
|
75 |
+
width: 11px;
|
76 |
+
height: 11px;
|
77 |
+
display: block;
|
78 |
+
position: absolute;
|
79 |
+
margin-left: -26px;
|
80 |
+
margin-top: 19px;
|
81 |
+
}
|
82 |
+
|
83 |
+
@{prefix}__point:after {
|
84 |
+
position: absolute;
|
85 |
+
content: " ";
|
86 |
+
display: block;
|
87 |
+
width: 15px;
|
88 |
+
border-top: 1px solid #ddd;
|
89 |
+
margin-left: 10px;
|
90 |
+
margin-top: 4px;
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
@{prefix}__group {
|
95 |
+
@{prefix}__group-type {
|
96 |
+
display: none;
|
97 |
+
text-transform: uppercase;
|
98 |
+
margin: 0;
|
99 |
+
line-height: 2.3;
|
100 |
+
font-size: 12px;
|
101 |
+
font-weight: bold;
|
102 |
+
font-style: normal;
|
103 |
+
color: #222;
|
104 |
+
background: #f3f3f3;
|
105 |
+
text-align: center;
|
106 |
+
border-radius: 3px;
|
107 |
+
padding: 5px 10px 5px 10px;
|
108 |
+
}
|
109 |
+
|
110 |
+
/*@{prefix}__group + @{prefix}__group {
|
111 |
+
margin-top: 20px;
|
112 |
+
}*/
|
113 |
+
}
|
114 |
+
|
115 |
+
@{prefix}__empty @{prefix}__conditions {
|
116 |
+
display: none;
|
117 |
+
}
|
118 |
+
|
119 |
+
/* Conditions */
|
120 |
+
|
121 |
+
@{prefix}__condition {
|
122 |
+
position: relative;
|
123 |
+
|
124 |
+
@{prefix}__hint,
|
125 |
+
@{prefix}__hint-content {
|
126 |
+
display: none;
|
127 |
+
}
|
128 |
+
|
129 |
+
@{prefix}__hint {
|
130 |
+
position: relative;
|
131 |
+
display: inline-block;
|
132 |
+
padding: 0 6px 0 3px;
|
133 |
+
}
|
134 |
+
|
135 |
+
@{prefix}__hint-icon {
|
136 |
+
background: url('../img/help.png') no-repeat 0 0 transparent;
|
137 |
+
position: relative;
|
138 |
+
height: 14px;
|
139 |
+
width: 13px;
|
140 |
+
display: inline-block;
|
141 |
+
cursor: help;
|
142 |
+
vertical-align: middle;
|
143 |
+
top: -1px;
|
144 |
+
opacity: 0.55;
|
145 |
+
}
|
146 |
+
|
147 |
+
@{prefix}__hint:hover @{prefix}__hint-content {
|
148 |
+
display: block;
|
149 |
+
position: absolute;
|
150 |
+
width: 280px;
|
151 |
+
background-color: rgba(0, 0, 0, 0.8);
|
152 |
+
white-space: normal;
|
153 |
+
padding: 10px 12px 12px 12px;
|
154 |
+
font-weight: normal;
|
155 |
+
line-height: 150%;
|
156 |
+
border-radius: 4px;
|
157 |
+
color: #fff;
|
158 |
+
font-size: 13px;
|
159 |
+
z-index: 999;
|
160 |
+
}
|
161 |
+
|
162 |
+
@{prefix}__hint @{prefix}__hint-content,
|
163 |
+
@{prefix}__hint @{prefix}__hint-content a {
|
164 |
+
color: #fff;
|
165 |
+
}
|
166 |
+
|
167 |
+
@{prefix}__operator-and {
|
168 |
+
display: block;
|
169 |
+
color: rgba(0, 0, 0, 0.7);
|
170 |
+
font-weight: bold;
|
171 |
+
border-top: 1px solid #ddd;
|
172 |
+
margin: 18px 0;
|
173 |
+
position: relative;
|
174 |
+
}
|
175 |
+
|
176 |
+
@{prefix}__operator-and {
|
177 |
+
span {
|
178 |
+
position: absolute;
|
179 |
+
top: -10px;
|
180 |
+
background-color: #f9f9f9;
|
181 |
+
padding-right: 7px;
|
182 |
+
text-transform: uppercase;
|
183 |
+
}
|
184 |
+
}
|
185 |
+
|
186 |
+
&:first-child @{prefix}__operator-and {
|
187 |
+
display: none;
|
188 |
+
}
|
189 |
+
|
190 |
+
& > span {
|
191 |
+
display: inline-block;
|
192 |
+
vertical-align: top;
|
193 |
+
}
|
194 |
+
|
195 |
+
@{prefix}__condition-actions {
|
196 |
+
position: absolute;
|
197 |
+
right: 0;
|
198 |
+
}
|
199 |
+
}
|
200 |
+
|
201 |
+
|
202 |
+
/* Buttons */
|
203 |
+
|
204 |
+
@{prefix}__buttons-group {
|
205 |
+
margin-top: 20px;
|
206 |
+
}
|
207 |
+
}
|
208 |
+
}
|
209 |
+
|
210 |
+
|
components/assets-manager/assets/css/assets-manager.css
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
/**
|
2 |
* Assets manager styles
|
3 |
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
4 |
-
* @copyright Webcraftic 05.09.
|
5 |
*/
|
6 |
html,
|
7 |
body {
|
@@ -19,110 +19,151 @@ body {
|
|
19 |
}
|
20 |
body,
|
21 |
body p {
|
22 |
-
font-family: Arial, "Helvetica Neue", sans-serif
|
23 |
}
|
24 |
-
#WBCR {
|
25 |
-
/**
|
26 |
-
* Reset styles
|
27 |
-
*/
|
28 |
/**
|
29 |
* Reset styles
|
30 |
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
31 |
* @copyright Webcraftic 15.10.2018
|
32 |
*/
|
33 |
/**
|
34 |
-
*
|
35 |
*/
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
-webkit-box-sizing: border-box;
|
41 |
-moz-box-sizing: border-box;
|
42 |
box-sizing: border-box;
|
43 |
}
|
44 |
-
#WBCR,
|
45 |
-
#WBCR h2,
|
46 |
-
#WBCR h3,
|
47 |
-
#WBCR h4,
|
48 |
-
#WBCR h5,
|
49 |
-
#WBCR h6,
|
50 |
-
#WBCR p,
|
51 |
-
#WBCR strong,
|
52 |
-
#WBCR b,
|
53 |
-
#WBCR span,
|
54 |
-
#WBCR em,
|
55 |
-
#WBCR i,
|
56 |
-
#WBCR a,
|
57 |
-
#WBCR div,
|
58 |
-
#WBCR main,
|
59 |
-
#WBCR section,
|
60 |
-
#WBCR li,
|
61 |
-
#WBCR button,
|
62 |
-
#WBCR input[type="submit"],
|
63 |
-
#WBCR input[type="reset"],
|
64 |
-
#WBCR .wbcr-gnz-switch-premium {
|
65 |
-
font-family: Arial, "Helvetica Neue", sans-serif
|
66 |
font-size: 14px;
|
67 |
font-style: normal;
|
68 |
font-weight: normal;
|
69 |
text-transform: none;
|
70 |
text-shadow: none;
|
71 |
}
|
72 |
-
#WBCR h1 {
|
73 |
font-size: 2em;
|
74 |
margin: 0.67em 0;
|
75 |
}
|
76 |
-
#WBCR hr {
|
77 |
box-sizing: content-box;
|
78 |
height: 0;
|
79 |
overflow: visible;
|
80 |
}
|
81 |
-
#WBCR pre {
|
82 |
font-family: monospace, monospace;
|
83 |
font-size: 1em;
|
84 |
}
|
85 |
-
#WBCR a {
|
86 |
background-color: transparent;
|
87 |
}
|
88 |
-
#WBCR abbr[title] {
|
89 |
border-bottom: none;
|
90 |
text-decoration: underline dotted;
|
91 |
}
|
92 |
-
#WBCR b,
|
93 |
-
#WBCR strong {
|
94 |
font-weight: bolder;
|
95 |
}
|
96 |
-
#WBCR code,
|
97 |
-
#WBCR kbd,
|
98 |
-
#WBCR samp {
|
99 |
font-family: monospace, monospace;
|
100 |
font-size: 1em;
|
101 |
}
|
102 |
-
#WBCR small {
|
103 |
font-size: 80%;
|
104 |
}
|
105 |
-
#WBCR sub,
|
106 |
-
#WBCR sup {
|
107 |
font-size: 75%;
|
108 |
line-height: 0;
|
109 |
position: relative;
|
110 |
vertical-align: baseline;
|
111 |
}
|
112 |
-
#WBCR sub {
|
113 |
bottom: -0.25em;
|
114 |
}
|
115 |
-
#WBCR sup {
|
116 |
top: -0.5em;
|
117 |
}
|
118 |
-
#WBCR img {
|
119 |
border-style: none;
|
120 |
}
|
121 |
-
#WBCR button,
|
122 |
-
#WBCR input,
|
123 |
-
#WBCR optgroup,
|
124 |
-
#WBCR select,
|
125 |
-
#WBCR textarea {
|
126 |
font-family: inherit;
|
127 |
font-size: 100%;
|
128 |
line-height: 1.15;
|
@@ -130,57 +171,57 @@ body p {
|
|
130 |
height: auto;
|
131 |
width: auto;
|
132 |
}
|
133 |
-
#WBCR button,
|
134 |
-
#WBCR input,
|
135 |
-
#WBCR optgroup,
|
136 |
-
#WBCR select,
|
137 |
-
#WBCR textarea,
|
138 |
-
#WBCR button:hover,
|
139 |
-
#WBCR input:hover,
|
140 |
-
#WBCR optgroup:hover,
|
141 |
-
#WBCR select:hover,
|
142 |
-
#WBCR textarea:hover,
|
143 |
-
#WBCR button:focus,
|
144 |
-
#WBCR input:focus,
|
145 |
-
#WBCR optgroup:focus,
|
146 |
-
#WBCR select:focus,
|
147 |
-
#WBCR textarea:focus {
|
148 |
-moz-box-shadow: none;
|
149 |
-ms-box-shadow: none;
|
150 |
-webkit-box-shadow: none;
|
151 |
-o-box-shadow: none;
|
152 |
}
|
153 |
-
#WBCR button,
|
154 |
-
#WBCR input {
|
155 |
overflow: visible;
|
156 |
}
|
157 |
-
#WBCR button,
|
158 |
-
#WBCR select {
|
159 |
text-transform: none;
|
160 |
}
|
161 |
-
#WBCR button,
|
162 |
-
#WBCR [type="button"],
|
163 |
-
#WBCR [type="reset"],
|
164 |
-
#WBCR [type="submit"] {
|
165 |
-webkit-appearance: button;
|
166 |
}
|
167 |
-
#WBCR button::-moz-focus-inner,
|
168 |
-
#WBCR [type="button"]::-moz-focus-inner,
|
169 |
-
#WBCR [type="reset"]::-moz-focus-inner,
|
170 |
-
#WBCR [type="submit"]::-moz-focus-inner {
|
171 |
border-style: none;
|
172 |
padding: 0;
|
173 |
}
|
174 |
-
#WBCR button:-moz-focusring,
|
175 |
-
#WBCR [type="button"]:-moz-focusring,
|
176 |
-
#WBCR [type="reset"]:-moz-focusring,
|
177 |
-
#WBCR [type="submit"]:-moz-focusring {
|
178 |
outline: 1px dotted ButtonText;
|
179 |
}
|
180 |
-
#WBCR fieldset {
|
181 |
padding: 0.35em 0.75em 0.625em;
|
182 |
}
|
183 |
-
#WBCR legend {
|
184 |
box-sizing: border-box;
|
185 |
color: inherit;
|
186 |
display: table;
|
@@ -188,33 +229,33 @@ body p {
|
|
188 |
padding: 0;
|
189 |
white-space: normal;
|
190 |
}
|
191 |
-
#WBCR textarea {
|
192 |
overflow: auto;
|
193 |
}
|
194 |
-
#WBCR [type="checkbox"],
|
195 |
-
#WBCR [type="radio"] {
|
196 |
box-sizing: border-box;
|
197 |
padding: 0;
|
198 |
}
|
199 |
-
#WBCR [type="number"]::-webkit-inner-spin-button,
|
200 |
-
#WBCR [type="number"]::-webkit-outer-spin-button {
|
201 |
height: auto;
|
202 |
}
|
203 |
-
#WBCR [type="search"] {
|
204 |
-webkit-appearance: textfield;
|
205 |
outline-offset: -2px;
|
206 |
}
|
207 |
-
#WBCR [type="search"]::-webkit-search-decoration {
|
208 |
-webkit-appearance: none;
|
209 |
}
|
210 |
-
#WBCR ::-webkit-file-upload-button {
|
211 |
-webkit-appearance: button;
|
212 |
font: inherit;
|
213 |
}
|
214 |
-
#WBCR fieldset {
|
215 |
padding: 0.35em 0.75em 0.625em;
|
216 |
}
|
217 |
-
#WBCR legend {
|
218 |
box-sizing: border-box;
|
219 |
color: inherit;
|
220 |
display: table;
|
@@ -222,52 +263,52 @@ body p {
|
|
222 |
padding: 0;
|
223 |
white-space: normal;
|
224 |
}
|
225 |
-
#WBCR progress {
|
226 |
vertical-align: baseline;
|
227 |
}
|
228 |
-
#WBCR textarea {
|
229 |
overflow: auto;
|
230 |
}
|
231 |
-
#WBCR [type=checkbox],
|
232 |
-
#WBCR [type=radio] {
|
233 |
box-sizing: border-box;
|
234 |
padding: 0;
|
235 |
}
|
236 |
-
#WBCR [type=number]::-webkit-inner-spin-button,
|
237 |
-
#WBCR [type=number]::-webkit-outer-spin-button {
|
238 |
height: auto;
|
239 |
}
|
240 |
-
#WBCR [type=search] {
|
241 |
-webkit-appearance: textfield;
|
242 |
outline-offset: -2px;
|
243 |
}
|
244 |
-
#WBCR [type=search]::-webkit-search-decoration {
|
245 |
-webkit-appearance: none;
|
246 |
}
|
247 |
-
#WBCR ::-webkit-file-upload-button {
|
248 |
-webkit-appearance: button;
|
249 |
font: inherit;
|
250 |
}
|
251 |
-
#WBCR details {
|
252 |
display: block;
|
253 |
}
|
254 |
-
#WBCR summary {
|
255 |
display: list-item;
|
256 |
}
|
257 |
-
#WBCR template {
|
258 |
display: none;
|
259 |
}
|
260 |
-
#WBCR [hidden] {
|
261 |
display: none;
|
262 |
}
|
263 |
-
#WBCR table,
|
264 |
-
#WBCR caption,
|
265 |
-
#WBCR tbody,
|
266 |
-
#WBCR tfoot,
|
267 |
-
#WBCR thead,
|
268 |
-
#WBCR tr,
|
269 |
-
#WBCR th,
|
270 |
-
#WBCR td {
|
271 |
margin: 0;
|
272 |
padding: 0;
|
273 |
border: 0;
|
@@ -276,62 +317,62 @@ body p {
|
|
276 |
vertical-align: middle;
|
277 |
line-height: 1.2;
|
278 |
}
|
279 |
-
#WBCR table {
|
280 |
table-layout: auto;
|
281 |
border-collapse: collapse;
|
282 |
border-spacing: 0;
|
283 |
}
|
284 |
-
#WBCR span {
|
285 |
display: inline;
|
286 |
margin: 0;
|
287 |
}
|
288 |
-
#WBCR input[type="text"]::-moz-placeholder {
|
289 |
color: #cccccc;
|
290 |
}
|
291 |
-
#WBCR input[type="text"]::-webkit-input-placeholder,
|
292 |
-
#WBCR textarea::-webkit-input-placeholder {
|
293 |
color: #cccccc;
|
294 |
}
|
295 |
-
#WBCR input[type="text"]:-ms-input-placeholder,
|
296 |
-
#WBCR textarea:-ms-input-placeholder {
|
297 |
color: #cccccc;
|
298 |
}
|
299 |
-
#WBCR input[type="text"]::-ms-input-placeholder,
|
300 |
-
#WBCR textarea::-ms-input-placeholder {
|
301 |
color: #cccccc;
|
302 |
}
|
303 |
-
#WBCR input[type="text"]::placeholder,
|
304 |
-
#WBCR textarea::placeholder {
|
305 |
color: #cccccc;
|
306 |
}
|
307 |
-
#WBCR a {
|
308 |
text-decoration: none;
|
309 |
color: #007acc;
|
310 |
border: none;
|
311 |
background: none;
|
312 |
}
|
313 |
-
#WBCR a:hover {
|
314 |
text-decoration: underline;
|
315 |
border: inherit;
|
316 |
background: inherit;
|
317 |
}
|
318 |
-
#WBCR button,
|
319 |
-
#WBCR [type=submit] {
|
320 |
color: black;
|
321 |
font-weight: 400;
|
322 |
padding: 0;
|
323 |
line-height: 1.5;
|
324 |
}
|
325 |
-
#WBCR label {
|
326 |
color: white;
|
327 |
margin: 0;
|
328 |
font-weight: 400;
|
329 |
}
|
330 |
-
#WBCR select,
|
331 |
-
#WBCR [type=text] {
|
332 |
height: 32px;
|
333 |
}
|
334 |
-
#WBCR .visually-hidden {
|
335 |
position: absolute;
|
336 |
overflow: hidden;
|
337 |
clip: rect(0 0 0 0);
|
@@ -344,35 +385,126 @@ body p {
|
|
344 |
white-space: nowrap;
|
345 |
border: 0;
|
346 |
}
|
347 |
-
#WBCR.
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
background: #FFF;
|
356 |
-
overflow-y: auto;
|
357 |
}
|
358 |
-
#WBCR .
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
padding: 0;
|
364 |
-
font-size: 11px;
|
365 |
-
font-style: normal;
|
366 |
text-align: left;
|
367 |
-
color: #
|
368 |
-
background: #
|
369 |
-
|
370 |
}
|
371 |
-
#WBCR .
|
372 |
-
|
373 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
374 |
}
|
375 |
-
#WBCR .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
376 |
position: fixed;
|
377 |
z-index: 50;
|
378 |
top: 30px;
|
@@ -393,7 +525,7 @@ body p {
|
|
393 |
font-size: 16px;
|
394 |
border-top: 2px solid #ffcb1e;
|
395 |
}
|
396 |
-
#WBCR
|
397 |
position: relative;
|
398 |
display: block;
|
399 |
width: 20px;
|
@@ -401,10 +533,10 @@ body p {
|
|
401 |
background: #ffcb1e;
|
402 |
margin-left: -30px;
|
403 |
}
|
404 |
-
#WBCR
|
405 |
cursor: pointer;
|
406 |
}
|
407 |
-
#WBCR
|
408 |
position: relative;
|
409 |
right: -30px;
|
410 |
top: 8px;
|
@@ -419,7 +551,7 @@ body p {
|
|
419 |
padding: 5px 0 5px 0;
|
420 |
line-height: 1.2;
|
421 |
}
|
422 |
-
#WBCR
|
423 |
display: block;
|
424 |
content: '';
|
425 |
position: absolute;
|
@@ -429,8 +561,8 @@ body p {
|
|
429 |
height: 38px;
|
430 |
background: #23282d;
|
431 |
}
|
432 |
-
#WBCR .
|
433 |
-
#WBCR .
|
434 |
display: -webkit-flex;
|
435 |
display: -ms-flexbox;
|
436 |
display: flex;
|
@@ -438,17 +570,17 @@ body p {
|
|
438 |
align-items: center;
|
439 |
-ms-flex-align: center;
|
440 |
}
|
441 |
-
#WBCR .
|
442 |
min-width: 800px;
|
443 |
margin: 0 44px 0 0;
|
444 |
}
|
445 |
-
#WBCR .
|
446 |
width: 38px;
|
447 |
height: 32px;
|
448 |
margin: 0 44px 0 0;
|
449 |
background: url("data:image/png;base64,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");
|
450 |
}
|
451 |
-
#WBCR .
|
452 |
display: -webkit-flex;
|
453 |
display: -ms-flexbox;
|
454 |
display: flex;
|
@@ -459,109 +591,75 @@ body p {
|
|
459 |
padding: 0;
|
460 |
list-style: none;
|
461 |
}
|
462 |
-
#WBCR .
|
463 |
margin-right: 22px;
|
464 |
}
|
465 |
-
#WBCR .
|
466 |
margin: 0 22px;
|
467 |
color: #909090;
|
468 |
text-align: center;
|
469 |
vertical-align: top;
|
470 |
padding: 8px 0 8px;
|
471 |
}
|
472 |
-
#WBCR .
|
473 |
display: none;
|
474 |
margin: 0 44px 0 0;
|
475 |
}
|
476 |
-
#WBCR .
|
477 |
vertical-align: middle;
|
478 |
}
|
479 |
-
#WBCR .
|
480 |
font-size: 15px;
|
481 |
color: #d0d0d0;
|
482 |
background: #4c4c4c;
|
483 |
border-radius: 2px;
|
484 |
padding: 2px 5px;
|
485 |
}
|
486 |
-
#WBCR
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
#WBCR .wbcr-gnz-panel__color-2 .wbcr-gnz-panel__item_value {
|
491 |
-
background: #cfe699;
|
492 |
-
color: #456103;
|
493 |
-
}
|
494 |
-
#WBCR .wbcr-gnz-button__pro,
|
495 |
-
#WBCR .wbcr-gnz-panel__reset,
|
496 |
-
#WBCR .wbcr-gnz-panel__save,
|
497 |
-
#WBCR .wbcr-gnz-button__pro.input[type="submit"],
|
498 |
-
#WBCR .wbcr-gnz-panel__reset.input[type="submit"],
|
499 |
-
#WBCR .wbcr-gnz-panel__save.input[type="submit"] {
|
500 |
display: inline-block;
|
501 |
padding: 8px 15px 7px;
|
502 |
cursor: pointer;
|
503 |
-
transition: .1s;
|
504 |
vertical-align: middle;
|
505 |
text-transform: uppercase !important;
|
506 |
border: none;
|
507 |
border-radius: 2px;
|
508 |
font-size: 14px;
|
509 |
line-height: 1.5;
|
|
|
510 |
}
|
511 |
-
#WBCR .
|
512 |
-
#WBCR .
|
513 |
-
#WBCR .
|
514 |
-
#WBCR .
|
515 |
-
#WBCR .wbcr-gnz-panel__reset:focus,
|
516 |
-
#WBCR .wbcr-gnz-panel__save:focus {
|
517 |
outline: none;
|
518 |
text-decoration: none;
|
519 |
}
|
520 |
-
#WBCR .
|
521 |
-
#WBCR .
|
522 |
-
#WBCR .wbcr-gnz-panel__save:active {
|
523 |
-webkit-transform: translateY(2px);
|
524 |
transform: translateY(2px);
|
525 |
}
|
526 |
-
#WBCR .
|
527 |
-
#WBCR .
|
528 |
-
position: absolute;
|
529 |
-
top: -7px;
|
530 |
-
right: 0;
|
531 |
-
margin: 0;
|
532 |
-
color: #564713 !important;
|
533 |
-
background: #ffcb1e !important;
|
534 |
-
box-shadow: 0 4px #e4b526;
|
535 |
-
font-weight: 600;
|
536 |
-
font-size: 13px;
|
537 |
-
}
|
538 |
-
#WBCR .wbcr-gnz-button__pro:hover,
|
539 |
-
#WBCR .wbcr-gnz-button__pro:focus,
|
540 |
-
#WBCR .wbcr-gnz-button__pro:hover.input[type="submit"],
|
541 |
-
#WBCR .wbcr-gnz-button__pro:focus.input[type="submit"] {
|
542 |
-
background: #fdd03a !important;
|
543 |
-
}
|
544 |
-
#WBCR .wbcr-gnz-button__pro:active,
|
545 |
-
#WBCR .wbcr-gnz-button__pro:active.input[type="submit"] {
|
546 |
-
box-shadow: 0 2px #b9921a !important;
|
547 |
-
}
|
548 |
-
#WBCR .wbcr-gnz-panel__reset,
|
549 |
-
#WBCR .wbcr-gnz-panel__reset.input[type="submit"] {
|
550 |
margin: 0 10px 0 0;
|
551 |
padding-right: 30px;
|
552 |
padding-left: 30px;
|
553 |
background: #E1E5E9;
|
554 |
box-shadow: 0 4px #A8AEB3 !important;
|
555 |
}
|
556 |
-
#WBCR .
|
557 |
-
#WBCR .
|
558 |
background: #E7EAED !important;
|
559 |
}
|
560 |
-
#WBCR .
|
561 |
box-shadow: 0 2px #A8AEB3 !important;
|
562 |
}
|
563 |
-
#WBCR .
|
564 |
-
#WBCR .
|
565 |
margin: 0 10px 0 0;
|
566 |
padding-right: 30px;
|
567 |
padding-left: 30px;
|
@@ -569,30 +667,30 @@ body p {
|
|
569 |
background: #FFCB1E !important;
|
570 |
box-shadow: 0 4px #BF9A17 !important;
|
571 |
}
|
572 |
-
#WBCR .
|
573 |
-
#WBCR .
|
574 |
background: #FFD340 !important;
|
575 |
box-shadow: 0 4px #BF9A17 !important;
|
576 |
}
|
577 |
-
#WBCR .
|
578 |
background: #FFD340 !important;
|
579 |
box-shadow: 0 2px #BF9A17 !important;
|
580 |
}
|
581 |
-
#WBCR .
|
582 |
margin: 0;
|
583 |
}
|
584 |
-
#WBCR .
|
585 |
cursor: pointer;
|
586 |
font-size: 15px;
|
587 |
transform: none;
|
588 |
}
|
589 |
-
#WBCR .
|
590 |
-
#WBCR .
|
591 |
position: relative;
|
592 |
padding: 0 0 0 26px;
|
593 |
}
|
594 |
-
#WBCR .
|
595 |
-
#WBCR .
|
596 |
content: "";
|
597 |
position: absolute;
|
598 |
top: -1px;
|
@@ -602,8 +700,8 @@ body p {
|
|
602 |
border-radius: 2px;
|
603 |
background: #ffcb1e;
|
604 |
}
|
605 |
-
#WBCR .
|
606 |
-
#WBCR .
|
607 |
content: "";
|
608 |
position: absolute;
|
609 |
top: 5px;
|
@@ -615,11 +713,11 @@ body p {
|
|
615 |
border: solid #444;
|
616 |
border-width: 0 0 2px 2px;
|
617 |
}
|
618 |
-
#WBCR .
|
619 |
display: inline;
|
620 |
color: rgba(245, 245, 245, 0.3);
|
621 |
}
|
622 |
-
#WBCR .
|
623 |
display: inline-block;
|
624 |
font-size: 9px;
|
625 |
font-weight: 700;
|
@@ -632,35 +730,28 @@ body p {
|
|
632 |
border-radius: 3px;
|
633 |
line-height: 1.5;
|
634 |
}
|
635 |
-
#WBCR .
|
636 |
background: rgba(245, 245, 245, 0.3);
|
637 |
}
|
638 |
-
#WBCR .
|
|
|
639 |
width: 36px;
|
640 |
height: 36px;
|
641 |
margin: 0 20px 0 20px;
|
642 |
cursor: pointer;
|
643 |
-
transition: .2s;
|
644 |
border: 4px solid #FFF;
|
645 |
border-radius: 50%;
|
646 |
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;
|
647 |
}
|
648 |
-
#WBCR .
|
649 |
-
|
650 |
-
|
651 |
-
#WBCR .wbcr-gnz-panel__close:focus {
|
652 |
-
opacity: .5;
|
653 |
outline: none;
|
654 |
}
|
655 |
-
#WBCR .
|
656 |
-
display: block;
|
657 |
-
width: 100%;
|
658 |
-
margin: 0;
|
659 |
-
padding: 62px 0 0 75px;
|
660 |
-
}
|
661 |
-
#WBCR .wbcr-gnz-tabs {
|
662 |
position: fixed;
|
663 |
-
top:
|
664 |
bottom: 0;
|
665 |
left: 0;
|
666 |
width: 75px;
|
@@ -670,11 +761,11 @@ body p {
|
|
670 |
background: #F4F4F4;
|
671 |
box-shadow: 2px 0 5px rgba(0, 0, 0, 0.2);
|
672 |
}
|
673 |
-
#WBCR .
|
674 |
margin: 0;
|
675 |
padding: 0;
|
676 |
}
|
677 |
-
#WBCR .
|
678 |
position: relative;
|
679 |
display: block;
|
680 |
width: 100%;
|
@@ -689,266 +780,104 @@ body p {
|
|
689 |
-webkit-box-shadow: none;
|
690 |
-o-box-shadow: none;
|
691 |
}
|
692 |
-
#WBCR .
|
693 |
-
#WBCR .
|
694 |
-
#WBCR .
|
695 |
-
#WBCR .
|
696 |
-
#WBCR .
|
697 |
-
#WBCR .
|
698 |
-moz-box-shadow: none;
|
699 |
-ms-box-shadow: none;
|
700 |
-webkit-box-shadow: none;
|
701 |
-o-box-shadow: none;
|
702 |
}
|
703 |
-
#WBCR .
|
704 |
content: "";
|
705 |
position: absolute;
|
706 |
top: 0;
|
707 |
right: 0;
|
708 |
bottom: 0;
|
709 |
left: 0;
|
710 |
-
opacity: .55;
|
711 |
}
|
712 |
-
#WBCR .
|
713 |
background: url("data:image/png;base64,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") no-repeat 50%;
|
714 |
}
|
715 |
-
#WBCR .
|
716 |
background: url("data:image/png;base64,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") no-repeat 50%;
|
717 |
}
|
718 |
-
#WBCR .
|
719 |
background: url("data:image/png;base64,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") no-repeat 50%;
|
720 |
}
|
721 |
-
#WBCR .
|
722 |
-
#WBCR .
|
723 |
outline: none;
|
724 |
background: #E6E7E7;
|
725 |
}
|
726 |
-
#WBCR .
|
727 |
-
#WBCR .
|
728 |
opacity: 1;
|
729 |
}
|
730 |
-
#WBCR .
|
731 |
background: #CACDCF;
|
732 |
}
|
733 |
-
#WBCR .
|
734 |
opacity: 1;
|
735 |
}
|
736 |
-
#WBCR .
|
737 |
display: none;
|
|
|
738 |
}
|
739 |
-
#WBCR .
|
740 |
-
display: block;
|
741 |
-
}
|
742 |
-
#WBCR .wbcr-gnz-info {
|
743 |
-
display: table;
|
744 |
-
padding: 0 30px 30px;
|
745 |
-
color: #5C5C5C;
|
746 |
-
font-size: 15px;
|
747 |
-
line-height: 21px;
|
748 |
}
|
749 |
-
#WBCR .
|
750 |
-
|
751 |
margin: 0;
|
752 |
-
}
|
753 |
-
#WBCR .wbcr-gnz-info p:not(:last-child) {
|
754 |
-
margin-bottom: 25px;
|
755 |
-
}
|
756 |
-
#WBCR .wbcr-gnz-info .wbcr-gnz-info__warning,
|
757 |
-
#WBCR .wbcr-gnz-info .wbcr-gnz-info__go-to-premium {
|
758 |
-
display: table-cell;
|
759 |
-
width: 49%;
|
760 |
-
text-align: left;
|
761 |
-
vertical-align: top;
|
762 |
-
padding: 20px;
|
763 |
-
background: #f9f9f9;
|
764 |
-
border-right: 2px solid #fff;
|
765 |
-
}
|
766 |
-
#WBCR .wbcr-gnz-info .wbcr-gnz-info__go-to-premium {
|
767 |
-
background: #f9f9f9;
|
768 |
-
border-left: 2px solid #fff;
|
769 |
-
margin-left: 10px;
|
770 |
-
}
|
771 |
-
#WBCR .wbcr-gnz-info .wbcr-gnz-info__go-to-premium h3 {
|
772 |
-
position: relative;
|
773 |
-
margin: 0 0 20px;
|
774 |
-
padding: 10px 0;
|
775 |
-
text-align: left;
|
776 |
-
border-bottom: 2px solid #e2e2e2;
|
777 |
-
vertical-align: bottom;
|
778 |
-
}
|
779 |
-
#WBCR .wbcr-gnz-info .wbcr-gnz-info__go-to-premium h3 span {
|
780 |
-
display: block;
|
781 |
-
font-size: 17px;
|
782 |
-
font-weight: 600;
|
783 |
-
color: #e47558;
|
784 |
-
text-transform: uppercase;
|
785 |
-
}
|
786 |
-
#WBCR .wbcr-gnz-info .wbcr-gnz-info__go-to-premium ul {
|
787 |
list-style: none;
|
788 |
-
margin-left: 5px;
|
789 |
-
margin-bottom: 20px;
|
790 |
-
padding: 0;
|
791 |
-
}
|
792 |
-
#WBCR .wbcr-gnz-info .wbcr-gnz-info__go-to-premium ul li {
|
793 |
-
margin-bottom: 5px;
|
794 |
-
font-weight: 600;
|
795 |
-
font-size: 15px;
|
796 |
-
color: #7d8871;
|
797 |
-
padding: 0;
|
798 |
}
|
799 |
-
#WBCR .
|
800 |
-
content: " ";
|
801 |
-
display: inline-block;
|
802 |
-
width: 0.4em;
|
803 |
-
height: 0.7em;
|
804 |
-
border: solid #8bc34a;
|
805 |
-
border-width: 0 0.2em 0.2em 0;
|
806 |
-
left: 0;
|
807 |
-
margin-right: 10px;
|
808 |
-
-webkit-transform: rotate(45deg);
|
809 |
-
-moz-transform: rotate(45deg);
|
810 |
-
-o-transform: rotate(45deg);
|
811 |
-
transform: rotate(45deg);
|
812 |
-
}
|
813 |
-
#WBCR .wbcr-gnz-table {
|
814 |
-
margin: 0 30px;
|
815 |
-
}
|
816 |
-
#WBCR .wbcr-gnz-table table {
|
817 |
-
width: 100%;
|
818 |
-
border-collapse: collapse;
|
819 |
-
}
|
820 |
-
#WBCR .wbcr-gnz-table tbody:nth-child(2n) {
|
821 |
-
background: #f9f9f9;
|
822 |
-
border-bottom: 15px solid white;
|
823 |
-
}
|
824 |
-
#WBCR .wbcr-gnz-table th {
|
825 |
-
padding: 12px 10px;
|
826 |
-
text-align: left;
|
827 |
-
color: #333;
|
828 |
-
background: #ECEDED;
|
829 |
-
box-shadow: none;
|
830 |
-
}
|
831 |
-
#WBCR .wbcr-gnz-table th:not(:last-child) {
|
832 |
-
border-right: 2px solid #FFF;
|
833 |
-
}
|
834 |
-
#WBCR .wbcr-gnz-table td {
|
835 |
-
padding: 17px 10px;
|
836 |
-
vertical-align: top;
|
837 |
-
border-bottom: 1px solid #ECEDED;
|
838 |
text-align: left;
|
839 |
-
|
840 |
-
box-shadow: none;
|
841 |
-
}
|
842 |
-
#WBCR .wbcr-gnz-table th:nth-child(1),
|
843 |
-
#WBCR .wbcr-gnz-table td:nth-child(1),
|
844 |
-
#WBCR .wbcr-gnz-table th:nth-child(2),
|
845 |
-
#WBCR .wbcr-gnz-table td:nth-child(2) {
|
846 |
-
text-align: center;
|
847 |
-
}
|
848 |
-
#WBCR .wbcr-gnz-table__alternate th {
|
849 |
-
background: #eceded;
|
850 |
-
font-weight: 600;
|
851 |
-
}
|
852 |
-
#WBCR .wbcr-gnz-table__column_switch {
|
853 |
-
vertical-align: top;
|
854 |
-
width: 10%;
|
855 |
}
|
856 |
-
#WBCR
|
857 |
-
padding: 0 !important;
|
858 |
-
}
|
859 |
-
#WBCR th.wbcr-gnz-table__column_switch em {
|
860 |
display: block;
|
861 |
-
padding: 10px
|
862 |
-
|
863 |
-
|
864 |
-
font-weight: lighter;
|
865 |
}
|
866 |
-
#WBCR
|
|
|
867 |
display: block;
|
868 |
-
padding: 10px 12px;
|
869 |
-
font-weight: 600;
|
870 |
}
|
871 |
-
#WBCR .
|
872 |
-
|
|
|
873 |
}
|
874 |
-
#WBCR .
|
875 |
-
|
876 |
-
text-
|
877 |
}
|
878 |
-
#WBCR .
|
879 |
-
|
880 |
-
position: relative;
|
881 |
-
font-size: 13px;
|
882 |
-
background: #e0e0e0;
|
883 |
-
color: #444444;
|
884 |
-
padding: 5px 10px;
|
885 |
-
margin-top: 0;
|
886 |
}
|
887 |
-
#WBCR
|
888 |
-
display:
|
889 |
-
position: absolute;
|
890 |
-
top: 4px;
|
891 |
-
right: 4px;
|
892 |
-
line-height: 1.2;
|
893 |
}
|
894 |
-
#WBCR .
|
895 |
-
|
|
|
|
|
896 |
display: inline-block;
|
897 |
-
|
898 |
-
|
|
|
|
|
|
|
899 |
vertical-align: middle;
|
900 |
-
|
901 |
-
}
|
902 |
-
#WBCR .wbcr-gnz-table__loaded-state::after {
|
903 |
-
content: "";
|
904 |
-
position: absolute;
|
905 |
-
top: 9px;
|
906 |
-
left: 8px;
|
907 |
-
width: 15px;
|
908 |
-
height: 7px;
|
909 |
-
-webkit-transform: rotate(-45deg);
|
910 |
-
transform: rotate(-45deg);
|
911 |
-
border: solid #FFF;
|
912 |
-
border-width: 0 0 2px 2px;
|
913 |
-
}
|
914 |
-
#WBCR .wbcr-gnz-table__loaded-super-no {
|
915 |
-
background: #C8CFD7 !important;
|
916 |
-
}
|
917 |
-
#WBCR .wbcr-gnz-table__loaded-no {
|
918 |
-
background: #C8CFD7;
|
919 |
-
}
|
920 |
-
#WBCR .wbcr-gnz-table__loaded-yes {
|
921 |
-
background: #8BC34A;
|
922 |
-
}
|
923 |
-
#WBCR .wbcr-gnz-table__size {
|
924 |
-
width: 75px;
|
925 |
-
}
|
926 |
-
#WBCR .wbcr-gnz-table__size-value {
|
927 |
-
color: #737373;
|
928 |
-
font-size: 15px;
|
929 |
-
line-height: 20px;
|
930 |
-
}
|
931 |
-
#WBCR .wbcr-gnz-table__item {
|
932 |
-
color: #737373;
|
933 |
-
}
|
934 |
-
#WBCR td.wbcr-gnz-table__item:nth-child(2) {
|
935 |
-
text-align: left;
|
936 |
-
}
|
937 |
-
#WBCR .wbcr-gnz-table__item-name {
|
938 |
-
margin: 0 0 3px;
|
939 |
-
text-transform: uppercase;
|
940 |
-
font-size: 16px;
|
941 |
-
font-weight: bold;
|
942 |
-
}
|
943 |
-
#WBCR .wbcr-gnz-table__item-author {
|
944 |
-
margin: 0 0 4px;
|
945 |
-
}
|
946 |
-
#WBCR .wbcr-gnz-table__script-name {
|
947 |
-
color: #737373;
|
948 |
-
font-size: 16px;
|
949 |
-
font-weight: bold;
|
950 |
}
|
951 |
-
#WBCR .
|
952 |
display: inline-block;
|
953 |
padding: 5px 10px;
|
954 |
font-size: 13px;
|
@@ -958,454 +887,288 @@ body p {
|
|
958 |
vertical-align: middle;
|
959 |
margin-right: 15px;
|
960 |
}
|
961 |
-
#WBCR
|
962 |
background: #ffcb1e;
|
963 |
color: #403102;
|
964 |
}
|
965 |
-
#WBCR
|
966 |
background: #9757a5;
|
967 |
color: #ffffff;
|
968 |
}
|
969 |
-
#WBCR .
|
970 |
-
|
971 |
-
}
|
972 |
-
#WBCR .wbcr-gnz-table__script-path {
|
973 |
-
color: #BBBBBA;
|
974 |
-
}
|
975 |
-
#WBCR .wbcr-gnz-table__script-path,
|
976 |
-
#WBCR .wbcr-gnz-table__script-path a {
|
977 |
-
font-size: 12px;
|
978 |
-
}
|
979 |
-
#WBCR .wbcr-gnz-table__script-version {
|
980 |
-
color: #BBBBBA;
|
981 |
-
font-size: 12px;
|
982 |
-
padding: 5px 0;
|
983 |
-
}
|
984 |
-
#WBCR .wbcr-gnz-table__state {
|
985 |
-
width: 200px;
|
986 |
-
}
|
987 |
-
#WBCR .wbcr-gnz-table__turn-on {
|
988 |
-
width: 500px;
|
989 |
-
}
|
990 |
-
#WBCR .wbcr-gnz-table__note {
|
991 |
-
color: #BBB;
|
992 |
-
font-style: italic;
|
993 |
-
line-height: 21px;
|
994 |
-
}
|
995 |
-
#WBCR .wbcr-gnz-table__note p {
|
996 |
-
margin: 0;
|
997 |
-
}
|
998 |
-
#WBCR .wbcr-gnz-table__note p:not(:last-child) {
|
999 |
-
margin-bottom: 12px;
|
1000 |
-
}
|
1001 |
-
#WBCR .wbcr-gnz-table__select-wrapper::before,
|
1002 |
-
#WBCR .wbcr-gnz-table__select-wrapper::after {
|
1003 |
-
display: none !important;
|
1004 |
-
}
|
1005 |
-
#WBCR .wbcr-gnz-table__select {
|
1006 |
-
padding: 8px 28px 8px 10px;
|
1007 |
-
color: #4B4E51;
|
1008 |
-
border: none;
|
1009 |
-
border-radius: 3px;
|
1010 |
-
background: #F2F3F3 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFCAYAAACXU8ZrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFNJREFUeNpinDZtWgQDA0MjEKsxYAeLmDIzM1cAGbNwKQDKxzNBOXOBOBeI76ArADEY////DxedPn16EpCaBMRrYQpAgAXN+I1ALA1U0IwsCBBgADmdFtA7IxcEAAAAAElFTkSuQmCC") no-repeat right 10px top 50%;
|
1011 |
-
font-size: 13px;
|
1012 |
-
-webkit-appearance: none;
|
1013 |
-
-moz-appearance: none;
|
1014 |
-
appearance: none;
|
1015 |
-
}
|
1016 |
-
#WBCR .wbcr-gnz-table__select:not(:last-child) {
|
1017 |
-
margin-bottom: 16px;
|
1018 |
-
}
|
1019 |
-
#WBCR .wbcr-gnz-table__select:focus {
|
1020 |
-
outline: none;
|
1021 |
-
background-color: #E5E7E7;
|
1022 |
-
box-shadow: 0 0 0 2px rgba(255, 203, 30, 0.5);
|
1023 |
-
}
|
1024 |
-
#WBCR .wbcr-gnz-table__select::-ms-expand {
|
1025 |
-
display: none;
|
1026 |
-
}
|
1027 |
-
#WBCR .wbcr-gnz-table__select-pro {
|
1028 |
-
color: rgba(242, 39, 20, 0.34);
|
1029 |
-
}
|
1030 |
-
#WBCR .wbcr-gnz-table__label {
|
1031 |
-
display: block;
|
1032 |
-
margin: 15px 0 15px 10px;
|
1033 |
-
padding-bottom: 5px;
|
1034 |
-
color: #414B56;
|
1035 |
-
font-size: 13px;
|
1036 |
-
font-weight: bold;
|
1037 |
-
border-bottom: 2px solid #efefef;
|
1038 |
-
}
|
1039 |
-
#WBCR .wbcr-gnz-table__label .wbcr-gnz-help-hint {
|
1040 |
vertical-align: bottom;
|
|
|
|
|
|
|
|
|
|
|
1041 |
}
|
1042 |
-
#WBCR .
|
1043 |
-
|
1044 |
-
display: -ms-flexbox;
|
1045 |
-
display: flex;
|
1046 |
-
-webkit-flex-wrap: wrap;
|
1047 |
-
-ms-flex-wrap: wrap;
|
1048 |
-
flex-wrap: wrap;
|
1049 |
-
max-width: 380px;
|
1050 |
-
margin: 0 0 -15px 10px;
|
1051 |
-
padding: 0;
|
1052 |
-
list-style: none;
|
1053 |
-
color: #646D78;
|
1054 |
font-size: 13px;
|
1055 |
}
|
1056 |
-
#WBCR .
|
1057 |
-
|
1058 |
-
padding: 0 20px 15px 0;
|
1059 |
}
|
1060 |
-
#WBCR .
|
1061 |
cursor: pointer;
|
|
|
|
|
1062 |
}
|
1063 |
-
#WBCR .
|
1064 |
-
|
1065 |
-
|
1066 |
-
color: #6f7275;
|
1067 |
-
}
|
1068 |
-
#WBCR .wbcr-gnz-table__checkbox-text::before {
|
1069 |
-
content: "";
|
1070 |
-
position: absolute;
|
1071 |
-
top: 1px;
|
1072 |
-
left: 0;
|
1073 |
-
width: 13px;
|
1074 |
-
height: 13px;
|
1075 |
-
border-radius: 2px;
|
1076 |
-
background: #c8cfd7;
|
1077 |
-
}
|
1078 |
-
#WBCR .wbcr-gnz-table__checkbox-input:checked ~ .wbcr-gnz-table__checkbox-text {
|
1079 |
-
color: #646D78;
|
1080 |
-
}
|
1081 |
-
#WBCR .wbcr-gnz-table__checkbox-input:checked ~ .wbcr-gnz-table__checkbox-text::before {
|
1082 |
-
background: #FFCB1E;
|
1083 |
-
}
|
1084 |
-
#WBCR .wbcr-gnz-table__checkbox-input:checked ~ .wbcr-gnz-table__checkbox-text::after {
|
1085 |
-
content: "";
|
1086 |
-
position: absolute;
|
1087 |
-
top: 5px;
|
1088 |
-
left: 4px;
|
1089 |
-
width: 6px;
|
1090 |
-
height: 4px;
|
1091 |
-
-webkit-transform: rotate(-45deg);
|
1092 |
-
transform: rotate(-45deg);
|
1093 |
-
border: solid #FFF;
|
1094 |
-
border-width: 0 0 2px 2px;
|
1095 |
}
|
1096 |
-
#WBCR .
|
1097 |
-
|
|
|
|
|
|
|
1098 |
}
|
1099 |
-
#WBCR .
|
1100 |
-
|
1101 |
-
display: -ms-flexbox;
|
1102 |
-
display: flex;
|
1103 |
-
margin: 0 0 10px;
|
1104 |
}
|
1105 |
-
#WBCR .
|
1106 |
-
|
1107 |
-
width: 70%;
|
1108 |
-
padding: 8px 10px;
|
1109 |
-
margin-left: 10px;
|
1110 |
-
color: #4B4E51;
|
1111 |
-
border: none;
|
1112 |
-
border-radius: 3px;
|
1113 |
-
background: #ececec;
|
1114 |
-
font-size: 100%;
|
1115 |
}
|
1116 |
-
#WBCR .
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
}
|
1121 |
-
#WBCR .
|
1122 |
-
width: 30px;
|
1123 |
-
margin: 0 0 0 5px;
|
1124 |
cursor: pointer;
|
1125 |
-
|
1126 |
-
border
|
1127 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1128 |
}
|
1129 |
-
#WBCR .
|
1130 |
-
|
1131 |
-
color: #
|
|
|
1132 |
}
|
1133 |
-
#WBCR .
|
1134 |
-
background: #
|
|
|
|
|
1135 |
}
|
1136 |
-
#WBCR .
|
1137 |
outline: none;
|
1138 |
-
box-shadow:
|
1139 |
-
}
|
1140 |
-
#WBCR .wbcr-gnz-table__textarea {
|
1141 |
-
width: 95%;
|
1142 |
-
padding-right: 10px;
|
1143 |
-
margin: 0 0 10px 10px;
|
1144 |
-
}
|
1145 |
-
#WBCR .wbcr-gnz-table__also {
|
1146 |
-
font-size: 12px;
|
1147 |
-
font-weight: bold;
|
1148 |
-
margin-top: 15px;
|
1149 |
-
}
|
1150 |
-
#WBCR .wbcr-gnz-table__also .wbcr-gnz-table__label {
|
1151 |
-
font-size: 12px;
|
1152 |
-
padding: 5px 5px 5px 0;
|
1153 |
-
margin: 0;
|
1154 |
}
|
1155 |
-
#WBCR
|
1156 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1157 |
}
|
1158 |
-
#WBCR .
|
1159 |
display: block;
|
1160 |
-
}
|
1161 |
-
#WBCR .wbcr-gnz-table__also-url span a {
|
1162 |
-
text-decoration: underline;
|
1163 |
-
color: #adaeae;
|
1164 |
-
font-size: 12px;
|
1165 |
-
}
|
1166 |
-
#WBCR .wbcr-gnz-switch {
|
1167 |
-
position: relative;
|
1168 |
-
z-index: 1;
|
1169 |
-
display: inline-block;
|
1170 |
-
overflow: hidden;
|
1171 |
-
width: 70px;
|
1172 |
-
height: 30px;
|
1173 |
-
cursor: pointer;
|
1174 |
-
vertical-align: middle;
|
1175 |
-
border-radius: 15px;
|
1176 |
-
padding: 0;
|
1177 |
-
}
|
1178 |
-
#WBCR .wbcr-gnz-switch .wbcr-gnz-switch__inner {
|
1179 |
-
display: -webkit-flex;
|
1180 |
-
display: -ms-flexbox;
|
1181 |
-
display: flex;
|
1182 |
-
height: 30px;
|
1183 |
-
transition: .3s;
|
1184 |
-
-webkit-transform: translateX(-100%);
|
1185 |
-
transform: translateX(-100%);
|
1186 |
-
color: #FFF;
|
1187 |
-
font-size: 13px;
|
1188 |
-
line-height: 31px;
|
1189 |
-
}
|
1190 |
-
#WBCR .wbcr-gnz-switch .wbcr-gnz-switch__inner::before,
|
1191 |
-
#WBCR .wbcr-gnz-switch .wbcr-gnz-switch__inner::after {
|
1192 |
-
-webkit-flex-shrink: 0;
|
1193 |
-
-ms-flex-negative: 0;
|
1194 |
-
flex-shrink: 0;
|
1195 |
width: 100%;
|
1196 |
-
}
|
1197 |
-
#WBCR .wbcr-gnz-switch .wbcr-gnz-switch__inner::before {
|
1198 |
-
content: attr(data-off);
|
1199 |
-
padding: 0 0 0 12px;
|
1200 |
-
background: #C8CFD7;
|
1201 |
-
}
|
1202 |
-
#WBCR .wbcr-gnz-switch .wbcr-gnz-switch__inner::after {
|
1203 |
-
content: attr(data-on);
|
1204 |
-
padding: 0 12px 0 0;
|
1205 |
-
text-align: right;
|
1206 |
-
background: #414B56;
|
1207 |
-
}
|
1208 |
-
#WBCR .wbcr-gnz-switch .wbcr-gnz-switch__slider {
|
1209 |
-
position: absolute;
|
1210 |
-
top: 5px;
|
1211 |
-
left: 5px;
|
1212 |
-
width: 20px;
|
1213 |
-
height: 20px;
|
1214 |
-
transition: .3s;
|
1215 |
-
border-radius: 50%;
|
1216 |
-
background: #FFCB1E;
|
1217 |
margin: 0;
|
|
|
1218 |
}
|
1219 |
-
#WBCR
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
#WBCR .wbcr-gnz-switch:not(.wbcr-gnz-switch-premium) .wbcr-gnz-switch__input:checked:focus ~ .wbcr-gnz-switch__slider {
|
1226 |
-
left: 45px;
|
1227 |
-
background: #97A4B2;
|
1228 |
-
}
|
1229 |
-
#WBCR .wbcr-gnz-switch.wbcr-gnz-switch-premium {
|
1230 |
-
position: relative;
|
1231 |
-
font-style: normal;
|
1232 |
}
|
1233 |
-
#WBCR
|
1234 |
-
|
|
|
1235 |
}
|
1236 |
-
#WBCR .
|
1237 |
-
|
1238 |
-
font-style: normal;
|
1239 |
}
|
1240 |
-
#WBCR .
|
1241 |
-
|
1242 |
-
display:
|
1243 |
-
|
1244 |
-
|
1245 |
-
left: 5px;
|
1246 |
-
font-size: 7px;
|
1247 |
-
font-weight: 700;
|
1248 |
-
line-height: 2.77;
|
1249 |
-
color: #fff;
|
1250 |
-
background: #9a9a9a;
|
1251 |
-
width: 20px;
|
1252 |
-
height: 20px;
|
1253 |
-
/* padding: 3px 0; */
|
1254 |
-
text-align: center;
|
1255 |
vertical-align: top;
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
position: relative;
|
1260 |
-
}
|
1261 |
-
#WBCR .wbcr-gnz-tooltip::before {
|
1262 |
-
content: "";
|
1263 |
-
position: absolute;
|
1264 |
-
z-index: 60;
|
1265 |
-
left: 5px;
|
1266 |
-
display: none;
|
1267 |
-
width: 20px;
|
1268 |
-
height: 20px;
|
1269 |
-
}
|
1270 |
-
#WBCR .wbcr-gnz-tooltip::after {
|
1271 |
-
content: attr(data-tooltip);
|
1272 |
-
position: absolute;
|
1273 |
-
z-index: 60;
|
1274 |
-
left: 5px;
|
1275 |
-
display: none;
|
1276 |
-
min-width: 200px;
|
1277 |
-
padding: 8px 15px;
|
1278 |
-
color: #6d5506;
|
1279 |
-
background: #FFCB1E;
|
1280 |
-
font-size: 13px;
|
1281 |
-
font-weight: normal;
|
1282 |
-
line-height: 1.2;
|
1283 |
}
|
1284 |
-
#WBCR .
|
1285 |
-
|
1286 |
-
|
|
|
1287 |
}
|
1288 |
-
#WBCR .
|
1289 |
-
|
1290 |
-
margin: 0 0
|
1291 |
-
|
|
|
|
|
|
|
1292 |
}
|
1293 |
-
#WBCR .
|
1294 |
-
|
1295 |
-
|
|
|
|
|
|
|
1296 |
}
|
1297 |
-
#WBCR .
|
1298 |
-
|
1299 |
-
margin:
|
1300 |
-
|
|
|
1301 |
}
|
1302 |
-
#WBCR .
|
1303 |
-
|
1304 |
-
|
|
|
|
|
|
|
1305 |
}
|
1306 |
-
#WBCR .
|
1307 |
-
|
1308 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1309 |
}
|
1310 |
-
#WBCR .
|
1311 |
-
|
1312 |
}
|
1313 |
-
#WBCR .
|
1314 |
-
|
1315 |
-
max-width: 600px;
|
1316 |
}
|
1317 |
-
#WBCR .
|
1318 |
-
|
|
|
1319 |
}
|
1320 |
@media screen and (max-width: 1367px) {
|
1321 |
#WBCR p {
|
1322 |
font-size: 13px;
|
1323 |
}
|
1324 |
-
#WBCR .
|
1325 |
padding: 32px 0 0 75px;
|
1326 |
}
|
1327 |
-
#WBCR .
|
1328 |
display: block;
|
1329 |
}
|
1330 |
-
#WBCR .
|
1331 |
font-size: 13px;
|
1332 |
}
|
1333 |
-
#WBCR .
|
1334 |
-
#WBCR .
|
1335 |
font-size: 12px;
|
1336 |
}
|
1337 |
-
#WBCR .
|
1338 |
font-size: 12px;
|
1339 |
display: block;
|
1340 |
line-height: 1.5;
|
1341 |
}
|
1342 |
-
#WBCR .
|
1343 |
width: 30px;
|
1344 |
height: 30px;
|
1345 |
margin: 0 10px 0 15px;
|
1346 |
border: 3px solid #FFF;
|
1347 |
}
|
1348 |
-
#WBCR .
|
1349 |
padding: 0;
|
1350 |
}
|
1351 |
-
#WBCR .
|
1352 |
-
#WBCR .
|
1353 |
font-size: 13px;
|
1354 |
}
|
1355 |
-
#WBCR .
|
1356 |
padding: 20px 20px 30px;
|
1357 |
}
|
1358 |
#WBCR .wbcr-gnz-button__pro {
|
1359 |
font-size: 12px;
|
1360 |
}
|
1361 |
-
#WBCR .
|
1362 |
margin: 0;
|
1363 |
}
|
1364 |
-
#WBCR .
|
1365 |
font-size: 13px;
|
1366 |
}
|
1367 |
-
#WBCR .
|
1368 |
font-size: 14px;
|
1369 |
}
|
1370 |
-
#WBCR .
|
1371 |
-
#WBCR .
|
1372 |
-
#WBCR .
|
1373 |
-
#WBCR .
|
1374 |
-
#WBCR .
|
1375 |
-
#WBCR .
|
1376 |
font-size: 12px;
|
1377 |
}
|
1378 |
-
#WBCR .
|
1379 |
font-size: 14px;
|
1380 |
}
|
1381 |
-
#WBCR .
|
1382 |
font-size: 11px;
|
1383 |
font-weight: lighter;
|
1384 |
padding: 3px 7px;
|
1385 |
margin-right: 8px;
|
1386 |
}
|
1387 |
-
#WBCR .
|
1388 |
font-size: 11px;
|
1389 |
}
|
1390 |
-
#WBCR .
|
1391 |
width: 10%;
|
1392 |
}
|
1393 |
-
#WBCR .
|
1394 |
-
#WBCR .
|
1395 |
font-size: 10px;
|
1396 |
}
|
1397 |
-
#WBCR .
|
1398 |
font-size: 12px;
|
1399 |
}
|
1400 |
-
#WBCR .
|
1401 |
width: 35%;
|
1402 |
}
|
1403 |
}
|
1404 |
@media screen and (max-width: 1600px) {
|
1405 |
-
#WBCR .
|
1406 |
display: none;
|
1407 |
}
|
1408 |
-
#WBCR .
|
1409 |
display: block;
|
1410 |
}
|
1411 |
}
|
1 |
/**
|
2 |
* Assets manager styles
|
3 |
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
4 |
+
* @copyright Webcraftic 05.09.2019
|
5 |
*/
|
6 |
html,
|
7 |
body {
|
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;
|
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;
|
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;
|
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;
|
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);
|
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 |
+
/*td:first-child {
|
394 |
+
width: 20%;
|
395 |
+
}*/
|
|
|
|
|
396 |
}
|
397 |
+
#WBCR-AM .wam-table tr:nth-child(2n) > td {
|
398 |
+
background: #f9f9f9;
|
399 |
+
}
|
400 |
+
#WBCR-AM .wam-table th {
|
401 |
+
padding: 12px 10px;
|
|
|
|
|
|
|
402 |
text-align: left;
|
403 |
+
color: #333;
|
404 |
+
background: #ECEDED;
|
405 |
+
box-shadow: none;
|
406 |
}
|
407 |
+
#WBCR-AM .wam-table th:not(:last-child) {
|
408 |
+
border-right: 2px solid #FFF;
|
409 |
+
}
|
410 |
+
#WBCR-AM .wam-table td {
|
411 |
+
padding: 17px 10px;
|
412 |
+
vertical-align: top;
|
413 |
+
border-bottom: 1px solid #ECEDED;
|
414 |
+
text-align: left;
|
415 |
+
box-shadow: none;
|
416 |
+
}
|
417 |
+
#WBCR-AM .wam-table__th-actions {
|
418 |
+
width: 200px;
|
419 |
}
|
420 |
+
#WBCR-AM .wam-table__th-type {
|
421 |
+
width: 100px;
|
422 |
+
}
|
423 |
+
#WBCR-AM .wam-table__td-handle {
|
424 |
+
word-break: break-word;
|
425 |
+
}
|
426 |
+
#WBCR-AM .wam-table__th-version {
|
427 |
+
width: 100px;
|
428 |
+
}
|
429 |
+
#WBCR-AM .wam-table__th-size {
|
430 |
+
width: 100px;
|
431 |
+
}
|
432 |
+
#WBCR-AM .wam-table__th-plugins-list,
|
433 |
+
#WBCR-AM .wam-table__td-plugins-list {
|
434 |
+
width: 350px;
|
435 |
+
}
|
436 |
+
#WBCR-AM .wam-table__td-plugins-list {
|
437 |
+
padding: 0 !important;
|
438 |
+
}
|
439 |
+
#WBCR-AM .wam-table__th-plugins-settings,
|
440 |
+
#WBCR-AM .wam-table__td-plugins-settings {
|
441 |
+
width: 80%;
|
442 |
+
padding: 15px;
|
443 |
+
text-align: left;
|
444 |
+
}
|
445 |
+
#WBCR-AM .wam-table .js-wam-table__tr--disabled-section {
|
446 |
+
background: #fbf5f4;
|
447 |
+
opacity: 0.7;
|
448 |
+
}
|
449 |
+
#WBCR-AM .wam-table__asset-settings-conditions {
|
450 |
+
display: none;
|
451 |
+
background: #f3f3f3;
|
452 |
+
color: #7b7b7b;
|
453 |
+
font-size: 13px;
|
454 |
+
box-shadow: 0 2px 0 #d4d4d4;
|
455 |
+
}
|
456 |
+
#WBCR-AM .wam-table__asset-settings-conditions > td {
|
457 |
+
padding: 0 25px 15px 25px;
|
458 |
+
}
|
459 |
+
#WBCR-AM .wam-tooltip {
|
460 |
+
position: relative;
|
461 |
+
}
|
462 |
+
#WBCR-AM .wam-tooltip::before {
|
463 |
+
content: "";
|
464 |
+
position: absolute;
|
465 |
+
z-index: 60;
|
466 |
+
left: 5px;
|
467 |
+
display: none;
|
468 |
+
width: 20px;
|
469 |
+
height: 20px;
|
470 |
+
}
|
471 |
+
#WBCR-AM .wam-tooltip::after {
|
472 |
+
content: attr(data-tooltip);
|
473 |
+
position: absolute;
|
474 |
+
z-index: 60;
|
475 |
+
left: 5px;
|
476 |
+
display: none;
|
477 |
+
min-width: 200px;
|
478 |
+
padding: 8px 15px;
|
479 |
+
color: #6d5506;
|
480 |
+
background: #FFCB1E;
|
481 |
+
font-size: 13px;
|
482 |
+
font-weight: normal;
|
483 |
+
line-height: 1.2;
|
484 |
+
}
|
485 |
+
#WBCR-AM .wam-tooltip-top::before {
|
486 |
+
bottom: 100%;
|
487 |
+
background: linear-gradient(135deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
|
488 |
+
}
|
489 |
+
#WBCR-AM .wam-tooltip-top::after {
|
490 |
+
bottom: 100%;
|
491 |
+
margin: 0 0 10px;
|
492 |
+
border-radius: 6px 6px 6px 0;
|
493 |
+
}
|
494 |
+
#WBCR-AM .wam-tooltip--bottom::before {
|
495 |
+
top: 100%;
|
496 |
+
background: linear-gradient(45deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
|
497 |
+
}
|
498 |
+
#WBCR-AM .wam-tooltip--bottom::after {
|
499 |
+
top: 100%;
|
500 |
+
margin: 15px 0 0;
|
501 |
+
border-radius: 0 6px 6px 6px;
|
502 |
+
}
|
503 |
+
#WBCR-AM .wam-tooltip:hover::before,
|
504 |
+
#WBCR-AM .wam-tooltip:hover::after {
|
505 |
+
display: block;
|
506 |
+
}
|
507 |
+
#WBCR-AM .wam-float-panel {
|
508 |
position: fixed;
|
509 |
z-index: 50;
|
510 |
top: 30px;
|
525 |
font-size: 16px;
|
526 |
border-top: 2px solid #ffcb1e;
|
527 |
}
|
528 |
+
#WBCR-AM .wam-float-panel__premium {
|
529 |
position: relative;
|
530 |
display: block;
|
531 |
width: 20px;
|
533 |
background: #ffcb1e;
|
534 |
margin-left: -30px;
|
535 |
}
|
536 |
+
#WBCR-AM .wam-float-panel__premium:hover {
|
537 |
cursor: pointer;
|
538 |
}
|
539 |
+
#WBCR-AM .wam-float-panel__premium .wam-tooltip {
|
540 |
position: relative;
|
541 |
right: -30px;
|
542 |
top: 8px;
|
551 |
padding: 5px 0 5px 0;
|
552 |
line-height: 1.2;
|
553 |
}
|
554 |
+
#WBCR-AM .wam-float-panel__premium:after {
|
555 |
display: block;
|
556 |
content: '';
|
557 |
position: absolute;
|
561 |
height: 38px;
|
562 |
background: #23282d;
|
563 |
}
|
564 |
+
#WBCR-AM .wam-float-panel__left,
|
565 |
+
#WBCR-AM .wam-float-panel__right {
|
566 |
display: -webkit-flex;
|
567 |
display: -ms-flexbox;
|
568 |
display: flex;
|
570 |
align-items: center;
|
571 |
-ms-flex-align: center;
|
572 |
}
|
573 |
+
#WBCR-AM .wam-float-panel__left {
|
574 |
min-width: 800px;
|
575 |
margin: 0 44px 0 0;
|
576 |
}
|
577 |
+
#WBCR-AM .wam-float-panel__logo {
|
578 |
width: 38px;
|
579 |
height: 32px;
|
580 |
margin: 0 44px 0 0;
|
581 |
background: url("data:image/png;base64,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");
|
582 |
}
|
583 |
+
#WBCR-AM .wam-float-panel__data {
|
584 |
display: -webkit-flex;
|
585 |
display: -ms-flexbox;
|
586 |
display: flex;
|
591 |
padding: 0;
|
592 |
list-style: none;
|
593 |
}
|
594 |
+
#WBCR-AM .wam-float-panel__data:not(:last-child) {
|
595 |
margin-right: 22px;
|
596 |
}
|
597 |
+
#WBCR-AM .wam-float-panel__data-item {
|
598 |
margin: 0 22px;
|
599 |
color: #909090;
|
600 |
text-align: center;
|
601 |
vertical-align: top;
|
602 |
padding: 8px 0 8px;
|
603 |
}
|
604 |
+
#WBCR-AM .wam-float-panel__data-hidden {
|
605 |
display: none;
|
606 |
margin: 0 44px 0 0;
|
607 |
}
|
608 |
+
#WBCR-AM .wam-float-panel__data-hidden img {
|
609 |
vertical-align: middle;
|
610 |
}
|
611 |
+
#WBCR-AM .wam-float-panel__item_value {
|
612 |
font-size: 15px;
|
613 |
color: #d0d0d0;
|
614 |
background: #4c4c4c;
|
615 |
border-radius: 2px;
|
616 |
padding: 2px 5px;
|
617 |
}
|
618 |
+
#WBCR-AM .wam-float-panel__reset,
|
619 |
+
#WBCR-AM .wam-float-panel__save,
|
620 |
+
#WBCR-AM .wam-float-panel__reset.input[type="submit"],
|
621 |
+
#WBCR-AM .wam-float-panel__save.input[type="submit"] {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
622 |
display: inline-block;
|
623 |
padding: 8px 15px 7px;
|
624 |
cursor: pointer;
|
625 |
+
transition: 0.1s;
|
626 |
vertical-align: middle;
|
627 |
text-transform: uppercase !important;
|
628 |
border: none;
|
629 |
border-radius: 2px;
|
630 |
font-size: 14px;
|
631 |
line-height: 1.5;
|
632 |
+
color: #222 !important;
|
633 |
}
|
634 |
+
#WBCR-AM .wam-float-panel__reset:hover,
|
635 |
+
#WBCR-AM .wam-float-panel__save:hover,
|
636 |
+
#WBCR-AM .wam-float-panel__reset:focus,
|
637 |
+
#WBCR-AM .wam-float-panel__save:focus {
|
|
|
|
|
638 |
outline: none;
|
639 |
text-decoration: none;
|
640 |
}
|
641 |
+
#WBCR-AM .wam-float-panel__reset:active,
|
642 |
+
#WBCR-AM .wam-float-panel__save:active {
|
|
|
643 |
-webkit-transform: translateY(2px);
|
644 |
transform: translateY(2px);
|
645 |
}
|
646 |
+
#WBCR-AM .wam-float-panel__reset,
|
647 |
+
#WBCR-AM .wam-float-panel__reset.input[type="submit"] {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
648 |
margin: 0 10px 0 0;
|
649 |
padding-right: 30px;
|
650 |
padding-left: 30px;
|
651 |
background: #E1E5E9;
|
652 |
box-shadow: 0 4px #A8AEB3 !important;
|
653 |
}
|
654 |
+
#WBCR-AM .wam-float-panel__reset:hover,
|
655 |
+
#WBCR-AM .wam-float-panel__reset:focus {
|
656 |
background: #E7EAED !important;
|
657 |
}
|
658 |
+
#WBCR-AM .wam-float-panel__reset:active {
|
659 |
box-shadow: 0 2px #A8AEB3 !important;
|
660 |
}
|
661 |
+
#WBCR-AM .wam-float-panel__save,
|
662 |
+
#WBCR-AM .wam-float-panel__save.input[type="submit"] {
|
663 |
margin: 0 10px 0 0;
|
664 |
padding-right: 30px;
|
665 |
padding-left: 30px;
|
667 |
background: #FFCB1E !important;
|
668 |
box-shadow: 0 4px #BF9A17 !important;
|
669 |
}
|
670 |
+
#WBCR-AM .wam-float-panel__save:hover,
|
671 |
+
#WBCR-AM .wam-float-panel__save:focus {
|
672 |
background: #FFD340 !important;
|
673 |
box-shadow: 0 4px #BF9A17 !important;
|
674 |
}
|
675 |
+
#WBCR-AM .wam-float-panel__save:active {
|
676 |
background: #FFD340 !important;
|
677 |
box-shadow: 0 2px #BF9A17 !important;
|
678 |
}
|
679 |
+
#WBCR-AM .wam-float-panel__save + div {
|
680 |
margin: 0;
|
681 |
}
|
682 |
+
#WBCR-AM .wam-float-panel__checkbox {
|
683 |
cursor: pointer;
|
684 |
font-size: 15px;
|
685 |
transform: none;
|
686 |
}
|
687 |
+
#WBCR-AM .wam-float-panel__checkbox-text,
|
688 |
+
#WBCR-AM .wam-float-panel__checkbox-text-premium {
|
689 |
position: relative;
|
690 |
padding: 0 0 0 26px;
|
691 |
}
|
692 |
+
#WBCR-AM .wam-float-panel__checkbox-text::before,
|
693 |
+
#WBCR-AM .wam-float-panel__checkbox-text-premium::before {
|
694 |
content: "";
|
695 |
position: absolute;
|
696 |
top: -1px;
|
700 |
border-radius: 2px;
|
701 |
background: #ffcb1e;
|
702 |
}
|
703 |
+
#WBCR-AM .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text::after,
|
704 |
+
#WBCR-AM .wam-float-panel__checkbox-input:checked + .wam-float-panel__checkbox-text-premium::after {
|
705 |
content: "";
|
706 |
position: absolute;
|
707 |
top: 5px;
|
713 |
border: solid #444;
|
714 |
border-width: 0 0 2px 2px;
|
715 |
}
|
716 |
+
#WBCR-AM .wam-float-panel__checkbox-text-premium {
|
717 |
display: inline;
|
718 |
color: rgba(245, 245, 245, 0.3);
|
719 |
}
|
720 |
+
#WBCR-AM .wam-float-panel__checkbox-text-premium b {
|
721 |
display: inline-block;
|
722 |
font-size: 9px;
|
723 |
font-weight: 700;
|
730 |
border-radius: 3px;
|
731 |
line-height: 1.5;
|
732 |
}
|
733 |
+
#WBCR-AM .wam-float-panel__checkbox-text-premium::before {
|
734 |
background: rgba(245, 245, 245, 0.3);
|
735 |
}
|
736 |
+
#WBCR-AM .wam-float-panel__close,
|
737 |
+
#WBCR-AM .wam-float-panel__close:hover {
|
738 |
width: 36px;
|
739 |
height: 36px;
|
740 |
margin: 0 20px 0 20px;
|
741 |
cursor: pointer;
|
742 |
+
transition: 0.2s;
|
743 |
border: 4px solid #FFF;
|
744 |
border-radius: 50%;
|
745 |
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;
|
746 |
}
|
747 |
+
#WBCR-AM .wam-float-panel__close:focus,
|
748 |
+
#WBCR-AM .wam-float-panel__close:hover:focus {
|
749 |
+
opacity: 0.5;
|
|
|
|
|
750 |
outline: none;
|
751 |
}
|
752 |
+
#WBCR-AM .wam-assets-type-tabs {
|
|
|
|
|
|
|
|
|
|
|
|
|
753 |
position: fixed;
|
754 |
+
top: 92px;
|
755 |
bottom: 0;
|
756 |
left: 0;
|
757 |
width: 75px;
|
761 |
background: #F4F4F4;
|
762 |
box-shadow: 2px 0 5px rgba(0, 0, 0, 0.2);
|
763 |
}
|
764 |
+
#WBCR-AM .wam-assets-type-tabs li {
|
765 |
margin: 0;
|
766 |
padding: 0;
|
767 |
}
|
768 |
+
#WBCR-AM .wam-assets-type-tabs__button {
|
769 |
position: relative;
|
770 |
display: block;
|
771 |
width: 100%;
|
780 |
-webkit-box-shadow: none;
|
781 |
-o-box-shadow: none;
|
782 |
}
|
783 |
+
#WBCR-AM .wam-assets-type-tabs__button:hover,
|
784 |
+
#WBCR-AM .wam-assets-type-tabs__button:focus,
|
785 |
+
#WBCR-AM .wam-assets-type-tabs__button:after,
|
786 |
+
#WBCR-AM .wam-assets-type-tabs__button:before,
|
787 |
+
#WBCR-AM .wam-assets-type-tabs__button:after:hover,
|
788 |
+
#WBCR-AM .wam-assets-type-tabs__button:before:hover {
|
789 |
-moz-box-shadow: none;
|
790 |
-ms-box-shadow: none;
|
791 |
-webkit-box-shadow: none;
|
792 |
-o-box-shadow: none;
|
793 |
}
|
794 |
+
#WBCR-AM .wam-assets-type-tabs__button::after {
|
795 |
content: "";
|
796 |
position: absolute;
|
797 |
top: 0;
|
798 |
right: 0;
|
799 |
bottom: 0;
|
800 |
left: 0;
|
801 |
+
opacity: 0.55;
|
802 |
}
|
803 |
+
#WBCR-AM .wam-assets-type-tabs__button--misc::after {
|
804 |
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAtCAYAAAAgJgIUAAAIhUlEQVRYhe2YXawdVRXHf2vtOXPOvbxUEgUJhdaIQemlbSgkkEZaiiSg4EVBEWKkYIg+qDQoiRFj8QElQT4SjSEitNGAYtKCRjFa21tTUhVbKrcxGFAqfTDBALVpe8587LV8mJlz59wvkBifXMmcMzNrz6z/+q+111575Iu33cZCkqYpSRI4caJPr9fTLM/PU9WLLcY1wFkOpwI9YAC8IsKLguwT1d0i8gxQqgqCoEFRVQQZsfG1zZtJFkQAiIDDScCNWZ5vdPfzYlnOKEflNDdf5fg1uCPwJ1H9gUp4COVfi9nRxZRltCuzLNsLfNvNzhsanwuA2Tp3X2kx3lMUxe9itGveCogUkXtjWf7Uok3MMew+c8y+bu7Vz7j72WVR/CTL8gfd/CTmwT9fOMYQeRSYnOOxO4gcCCHsctgvIi8Dx919XISl7r7Kzde7swZ8hBmL8Zb+YLB8rNe7RoMexRcG0R0CmGVcRH6WdtP786LYnSQhltFQFdwdEFQV3B8lIG5+kZndalaHoWHF7AP9wWDb2FhvUlWPNUBGwyHyzREAFbVHEbkZuEpD2AnEhnG8PuqxTXBE9elOJ7k26STXI/JqO0RutiEbZA+4O80T2uv16I31SDrJ5cCtI96rvtztppcCDw+Nvilx3CFJksd6ve4lIvKXNpAY4015XnzMrQahqqjISWZ273AgICLHer3uR4KGZ9r3R5mbMboAFjpJ8lyv150UkVdbL6csinvKsjwZQE/0+5w40f+URTt7mIgVtZ8fDLJ9/X5/XuPujkVDRBBRRGRmZtToRAVzR0PyfKfTuQV3G+JzXxrNPgMgX73jjmSQZX90s5UNCIFfAB9ssYKoknYSRIQYjSzLAOikHUDodBLcHFHBzcjzgjRNK3C1DLLsMYvxupadF9M0ndAsz1a5+7ktFjztpnePjY8xNj5Gt9utvRXcIYRQz4i5kQlJIKgCggMxRsyMGCPRIiGEuxEpWmy8O1q8UFV1Pe4zcEWm87zY0+8P6PcHDLJsmMV1mBcWn6WXCjR4xRIcEJE/tHPM3TdoLOOadlEKQXd0045107SZ+1AvO/NX6wVKeK0REUJIQKpzVflVy2HMfE0CvKeuhI03+2K0IY012slo9l4x+XmA51p21sYY368ivwf5TWPI3c92t8kY5aWk44+HoB5NajZk36wl4MzE3d/RnhWielhVazyOm9/iZg86kJvdLnChmT0PrEVkp8XYMUBUrwiqT7n7GXmRT7n5KaWVkHF6kiTfGsapKvURCHUElygiY216qNYCRIQkJCByw1DnvqQoy0tUlZAkl+HeaRwoy/LKaEYZywvc/JTmfow2aWbtZD4O5K28SBX3QTuO7j7u7nVSKSGE7UOWRPrdtLsnSQKq+tvmPiIkSfLroEqSJPtF5Ehz391/mecFZYxVXsA41SrdmCwSRP4JvHNoCE4XFVSUJEnQEB5wt9fNfKLX7W4LSXgOoBvCDvAryjJuSELY0+umT3jF79/MfEOM8RNu9oK7P4wIImDmuNnSJhR18h5JROQFNzu3WenMfbU4P4oekSioBlcNWyFW061VFIPqU6b+lEhVF6op6qiwX0LYX7jVK7oQQkCA0mV1m3lEDqtIK1vdcbdLRRAVwcxajQsj9aK+Na8MF1cHUaWTJFWZN8divKzdDAnsU1Xd1UKFOytxLpC6KY0WR80JC5cGaSrKjIQQ0KAEDajqOcCFbXsadKeqyD6BP7fQhTLG24UqjgJV0Wo6JDNiWc6hQajKdIyxAlK/rywKBv0Bg8GALMtu89Gk/LuI7FFRKTSE77fRWYxXlzF+PIQEDdV6EFTJ84I8zymKkizPafoBxxlkOWVZkuc5CBRlSSftMD4+zvj4OGmaXg58ciZmjopsveuub5xQFaWTJA+JyF9bQKQoiu/GWJ4jVWmtXG01JmaG1SuzO1iMdTykTgqvwCcBhHcVZfkwTTtZTfd/9MZ63wFQEVDVo51O50sjzYv72waDbFtRFO9bIPyjv/MuLILFeNagP9jmZqcOx1T/X+73B69QhTugqqRpuj0k4Xsj/aD7e7Isn4oxXtuy+aalLMsPnegPpqzVq9QO/tjdt7pVTM40ugLdbneTqu4Y2Tu4v70oisfLovyhm58/4/nciVJve3D3lcBDRVE86WanzWJpLyKfbW8HZlp+B1U93hvrfbRf0bdhZN9gdoO5XyewV1R3COx34WXwYzjj7rY0mq+O0TZYtLWIdOZQ47632+teFUJ4feF9RwXk6NhYbzIbZPfHGG8eMlKBCe6+1mNcW/tuCBmQ4h6asT7SGgzPHwU+p6KvBdWRGT53G1gBOZam6aeTJLleRF6ab3tXFxEFxoAwslVstwYih4GbcL8BeG1Yd1t7lkU3xCHoYyEJ52sIXxGR5+fsN+c4MKJ7UVW/3ut1LwAeWczOop8GqhVdXg1B7yLovWZ2Ec56M1sDnOFwMpACucDriBwWkf2iukvgaXM/LrqonxWIZcuXv+GgWgbAzvr4r8obw/wfyP9BNDJvYh6cnt4FrAM2r5iYuPPg9PQ6oOk7pHW+vh73CLAMOAJsATbV+mXAfcx8btgCbFoxMXGkbW8xJg7VBgAurq/nk+21bj1wJ9XnhRuBJTXYZcDVwMYazPbZL1hsih5oebAOmKpfPp8sqY8t9XOH6meXActbDhyZ8+SbALHu4PT0KmAV8OQC49ZTedd4OEXl+Zn1dQOAFRMTT8z3gjdKzCngwy1Q88kRYDWVxxtrwPe19Euak4PT08veCojdVCGYWkC/CngJ+AKVx1vq/2XMMHdja/z2g9PTz/6nIKbqF+5eQH+gNrwZeLYGtAp4oNbdT8XKbN2ILJQTW4FDKyYmDhycnt4MNLHc3NI3spHK65X19ZPMhG5TPbYJ6dYVExOHZhv7N8fmQDQfwhMYAAAAAElFTkSuQmCC") no-repeat 50%;
|
805 |
}
|
806 |
+
#WBCR-AM .wam-assets-type-tabs__button--theme::after {
|
807 |
background: url("data:image/png;base64,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") no-repeat 50%;
|
808 |
}
|
809 |
+
#WBCR-AM .wam-assets-type-tabs__button--plugins::after {
|
810 |
background: url("data:image/png;base64,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") no-repeat 50%;
|
811 |
}
|
812 |
+
#WBCR-AM .wam-assets-type-tabs__button:hover,
|
813 |
+
#WBCR-AM .wam-assets-type-tabs__button:focus {
|
814 |
outline: none;
|
815 |
background: #E6E7E7;
|
816 |
}
|
817 |
+
#WBCR-AM .wam-assets-type-tabs__button:hover::after,
|
818 |
+
#WBCR-AM .wam-assets-type-tabs__button:focus::after {
|
819 |
opacity: 1;
|
820 |
}
|
821 |
+
#WBCR-AM .wam-assets-type-tabs__button.wam-assets-type-tab__active {
|
822 |
background: #CACDCF;
|
823 |
}
|
824 |
+
#WBCR-AM .wam-assets-type-tabs__button.wam-assets-type-tab__active::after {
|
825 |
opacity: 1;
|
826 |
}
|
827 |
+
#WBCR-AM .wam-assets-type-tab-content {
|
828 |
display: none;
|
829 |
+
padding: 20px 30px;
|
830 |
}
|
831 |
+
#WBCR-AM .wam-assets-type-tab-content.wam-assets-type-tab-content__active {
|
832 |
+
display: block !important;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
833 |
}
|
834 |
+
#WBCR-AM .wam-nav-plugins {
|
835 |
+
padding: 0;
|
836 |
margin: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
837 |
list-style: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
838 |
}
|
839 |
+
#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
840 |
text-align: left;
|
841 |
+
margin-bottom: 3px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
842 |
}
|
843 |
+
#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a {
|
|
|
|
|
|
|
844 |
display: block;
|
845 |
+
padding: 10px 20px;
|
846 |
+
background: #f5f5f5;
|
847 |
+
color: #222;
|
|
|
848 |
}
|
849 |
+
#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a strong,
|
850 |
+
#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a span {
|
851 |
display: block;
|
|
|
|
|
852 |
}
|
853 |
+
#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab a span {
|
854 |
+
font-size: 12px;
|
855 |
+
color: #2f2f2f;
|
856 |
}
|
857 |
+
#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab:hover a {
|
858 |
+
background: #efefef;
|
859 |
+
text-decoration: none;
|
860 |
}
|
861 |
+
#WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab.wam-nav-plugins__tab--active a {
|
862 |
+
background: #e8e8e8;
|
|
|
|
|
|
|
|
|
|
|
|
|
863 |
}
|
864 |
+
#WBCR-AM .wam-nav-plugins__tab-content {
|
865 |
+
display: none;
|
|
|
|
|
|
|
|
|
866 |
}
|
867 |
+
#WBCR-AM .wam-nav-plugins__tab-content.js-wam-nav-plugins__tab-content--active {
|
868 |
+
display: block !important;
|
869 |
+
}
|
870 |
+
#WBCR-AM .wam-help-hint {
|
871 |
display: inline-block;
|
872 |
+
position: relative;
|
873 |
+
background: url(../img/help.png) no-repeat 0 0 transparent;
|
874 |
+
height: 14px;
|
875 |
+
width: 13px;
|
876 |
+
cursor: help;
|
877 |
vertical-align: middle;
|
878 |
+
top: -1px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
879 |
}
|
880 |
+
#WBCR-AM .wam-asset-type {
|
881 |
display: inline-block;
|
882 |
padding: 5px 10px;
|
883 |
font-size: 13px;
|
887 |
vertical-align: middle;
|
888 |
margin-right: 15px;
|
889 |
}
|
890 |
+
#WBCR-AM .wam-asset-type--js {
|
891 |
background: #ffcb1e;
|
892 |
color: #403102;
|
893 |
}
|
894 |
+
#WBCR-AM .wam-asset-type--css {
|
895 |
background: #9757a5;
|
896 |
color: #ffffff;
|
897 |
}
|
898 |
+
#WBCR-AM .wam-button {
|
899 |
+
display: inline-block;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
900 |
vertical-align: bottom;
|
901 |
+
padding: 5px 10px;
|
902 |
+
text-decoration: none;
|
903 |
+
box-shadow: none;
|
904 |
+
font-weight: 600;
|
905 |
+
border-radius: 3px;
|
906 |
}
|
907 |
+
#WBCR-AM .wam-button--small {
|
908 |
+
padding: 2px 8px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
909 |
font-size: 13px;
|
910 |
}
|
911 |
+
#WBCR-AM .wam-button.js-wam-button--hidden {
|
912 |
+
display: none;
|
|
|
913 |
}
|
914 |
+
#WBCR-AM .wam-button:hover {
|
915 |
cursor: pointer;
|
916 |
+
text-decoration: none;
|
917 |
+
box-shadow: none;
|
918 |
}
|
919 |
+
#WBCR-AM .wam-button:focus {
|
920 |
+
outline: none;
|
921 |
+
box-shadow: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
922 |
}
|
923 |
+
#WBCR-AM .wam-button__icon {
|
924 |
+
height: 28px;
|
925 |
+
width: 28px;
|
926 |
+
padding: 5px;
|
927 |
+
line-height: 0;
|
928 |
}
|
929 |
+
#WBCR-AM .wam-button.js-wam-button__icon--cogs {
|
930 |
+
background: url('../img/cogs.png') center no-repeat;
|
|
|
|
|
|
|
931 |
}
|
932 |
+
#WBCR-AM .wam-button.js-wam-button__icon--close {
|
933 |
+
background: url('../img/close.png') center no-repeat;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
934 |
}
|
935 |
+
#WBCR-AM .wam-button--default {
|
936 |
+
background-color: #eceded;
|
937 |
+
color: #222;
|
938 |
+
border: 1px solid #c3c3c3;
|
939 |
}
|
940 |
+
#WBCR-AM .wam-button--default:hover {
|
|
|
|
|
941 |
cursor: pointer;
|
942 |
+
background-color: #fff;
|
943 |
+
border: 1px solid #c3c3c3;
|
944 |
+
}
|
945 |
+
#WBCR-AM .wam-button--danger {
|
946 |
+
background-color: #fff;
|
947 |
+
color: #ff7063;
|
948 |
+
border: 1px solid #ff7063;
|
949 |
+
}
|
950 |
+
#WBCR-AM .wam-button--danger:hover {
|
951 |
+
background-color: #fff;
|
952 |
+
color: #222;
|
953 |
+
border: 1px solid #c3c3c3;
|
954 |
+
}
|
955 |
+
#WBCR-AM .wam-button--yellow {
|
956 |
+
background-color: #fff;
|
957 |
+
color: #a5820e;
|
958 |
+
border: 1px solid #ffcb1e;
|
959 |
+
}
|
960 |
+
#WBCR-AM .wam-button--yellow:hover {
|
961 |
+
background-color: #fff;
|
962 |
+
color: #222;
|
963 |
+
border: 1px solid #c3c3c3;
|
964 |
+
}
|
965 |
+
#WBCR-AM .wam-select {
|
966 |
+
display: inline-block;
|
967 |
+
vertical-align: bottom;
|
968 |
+
height: auto;
|
969 |
+
padding: 4px 10px;
|
970 |
}
|
971 |
+
#WBCR-AM .wam-select.js-wam-select--enable {
|
972 |
+
background: #efffde;
|
973 |
+
color: #4e6f28;
|
974 |
+
border: 1px solid #8bc34a;
|
975 |
}
|
976 |
+
#WBCR-AM .wam-select.js-wam-select--disable {
|
977 |
+
background: #ffdada;
|
978 |
+
border: 1px solid #efc3c3;
|
979 |
+
color: #774a4a;
|
980 |
}
|
981 |
+
#WBCR-AM .wam-select:focus {
|
982 |
outline: none;
|
983 |
+
box-shadow: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
984 |
}
|
985 |
+
#WBCR-AM.wam-wrapper {
|
986 |
+
min-width: 1365px;
|
987 |
+
position: fixed;
|
988 |
+
z-index: 99999999;
|
989 |
+
top: 32px;
|
990 |
+
bottom: 0;
|
991 |
+
left: 0;
|
992 |
+
right: 0;
|
993 |
+
background: #FFF;
|
994 |
+
overflow-y: auto;
|
995 |
}
|
996 |
+
#WBCR-AM .wam-content {
|
997 |
display: block;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
998 |
width: 100%;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
999 |
margin: 0;
|
1000 |
+
padding: 62px 0 0 75px;
|
1001 |
}
|
1002 |
+
#WBCR-AM .wam-info-section {
|
1003 |
+
display: table;
|
1004 |
+
padding: 0 30px 30px;
|
1005 |
+
color: #5C5C5C;
|
1006 |
+
font-size: 15px;
|
1007 |
+
line-height: 21px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1008 |
}
|
1009 |
+
#WBCR-AM .wam-info-section p {
|
1010 |
+
font-size: 15px;
|
1011 |
+
margin: 0;
|
1012 |
}
|
1013 |
+
#WBCR-AM .wam-info-section p:not(:last-child) {
|
1014 |
+
margin-bottom: 25px;
|
|
|
1015 |
}
|
1016 |
+
#WBCR-AM .wam-info-section .wam-info-section__warning,
|
1017 |
+
#WBCR-AM .wam-info-section .wam-info-section__go-to-premium {
|
1018 |
+
display: table-cell;
|
1019 |
+
width: 49%;
|
1020 |
+
text-align: left;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1021 |
vertical-align: top;
|
1022 |
+
padding: 20px;
|
1023 |
+
background: #f9f9f9;
|
1024 |
+
border-right: 2px solid #fff;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1025 |
}
|
1026 |
+
#WBCR-AM .wam-info-section .wam-info-section__go-to-premium {
|
1027 |
+
background: #f9f9f9;
|
1028 |
+
border-left: 2px solid #fff;
|
1029 |
+
margin-left: 10px;
|
1030 |
}
|
1031 |
+
#WBCR-AM .wam-info-section .wam-info-section__go-to-premium h3 {
|
1032 |
+
position: relative;
|
1033 |
+
margin: 0 0 20px;
|
1034 |
+
padding: 10px 0;
|
1035 |
+
text-align: left;
|
1036 |
+
border-bottom: 2px solid #e2e2e2;
|
1037 |
+
vertical-align: bottom;
|
1038 |
}
|
1039 |
+
#WBCR-AM .wam-info-section .wam-info-section__go-to-premium h3 span {
|
1040 |
+
display: block;
|
1041 |
+
font-size: 17px;
|
1042 |
+
font-weight: 600;
|
1043 |
+
color: #e47558;
|
1044 |
+
text-transform: uppercase;
|
1045 |
}
|
1046 |
+
#WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul {
|
1047 |
+
list-style: none;
|
1048 |
+
margin-left: 5px;
|
1049 |
+
margin-bottom: 20px;
|
1050 |
+
padding: 0;
|
1051 |
}
|
1052 |
+
#WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul li {
|
1053 |
+
margin-bottom: 5px;
|
1054 |
+
font-weight: 600;
|
1055 |
+
font-size: 15px;
|
1056 |
+
color: #7d8871;
|
1057 |
+
padding: 0;
|
1058 |
}
|
1059 |
+
#WBCR-AM .wam-info-section .wam-info-section__go-to-premium ul li:before {
|
1060 |
+
content: " ";
|
1061 |
+
display: inline-block;
|
1062 |
+
width: 0.4em;
|
1063 |
+
height: 0.7em;
|
1064 |
+
border: solid #8bc34a;
|
1065 |
+
border-width: 0 0.2em 0.2em 0;
|
1066 |
+
left: 0;
|
1067 |
+
margin-right: 10px;
|
1068 |
+
-webkit-transform: rotate(45deg);
|
1069 |
+
-moz-transform: rotate(45deg);
|
1070 |
+
-o-transform: rotate(45deg);
|
1071 |
+
transform: rotate(45deg);
|
1072 |
}
|
1073 |
+
#WBCR-AM .wam-plugin-settings {
|
1074 |
+
padding-bottom: 10px;
|
1075 |
}
|
1076 |
+
#WBCR-AM .wam-plugin-settings__controls {
|
1077 |
+
vertical-align: top;
|
|
|
1078 |
}
|
1079 |
+
#WBCR-AM .wam-plugin-settings .js-wam-plugin-settings__conditions {
|
1080 |
+
display: none;
|
1081 |
+
padding: 20px;
|
1082 |
}
|
1083 |
@media screen and (max-width: 1367px) {
|
1084 |
#WBCR p {
|
1085 |
font-size: 13px;
|
1086 |
}
|
1087 |
+
#WBCR .wam-content {
|
1088 |
padding: 32px 0 0 75px;
|
1089 |
}
|
1090 |
+
#WBCR .wam-float-panel__left .wam-float-panel__item_value {
|
1091 |
display: block;
|
1092 |
}
|
1093 |
+
#WBCR .wam-float-panel__right .wam-table__checkbox-text {
|
1094 |
font-size: 13px;
|
1095 |
}
|
1096 |
+
#WBCR .wam-float-panel__right .wam-float-panel__reset,
|
1097 |
+
#WBCR .wam-float-panel__right .wam-float-panel__save {
|
1098 |
font-size: 12px;
|
1099 |
}
|
1100 |
+
#WBCR .wam-float-panel__right .wam-float-panel__checkbox-text {
|
1101 |
font-size: 12px;
|
1102 |
display: block;
|
1103 |
line-height: 1.5;
|
1104 |
}
|
1105 |
+
#WBCR .wam-float-panel__right .wam-float-panel__close {
|
1106 |
width: 30px;
|
1107 |
height: 30px;
|
1108 |
margin: 0 10px 0 15px;
|
1109 |
border: 3px solid #FFF;
|
1110 |
}
|
1111 |
+
#WBCR .wam-info-section {
|
1112 |
padding: 0;
|
1113 |
}
|
1114 |
+
#WBCR .wam-info-section,
|
1115 |
+
#WBCR .wam-info-section p {
|
1116 |
font-size: 13px;
|
1117 |
}
|
1118 |
+
#WBCR .wam-info-section .wam-info-section__warning {
|
1119 |
padding: 20px 20px 30px;
|
1120 |
}
|
1121 |
#WBCR .wbcr-gnz-button__pro {
|
1122 |
font-size: 12px;
|
1123 |
}
|
1124 |
+
#WBCR .wam-table {
|
1125 |
margin: 0;
|
1126 |
}
|
1127 |
+
#WBCR .wam-table th {
|
1128 |
font-size: 13px;
|
1129 |
}
|
1130 |
+
#WBCR .wam-table .wam-table__item .wam-table__item-name {
|
1131 |
font-size: 14px;
|
1132 |
}
|
1133 |
+
#WBCR .wam-table .wam-table__item .wam-table__item-author,
|
1134 |
+
#WBCR .wam-table .wam-table__item .wam-table__item-version,
|
1135 |
+
#WBCR .wam-table .wam-table__item .wbcr-use-by-comment,
|
1136 |
+
#WBCR .wam-table .wam-table__item .wam-table__item-author a,
|
1137 |
+
#WBCR .wam-table .wam-table__item .wam-table__item-version a,
|
1138 |
+
#WBCR .wam-table .wam-table__item .wbcr-use-by-comment a {
|
1139 |
font-size: 12px;
|
1140 |
}
|
1141 |
+
#WBCR .wam-table .wam-table__script-name {
|
1142 |
font-size: 14px;
|
1143 |
}
|
1144 |
+
#WBCR .wam-table .wam-table__script-name b {
|
1145 |
font-size: 11px;
|
1146 |
font-weight: lighter;
|
1147 |
padding: 3px 7px;
|
1148 |
margin-right: 8px;
|
1149 |
}
|
1150 |
+
#WBCR .wam-table .wam-table__script-path a {
|
1151 |
font-size: 11px;
|
1152 |
}
|
1153 |
+
#WBCR .wam-table .wam-table__column_switch {
|
1154 |
width: 10%;
|
1155 |
}
|
1156 |
+
#WBCR .wam-table .wam-table__column_switch .wam-table__th-external-plugin,
|
1157 |
+
#WBCR .wam-table .wam-table__column_switch em {
|
1158 |
font-size: 10px;
|
1159 |
}
|
1160 |
+
#WBCR .wam-table .wam-table__column_switch b {
|
1161 |
font-size: 12px;
|
1162 |
}
|
1163 |
+
#WBCR .wam-table .wam-table__column_condition {
|
1164 |
width: 35%;
|
1165 |
}
|
1166 |
}
|
1167 |
@media screen and (max-width: 1600px) {
|
1168 |
+
#WBCR .wam-float-panel__data-main {
|
1169 |
display: none;
|
1170 |
}
|
1171 |
+
#WBCR .wam-float-panel__data-hidden {
|
1172 |
display: block;
|
1173 |
}
|
1174 |
}
|
components/assets-manager/assets/css/assets-manager.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["assets-manager.less","reset.less"],"names":[],"mappings":"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","file":"assets-manager.css"}
|
1 |
+
{"version":3,"sources":["assets-manager.less","reset.less","tables.less","tooltip.less","float-panel.less","tabs.less"],"names":[],"mappings":"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","file":"assets-manager.css"}
|
components/assets-manager/assets/css/assets-manager.less
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
/**
|
2 |
* Assets manager styles
|
3 |
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
4 |
-
* @copyright Webcraftic 05.09.
|
5 |
*/
|
6 |
|
7 |
html, body {
|
@@ -20,15 +20,12 @@ body {
|
|
20 |
background: #FFF !important;
|
21 |
|
22 |
&, p {
|
23 |
-
font-family: Arial, "Helvetica Neue", sans-serif
|
24 |
}
|
25 |
}
|
26 |
|
27 |
-
#WBCR {
|
28 |
|
29 |
-
/**
|
30 |
-
* Reset styles
|
31 |
-
*/
|
32 |
@import "reset.less";
|
33 |
|
34 |
span {
|
@@ -37,7 +34,7 @@ body {
|
|
37 |
}
|
38 |
|
39 |
/**
|
40 |
-
*
|
41 |
*/
|
42 |
|
43 |
input[type="text"]::-moz-placeholder {
|
@@ -104,25 +101,19 @@ body {
|
|
104 |
border: 0;
|
105 |
}
|
106 |
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
.wbcr-gnz-help-hint {
|
121 |
-
display: inline-block;
|
122 |
-
width: 16px;
|
123 |
-
height: 16px;
|
124 |
-
line-height: 0 !important;
|
125 |
-
padding: 0;
|
126 |
font-size: 11px;
|
127 |
font-style: normal;
|
128 |
text-align: left;
|
@@ -134,435 +125,179 @@ body {
|
|
134 |
display: inline-block;
|
135 |
margin: 3px 0 0 4px;
|
136 |
}
|
137 |
-
}
|
138 |
|
139 |
-
.
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
display: flex;
|
149 |
-
-ms-flex-pack: justify;
|
150 |
-
-webkit-justify-content: space-between;
|
151 |
-
justify-content: space-between;
|
152 |
-
height: 62px;
|
153 |
-
padding: 0 20px;
|
154 |
-
margin: 0;
|
155 |
-
color: #FFF;
|
156 |
-
background: #23282d;
|
157 |
-
font-size: 16px;
|
158 |
-
border-top: 2px solid #ffcb1e;
|
159 |
-
|
160 |
-
.wbcr-gnz-panel__premium {
|
161 |
-
position: relative;
|
162 |
-
display: block;
|
163 |
-
width: 20px;
|
164 |
-
height: 40px;
|
165 |
-
background: #ffcb1e;
|
166 |
-
margin-left: -30px;
|
167 |
-
|
168 |
-
&:hover {
|
169 |
-
cursor: pointer;
|
170 |
-
}
|
171 |
-
|
172 |
-
.wbcr-gnz-tooltip {
|
173 |
-
position: relative;
|
174 |
-
right: -30px;
|
175 |
-
top: 8px;
|
176 |
-
font-size: 12px;
|
177 |
-
font-weight: bold;
|
178 |
-
font-style: normal;
|
179 |
-
color: #ffffff;
|
180 |
-
background: #f22714;
|
181 |
-
width: 45px;
|
182 |
-
text-align: center;
|
183 |
-
border-radius: 3px;
|
184 |
-
padding: 5px 0 5px 0;
|
185 |
-
line-height: 1.2;
|
186 |
-
}
|
187 |
-
|
188 |
-
&:after {
|
189 |
-
display: block;
|
190 |
-
content: '';
|
191 |
-
position: absolute;
|
192 |
-
top: 1px;
|
193 |
-
left: 0;
|
194 |
-
width: 19px;
|
195 |
-
height: 38px;
|
196 |
-
background: #23282d;
|
197 |
-
}
|
198 |
-
}
|
199 |
-
}
|
200 |
-
|
201 |
-
.wbcr-gnz-panel__left,
|
202 |
-
.wbcr-gnz-panel__right {
|
203 |
-
display: -webkit-flex;
|
204 |
-
display: -ms-flexbox;
|
205 |
-
display: flex;
|
206 |
-
-webkit-align-items: center;
|
207 |
-
align-items: center;
|
208 |
-
-ms-flex-align: center;
|
209 |
-
}
|
210 |
-
|
211 |
-
.wbcr-gnz-panel__left {
|
212 |
-
min-width: 800px;
|
213 |
-
margin: 0 44px 0 0;
|
214 |
-
}
|
215 |
-
|
216 |
-
.wbcr-gnz-panel__logo {
|
217 |
-
width: 38px;
|
218 |
-
height: 32px;
|
219 |
-
margin: 0 44px 0 0;
|
220 |
-
background: url("data:image/png;base64,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");
|
221 |
-
}
|
222 |
-
|
223 |
-
.wbcr-gnz-panel__data {
|
224 |
-
display: -webkit-flex;
|
225 |
-
display: -ms-flexbox;
|
226 |
-
display: flex;
|
227 |
-
-webkit-align-items: center;
|
228 |
-
align-items: center;
|
229 |
-
-ms-flex-align: center;
|
230 |
-
margin: 0 -22px;
|
231 |
-
padding: 0;
|
232 |
-
list-style: none;
|
233 |
-
}
|
234 |
-
|
235 |
-
.wbcr-gnz-panel__data:not(:last-child) {
|
236 |
-
margin-right: 22px;
|
237 |
}
|
238 |
|
239 |
-
.
|
240 |
-
|
241 |
-
|
|
|
|
|
242 |
text-align: center;
|
243 |
-
|
244 |
-
padding: 8px 0 8px;
|
245 |
-
}
|
246 |
-
|
247 |
-
.wbcr-gnz-panel__data-hidden {
|
248 |
-
display: none;
|
249 |
-
margin: 0 44px 0 0;
|
250 |
-
}
|
251 |
-
|
252 |
-
.wbcr-gnz-panel__data-hidden img {
|
253 |
vertical-align: middle;
|
254 |
-
|
255 |
-
|
256 |
-
.wbcr-gnz-panel__item_value {
|
257 |
-
font-size: 15px;
|
258 |
-
color: #d0d0d0;
|
259 |
-
background: #4c4c4c;
|
260 |
-
border-radius: 2px;
|
261 |
-
padding: 2px 5px;
|
262 |
-
}
|
263 |
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
color: #632121;
|
268 |
}
|
269 |
-
}
|
270 |
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
color: #456103;
|
275 |
}
|
276 |
}
|
277 |
|
278 |
-
|
279 |
-
|
280 |
-
.
|
281 |
-
|
282 |
-
display: inline-block;
|
283 |
-
padding: 8px 15px 7px;
|
284 |
-
cursor: pointer;
|
285 |
-
transition: .1s;
|
286 |
-
vertical-align: middle;
|
287 |
-
text-transform: uppercase !important;
|
288 |
-
border: none;
|
289 |
-
border-radius: 2px;
|
290 |
-
font-size: 14px;
|
291 |
-
line-height: 1.5;
|
292 |
-
}
|
293 |
-
|
294 |
-
}
|
295 |
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
.wbcr-gnz-button__pro:focus,
|
300 |
-
.wbcr-gnz-panel__reset:focus,
|
301 |
-
.wbcr-gnz-panel__save:focus {
|
302 |
-
outline: none;
|
303 |
text-decoration: none;
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
.wbcr-gnz-panel__reset:active,
|
308 |
-
.wbcr-gnz-panel__save:active {
|
309 |
-
-webkit-transform: translateY(2px);
|
310 |
-
transform: translateY(2px);
|
311 |
-
}
|
312 |
|
313 |
-
|
314 |
-
|
315 |
-
position: absolute;
|
316 |
-
top: -7px;
|
317 |
-
right: 0;
|
318 |
-
margin: 0;
|
319 |
-
color: #564713 !important;
|
320 |
-
background: #ffcb1e !important;
|
321 |
-
box-shadow: 0 4px #e4b526;
|
322 |
-
font-weight: 600;
|
323 |
font-size: 13px;
|
324 |
}
|
325 |
-
}
|
326 |
|
327 |
-
|
328 |
-
|
329 |
-
&, &.input[type="submit"] {
|
330 |
-
background: #fdd03a !important;
|
331 |
}
|
332 |
-
}
|
333 |
|
334 |
-
|
335 |
-
|
336 |
-
|
|
|
337 |
}
|
338 |
-
}
|
339 |
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
padding-right: 30px;
|
344 |
-
padding-left: 30px;
|
345 |
-
background: #E1E5E9;
|
346 |
-
box-shadow: 0 4px #A8AEB3 !important;
|
347 |
}
|
348 |
-
}
|
349 |
-
|
350 |
-
.wbcr-gnz-panel__reset:hover,
|
351 |
-
.wbcr-gnz-panel__reset:focus {
|
352 |
-
background: #E7EAED !important;
|
353 |
-
}
|
354 |
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
&, &.input[type="submit"] {
|
361 |
-
margin: 0 10px 0 0;
|
362 |
-
padding-right: 30px;
|
363 |
-
padding-left: 30px;
|
364 |
-
color: #222 !important;
|
365 |
-
background: #FFCB1E !important;;
|
366 |
-
box-shadow: 0 4px #BF9A17 !important;
|
367 |
}
|
368 |
|
369 |
-
|
370 |
-
background:
|
371 |
-
box-shadow: 0 4px #BF9A17 !important;
|
372 |
}
|
373 |
|
374 |
-
|
375 |
-
background:
|
376 |
-
box-shadow: 0 2px #BF9A17 !important;
|
377 |
}
|
378 |
|
379 |
-
|
380 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
381 |
}
|
382 |
-
}
|
383 |
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
content: "";
|
396 |
-
position: absolute;
|
397 |
-
top: -1px;
|
398 |
-
left: 0;
|
399 |
-
width: 20px;
|
400 |
-
height: 20px;
|
401 |
-
border-radius: 2px;
|
402 |
-
background: #ffcb1e;
|
403 |
}
|
404 |
-
}
|
405 |
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
-webkit-transform: rotate(-45deg);
|
417 |
-
transform: rotate(-45deg);
|
418 |
-
border: solid #444;
|
419 |
-
border-width: 0 0 2px 2px;
|
420 |
-
}
|
421 |
}
|
422 |
}
|
423 |
}
|
424 |
|
425 |
-
|
426 |
-
display: inline;
|
427 |
-
color: rgba(245, 245, 245, 0.3);
|
428 |
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
color: #fff;
|
434 |
-
background: #f22714;
|
435 |
-
width: 25px;
|
436 |
-
padding: 3px 0;
|
437 |
-
text-align: center;
|
438 |
-
vertical-align: top;
|
439 |
-
border-radius: 3px;
|
440 |
-
line-height: 1.5;
|
441 |
-
}
|
442 |
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
transition: .2s;
|
454 |
-
border: 4px solid #FFF;
|
455 |
-
border-radius: 50%;
|
456 |
-
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;
|
457 |
|
458 |
-
|
459 |
-
|
|
|
|
|
460 |
}
|
461 |
|
462 |
&:focus {
|
463 |
-
opacity: .5;
|
464 |
outline: none;
|
|
|
465 |
}
|
466 |
}
|
467 |
|
468 |
-
|
469 |
-
display: block;
|
470 |
-
width: 100%;
|
471 |
-
margin: 0;
|
472 |
-
padding: 62px 0 0 75px;
|
473 |
-
}
|
474 |
|
475 |
-
|
|
|
476 |
position: fixed;
|
477 |
-
|
|
|
478 |
bottom: 0;
|
479 |
left: 0;
|
480 |
-
width: 75px;
|
481 |
-
margin: 0;
|
482 |
-
padding: 0;
|
483 |
-
list-style: none;
|
484 |
-
background: #F4F4F4;
|
485 |
-
box-shadow: 2px 0 5px rgba(0, 0, 0, .2);
|
486 |
-
|
487 |
-
li {
|
488 |
-
margin: 0;
|
489 |
-
padding: 0;
|
490 |
-
}
|
491 |
-
}
|
492 |
-
|
493 |
-
.wbcr-gnz-tabs__button {
|
494 |
-
position: relative;
|
495 |
-
display: block;
|
496 |
-
width: 100%;
|
497 |
-
height: 130px;
|
498 |
-
cursor: pointer;
|
499 |
-
border: none;
|
500 |
-
background: #ECEDED;
|
501 |
-
border-radius: 0;
|
502 |
-
box-shadow: none;
|
503 |
-
-moz-box-shadow: none;
|
504 |
-
-ms-box-shadow: none;
|
505 |
-
-webkit-box-shadow: none;
|
506 |
-
-o-box-shadow: none;
|
507 |
-
|
508 |
-
&:hover, &:focus, &:after, &:before, &:after:hover, &:before:hover {
|
509 |
-
-moz-box-shadow: none;
|
510 |
-
-ms-box-shadow: none;
|
511 |
-
-webkit-box-shadow: none;
|
512 |
-
-o-box-shadow: none;
|
513 |
-
}
|
514 |
-
}
|
515 |
-
|
516 |
-
.wbcr-gnz-tabs__button::after {
|
517 |
-
content: "";
|
518 |
-
position: absolute;
|
519 |
-
top: 0;
|
520 |
right: 0;
|
521 |
-
|
522 |
-
|
523 |
-
opacity: .55;
|
524 |
-
}
|
525 |
-
|
526 |
-
.wbcr-gnz-tabs__button--misc::after {
|
527 |
-
background: url("data:image/png;base64,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") no-repeat 50%;
|
528 |
-
}
|
529 |
-
|
530 |
-
.wbcr-gnz-tabs__button--theme::after {
|
531 |
-
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAvCAYAAACVDljoAAAGA0lEQVRYhe3Zf6ifVR0H8Nf1TnNb1lYUUS6jX0hhm2lB5XS3WWCQzkqLhmzTiAqsjSjoHrAtOtEvdEERkbWGki1JyyBY2HaNxFbN3RmFkdDVEZHLvK3N1ly7/fF5nu6zs+f53ue7DfrHNzx8v+c5n8857+fz+ZxzPueckfHxcaeAM3ARLsPFeBVehLNxGI/jEezGffg1jjYbyDn36mjeSRJciLVYVxHtwouxDO+pyntxG27FP4bp8IyhKfJOPICvGkyyDUvxZfzSLPleGIboWbgZ9+CCYTppwfm4E99IKS3so9CX6Hxsw4aO+kncguvMxuulWI0v4Tcdeh/E3Sml58xFYKTHYHoWvodVLXU/xmYxUP4zqB+8Geu1u/xnWJVzPtjVQB+Lfr6F5AHcgCuxYw6SMIP7cQ3ejyeK+pX4yqAG5iJ6hbBCE/txOb49h24X7sBb8afi/fUppWu7lAa5fqGIrfMb7w5iBV4vrDNfuLUvZoT1J0Q4/QLPb9Tvw7Kc899LxUHz6JqCJHy0IvsFLMZf8a8hyI7iXLwFD4nBdKdZzy7Bh/C5UrHL9fOqRpr4CbbgHDFV7RKx9UYxyt9Q/XY9F4kB9YOq/XNwF75f9LMupXR2G6E2LMPrGuUZYUU4Vn3gY/gdNlbyhzvaqvs5VMnuwdVVO6p2340zq/Ir8Sbs7EN0zPHu/K2Ipzbdd+m/ANxevsg5T6aUfiXCocbKvkQvLsr3mrVAjdoCN4nYerqon8Gzqz7+LWJ5jxiMJX5aEC377yT66qK8u4VEHd/7RbbUJDpStX0P/ibi84iYf0db+ivbP68v0RcW5X1FeaRB7LParUTMwX8W2dIBXIWnWuQeE9NW/RGL+hKdX5QPdcgx99S0AM8VM8VZHTKHhMXrfk+Q65qeyhG8YACRMnabmGnUHx0gu6AgV8Z7J9H9RfncAWRK6zdxpll31oNvpkVuieNjd7oU6HL9Hx0/j14olrwm6oZvFJl8c4sxUtXvESvZpcK1D4k5s8SFRbkcE51EdxcNXl51XlvjqFiRbsKjFYnSO8fwtur9oUr/Aryjqm9a9u0t/fciurMoL62I7arKR8TMsKlDfy4cUQ3ClNJrxUrUxI5SoStGd+P3jfIoPtnQGSZjakMdGvBxxw+kR524CnYSfRrfKt5djffin6fG8X/9PiXy3euKuq055xPm2kFp3q34CF5RlUfwdSwXicS1YiS3jeJBGBUW24OfFxz+gq+1KQ0iegCfEKlYjcXYLoL/i9qXwz54OX4oDiua+FTO+fE2hbm2Infjm8W7l4gM/Rqx7A37XFHpv6Zod1vOeWsXkT6buw0ie2riBSLhvV0kzH2wVITTj8S828QD+PAg5T5HOofEnHqXyBObWI33VR3diwdFgnFQLItLxGS+EpeYXZ1KklfmnJ88VaJEvK4Se/gbirrRisQlVfmYyD/PMncMfxc3tm3mSgxzpHMQHxD78nKrW7Y532CS+3A9VvchWTc6LO4QcZnw8JC6j+AzYpXbMoziyR47PiG2tDeLneWY2D68FM8Tbj+CJ4X1HhTL8v0G57annWiNw2JdPmFtPt04Gdf/X/AM0dONZ4ieboyMj4/v1L4vH8OnG/9Vcjsb5XInQKSDdZsbxS5gRUN2pGp3Y6E3kXMeSymtr+oXYQqbcs7fmSeSjkXimHFtg8TkwE+cxYYO2amK4CZxrj+FlxUyY43/0ymlZeIuYLNIXtZgS0ppYl6jk8vqL+tJsMZkh86k2SP1FZXM2kJmonkhVhFl9oM2YCum+0z4KwzO4pvun3C8R1aII8llwkIlZlJK9f+NOedNKaV1wqr1R27OOU/0ITpp9tqmdk0TTdeXBwcT4ryJ9vBoun6qlss5L66sexU2ppT29iE6bXA4dLmeuNb52ID60vXrcUtKaSznPJFSmhKD7rxTXesJCzct2bw0m6jqu65mdjZcT+x011TvJ4QHp7F1dPny5bXQiDD/fQ3FEXHR2nTbdCUzXT0PV3r1s0tcyO4Vd57Erd90Q3ek0JnCVM55+44dO7bhD5XsdmzIOU/9FxZhkSePNaNRAAAAAElFTkSuQmCC") no-repeat 50%;
|
532 |
-
}
|
533 |
-
|
534 |
-
.wbcr-gnz-tabs__button--plugins::after {
|
535 |
-
background: url("data:image/png;base64,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") no-repeat 50%;
|
536 |
-
}
|
537 |
-
|
538 |
-
.wbcr-gnz-tabs__button:hover,
|
539 |
-
.wbcr-gnz-tabs__button:focus {
|
540 |
-
outline: none;
|
541 |
-
background: #E6E7E7;
|
542 |
-
}
|
543 |
-
|
544 |
-
.wbcr-gnz-tabs__button:hover::after,
|
545 |
-
.wbcr-gnz-tabs__button:focus::after {
|
546 |
-
opacity: 1;
|
547 |
-
}
|
548 |
-
|
549 |
-
.wbcr-gnz-tabs__button.active {
|
550 |
-
background: #CACDCF;
|
551 |
-
}
|
552 |
-
|
553 |
-
.wbcr-gnz-tabs__button.active::after {
|
554 |
-
opacity: 1;
|
555 |
-
}
|
556 |
-
|
557 |
-
.wbcr-gnz-tabs-content {
|
558 |
-
display: none;
|
559 |
}
|
560 |
|
561 |
-
.
|
562 |
display: block;
|
|
|
|
|
|
|
563 |
}
|
564 |
|
565 |
-
.
|
566 |
display: table;
|
567 |
|
568 |
padding: 0 30px 30px;
|
@@ -579,7 +314,7 @@ body {
|
|
579 |
}
|
580 |
}
|
581 |
|
582 |
-
.
|
583 |
display: table-cell;
|
584 |
width: 49%;
|
585 |
text-align: left;
|
@@ -591,7 +326,7 @@ body {
|
|
591 |
|
592 |
}
|
593 |
|
594 |
-
.
|
595 |
background: #f9f9f9;
|
596 |
//border: 1px dashed #e0cb14;
|
597 |
border-left: 2px solid #fff;
|
@@ -646,609 +381,19 @@ body {
|
|
646 |
}
|
647 |
}
|
648 |
|
649 |
-
.
|
650 |
-
|
|
|
651 |
|
652 |
-
|
653 |
-
width: 100%;
|
654 |
-
border-collapse: collapse;
|
655 |
-
}
|
656 |
-
|
657 |
-
tbody:nth-child(2n) {
|
658 |
-
background: #f9f9f9;
|
659 |
-
border-bottom: 15px solid white;
|
660 |
-
}
|
661 |
-
|
662 |
-
th {
|
663 |
-
padding: 12px 10px;
|
664 |
-
text-align: left;
|
665 |
-
color: #333;
|
666 |
-
background: #ECEDED;
|
667 |
-
box-shadow: none;
|
668 |
-
}
|
669 |
-
|
670 |
-
th:not(:last-child) {
|
671 |
-
border-right: 2px solid #FFF;
|
672 |
-
}
|
673 |
-
|
674 |
-
td {
|
675 |
-
padding: 17px 10px;
|
676 |
vertical-align: top;
|
677 |
-
border-bottom: 1px solid #ECEDED;
|
678 |
-
text-align: left;
|
679 |
-
background: none;
|
680 |
-
box-shadow: none;
|
681 |
-
}
|
682 |
-
|
683 |
-
th:nth-child(1),
|
684 |
-
td:nth-child(1),
|
685 |
-
th:nth-child(2),
|
686 |
-
td:nth-child(2) {
|
687 |
-
text-align: center;
|
688 |
-
}
|
689 |
-
}
|
690 |
-
|
691 |
-
.wbcr-gnz-table__alternate th {
|
692 |
-
background: #eceded;
|
693 |
-
font-weight: 600;
|
694 |
-
}
|
695 |
-
|
696 |
-
.wbcr-gnz-table__column_switch {
|
697 |
-
vertical-align: top;
|
698 |
-
width: 10%;
|
699 |
-
|
700 |
-
}
|
701 |
-
|
702 |
-
th.wbcr-gnz-table__column_switch {
|
703 |
-
padding: 0 !important;
|
704 |
-
}
|
705 |
-
|
706 |
-
th.wbcr-gnz-table__column_switch em {
|
707 |
-
display: block;
|
708 |
-
padding: 10px 12px;
|
709 |
-
font-style: normal;
|
710 |
-
font-size: 11px;
|
711 |
-
font-weight: lighter;
|
712 |
-
}
|
713 |
-
|
714 |
-
th.wbcr-gnz-table__column_switch b {
|
715 |
-
display: block;
|
716 |
-
padding: 10px 12px;
|
717 |
-
font-weight: 600;
|
718 |
-
}
|
719 |
-
|
720 |
-
.wbcr-gnz-table__column_condition {
|
721 |
-
width: 30%;
|
722 |
-
}
|
723 |
-
|
724 |
-
.wbcr-gnz-table__loaded {
|
725 |
-
width: 100px;
|
726 |
-
text-align: center;
|
727 |
-
}
|
728 |
-
|
729 |
-
.wbcr-gnz-table__th-external-plugin {
|
730 |
-
display: block;
|
731 |
-
position: relative;
|
732 |
-
font-size: 13px;
|
733 |
-
background: #e0e0e0;
|
734 |
-
color: #444444;
|
735 |
-
padding: 5px 10px;
|
736 |
-
margin-top: 0;
|
737 |
-
|
738 |
-
.wbcr-gnz-help-hint {
|
739 |
-
display: block;
|
740 |
-
position: absolute;
|
741 |
-
top: 4px;
|
742 |
-
right: 4px;
|
743 |
-
line-height: 1.2;
|
744 |
-
}
|
745 |
-
}
|
746 |
-
|
747 |
-
.wbcr-gnz-table__loaded-state {
|
748 |
-
position: relative;
|
749 |
-
display: inline-block;
|
750 |
-
width: 30px;
|
751 |
-
height: 30px;
|
752 |
-
vertical-align: middle;
|
753 |
-
border-radius: 20px;
|
754 |
-
}
|
755 |
-
|
756 |
-
.wbcr-gnz-table__loaded-state::after {
|
757 |
-
content: "";
|
758 |
-
position: absolute;
|
759 |
-
top: 9px;
|
760 |
-
left: 8px;
|
761 |
-
width: 15px;
|
762 |
-
height: 7px;
|
763 |
-
-webkit-transform: rotate(-45deg);
|
764 |
-
transform: rotate(-45deg);
|
765 |
-
border: solid #FFF;
|
766 |
-
border-width: 0 0 2px 2px;
|
767 |
-
}
|
768 |
-
|
769 |
-
.wbcr-gnz-table__loaded-super-no {
|
770 |
-
background: #C8CFD7 !important;
|
771 |
-
}
|
772 |
-
|
773 |
-
.wbcr-gnz-table__loaded-no {
|
774 |
-
background: #C8CFD7;
|
775 |
-
}
|
776 |
-
|
777 |
-
.wbcr-gnz-table__loaded-yes {
|
778 |
-
background: #8BC34A;
|
779 |
-
}
|
780 |
-
|
781 |
-
.wbcr-gnz-table__size {
|
782 |
-
width: 75px;
|
783 |
-
}
|
784 |
-
|
785 |
-
.wbcr-gnz-table__size-value {
|
786 |
-
color: #737373;
|
787 |
-
font-size: 15px;
|
788 |
-
line-height: 20px;
|
789 |
-
}
|
790 |
-
|
791 |
-
.wbcr-gnz-table__item {
|
792 |
-
color: #737373;
|
793 |
-
}
|
794 |
-
|
795 |
-
td.wbcr-gnz-table__item:nth-child(2) {
|
796 |
-
text-align: left;
|
797 |
-
}
|
798 |
-
|
799 |
-
.wbcr-gnz-table__item-name {
|
800 |
-
margin: 0 0 3px;
|
801 |
-
text-transform: uppercase;
|
802 |
-
font-size: 16px;
|
803 |
-
font-weight: bold;
|
804 |
-
}
|
805 |
-
|
806 |
-
.wbcr-gnz-table__item-author {
|
807 |
-
margin: 0 0 4px;
|
808 |
-
}
|
809 |
-
|
810 |
-
.wbcr-gnz-table__script-name {
|
811 |
-
color: #737373;
|
812 |
-
font-size: 16px;
|
813 |
-
font-weight: bold;
|
814 |
-
|
815 |
-
b {
|
816 |
-
display: inline-block;
|
817 |
-
padding: 5px 10px;
|
818 |
-
font-size: 13px;
|
819 |
-
text-transform: uppercase;
|
820 |
-
text-align: center;
|
821 |
-
border-radius: 3px;
|
822 |
-
vertical-align: middle;
|
823 |
-
margin-right: 15px;
|
824 |
-
|
825 |
-
&.wbcr-wgz-resource-type-js {
|
826 |
-
background: #ffcb1e;
|
827 |
-
color: #403102;
|
828 |
-
}
|
829 |
-
|
830 |
-
&.wbcr-wgz-resource-type-css {
|
831 |
-
background: #9757a5;
|
832 |
-
color: #ffffff;
|
833 |
-
}
|
834 |
-
}
|
835 |
-
}
|
836 |
-
|
837 |
-
.wbcr-gnz-table__script-name:not(:last-child) {
|
838 |
-
margin-bottom: 5px;
|
839 |
-
}
|
840 |
-
|
841 |
-
.wbcr-gnz-table__script-path {
|
842 |
-
color: #BBBBBA;
|
843 |
-
|
844 |
-
&, a {
|
845 |
-
font-size: 12px;
|
846 |
-
}
|
847 |
-
}
|
848 |
-
|
849 |
-
.wbcr-gnz-table__script-version {
|
850 |
-
color: #BBBBBA;
|
851 |
-
font-size: 12px;
|
852 |
-
padding: 5px 0;
|
853 |
-
}
|
854 |
-
|
855 |
-
.wbcr-gnz-table__state {
|
856 |
-
width: 200px;
|
857 |
-
}
|
858 |
-
|
859 |
-
.wbcr-gnz-table__turn-on {
|
860 |
-
width: 500px;
|
861 |
-
}
|
862 |
-
|
863 |
-
.wbcr-gnz-table__note {
|
864 |
-
color: #BBB;
|
865 |
-
font-style: italic;
|
866 |
-
line-height: 21px;
|
867 |
-
}
|
868 |
-
|
869 |
-
.wbcr-gnz-table__note p {
|
870 |
-
margin: 0;
|
871 |
-
}
|
872 |
-
|
873 |
-
.wbcr-gnz-table__note p:not(:last-child) {
|
874 |
-
margin-bottom: 12px;
|
875 |
-
}
|
876 |
-
|
877 |
-
.wbcr-gnz-table__select-wrapper {
|
878 |
-
&::before, &::after {
|
879 |
-
display: none !important;
|
880 |
}
|
881 |
-
}
|
882 |
-
|
883 |
-
.wbcr-gnz-table__select {
|
884 |
-
padding: 8px 28px 8px 10px;
|
885 |
-
color: #4B4E51;
|
886 |
-
border: none;
|
887 |
-
border-radius: 3px;
|
888 |
-
background: #F2F3F3 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFCAYAAACXU8ZrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFNJREFUeNpinDZtWgQDA0MjEKsxYAeLmDIzM1cAGbNwKQDKxzNBOXOBOBeI76ArADEY////DxedPn16EpCaBMRrYQpAgAXN+I1ALA1U0IwsCBBgADmdFtA7IxcEAAAAAElFTkSuQmCC") no-repeat right 10px top 50%;
|
889 |
-
font-size: 13px;
|
890 |
-
|
891 |
-
-webkit-appearance: none;
|
892 |
-
-moz-appearance: none;
|
893 |
-
appearance: none;
|
894 |
-
}
|
895 |
-
|
896 |
-
.wbcr-gnz-table__select:not(:last-child) {
|
897 |
-
margin-bottom: 16px;
|
898 |
-
}
|
899 |
-
|
900 |
-
.wbcr-gnz-table__select:focus {
|
901 |
-
outline: none;
|
902 |
-
background-color: #E5E7E7;
|
903 |
-
box-shadow: 0 0 0 2px rgba(255, 203, 30, .5);
|
904 |
-
}
|
905 |
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
.wbcr-gnz-table__select-pro {
|
911 |
-
color: rgba(242, 39, 20, 0.34);
|
912 |
-
}
|
913 |
-
|
914 |
-
.wbcr-gnz-table__label {
|
915 |
-
display: block;
|
916 |
-
margin: 15px 0 15px 10px;
|
917 |
-
padding-bottom: 5px;
|
918 |
-
color: #414B56;
|
919 |
-
font-size: 13px;
|
920 |
-
font-weight: bold;
|
921 |
-
border-bottom: 2px solid #efefef;
|
922 |
-
|
923 |
-
.wbcr-gnz-help-hint {
|
924 |
-
vertical-align: bottom;
|
925 |
-
}
|
926 |
-
}
|
927 |
-
|
928 |
-
.wbcr-gnz-table__options {
|
929 |
-
display: -webkit-flex;
|
930 |
-
display: -ms-flexbox;
|
931 |
-
display: flex;
|
932 |
-
-webkit-flex-wrap: wrap;
|
933 |
-
-ms-flex-wrap: wrap;
|
934 |
-
flex-wrap: wrap;
|
935 |
-
max-width: 380px;
|
936 |
-
margin: 0 0 -15px 10px;
|
937 |
-
padding: 0;
|
938 |
-
list-style: none;
|
939 |
-
color: #646D78;
|
940 |
-
font-size: 13px;
|
941 |
-
}
|
942 |
-
|
943 |
-
.wbcr-gnz-table__options-item {
|
944 |
-
width: 33.33%;
|
945 |
-
padding: 0 20px 15px 0;
|
946 |
-
}
|
947 |
-
|
948 |
-
.wbcr-gnz-table__checkbox {
|
949 |
-
cursor: pointer;
|
950 |
-
}
|
951 |
-
|
952 |
-
.wbcr-gnz-table__checkbox-text {
|
953 |
-
position: relative;
|
954 |
-
padding: 0 0 0 20px;
|
955 |
-
color: #6f7275;
|
956 |
-
}
|
957 |
-
|
958 |
-
.wbcr-gnz-table__checkbox-text::before {
|
959 |
-
content: "";
|
960 |
-
position: absolute;
|
961 |
-
top: 1px;
|
962 |
-
left: 0;
|
963 |
-
width: 13px;
|
964 |
-
height: 13px;
|
965 |
-
border-radius: 2px;
|
966 |
-
background: #c8cfd7;
|
967 |
-
}
|
968 |
-
|
969 |
-
.wbcr-gnz-table__checkbox-input:checked ~ .wbcr-gnz-table__checkbox-text {
|
970 |
-
color: #646D78;
|
971 |
-
}
|
972 |
-
|
973 |
-
.wbcr-gnz-table__checkbox-input:checked ~ .wbcr-gnz-table__checkbox-text::before {
|
974 |
-
background: #FFCB1E;
|
975 |
-
}
|
976 |
-
|
977 |
-
.wbcr-gnz-table__checkbox-input:checked ~ .wbcr-gnz-table__checkbox-text::after {
|
978 |
-
content: "";
|
979 |
-
position: absolute;
|
980 |
-
top: 5px;
|
981 |
-
left: 4px;
|
982 |
-
width: 6px;
|
983 |
-
height: 4px;
|
984 |
-
-webkit-transform: rotate(-45deg);
|
985 |
-
transform: rotate(-45deg);
|
986 |
-
border: solid #FFF;
|
987 |
-
border-width: 0 0 2px 2px;
|
988 |
-
}
|
989 |
-
|
990 |
-
.wbcr-gnz-table__field {
|
991 |
-
font-size: 13px;
|
992 |
-
}
|
993 |
-
|
994 |
-
.wbcr-gnz-table__field-item {
|
995 |
-
display: -webkit-flex;
|
996 |
-
display: -ms-flexbox;
|
997 |
-
display: flex;
|
998 |
-
margin: 0 0 10px;
|
999 |
-
}
|
1000 |
-
|
1001 |
-
.wbcr-gnz-table__field-input,
|
1002 |
-
.wbcr-gnz-table__textarea {
|
1003 |
-
width: 70%;
|
1004 |
-
padding: 8px 10px;
|
1005 |
-
margin-left: 10px;
|
1006 |
-
color: #4B4E51;
|
1007 |
-
border: none;
|
1008 |
-
border-radius: 3px;
|
1009 |
-
background: #ececec;
|
1010 |
-
font-size: 100%;
|
1011 |
-
}
|
1012 |
-
|
1013 |
-
.wbcr-gnz-table__field-input:focus,
|
1014 |
-
.wbcr-gnz-table__textarea:focus {
|
1015 |
-
outline: none;
|
1016 |
-
/*box-shadow: 0 0 0 2px rgba(255, 203, 30, .5);*/
|
1017 |
-
}
|
1018 |
-
|
1019 |
-
.wbcr-gnz-table__field-add {
|
1020 |
-
width: 30px;
|
1021 |
-
margin: 0 0 0 5px;
|
1022 |
-
cursor: pointer;
|
1023 |
-
border: none;
|
1024 |
-
border-radius: 3px;
|
1025 |
-
background: #FFCB1E;
|
1026 |
-
}
|
1027 |
-
|
1028 |
-
.wbcr-gnz-table__field-add::before {
|
1029 |
-
content: "+";
|
1030 |
-
color: #4E3E09;
|
1031 |
-
}
|
1032 |
-
|
1033 |
-
.wbcr-gnz-table__field-add:hover {
|
1034 |
-
background: #FBC100;
|
1035 |
-
}
|
1036 |
-
|
1037 |
-
.wbcr-gnz-table__field-add:focus {
|
1038 |
-
outline: none;
|
1039 |
-
box-shadow: 0 0 0 2px rgba(255, 203, 30, .5);
|
1040 |
-
}
|
1041 |
-
|
1042 |
-
.wbcr-gnz-table__textarea {
|
1043 |
-
width: 95%;
|
1044 |
-
padding-right: 10px;
|
1045 |
-
margin: 0 0 10px 10px;
|
1046 |
-
}
|
1047 |
-
|
1048 |
-
.wbcr-gnz-table__also {
|
1049 |
-
font-size: 12px;
|
1050 |
-
font-weight: bold;
|
1051 |
-
margin-top: 15px;
|
1052 |
-
}
|
1053 |
-
|
1054 |
-
.wbcr-gnz-table__also .wbcr-gnz-table__label {
|
1055 |
-
font-size: 12px;
|
1056 |
-
padding: 5px 5px 5px 0;
|
1057 |
-
margin: 0;
|
1058 |
-
}
|
1059 |
-
|
1060 |
-
.wbcr-gnz-table__also-url {
|
1061 |
-
color: #A9AAAA;
|
1062 |
-
|
1063 |
-
span {
|
1064 |
-
display: block;
|
1065 |
-
|
1066 |
-
a {
|
1067 |
-
text-decoration: underline;
|
1068 |
-
color: #adaeae;
|
1069 |
-
font-size: 12px;
|
1070 |
-
}
|
1071 |
-
}
|
1072 |
-
}
|
1073 |
-
|
1074 |
-
.wbcr-gnz-switch {
|
1075 |
-
position: relative;
|
1076 |
-
z-index: 1;
|
1077 |
-
display: inline-block;
|
1078 |
-
overflow: hidden;
|
1079 |
-
width: 70px;
|
1080 |
-
height: 30px;
|
1081 |
-
cursor: pointer;
|
1082 |
-
vertical-align: middle;
|
1083 |
-
border-radius: 15px;
|
1084 |
-
padding: 0;
|
1085 |
-
|
1086 |
-
.wbcr-gnz-switch__inner {
|
1087 |
-
display: -webkit-flex;
|
1088 |
-
display: -ms-flexbox;
|
1089 |
-
display: flex;
|
1090 |
-
height: 30px;
|
1091 |
-
transition: .3s;
|
1092 |
-
-webkit-transform: translateX(-100%);
|
1093 |
-
transform: translateX(-100%);
|
1094 |
-
color: #FFF;
|
1095 |
-
font-size: 13px;
|
1096 |
-
line-height: 31px;
|
1097 |
-
}
|
1098 |
-
|
1099 |
-
.wbcr-gnz-switch__inner::before,
|
1100 |
-
.wbcr-gnz-switch__inner::after {
|
1101 |
-
-webkit-flex-shrink: 0;
|
1102 |
-
-ms-flex-negative: 0;
|
1103 |
-
flex-shrink: 0;
|
1104 |
-
width: 100%;
|
1105 |
-
}
|
1106 |
-
|
1107 |
-
.wbcr-gnz-switch__inner::before {
|
1108 |
-
content: attr(data-off);
|
1109 |
-
padding: 0 0 0 12px;
|
1110 |
-
background: #C8CFD7;
|
1111 |
-
}
|
1112 |
-
|
1113 |
-
.wbcr-gnz-switch__inner::after {
|
1114 |
-
content: attr(data-on);
|
1115 |
-
padding: 0 12px 0 0;
|
1116 |
-
text-align: right;
|
1117 |
-
background: #414B56;
|
1118 |
-
}
|
1119 |
-
|
1120 |
-
.wbcr-gnz-switch__slider {
|
1121 |
-
position: absolute;
|
1122 |
-
top: 5px;
|
1123 |
-
left: 5px;
|
1124 |
-
width: 20px;
|
1125 |
-
height: 20px;
|
1126 |
-
transition: .3s;
|
1127 |
-
border-radius: 50%;
|
1128 |
-
background: #FFCB1E;
|
1129 |
-
margin: 0;
|
1130 |
-
}
|
1131 |
-
|
1132 |
-
&:not(.wbcr-gnz-switch-premium) {
|
1133 |
-
.wbcr-gnz-switch__input:checked ~ .wbcr-gnz-switch__inner,
|
1134 |
-
.wbcr-gnz-switch__input:checked:focus ~ .wbcr-gnz-switch__inner {
|
1135 |
-
-webkit-transform: translateX(0);
|
1136 |
-
transform: translateX(0);
|
1137 |
-
}
|
1138 |
-
|
1139 |
-
.wbcr-gnz-switch__input:checked ~ .wbcr-gnz-switch__slider,
|
1140 |
-
.wbcr-gnz-switch__input:checked:focus ~ .wbcr-gnz-switch__slider {
|
1141 |
-
left: 45px;
|
1142 |
-
background: #97A4B2;
|
1143 |
-
}
|
1144 |
-
}
|
1145 |
-
|
1146 |
-
&.wbcr-gnz-switch-premium {
|
1147 |
-
position: relative;
|
1148 |
-
font-style: normal;
|
1149 |
-
|
1150 |
-
.wbcr-gnz-switch__slider {
|
1151 |
-
background: #ababab;
|
1152 |
-
}
|
1153 |
-
|
1154 |
-
.wbcr-gnz-switch__inner::after {
|
1155 |
-
background: #d3d4d4;
|
1156 |
-
font-style: normal;
|
1157 |
-
}
|
1158 |
-
|
1159 |
-
&:after {
|
1160 |
-
content: 'PRO';
|
1161 |
-
display: block;
|
1162 |
-
position: absolute;
|
1163 |
-
top: 5px;
|
1164 |
-
left: 5px;
|
1165 |
-
font-size: 7px;
|
1166 |
-
font-weight: 700;
|
1167 |
-
line-height: 2.77;
|
1168 |
-
color: #fff;
|
1169 |
-
background: #9a9a9a;
|
1170 |
-
width: 20px;
|
1171 |
-
height: 20px;
|
1172 |
-
/* padding: 3px 0; */
|
1173 |
-
text-align: center;
|
1174 |
-
vertical-align: top;
|
1175 |
-
border-radius: 20px;
|
1176 |
-
}
|
1177 |
}
|
1178 |
}
|
1179 |
-
|
1180 |
-
.wbcr-gnz-tooltip {
|
1181 |
-
position: relative;
|
1182 |
-
}
|
1183 |
-
|
1184 |
-
.wbcr-gnz-tooltip::before {
|
1185 |
-
content: "";
|
1186 |
-
position: absolute;
|
1187 |
-
z-index: 60;
|
1188 |
-
left: 5px;
|
1189 |
-
display: none;
|
1190 |
-
width: 20px;
|
1191 |
-
height: 20px;
|
1192 |
-
}
|
1193 |
-
|
1194 |
-
.wbcr-gnz-tooltip::after {
|
1195 |
-
content: attr(data-tooltip);
|
1196 |
-
position: absolute;
|
1197 |
-
z-index: 60;
|
1198 |
-
left: 5px;
|
1199 |
-
display: none;
|
1200 |
-
min-width: 200px;
|
1201 |
-
padding: 8px 15px;
|
1202 |
-
color: #6d5506;
|
1203 |
-
background: #FFCB1E;
|
1204 |
-
font-size: 13px;
|
1205 |
-
font-weight: normal;
|
1206 |
-
line-height: 1.2;
|
1207 |
-
}
|
1208 |
-
|
1209 |
-
.wbcr-gnz-tooltip-top::before {
|
1210 |
-
bottom: 100%;
|
1211 |
-
background: linear-gradient(135deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
|
1212 |
-
}
|
1213 |
-
|
1214 |
-
.wbcr-gnz-tooltip-top::after {
|
1215 |
-
bottom: 100%;
|
1216 |
-
margin: 0 0 10px;
|
1217 |
-
border-radius: 6px 6px 6px 0;
|
1218 |
-
}
|
1219 |
-
|
1220 |
-
.wbcr-gnz-tooltip-bottom::before {
|
1221 |
-
top: 100%;
|
1222 |
-
background: linear-gradient(45deg, #FFCB1E, #FFCB1E 50%, transparent 50%, transparent) no-repeat;
|
1223 |
-
}
|
1224 |
-
|
1225 |
-
.wbcr-gnz-tooltip-bottom::after {
|
1226 |
-
top: 100%;
|
1227 |
-
margin: 15px 0 0;
|
1228 |
-
border-radius: 0 6px 6px 6px;
|
1229 |
-
}
|
1230 |
-
|
1231 |
-
.wbcr-gnz-tooltip:hover::before,
|
1232 |
-
.wbcr-gnz-tooltip:hover::after {
|
1233 |
-
display: block;
|
1234 |
-
}
|
1235 |
-
|
1236 |
-
.wbcr-use-by-comment {
|
1237 |
-
color: #fb7976;
|
1238 |
-
font-size: 12px;
|
1239 |
-
}
|
1240 |
-
|
1241 |
-
.wbcr-use-by-comment a {
|
1242 |
-
color: #6e6e6e;
|
1243 |
-
}
|
1244 |
-
|
1245 |
-
.wgz-td, .wgz-th {
|
1246 |
-
max-width: 600px;
|
1247 |
-
}
|
1248 |
-
|
1249 |
-
.wgz-td {
|
1250 |
-
word-wrap: break-word;
|
1251 |
-
}
|
1252 |
}
|
1253 |
|
1254 |
@media screen and (max-width: 1367px) {
|
@@ -1257,33 +402,33 @@ body {
|
|
1257 |
font-size: 13px;
|
1258 |
}
|
1259 |
|
1260 |
-
.
|
1261 |
padding: 32px 0 0 75px;
|
1262 |
}
|
1263 |
|
1264 |
-
.
|
1265 |
-
.
|
1266 |
display: block;
|
1267 |
}
|
1268 |
}
|
1269 |
|
1270 |
-
.
|
1271 |
-
.
|
1272 |
font-size: 13px;
|
1273 |
}
|
1274 |
|
1275 |
-
.
|
1276 |
font-size: 12px;
|
1277 |
}
|
1278 |
|
1279 |
-
.
|
1280 |
font-size: 12px;
|
1281 |
display: block;
|
1282 |
line-height: 1.5;
|
1283 |
|
1284 |
}
|
1285 |
|
1286 |
-
.
|
1287 |
width: 30px;
|
1288 |
height: 30px;
|
1289 |
margin: 0 10px 0 15px;
|
@@ -1291,14 +436,14 @@ body {
|
|
1291 |
}
|
1292 |
}
|
1293 |
|
1294 |
-
.
|
1295 |
padding: 0;
|
1296 |
|
1297 |
&, p {
|
1298 |
font-size: 13px;
|
1299 |
}
|
1300 |
|
1301 |
-
.
|
1302 |
padding: 20px 20px 30px;
|
1303 |
}
|
1304 |
}
|
@@ -1307,26 +452,26 @@ body {
|
|
1307 |
font-size: 12px;
|
1308 |
}
|
1309 |
|
1310 |
-
.
|
1311 |
margin: 0;
|
1312 |
|
1313 |
th {
|
1314 |
font-size: 13px;
|
1315 |
}
|
1316 |
|
1317 |
-
.
|
1318 |
-
.
|
1319 |
font-size: 14px;
|
1320 |
}
|
1321 |
|
1322 |
-
.
|
1323 |
&, a {
|
1324 |
font-size: 12px;
|
1325 |
}
|
1326 |
}
|
1327 |
}
|
1328 |
|
1329 |
-
.
|
1330 |
font-size: 14px;
|
1331 |
|
1332 |
b {
|
@@ -1337,16 +482,16 @@ body {
|
|
1337 |
}
|
1338 |
}
|
1339 |
|
1340 |
-
.
|
1341 |
a {
|
1342 |
font-size: 11px;
|
1343 |
}
|
1344 |
}
|
1345 |
|
1346 |
-
.
|
1347 |
width: 10%;
|
1348 |
|
1349 |
-
.
|
1350 |
font-size: 10px;
|
1351 |
}
|
1352 |
|
@@ -1355,7 +500,7 @@ body {
|
|
1355 |
}
|
1356 |
}
|
1357 |
|
1358 |
-
.
|
1359 |
width: 35%;
|
1360 |
}
|
1361 |
}
|
@@ -1364,11 +509,11 @@ body {
|
|
1364 |
|
1365 |
@media screen and (max-width: 1600px) {
|
1366 |
#WBCR {
|
1367 |
-
.
|
1368 |
display: none;
|
1369 |
}
|
1370 |
|
1371 |
-
.
|
1372 |
display: block;
|
1373 |
}
|
1374 |
}
|
1 |
/**
|
2 |
* Assets manager styles
|
3 |
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
4 |
+
* @copyright Webcraftic 05.09.2019
|
5 |
*/
|
6 |
|
7 |
html, body {
|
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 {
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
+
* Placeholderss
|
38 |
*/
|
39 |
|
40 |
input[type="text"]::-moz-placeholder {
|
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;
|
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 |
+
// BUTTONS
|
163 |
+
// --------------------------------------------------------------
|
164 |
+
.wam-button {
|
165 |
+
@buttonClass: ~"wam-button";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
|
167 |
+
display: inline-block;
|
168 |
+
vertical-align: bottom;
|
169 |
+
padding: 5px 10px;
|
|
|
|
|
|
|
|
|
170 |
text-decoration: none;
|
171 |
+
box-shadow: none;
|
172 |
+
font-weight: 600;
|
173 |
+
border-radius: 3px;
|
|
|
|
|
|
|
|
|
|
|
174 |
|
175 |
+
&--small {
|
176 |
+
padding: 2px 8px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
font-size: 13px;
|
178 |
}
|
|
|
179 |
|
180 |
+
&.js-@{buttonClass}--hidden {
|
181 |
+
display: none;
|
|
|
|
|
182 |
}
|
|
|
183 |
|
184 |
+
&:hover {
|
185 |
+
cursor: pointer;
|
186 |
+
text-decoration: none;
|
187 |
+
box-shadow: none;
|
188 |
}
|
|
|
189 |
|
190 |
+
&:focus {
|
191 |
+
outline: none;
|
192 |
+
box-shadow: none;
|
|
|
|
|
|
|
|
|
193 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
|
195 |
+
&__icon {
|
196 |
+
height: 28px;
|
197 |
+
width: 28px;
|
198 |
+
padding: 5px;
|
199 |
+
line-height: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
}
|
201 |
|
202 |
+
&.js-@{buttonClass}__icon--cogs {
|
203 |
+
background: url('../img/cogs.png') center no-repeat;
|
|
|
204 |
}
|
205 |
|
206 |
+
&.js-@{buttonClass}__icon--close {
|
207 |
+
background: url('../img/close.png') center no-repeat;
|
|
|
208 |
}
|
209 |
|
210 |
+
&--default {
|
211 |
+
background-color: #eceded;
|
212 |
+
color: #222;
|
213 |
+
border: 1px solid #c3c3c3;
|
214 |
+
|
215 |
+
&:hover {
|
216 |
+
cursor: pointer;
|
217 |
+
background-color: #fff;
|
218 |
+
border: 1px solid #c3c3c3;
|
219 |
+
}
|
220 |
}
|
|
|
221 |
|
222 |
+
&--danger {
|
223 |
+
//background-color: #ff7063;
|
224 |
+
background-color: #fff;
|
225 |
+
color: #ff7063;
|
226 |
+
border: 1px solid #ff7063;
|
227 |
|
228 |
+
&:hover {
|
229 |
+
background-color: #fff;
|
230 |
+
color: #222;
|
231 |
+
border: 1px solid #c3c3c3;
|
232 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
}
|
|
|
234 |
|
235 |
+
&--yellow {
|
236 |
+
//background-color: #ffcb1e;
|
237 |
+
background-color: #fff;
|
238 |
+
color: #a5820e;
|
239 |
+
border: 1px solid #ffcb1e;
|
240 |
+
|
241 |
+
&:hover {
|
242 |
+
background-color: #fff;
|
243 |
+
color: #222;
|
244 |
+
border: 1px solid #c3c3c3;
|
|
|
|
|
|
|
|
|
|
|
245 |
}
|
246 |
}
|
247 |
}
|
248 |
|
249 |
+
// --------------------------------------------------------------
|
|
|
|
|
250 |
|
251 |
+
// CONTROLS
|
252 |
+
// --------------------------------------------------------------
|
253 |
+
.wam-select {
|
254 |
+
@selectClass: ~"wam-select";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
255 |
|
256 |
+
display: inline-block;
|
257 |
+
vertical-align: bottom;
|
258 |
+
height: auto;
|
259 |
+
padding: 4px 10px;
|
260 |
|
261 |
+
&.js-@{selectClass}--enable {
|
262 |
+
background: #efffde;
|
263 |
+
color: #4e6f28;
|
264 |
+
border: 1px solid #8bc34a;
|
265 |
+
}
|
|
|
|
|
|
|
|
|
266 |
|
267 |
+
&.js-@{selectClass}--disable {
|
268 |
+
background: #ffdada;
|
269 |
+
border: 1px solid #efc3c3;
|
270 |
+
color: #774a4a;
|
271 |
}
|
272 |
|
273 |
&:focus {
|
|
|
274 |
outline: none;
|
275 |
+
box-shadow: none;
|
276 |
}
|
277 |
}
|
278 |
|
279 |
+
// --------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
280 |
|
281 |
+
&.wam-wrapper {
|
282 |
+
min-width: 1365px;
|
283 |
position: fixed;
|
284 |
+
z-index: 99999999;
|
285 |
+
top: 32px;
|
286 |
bottom: 0;
|
287 |
left: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
right: 0;
|
289 |
+
background: #FFF;
|
290 |
+
overflow-y: auto;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
291 |
}
|
292 |
|
293 |
+
.wam-content {
|
294 |
display: block;
|
295 |
+
width: 100%;
|
296 |
+
margin: 0;
|
297 |
+
padding: 62px 0 0 75px;
|
298 |
}
|
299 |
|
300 |
+
.wam-info-section {
|
301 |
display: table;
|
302 |
|
303 |
padding: 0 30px 30px;
|
314 |
}
|
315 |
}
|
316 |
|
317 |
+
.wam-info-section__warning, .wam-info-section__go-to-premium {
|
318 |
display: table-cell;
|
319 |
width: 49%;
|
320 |
text-align: left;
|
326 |
|
327 |
}
|
328 |
|
329 |
+
.wam-info-section__go-to-premium {
|
330 |
background: #f9f9f9;
|
331 |
//border: 1px dashed #e0cb14;
|
332 |
border-left: 2px solid #fff;
|
381 |
}
|
382 |
}
|
383 |
|
384 |
+
.wam-plugin-settings {
|
385 |
+
@pluginSettingsClass: ~"wam-plugin-settings";
|
386 |
+
padding-bottom: 10px;
|
387 |
|
388 |
+
&__controls {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
389 |
vertical-align: top;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
390 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
391 |
|
392 |
+
.js-@{pluginSettingsClass}__conditions {
|
393 |
+
display: none;
|
394 |
+
padding: 20px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
395 |
}
|
396 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
397 |
}
|
398 |
|
399 |
@media screen and (max-width: 1367px) {
|
402 |
font-size: 13px;
|
403 |
}
|
404 |
|
405 |
+
.wam-content {
|
406 |
padding: 32px 0 0 75px;
|
407 |
}
|
408 |
|
409 |
+
.wam-float-panel__left {
|
410 |
+
.wam-float-panel__item_value {
|
411 |
display: block;
|
412 |
}
|
413 |
}
|
414 |
|
415 |
+
.wam-float-panel__right {
|
416 |
+
.wam-table__checkbox-text {
|
417 |
font-size: 13px;
|
418 |
}
|
419 |
|
420 |
+
.wam-float-panel__reset, .wam-float-panel__save {
|
421 |
font-size: 12px;
|
422 |
}
|
423 |
|
424 |
+
.wam-float-panel__checkbox-text {
|
425 |
font-size: 12px;
|
426 |
display: block;
|
427 |
line-height: 1.5;
|
428 |
|
429 |
}
|
430 |
|
431 |
+
.wam-float-panel__close {
|
432 |
width: 30px;
|
433 |
height: 30px;
|
434 |
margin: 0 10px 0 15px;
|
436 |
}
|
437 |
}
|
438 |
|
439 |
+
.wam-info-section {
|
440 |
padding: 0;
|
441 |
|
442 |
&, p {
|
443 |
font-size: 13px;
|
444 |
}
|
445 |
|
446 |
+
.wam-info-section__warning {
|
447 |
padding: 20px 20px 30px;
|
448 |
}
|
449 |
}
|
452 |
font-size: 12px;
|
453 |
}
|
454 |
|
455 |
+
.wam-table {
|
456 |
margin: 0;
|
457 |
|
458 |
th {
|
459 |
font-size: 13px;
|
460 |
}
|
461 |
|
462 |
+
.wam-table__item {
|
463 |
+
.wam-table__item-name {
|
464 |
font-size: 14px;
|
465 |
}
|
466 |
|
467 |
+
.wam-table__item-author, .wam-table__item-version, .wbcr-use-by-comment {
|
468 |
&, a {
|
469 |
font-size: 12px;
|
470 |
}
|
471 |
}
|
472 |
}
|
473 |
|
474 |
+
.wam-table__script-name {
|
475 |
font-size: 14px;
|
476 |
|
477 |
b {
|
482 |
}
|
483 |
}
|
484 |
|
485 |
+
.wam-table__script-path {
|
486 |
a {
|
487 |
font-size: 11px;
|
488 |
}
|
489 |
}
|
490 |
|
491 |
+
.wam-table__column_switch {
|
492 |
width: 10%;
|
493 |
|
494 |
+
.wam-table__th-external-plugin, em {
|
495 |
font-size: 10px;
|
496 |
}
|
497 |
|
500 |
}
|
501 |
}
|
502 |
|
503 |
+
.wam-table__column_condition {
|
504 |
width: 35%;
|
505 |
}
|
506 |
}
|
509 |
|
510 |
@media screen and (max-width: 1600px) {
|
511 |
#WBCR {
|
512 |
+
.wam-float-panel__data-main {
|
513 |
display: none;
|
514 |
}
|
515 |
|
516 |
+
.wam-float-panel__data-hidden {
|
517 |
display: block;
|
518 |
}
|
519 |
}
|
components/assets-manager/assets/css/float-panel.css
ADDED
@@ -0,0 +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 */
|
components/assets-manager/assets/css/float-panel.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["float-panel.less"],"names":[],"mappings":"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","file":"float-panel.css"}
|
components/assets-manager/assets/css/float-panel.less
ADDED
@@ -0,0 +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: 30px;
|
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,iVBORw0KGgoAAAANSUhEUgAAACYAAAAgCAMAAABJuvqBAAAC+lBMVEUAAAD7bBgLxt8LyOP/oRqTVqOWV6T/gALpHxCKT5oMy+bwCgX/dhn/oxeXV6XxJxP/igzxIQztFAP/iQAIwNfoIBP/jgkPz+wOzun/igf/fgD/iggOze3hHxDuDAF0P4KWV6UP0OzyKxX/lw3iHxD/hAaXV6XyGgsPzu3/ggaJTpn/iw6JTZiUVqOUVqTlFQsve3T2Qy1lazvqIhOBHyvvlxW7FRCTaR3xGQX/kBIP0eyGTJbjIBKASJAAXn3uFQMPzewJxNo1JFOLUZuHTZb/xCEAkqmXV6X/ggB5QogNyOD/WSaWV6VjNnBHFTsLUVnrEgMQ0en/ggADtsz/mRTvJRT/igfpDwLgHw//ixD/igYQ0un/xiXlIBP/rhnnIRSXV6X/lgT/ig36OBz/ZzbkJBj/fAAMyeD/iQoFtMkPzeyNUZziHxHgHw/mCwIBobT/yy3kBQNIIVp2dz4PzewAc4L/ckKXV6V6JDr/oRb0DAD9egD/jAcOze2XV6XeHw7jAwPnIRSXV6X/vSoPz+j/fgB+DjKXV6X/ziAPzuzlIBP/iw7/yx7yJxT/YCLpIRQP0uwLxt2TV6T/YSD/nBTuJBT/jhCQVKCNUp2DSpL/xRf8PRf4LhTsIhT/kREQ0egOzOQMyuEJwtiKT5qGTZaASI9xPn//XSH/tRr/Uhf/oBb3KRPjHxAHv9UGvNEDsMUCqLwAjp98RItdMWg3Hkr/VyD/xh//wR7/Xx7/XBv/rxn6NBf/rBb/lxP/lBP+RRP9NQ3/igv/iQv+Kwv3Iwf/pQUOzuYGt813QoZqOnYAYHRULmJBJVQwFz3+Tx//1R3/uxz8Rhz/Shv/pxj/phb/vhL/sgr/mAIPzucEuc4BoLMBnK4AmKoAg5MAf5IAd4cAbYEAbHxkNnAAT2kIVGQASF5KJ1kARlcVU1U+ZEYsGEVfdTtIHDltKzJ6fS2OOCyniinWsCL/YyD3YCDkSyCrNCDvyR+8KR/50Bj/uRH/tQ7/qwnxGwX/kQIQ63s7AAAAh3RSTlMAAyIQCsuvaz8wKx4Y/vn58PDp5+Xk5NbAu6+rqJuVgH15d3dpXE1HRTAoIyAYFhQNCv7+/fz7+vn39vX19PLy8O/u6urk397c29ra19TU087JyMfGxMO6squjoJ+fnpyZmZiUk5GRkI+Oi4uJiINybGZhYV1dWldPTk1LQzo6OCopJSMYEw7x8GTCAAACaUlEQVQ4y2LABzgi6hkIgsZYmzUqhBQZKol2da3JJaBKPXRuP1CZLF5FPMn8vVON+/ErYyzznj2ndyrIuBw8rkrZsfzinN5ekDI8XlBaObnv3O7VYOM4MGSZmZiYmIE0t+D+HX1bIbaK6qMq0VCMlvASEQnOByoTOrCzb/klkHH98YwwFVwaJYoy4lYTbiycuPbmho2lDAxyR4C2go0TRNgp0wkCE+YvmLho3fqNp/wNGNQtZu/oA3lidSrCvloHsKpjQMPW33n43LyaQT/gMMQT/BWMCHVZMMOO37r/9N3RNAaGvCP7QbYeNnHyldeCO18CpGrhonUb7j5+/eOaBw9Dgz3YE9+3nF621CVbD6qOSXwCyEqgw15+O3/1ryoDQzjQE5++vDlzctPMxdNZOWGeBSgQZOXtBy8+nu+YdVSKgaHwz/7Jn99u2Xxi5pIZ0yf5NEHVtaQ7rttw78mHWT0dPdeEecBB9/4V0Moli6dPam9n1YWHXqabndGeFds6Oq5eZwcG3eGvZ5+BrJwxqR0IEhAeNig2vbJrew/IVkaGKrOzZx6dWAq0EqyMTw2hLnHKqj0XgLb+EtZkaPPbsnnZUrBhYMAGV1VjuXfKZZCts0C2Fm1etgnsfj53NoXyOh14Uoyctm8KL8jWnt9BLAwM8p621s6sbApqeihpRFtg2ry9YFs7foq1AgV0ODm1dBnRUxtgqt3d8/ZNuQK2VRl3ks3o7p42b8oqkK0xLLiVSR/qBtl6eYVrAR5VDJKHurtBnohrxpszw0DK5oVUEsjlkgcPdospszAQAFEHBZK0GQgCdmlNfNIAQzEmYu+mR3cAAAAASUVORK5CYII=");
|
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.less
CHANGED
@@ -17,7 +17,7 @@ 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;
|
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;
|
components/assets-manager/assets/css/tables.css
ADDED
@@ -0,0 +1,396 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Tabless
|
3 |
+
|
4 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>
|
5 |
+
* @copyright Webcraftic 26.08.2019
|
6 |
+
*/
|
7 |
+
.wam-table {
|
8 |
+
table-layout: fixed;
|
9 |
+
border-collapse: collapse;
|
10 |
+
margin: 0 30px;
|
11 |
+
}
|
12 |
+
.wam-table tbody:nth-child(2n) {
|
13 |
+
background: #f9f9f9;
|
14 |
+
border-bottom: 15px solid white;
|
15 |
+
}
|
16 |
+
.wam-table th {
|
17 |
+
padding: 12px 10px;
|
18 |
+
text-align: left;
|
19 |
+
color: #333;
|
20 |
+
background: #ECEDED;
|
21 |
+
box-shadow: none;
|
22 |
+
}
|
23 |
+
.wam-table th:not(:last-child) {
|
24 |
+
border-right: 2px solid #FFF;
|
25 |
+
}
|
26 |
+
.wam-table td {
|
27 |
+
vertical-align: top;
|
28 |
+
border-bottom: 1px solid #ECEDED;
|
29 |
+
text-align: left;
|
30 |
+
background: none;
|
31 |
+
box-shadow: none;
|
32 |
+
}
|
33 |
+
.wam-table td:first-child {
|
34 |
+
width: 20%;
|
35 |
+
}
|
36 |
+
.wam-table__th-plugins-list {
|
37 |
+
width: 350px;
|
38 |
+
}
|
39 |
+
.wam-table__td-plugin-settings {
|
40 |
+
width: 80%;
|
41 |
+
padding: 15px;
|
42 |
+
text-align: left;
|
43 |
+
}
|
44 |
+
.wam-table__alternate th {
|
45 |
+
background: #eceded;
|
46 |
+
font-weight: 600;
|
47 |
+
}
|
48 |
+
.wam-table__column_switch {
|
49 |
+
vertical-align: top;
|
50 |
+
width: 10%;
|
51 |
+
}
|
52 |
+
th.wam-table__column_switch {
|
53 |
+
padding: 0 !important;
|
54 |
+
}
|
55 |
+
th.wam-table__column_switch em {
|
56 |
+
display: block;
|
57 |
+
padding: 10px 12px;
|
58 |
+
font-style: normal;
|
59 |
+
font-size: 11px;
|
60 |
+
font-weight: lighter;
|
61 |
+
}
|
62 |
+
th.wam-table__column_switch b {
|
63 |
+
display: block;
|
64 |
+
padding: 10px 12px;
|
65 |
+
font-weight: 600;
|
66 |
+
}
|
67 |
+
.wam-table__column_condition {
|
68 |
+
width: 30%;
|
69 |
+
}
|
70 |
+
.wam-table__loaded {
|
71 |
+
width: 100px;
|
72 |
+
text-align: center;
|
73 |
+
}
|
74 |
+
.wam-table__th-external-plugin {
|
75 |
+
display: block;
|
76 |
+
position: relative;
|
77 |
+
font-size: 13px;
|
78 |
+
background: #e0e0e0;
|
79 |
+
color: #444444;
|
80 |
+
padding: 5px 10px;
|
81 |
+
margin-top: 0;
|
82 |
+
}
|
83 |
+
.wam-table__th-external-plugin .wam-help-hint {
|
84 |
+
display: block;
|
85 |
+
position: absolute;
|
86 |
+
top: 4px;
|
87 |
+
right: 4px;
|
88 |
+
line-height: 1.2;
|
89 |
+
}
|
90 |
+
.wam-table__loaded-state {
|
91 |
+
position: relative;
|
92 |
+
display: inline-block;
|
93 |
+
width: 30px;
|
94 |
+
height: 30px;
|
95 |
+
vertical-align: middle;
|
96 |
+
border-radius: 20px;
|
97 |
+
}
|
98 |
+
.wam-table__loaded-state::after {
|
99 |
+
content: "";
|
100 |
+
position: absolute;
|
101 |
+
top: 9px;
|
102 |
+
left: 8px;
|
103 |
+
width: 15px;
|
104 |
+
height: 7px;
|
105 |
+
-webkit-transform: rotate(-45deg);
|
106 |
+
transform: rotate(-45deg);
|
107 |
+
border: solid #FFF;
|
108 |
+
border-width: 0 0 2px 2px;
|
109 |
+
}
|
110 |
+
.wam-table__loaded-super-no {
|
111 |
+
background: #C8CFD7 !important;
|
112 |
+
}
|
113 |
+
.wam-table__loaded-no {
|
114 |
+
background: #C8CFD7;
|
115 |
+
}
|
116 |
+
.wam-table__loaded-yes {
|
117 |
+
background: #8BC34A;
|
118 |
+
}
|
119 |
+
.wam-table__size {
|
120 |
+
width: 75px;
|
121 |
+
}
|
122 |
+
.wam-table__size-value {
|
123 |
+
color: #737373;
|
124 |
+
font-size: 15px;
|
125 |
+
line-height: 20px;
|
126 |
+
}
|
127 |
+
.wam-table__item {
|
128 |
+
color: #737373;
|
129 |
+
}
|
130 |
+
td.wam-table__item:nth-child(2) {
|
131 |
+
text-align: left;
|
132 |
+
}
|
133 |
+
.wam-table__item-name {
|
134 |
+
margin: 0 0 3px;
|
135 |
+
text-transform: uppercase;
|
136 |
+
font-size: 16px;
|
137 |
+
font-weight: bold;
|
138 |
+
}
|
139 |
+
.wam-table__item-author {
|
140 |
+
margin: 0 0 4px;
|
141 |
+
}
|
142 |
+
.wam-table__script-name {
|
143 |
+
color: #737373;
|
144 |
+
font-size: 16px;
|
145 |
+
font-weight: bold;
|
146 |
+
}
|
147 |
+
.wam-table__script-name b {
|
148 |
+
display: inline-block;
|
149 |
+
padding: 5px 10px;
|
150 |
+
font-size: 13px;
|
151 |
+
text-transform: uppercase;
|
152 |
+
text-align: center;
|
153 |
+
border-radius: 3px;
|
154 |
+
vertical-align: middle;
|
155 |
+
margin-right: 15px;
|
156 |
+
}
|
157 |
+
.wam-table__script-name b.wbcr-wgz-resource-type-js {
|
158 |
+
background: #ffcb1e;
|
159 |
+
color: #403102;
|
160 |
+
}
|
161 |
+
.wam-table__script-name b.wbcr-wgz-resource-type-css {
|
162 |
+
background: #9757a5;
|
163 |
+
color: #ffffff;
|
164 |
+
}
|
165 |
+
.wam-table__script-name:not(:last-child) {
|
166 |
+
margin-bottom: 5px;
|
167 |
+
}
|
168 |
+
.wam-table__script-path {
|
169 |
+
color: #BBBBBA;
|
170 |
+
}
|
171 |
+
.wam-table__script-path,
|
172 |
+
.wam-table__script-path a {
|
173 |
+
font-size: 12px;
|
174 |
+
}
|
175 |
+
.wam-table__script-version {
|
176 |
+
color: #BBBBBA;
|
177 |
+
font-size: 12px;
|
178 |
+
padding: 5px 0;
|
179 |
+
}
|
180 |
+
.wam-table__state {
|
181 |
+
width: 200px;
|
182 |
+
}
|
183 |
+
.wam-table__turn-on {
|
184 |
+
width: 500px;
|
185 |
+
}
|
186 |
+
.wam-table__note {
|
187 |
+
color: #BBB;
|
188 |
+
font-style: italic;
|
189 |
+
line-height: 21px;
|
190 |
+
}
|
191 |
+
.wam-table__note p {
|
192 |
+
margin: 0;
|
193 |
+
}
|
194 |
+
.wam-table__note p:not(:last-child) {
|
195 |
+
margin-bottom: 12px;
|
196 |
+
}
|
197 |
+
.wam-table__select-wrapper::before,
|
198 |
+
.wam-table__select-wrapper::after {
|
199 |
+
display: none !important;
|
200 |
+
}
|
201 |
+
.wam-table__select {
|
202 |
+
padding: 8px 28px 8px 10px;
|
203 |
+
color: #4B4E51;
|
204 |
+
border: none;
|
205 |
+
border-radius: 3px;
|
206 |
+
background: #F2F3F3 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFCAYAAACXU8ZrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFNJREFUeNpinDZtWgQDA0MjEKsxYAeLmDIzM1cAGbNwKQDKxzNBOXOBOBeI76ArADEY////DxedPn16EpCaBMRrYQpAgAXN+I1ALA1U0IwsCBBgADmdFtA7IxcEAAAAAElFTkSuQmCC") no-repeat right 10px top 50%;
|
207 |
+
font-size: 13px;
|
208 |
+
-webkit-appearance: none;
|
209 |
+
-moz-appearance: none;
|
210 |
+
appearance: none;
|
211 |
+
}
|
212 |
+
.wam-table__select:not(:last-child) {
|
213 |
+
margin-bottom: 16px;
|
214 |
+
}
|
215 |
+
.wam-table__select:focus {
|
216 |
+
outline: none;
|
217 |
+
background-color: #E5E7E7;
|
218 |
+
box-shadow: 0 0 0 2px rgba(255, 203, 30, 0.5);
|
219 |
+
}
|
220 |
+
.wam-table__select::-ms-expand {
|
221 |
+
display: none;
|
222 |
+
}
|
223 |
+
.wam-table__select-pro {
|
224 |
+
color: rgba(242, 39, 20, 0.34);
|
225 |
+
}
|
226 |
+
.wam-table__label {
|
227 |
+
display: block;
|
228 |
+
margin: 15px 0 15px 10px;
|
229 |
+
padding-bottom: 5px;
|
230 |
+
color: #414B56;
|
231 |
+
font-size: 13px;
|
232 |
+
font-weight: bold;
|
233 |
+
border-bottom: 2px solid #efefef;
|
234 |
+
}
|
235 |
+
.wam-table__label .wam-help-hint {
|
236 |
+
vertical-align: bottom;
|
237 |
+
}
|
238 |
+
.wam-table__wrap-options {
|
239 |
+
height: 150px;
|
240 |
+
overflow-y: scroll;
|
241 |
+
border: 1px solid #eceded;
|
242 |
+
background: #f5f5f5;
|
243 |
+
padding: 10px;
|
244 |
+
margin-left: 10px;
|
245 |
+
}
|
246 |
+
.wam-table__options {
|
247 |
+
display: block;
|
248 |
+
max-width: 380px;
|
249 |
+
margin: 0 0 -15px 10px;
|
250 |
+
padding: 0;
|
251 |
+
list-style: none;
|
252 |
+
color: #646D78;
|
253 |
+
font-size: 13px;
|
254 |
+
}
|
255 |
+
.wam-table__options-item-group {
|
256 |
+
margin: 10px 0 5px;
|
257 |
+
}
|
258 |
+
.wam-table__options-item {
|
259 |
+
display: block;
|
260 |
+
padding: 0 20px 5px 0;
|
261 |
+
}
|
262 |
+
.wam-table__checkbox {
|
263 |
+
cursor: pointer;
|
264 |
+
}
|
265 |
+
.wam-table__checkbox-text {
|
266 |
+
position: relative;
|
267 |
+
padding: 0 0 0 20px;
|
268 |
+
color: #6f7275;
|
269 |
+
font-size: 13px;
|
270 |
+
}
|
271 |
+
.wam-table__checkbox-text::before {
|
272 |
+
content: "";
|
273 |
+
position: absolute;
|
274 |
+
top: 1px;
|
275 |
+
left: 0;
|
276 |
+
width: 13px;
|
277 |
+
height: 13px;
|
278 |
+
border-radius: 2px;
|
279 |
+
background: #c8cfd7;
|
280 |
+
}
|
281 |
+
.wam-table__checkbox-input:checked ~ .wam-table__checkbox-text {
|
282 |
+
color: #646D78;
|
283 |
+
}
|
284 |
+
.wam-table__checkbox-input:checked ~ .wam-table__checkbox-text::before {
|
285 |
+
background: #FFCB1E;
|
286 |
+
}
|
287 |
+
.wam-table__checkbox-input:checked ~ .wam-table__checkbox-text::after {
|
288 |
+
content: "";
|
289 |
+
position: absolute;
|
290 |
+
top: 5px;
|
291 |
+
left: 4px;
|
292 |
+
width: 6px;
|
293 |
+
height: 4px;
|
294 |
+
-webkit-transform: rotate(-45deg);
|
295 |
+
transform: rotate(-45deg);
|
296 |
+
border: solid #FFF;
|
297 |
+
border-width: 0 0 2px 2px;
|
298 |
+
}
|
299 |
+
.wam-table__field {
|
300 |
+
font-size: 13px;
|
301 |
+
}
|
302 |
+
.wam-table__field-item {
|
303 |
+
display: -webkit-flex;
|
304 |
+
display: -ms-flexbox;
|
305 |
+
display: flex;
|
306 |
+
margin: 0 0 10px;
|
307 |
+
}
|
308 |
+
.wam-table__field-input,
|
309 |
+
.wam-table__textarea {
|
310 |
+
width: 70%;
|
311 |
+
padding: 8px 10px;
|
312 |
+
margin-left: 10px;
|
313 |
+
color: #4B4E51;
|
314 |
+
border: none;
|
315 |
+
border-radius: 3px;
|
316 |
+
background: #ececec;
|
317 |
+
font-size: 100%;
|
318 |
+
}
|
319 |
+
.wam-table__field-input:focus,
|
320 |
+
.wam-table__textarea:focus {
|
321 |
+
outline: none;
|
322 |
+
/*box-shadow: 0 0 0 2px rgba(255, 203, 30, .5);*/
|
323 |
+
}
|
324 |
+
.wam-table__field-add {
|
325 |
+
width: 30px;
|
326 |
+
margin: 0 0 0 5px;
|
327 |
+
cursor: pointer;
|
328 |
+
border: none;
|
329 |
+
border-radius: 3px;
|
330 |
+
background: #FFCB1E;
|
331 |
+
}
|
332 |
+
.wam-table__field-add::before {
|
333 |
+
content: "+";
|
334 |
+
color: #4E3E09;
|
335 |
+
}
|
336 |
+
.wam-table__field-add:hover {
|
337 |
+
background: #FBC100;
|
338 |
+
}
|
339 |
+
.wam-table__field-add:focus {
|
340 |
+
outline: none;
|
341 |
+
box-shadow: 0 0 0 2px rgba(255, 203, 30, 0.5);
|
342 |
+
}
|
343 |
+
.wam-table__textarea {
|
344 |
+
width: 95%;
|
345 |
+
padding-right: 10px;
|
346 |
+
margin: 0 0 10px 10px;
|
347 |
+
}
|
348 |
+
.wam-table__also {
|
349 |
+
font-size: 12px;
|
350 |
+
font-weight: bold;
|
351 |
+
margin-top: 15px;
|
352 |
+
}
|
353 |
+
.wam-table__also .wam-table__label {
|
354 |
+
font-size: 12px;
|
355 |
+
padding: 5px 5px 5px 0;
|
356 |
+
margin: 0;
|
357 |
+
}
|
358 |
+
.wam-table__also-url {
|
359 |
+
color: #A9AAAA;
|
360 |
+
}
|
361 |
+
.wam-table__also-url span {
|
362 |
+
display: block;
|
363 |
+
}
|
364 |
+
.wam-table__also-url span a {
|
365 |
+
text-decoration: underline;
|
366 |
+
color: #adaeae;
|
367 |
+
font-size: 12px;
|
368 |
+
}
|
369 |
+
.wgz-td,
|
370 |
+
.wgz-th {
|
371 |
+
max-width: 600px;
|
372 |
+
}
|
373 |
+
.wgz-td {
|
374 |
+
word-wrap: break-word;
|
375 |
+
}
|
376 |
+
.wam-assets-table {
|
377 |
+
width: 100%;
|
378 |
+
}
|
379 |
+
.wam-assets-table td {
|
380 |
+
padding: 17px 10px;
|
381 |
+
}
|
382 |
+
.wam-assets-table .js-wam-table__tr--disabled-section {
|
383 |
+
background: #fbf5f4;
|
384 |
+
opacity: 0.7;
|
385 |
+
}
|
386 |
+
.wam-assets-table__asset-settings-conditions {
|
387 |
+
display: none;
|
388 |
+
background: #f3f3f3;
|
389 |
+
color: #7b7b7b;
|
390 |
+
font-size: 13px;
|
391 |
+
box-shadow: 0 2px 0 #d4d4d4;
|
392 |
+
}
|
393 |
+
.wam-assets-table__asset-settings-conditions > td {
|
394 |
+
padding: 0px 25px 15px 25px !important;
|
395 |
+
}
|
396 |
+
/*# sourceMappingURL=tables.css.map */
|
components/assets-manager/assets/css/tables.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["tables.less"],"names":[],"mappings":"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","file":"tables.css"}
|
components/assets-manager/assets/css/tables.less
ADDED
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
tr:nth-child(2n) > td {
|
16 |
+
background: #f9f9f9;
|
17 |
+
//border-bottom: 15px solid white;
|
18 |
+
}
|
19 |
+
|
20 |
+
th {
|
21 |
+
padding: 12px 10px;
|
22 |
+
text-align: left;
|
23 |
+
color: #333;
|
24 |
+
background: #ECEDED;
|
25 |
+
box-shadow: none;
|
26 |
+
}
|
27 |
+
|
28 |
+
th:not(:last-child) {
|
29 |
+
border-right: 2px solid #FFF;
|
30 |
+
}
|
31 |
+
|
32 |
+
td {
|
33 |
+
padding: 17px 10px;
|
34 |
+
vertical-align: top;
|
35 |
+
//background: #f9f9f9;
|
36 |
+
border-bottom: 1px solid #ECEDED;
|
37 |
+
text-align: left;
|
38 |
+
box-shadow: none;
|
39 |
+
}
|
40 |
+
|
41 |
+
/*td:first-child {
|
42 |
+
width: 20%;
|
43 |
+
}*/
|
44 |
+
|
45 |
+
&__th-actions {
|
46 |
+
width: 200px;
|
47 |
+
}
|
48 |
+
|
49 |
+
&__th-type {
|
50 |
+
width: 100px;
|
51 |
+
}
|
52 |
+
|
53 |
+
&__td-handle {
|
54 |
+
word-break: break-word;
|
55 |
+
}
|
56 |
+
|
57 |
+
&__th-version {
|
58 |
+
width: 100px
|
59 |
+
}
|
60 |
+
|
61 |
+
&__th-size {
|
62 |
+
width: 100px;
|
63 |
+
}
|
64 |
+
|
65 |
+
&__th-plugins-list, &__td-plugins-list {
|
66 |
+
width: 350px;
|
67 |
+
}
|
68 |
+
|
69 |
+
&__td-plugins-list {
|
70 |
+
padding: 0 !important;
|
71 |
+
}
|
72 |
+
|
73 |
+
&__th-plugins-settings, &__td-plugins-settings {
|
74 |
+
width: 80%;
|
75 |
+
padding: 15px;
|
76 |
+
text-align: left;
|
77 |
+
}
|
78 |
+
|
79 |
+
.js-wam-table__tr--disabled-section {
|
80 |
+
background: #fbf5f4;
|
81 |
+
opacity: 0.7;
|
82 |
+
}
|
83 |
+
|
84 |
+
&__asset-settings-conditions {
|
85 |
+
display: none;
|
86 |
+
background: #f3f3f3;
|
87 |
+
color: #7b7b7b;
|
88 |
+
font-size: 13px;
|
89 |
+
box-shadow: 0 2px 0 #d4d4d4;
|
90 |
+
|
91 |
+
& > td {
|
92 |
+
padding: 0 25px 15px 25px;
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
&.wam-plugin-assets__table {
|
97 |
+
}
|
98 |
+
}
|
components/assets-manager/assets/css/tabs.less
ADDED
@@ -0,0 +1,155 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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: 92px;
|
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 |
+
text-align: left;
|
113 |
+
margin-bottom: 3px;
|
114 |
+
|
115 |
+
a {
|
116 |
+
display: block;
|
117 |
+
padding: 10px 20px;
|
118 |
+
background: #f5f5f5;
|
119 |
+
color: #222;
|
120 |
+
|
121 |
+
strong, span {
|
122 |
+
display: block;
|
123 |
+
}
|
124 |
+
|
125 |
+
span {
|
126 |
+
font-size: 12px;
|
127 |
+
color: #2f2f2f;
|
128 |
+
}
|
129 |
+
}
|
130 |
+
|
131 |
+
&:hover {
|
132 |
+
a {
|
133 |
+
background: #efefef;
|
134 |
+
text-decoration: none;
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
&.wam-nav-plugins__tab--active {
|
139 |
+
a {
|
140 |
+
background: #e8e8e8;
|
141 |
+
}
|
142 |
+
}
|
143 |
+
}
|
144 |
+
}
|
145 |
+
|
146 |
+
.wam-nav-plugins__tab-content {
|
147 |
+
@tabContentClass: ~"wam-nav-plugins__tab-content";
|
148 |
+
display: none;
|
149 |
+
|
150 |
+
&.js-@{tabContentClass}--active {
|
151 |
+
display: block !important;
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
/** ---------------- /PLUGINS TABS------------------------ */
|
components/assets-manager/assets/css/tooltip.css
ADDED
@@ -0,0 +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 */
|
components/assets-manager/assets/css/tooltip.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["tooltip.less"],"names":[],"mappings":";;;;;;AAOA;EACE,kBAAA;;AAGF,iBAAiB;EACf,SAAS,EAAT;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,aAAA;EACA,WAAA;EACA,YAAA;;AAGF,iBAAiB;EACf,SAAS,kBAAT;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,aAAA;EACA,gBAAA;EACA,iBAAA;EACA,cAAA;EACA,mBAAA;EACA,eAAA;EACA,mBAAA;EACA,gBAAA;;AAGF,qBAAqB;EACnB,YAAA;EACA,YAAY,qFAAZ;;AAGF,qBAAqB;EACnB,YAAA;EACA,gBAAA;EACA,4BAAA;;AAGF,wBAAwB;EACtB,SAAA;EACA,YAAY,oFAAZ;;AAGF,wBAAwB;EACtB,SAAA;EACA,gBAAA;EACA,4BAAA;;AAGF,iBAAiB,MAAM;AACvB,iBAAiB,MAAM;EACrB,cAAA","file":"tooltip.css"}
|
components/assets-manager/assets/css/tooltip.less
ADDED
@@ -0,0 +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 |
+
}
|
components/assets-manager/assets/img/close.png
ADDED
Binary file
|
components/assets-manager/assets/img/cogs.png
ADDED
Binary file
|
components/assets-manager/assets/img/help.png
ADDED
Binary file
|
components/assets-manager/assets/js/PNotify.js
ADDED
@@ -0,0 +1,2037 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
2 |
+
|
3 |
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
4 |
+
|
5 |
+
/* src/PNotify.html generated by Svelte v2.16.1 */
|
6 |
+
var PNotify = function () {
|
7 |
+
"use strict";
|
8 |
+
|
9 |
+
var PNotify = void 0;
|
10 |
+
|
11 |
+
var posTimer = void 0; // Position all timer.
|
12 |
+
|
13 |
+
// These actions need to be done once the DOM is ready.
|
14 |
+
var onDocumentLoaded = function onDocumentLoaded() {
|
15 |
+
PNotify.defaultStack.context = document.body;
|
16 |
+
// Reposition the notices when the window resizes.
|
17 |
+
window.addEventListener('resize', function () {
|
18 |
+
if (posTimer) {
|
19 |
+
clearTimeout(posTimer);
|
20 |
+
}
|
21 |
+
posTimer = setTimeout(function () {
|
22 |
+
PNotify.positionAll();
|
23 |
+
}, 10);
|
24 |
+
});
|
25 |
+
};
|
26 |
+
|
27 |
+
// Creates the background overlay for modal stacks.
|
28 |
+
var createStackOverlay = function createStackOverlay(stack) {
|
29 |
+
var overlay = document.createElement('div');
|
30 |
+
overlay.classList.add('ui-pnotify-modal-overlay');
|
31 |
+
if (stack.context !== document.body) {
|
32 |
+
overlay.style.height = stack.context.scrollHeight + 'px';
|
33 |
+
overlay.style.width = stack.context.scrollWidth + 'px';
|
34 |
+
}
|
35 |
+
// Close the notices on overlay click.
|
36 |
+
overlay.addEventListener('click', function () {
|
37 |
+
if (stack.overlayClose) {
|
38 |
+
PNotify.closeStack(stack);
|
39 |
+
}
|
40 |
+
});
|
41 |
+
stack.overlay = overlay;
|
42 |
+
};
|
43 |
+
|
44 |
+
var insertStackOverlay = function insertStackOverlay(stack) {
|
45 |
+
if (stack.overlay.parentNode !== stack.context) {
|
46 |
+
stack.overlay = stack.context.insertBefore(stack.overlay, stack.context.firstChild);
|
47 |
+
}
|
48 |
+
};
|
49 |
+
|
50 |
+
var removeStackOverlay = function removeStackOverlay(stack) {
|
51 |
+
if (stack.overlay.parentNode) {
|
52 |
+
stack.overlay.parentNode.removeChild(stack.overlay);
|
53 |
+
}
|
54 |
+
};
|
55 |
+
|
56 |
+
// Default arguments for the new notice helper functions.
|
57 |
+
var getDefaultArgs = function getDefaultArgs(options, type) {
|
58 |
+
if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== 'object') {
|
59 |
+
options = { 'text': options };
|
60 |
+
}
|
61 |
+
|
62 |
+
// Only assign the type if it was requested, so we don't overwrite
|
63 |
+
// options.type if it has something assigned.
|
64 |
+
if (type) {
|
65 |
+
options.type = type;
|
66 |
+
}
|
67 |
+
|
68 |
+
return { target: document.body, data: options };
|
69 |
+
};
|
70 |
+
|
71 |
+
function _styles(_ref) {
|
72 |
+
var styling = _ref.styling;
|
73 |
+
|
74 |
+
return (typeof styling === 'undefined' ? 'undefined' : _typeof(styling)) === 'object' ? styling : PNotify.styling[styling];
|
75 |
+
}
|
76 |
+
|
77 |
+
function _icons(_ref2) {
|
78 |
+
var icons = _ref2.icons;
|
79 |
+
|
80 |
+
return (typeof icons === 'undefined' ? 'undefined' : _typeof(icons)) === 'object' ? icons : PNotify.icons[icons];
|
81 |
+
}
|
82 |
+
|
83 |
+
function _widthStyle(_ref3) {
|
84 |
+
var width = _ref3.width;
|
85 |
+
|
86 |
+
return typeof width === 'string' ? 'width: ' + width + ';' : '';
|
87 |
+
}
|
88 |
+
|
89 |
+
function _minHeightStyle(_ref4) {
|
90 |
+
var minHeight = _ref4.minHeight;
|
91 |
+
|
92 |
+
return typeof minHeight === 'string' ? 'min-height: ' + minHeight + ';' : '';
|
93 |
+
}
|
94 |
+
|
95 |
+
function data() {
|
96 |
+
var data = _extends({
|
97 |
+
'_state': 'initializing', // The state can be 'initializing', 'opening', 'open', 'closing', and 'closed'.
|
98 |
+
'_timer': null, // Auto close timer.
|
99 |
+
'_animTimer': null, // Animation timer.
|
100 |
+
'_animating': false, // Stores what is currently being animated (in or out).
|
101 |
+
'_animatingClass': '', // Stores the class that adds entry/exit animation effects.
|
102 |
+
'_moveClass': '', // Stores the class that adds movement animation effects.
|
103 |
+
'_timerHide': false, // Stores whether the notice was hidden by a timer.
|
104 |
+
'_moduleClasses': [], // Modules can add classes here to be added to the notice element. (They should play nice and not remove classes that aren't theirs.)
|
105 |
+
'_moduleIsNoticeOpen': false, // Modules that change how the notice displays (causing the notice element to not appear) can set this to true to make PNotify assume the notice has opened.
|
106 |
+
'_modules': {}, // Stores the instances of the modules.
|
107 |
+
'_modulesPrependContainer': PNotify.modulesPrependContainer,
|
108 |
+
'_modulesAppendContainer': PNotify.modulesAppendContainer
|
109 |
+
}, PNotify.defaults);
|
110 |
+
data.modules = _extends({}, PNotify.defaults.modules);
|
111 |
+
return data;
|
112 |
+
};
|
113 |
+
|
114 |
+
var methods = {
|
115 |
+
// This runs an event on all the modules.
|
116 |
+
runModules: function runModules(event) {
|
117 |
+
if (event === 'init') {
|
118 |
+
// Initializing a module should only be done if it has an init
|
119 |
+
// function, which means it's not rendered in the template.
|
120 |
+
for (var key in PNotify.modules) {
|
121 |
+
if (!PNotify.modules.hasOwnProperty(key)) {
|
122 |
+
continue;
|
123 |
+
}
|
124 |
+
if (typeof PNotify.modules[key].init === 'function') {
|
125 |
+
var module = PNotify.modules[key].init(this);
|
126 |
+
this.initModule(module);
|
127 |
+
}
|
128 |
+
}
|
129 |
+
} else {
|
130 |
+
var _get = this.get(),
|
131 |
+
_modules = _get._modules;
|
132 |
+
|
133 |
+
for (var _module in _modules) {
|
134 |
+
if (!_modules.hasOwnProperty(_module)) {
|
135 |
+
continue;
|
136 |
+
}
|
137 |
+
var moduleOptions = _extends({
|
138 |
+
'_notice': this,
|
139 |
+
'_options': this.get()
|
140 |
+
}, this.get().modules[_module]);
|
141 |
+
_modules[_module].set(moduleOptions);
|
142 |
+
if (typeof _modules[_module][event] === 'function') {
|
143 |
+
_modules[_module][event]();
|
144 |
+
}
|
145 |
+
}
|
146 |
+
}
|
147 |
+
},
|
148 |
+
|
149 |
+
|
150 |
+
// This passes module options to a module.
|
151 |
+
initModule: function initModule(module) {
|
152 |
+
var _get2 = this.get(),
|
153 |
+
modules = _get2.modules;
|
154 |
+
|
155 |
+
if (!modules.hasOwnProperty(module.constructor.key)) {
|
156 |
+
modules[module.constructor.key] = {};
|
157 |
+
}
|
158 |
+
var moduleOptions = _extends({
|
159 |
+
'_notice': this,
|
160 |
+
'_options': this.get()
|
161 |
+
}, modules[module.constructor.key]);
|
162 |
+
module.initModule(moduleOptions);
|
163 |
+
|
164 |
+
// Now save the module instance.
|
165 |
+
|
166 |
+
var _get3 = this.get(),
|
167 |
+
_modules = _get3._modules;
|
168 |
+
|
169 |
+
_modules[module.constructor.key] = module;
|
170 |
+
},
|
171 |
+
update: function update(options) {
|
172 |
+
// Save old options.
|
173 |
+
var oldHide = this.get().hide;
|
174 |
+
var oldIcon = this.get().icon;
|
175 |
+
|
176 |
+
this.set(options);
|
177 |
+
|
178 |
+
// Run the modules.
|
179 |
+
this.runModules('update');
|
180 |
+
|
181 |
+
// Update the timed hiding.
|
182 |
+
if (!this.get().hide) {
|
183 |
+
this.cancelClose();
|
184 |
+
} else if (!oldHide) {
|
185 |
+
this.queueClose();
|
186 |
+
}
|
187 |
+
this.queuePosition();
|
188 |
+
|
189 |
+
// Font Awesome 5 replaces our lovely element with a gross SVG. In order
|
190 |
+
// to make it play nice with Svelte, we have to clear the element and
|
191 |
+
// make it again.
|
192 |
+
|
193 |
+
var _get4 = this.get(),
|
194 |
+
icon = _get4.icon;
|
195 |
+
|
196 |
+
if (icon !== oldIcon && (icon === true && this.get().icons === 'fontawesome5' || typeof icon === 'string' && icon.match(/(^| )fa[srlb]($| )/))) {
|
197 |
+
this.set({ 'icon': false });
|
198 |
+
this.set({ 'icon': icon });
|
199 |
+
}
|
200 |
+
|
201 |
+
return this;
|
202 |
+
},
|
203 |
+
|
204 |
+
|
205 |
+
// Display the notice.
|
206 |
+
open: function open() {
|
207 |
+
var _this = this;
|
208 |
+
|
209 |
+
var _get5 = this.get(),
|
210 |
+
_state = _get5._state,
|
211 |
+
hide = _get5.hide;
|
212 |
+
|
213 |
+
if (_state === 'opening') {
|
214 |
+
return;
|
215 |
+
}
|
216 |
+
if (_state === 'open') {
|
217 |
+
if (hide) {
|
218 |
+
this.queueClose();
|
219 |
+
}
|
220 |
+
return;
|
221 |
+
}
|
222 |
+
this.set({
|
223 |
+
'_state': 'opening',
|
224 |
+
// This makes the notice visibity: hidden; so its dimensions can be
|
225 |
+
// determined.
|
226 |
+
'_animatingClass': 'ui-pnotify-initial-hidden'
|
227 |
+
});
|
228 |
+
// Run the modules.
|
229 |
+
this.runModules('beforeOpen');
|
230 |
+
|
231 |
+
var _get6 = this.get(),
|
232 |
+
stack = _get6.stack;
|
233 |
+
// If the notice is not in the DOM, or in the wrong context, append it.
|
234 |
+
|
235 |
+
|
236 |
+
if (!this.refs.elem.parentNode || stack && stack.context && stack.context !== this.refs.elem.parentNode) {
|
237 |
+
if (stack && stack.context) {
|
238 |
+
stack.context.appendChild(this.refs.elem);
|
239 |
+
} else if (document.body) {
|
240 |
+
document.body.appendChild(this.refs.elem);
|
241 |
+
} else {
|
242 |
+
throw new Error('No context to open this notice in.');
|
243 |
+
}
|
244 |
+
}
|
245 |
+
|
246 |
+
// Wait until the DOM is updated.
|
247 |
+
setTimeout(function () {
|
248 |
+
if (stack) {
|
249 |
+
// Mark the stack so it won't animate the new notice.
|
250 |
+
stack.animation = false;
|
251 |
+
// Now position all the notices.
|
252 |
+
PNotify.positionAll();
|
253 |
+
// Reset animation.
|
254 |
+
stack.animation = true;
|
255 |
+
}
|
256 |
+
|
257 |
+
_this.animateIn(function () {
|
258 |
+
// Now set it to hide.
|
259 |
+
if (_this.get().hide) {
|
260 |
+
_this.queueClose();
|
261 |
+
}
|
262 |
+
|
263 |
+
_this.set({ '_state': 'open' });
|
264 |
+
|
265 |
+
// Run the modules.
|
266 |
+
_this.runModules('afterOpen');
|
267 |
+
});
|
268 |
+
}, 0);
|
269 |
+
|
270 |
+
return this;
|
271 |
+
},
|
272 |
+
remove: function remove(timerHide) {
|
273 |
+
return this.close(timerHide);
|
274 |
+
},
|
275 |
+
|
276 |
+
|
277 |
+
// Remove the notice.
|
278 |
+
close: function close(timerHide) {
|
279 |
+
var _this2 = this;
|
280 |
+
|
281 |
+
var _get7 = this.get(),
|
282 |
+
_state = _get7._state;
|
283 |
+
|
284 |
+
if (_state === 'closing' || _state === 'closed') {
|
285 |
+
return;
|
286 |
+
}
|
287 |
+
this.set({ '_state': 'closing', '_timerHide': !!timerHide }); // Make sure it's a boolean.
|
288 |
+
// Run the modules.
|
289 |
+
this.runModules('beforeClose');
|
290 |
+
|
291 |
+
var _get8 = this.get(),
|
292 |
+
_timer = _get8._timer;
|
293 |
+
|
294 |
+
if (_timer && clearTimeout) {
|
295 |
+
clearTimeout(_timer);
|
296 |
+
this.set({ '_timer': null });
|
297 |
+
}
|
298 |
+
this.animateOut(function () {
|
299 |
+
_this2.set({ '_state': 'closed' });
|
300 |
+
// Run the modules.
|
301 |
+
_this2.runModules('afterClose');
|
302 |
+
_this2.queuePosition();
|
303 |
+
// If we're supposed to remove the notice from the DOM, do it.
|
304 |
+
if (_this2.get().remove) {
|
305 |
+
_this2.refs.elem.parentNode.removeChild(_this2.refs.elem);
|
306 |
+
}
|
307 |
+
// Run the modules.
|
308 |
+
_this2.runModules('beforeDestroy');
|
309 |
+
// Remove object from PNotify.notices to prevent memory leak (issue #49)
|
310 |
+
// unless destroy is off
|
311 |
+
if (_this2.get().destroy) {
|
312 |
+
if (PNotify.notices !== null) {
|
313 |
+
var idx = PNotify.notices.indexOf(_this2);
|
314 |
+
if (idx !== -1) {
|
315 |
+
PNotify.notices.splice(idx, 1);
|
316 |
+
}
|
317 |
+
}
|
318 |
+
}
|
319 |
+
// Run the modules.
|
320 |
+
_this2.runModules('afterDestroy');
|
321 |
+
});
|
322 |
+
|
323 |
+
return this;
|
324 |
+
},
|
325 |
+
|
326 |
+
|
327 |
+
// Animate the notice in.
|
328 |
+
animateIn: function animateIn(callback) {
|
329 |
+
var _this3 = this;
|
330 |
+
|
331 |
+
// Declare that the notice is animating in.
|
332 |
+
this.set({ '_animating': 'in' });
|
333 |
+
var finished = function finished() {
|
334 |
+
_this3.refs.elem.removeEventListener('transitionend', finished);
|
335 |
+
|
336 |
+
var _get9 = _this3.get(),
|
337 |
+
_animTimer = _get9._animTimer,
|
338 |
+
_animating = _get9._animating,
|
339 |
+
_moduleIsNoticeOpen = _get9._moduleIsNoticeOpen;
|
340 |
+
|
341 |
+
if (_animTimer) {
|
342 |
+
clearTimeout(_animTimer);
|
343 |
+
}
|
344 |
+
if (_animating !== 'in') {
|
345 |
+
return;
|
346 |
+
}
|
347 |
+
var visible = _moduleIsNoticeOpen;
|
348 |
+
if (!visible) {
|
349 |
+
var domRect = _this3.refs.elem.getBoundingClientRect();
|
350 |
+
for (var prop in domRect) {
|
351 |
+
if (domRect[prop] > 0) {
|
352 |
+
visible = true;
|
353 |
+
break;
|
354 |
+
}
|
355 |
+
}
|
356 |
+
}
|
357 |
+
if (visible) {
|
358 |
+
if (callback) {
|
359 |
+
callback.call();
|
360 |
+
}
|
361 |
+
// Declare that the notice has completed animating.
|
362 |
+
_this3.set({ '_animating': false });
|
363 |
+
} else {
|
364 |
+
_this3.set({ '_animTimer': setTimeout(finished, 40) });
|
365 |
+
}
|
366 |
+
};
|
367 |
+
|
368 |
+
if (this.get().animation === 'fade') {
|
369 |
+
this.refs.elem.addEventListener('transitionend', finished);
|
370 |
+
this.set({ '_animatingClass': 'ui-pnotify-in' });
|
371 |
+
// eslint-disable-next-line no-unused-expressions
|
372 |
+
this.refs.elem.style.opacity; // This line is necessary for some reason. Some notices don't fade without it.
|
373 |
+
this.set({ '_animatingClass': 'ui-pnotify-in ui-pnotify-fade-in' });
|
374 |
+
// Just in case the event doesn't fire, call it after 650 ms.
|
375 |
+
this.set({ '_animTimer': setTimeout(finished, 650) });
|
376 |
+
} else {
|
377 |
+
this.set({ '_animatingClass': 'ui-pnotify-in' });
|
378 |
+
finished();
|
379 |
+
}
|
380 |
+
},
|
381 |
+
|
382 |
+
|
383 |
+
// Animate the notice out.
|
384 |
+
animateOut: function animateOut(callback) {
|
385 |
+
var _this4 = this;
|
386 |
+
|
387 |
+
// Declare that the notice is animating out.
|
388 |
+
this.set({ '_animating': 'out' });
|
389 |
+
var finished = function finished() {
|
390 |
+
_this4.refs.elem.removeEventListener('transitionend', finished);
|
391 |
+
|
392 |
+
var _get10 = _this4.get(),
|
393 |
+
_animTimer = _get10._animTimer,
|
394 |
+
_animating = _get10._animating,
|
395 |
+
_moduleIsNoticeOpen = _get10._moduleIsNoticeOpen;
|
396 |
+
|
397 |
+
if (_animTimer) {
|
398 |
+
clearTimeout(_animTimer);
|
399 |
+
}
|
400 |
+
if (_animating !== 'out') {
|
401 |
+
return;
|
402 |
+
}
|
403 |
+
var visible = _moduleIsNoticeOpen;
|
404 |
+
if (!visible) {
|
405 |
+
var domRect = _this4.refs.elem.getBoundingClientRect();
|
406 |
+
for (var prop in domRect) {
|
407 |
+
if (domRect[prop] > 0) {
|
408 |
+
visible = true;
|
409 |
+
break;
|
410 |
+
}
|
411 |
+
}
|
412 |
+
}
|
413 |
+
if (!_this4.refs.elem.style.opacity || _this4.refs.elem.style.opacity === '0' || !visible) {
|
414 |
+
_this4.set({ '_animatingClass': '' });
|
415 |
+
|
416 |
+
var _get11 = _this4.get(),
|
417 |
+
stack = _get11.stack;
|
418 |
+
|
419 |
+
if (stack && stack.overlay) {
|
420 |
+
// Go through the modal stack to see if any are left open.
|
421 |
+
// TODO: Rewrite this cause it sucks.
|
422 |
+
var stillOpen = false;
|
423 |
+
for (var i = 0; i < PNotify.notices.length; i++) {
|
424 |
+
var notice = PNotify.notices[i];
|
425 |
+
if (notice !== _this4 && notice.get().stack === stack && notice.get()._state !== 'closed') {
|
426 |
+
stillOpen = true;
|
427 |
+
break;
|
428 |
+
}
|
429 |
+
}
|
430 |
+
if (!stillOpen) {
|
431 |
+
removeStackOverlay(stack);
|
432 |
+
}
|
433 |
+
}
|
434 |
+
if (callback) {
|
435 |
+
callback.call();
|
436 |
+
}
|
437 |
+
// Declare that the notice has completed animating.
|
438 |
+
_this4.set({ '_animating': false });
|
439 |
+
} else {
|
440 |
+
// In case this was called before the notice finished animating.
|
441 |
+
_this4.set({ '_animTimer': setTimeout(finished, 40) });
|
442 |
+
}
|
443 |
+
};
|
444 |
+
|
445 |
+
if (this.get().animation === 'fade') {
|
446 |
+
this.refs.elem.addEventListener('transitionend', finished);
|
447 |
+
this.set({ '_animatingClass': 'ui-pnotify-in' });
|
448 |
+
// Just in case the event doesn't fire, call it after 650 ms.
|
449 |
+
this.set({ '_animTimer': setTimeout(finished, 650) });
|
450 |
+
} else {
|
451 |
+
this.set({ '_animatingClass': '' });
|
452 |
+
finished();
|
453 |
+
}
|
454 |
+
},
|
455 |
+
|
456 |
+
|
457 |
+
// Position the notice.
|
458 |
+
position: function position() {
|
459 |
+
// Get the notice's stack.
|
460 |
+
var _get12 = this.get(),
|
461 |
+
stack = _get12.stack;
|
462 |
+
|
463 |
+
var elem = this.refs.elem;
|
464 |
+
if (!stack) {
|
465 |
+
return;
|
466 |
+
}
|
467 |
+
if (!stack.context) {
|
468 |
+
stack.context = document.body;
|
469 |
+
}
|
470 |
+
if (typeof stack.nextpos1 !== 'number') {
|
471 |
+
stack.nextpos1 = stack.firstpos1;
|
472 |
+
}
|
473 |
+
if (typeof stack.nextpos2 !== 'number') {
|
474 |
+
stack.nextpos2 = stack.firstpos2;
|
475 |
+
}
|
476 |
+
if (typeof stack.addpos2 !== 'number') {
|
477 |
+
stack.addpos2 = 0;
|
478 |
+
}
|
479 |
+
|
480 |
+
// Skip this notice if it's not shown.
|
481 |
+
if (!elem.classList.contains('ui-pnotify-in') && !elem.classList.contains('ui-pnotify-initial-hidden')) {
|
482 |
+
return this;
|
483 |
+
}
|
484 |
+
|
485 |
+
if (stack.modal) {
|
486 |
+
if (!stack.overlay) {
|
487 |
+
createStackOverlay(stack);
|
488 |
+
}
|
489 |
+
insertStackOverlay(stack);
|
490 |
+
}
|
491 |
+
|
492 |
+
// Read from the DOM to cause refresh.
|
493 |
+
elem.getBoundingClientRect();
|
494 |
+
|
495 |
+
if (stack.animation) {
|
496 |
+
// Add animate class.
|
497 |
+
this.set({ '_moveClass': 'ui-pnotify-move' });
|
498 |
+
}
|
499 |
+
|
500 |
+
var spaceY = stack.context === document.body ? window.innerHeight : stack.context.scrollHeight;
|
501 |
+
var spaceX = stack.context === document.body ? window.innerWidth : stack.context.scrollWidth;
|
502 |
+
|
503 |
+
var csspos1 = void 0;
|
504 |
+
|
505 |
+
if (stack.dir1) {
|
506 |
+
csspos1 = {
|
507 |
+
'down': 'top',
|
508 |
+
'up': 'bottom',
|
509 |
+
'left': 'right',
|
510 |
+
'right': 'left'
|
511 |
+
}[stack.dir1];
|
512 |
+
|
513 |
+
// Calculate the current pos1 value.
|
514 |
+
var curpos1 = void 0;
|
515 |
+
switch (stack.dir1) {
|
516 |
+
case 'down':
|
517 |
+
curpos1 = elem.offsetTop;
|
518 |
+
break;
|
519 |
+
case 'up':
|
520 |
+
curpos1 = spaceY - elem.scrollHeight - elem.offsetTop;
|
521 |
+
break;
|
522 |
+
case 'left':
|
523 |
+
curpos1 = spaceX - elem.scrollWidth - elem.offsetLeft;
|
524 |
+
break;
|
525 |
+
case 'right':
|
526 |
+
curpos1 = elem.offsetLeft;
|
527 |
+
break;
|
528 |
+
}
|
529 |
+
// Remember the first pos1, so the first notice goes there.
|
530 |
+
if (typeof stack.firstpos1 === 'undefined') {
|
531 |
+
stack.firstpos1 = curpos1;
|
532 |
+
stack.nextpos1 = stack.firstpos1;
|
533 |
+
}
|
534 |
+
}
|
535 |
+
|
536 |
+
if (stack.dir1 && stack.dir2) {
|
537 |
+
var csspos2 = {
|
538 |
+
'down': 'top',
|
539 |
+
'up': 'bottom',
|
540 |
+
'left': 'right',
|
541 |
+
'right': 'left'
|
542 |
+
}[stack.dir2];
|
543 |
+
|
544 |
+
// Calculate the current pos2 value.
|
545 |
+
var curpos2 = void 0;
|
546 |
+
switch (stack.dir2) {
|
547 |
+
case 'down':
|
548 |
+
curpos2 = elem.offsetTop;
|
549 |
+
break;
|
550 |
+
case 'up':
|
551 |
+
curpos2 = spaceY - elem.scrollHeight - elem.offsetTop;
|
552 |
+
break;
|
553 |
+
case 'left':
|
554 |
+
curpos2 = spaceX - elem.scrollWidth - elem.offsetLeft;
|
555 |
+
break;
|
556 |
+
case 'right':
|
557 |
+
curpos2 = elem.offsetLeft;
|
558 |
+
break;
|
559 |
+
}
|
560 |
+
// Remember the first pos2, so the first notice goes there.
|
561 |
+
if (typeof stack.firstpos2 === 'undefined') {
|
562 |
+
stack.firstpos2 = curpos2;
|
563 |
+
stack.nextpos2 = stack.firstpos2;
|
564 |
+
}
|
565 |
+
|
566 |
+
// Check that it's not beyond the viewport edge.
|
567 |
+
var endY = stack.nextpos1 + elem.offsetHeight + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1);
|
568 |
+
var endX = stack.nextpos1 + elem.offsetWidth + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1);
|
569 |
+
if ((stack.dir1 === 'down' || stack.dir1 === 'up') && endY > spaceY || (stack.dir1 === 'left' || stack.dir1 === 'right') && endX > spaceX) {
|
570 |
+
// If it is, it needs to go back to the first pos1, and over on pos2.
|
571 |
+
stack.nextpos1 = stack.firstpos1;
|
572 |
+
stack.nextpos2 += stack.addpos2 + (typeof stack.spacing2 === 'undefined' ? 25 : stack.spacing2);
|
573 |
+
stack.addpos2 = 0;
|
574 |
+
}
|
575 |
+
|
576 |
+
// Move the notice on dir2.
|
577 |
+
if (typeof stack.nextpos2 === 'number') {
|
578 |
+
elem.style[csspos2] = stack.nextpos2 + 'px';
|
579 |
+
if (!stack.animation) {
|
580 |
+
// eslint-disable-next-line no-unused-expressions
|
581 |
+
elem.style[csspos2]; // Read from the DOM for update.
|
582 |
+
}
|
583 |
+
}
|
584 |
+
|
585 |
+
// Keep track of the widest/tallest notice in the column/row, so we can push the next column/row.
|
586 |
+
switch (stack.dir2) {
|
587 |
+
case 'down':
|
588 |
+
case 'up':
|
589 |
+
if (elem.offsetHeight + (parseFloat(elem.style.marginTop, 10) || 0) + (parseFloat(elem.style.marginBottom, 10) || 0) > stack.addpos2) {
|
590 |
+
stack.addpos2 = elem.offsetHeight;
|
591 |
+
}
|
592 |
+
break;
|
593 |
+
case 'left':
|
594 |
+
case 'right':
|
595 |
+
if (elem.offsetWidth + (parseFloat(elem.style.marginLeft, 10) || 0) + (parseFloat(elem.style.marginRight, 10) || 0) > stack.addpos2) {
|
596 |
+
stack.addpos2 = elem.offsetWidth;
|
597 |
+
}
|
598 |
+
break;
|
599 |
+
}
|
600 |
+
} else if (stack.dir1) {
|
601 |
+
// Center the notice along dir1 axis, because the stack has no dir2.
|
602 |
+
var cssMiddle = void 0,
|
603 |
+
cssposCross = void 0;
|
604 |
+
switch (stack.dir1) {
|
605 |
+
case 'down':
|
606 |
+
case 'up':
|
607 |
+
cssposCross = ['left', 'right'];
|
608 |
+
cssMiddle = stack.context.scrollWidth / 2 - elem.offsetWidth / 2;
|
609 |
+
break;
|
610 |
+
case 'left':
|
611 |
+
case 'right':
|
612 |
+
cssposCross = ['top', 'bottom'];
|
613 |
+
cssMiddle = spaceY / 2 - elem.offsetHeight / 2;
|
614 |
+
break;
|
615 |
+
}
|
616 |
+
elem.style[cssposCross[0]] = cssMiddle + 'px';
|
617 |
+
elem.style[cssposCross[1]] = 'auto';
|
618 |
+
if (!stack.animation) {
|
619 |
+
// eslint-disable-next-line no-unused-expressions
|
620 |
+
elem.style[cssposCross[0]]; // Read from the DOM for update.
|
621 |
+
}
|
622 |
+
}
|
623 |
+
|
624 |
+
if (stack.dir1) {
|
625 |
+
// Move the notice on dir1.
|
626 |
+
if (typeof stack.nextpos1 === 'number') {
|
627 |
+
elem.style[csspos1] = stack.nextpos1 + 'px';
|
628 |
+
if (!stack.animation) {
|
629 |
+
// eslint-disable-next-line no-unused-expressions
|
630 |
+
elem.style[csspos1]; // Read from the DOM for update.
|
631 |
+
}
|
632 |
+
}
|
633 |
+
|
634 |
+
// Calculate the next dir1 position.
|
635 |
+
switch (stack.dir1) {
|
636 |
+
case 'down':
|
637 |
+
case 'up':
|
638 |
+
stack.nextpos1 += elem.offsetHeight + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1);
|
639 |
+
break;
|
640 |
+
case 'left':
|
641 |
+
case 'right':
|
642 |
+
stack.nextpos1 += elem.offsetWidth + (typeof stack.spacing1 === 'undefined' ? 25 : stack.spacing1);
|
643 |
+
break;
|
644 |
+
}
|
645 |
+
} else {
|
646 |
+
// Center the notice on the screen, because the stack has no dir1.
|
647 |
+
var cssMiddleLeft = spaceX / 2 - elem.offsetWidth / 2;
|
648 |
+
var cssMiddleTop = spaceY / 2 - elem.offsetHeight / 2;
|
649 |
+
elem.style.left = cssMiddleLeft + 'px';
|
650 |
+
elem.style.top = cssMiddleTop + 'px';
|
651 |
+
if (!stack.animation) {
|
652 |
+
// eslint-disable-next-line no-unused-expressions
|
653 |
+
elem.style.left; // Read from the DOM for update.
|
654 |
+
}
|
655 |
+
}
|
656 |
+
|
657 |
+
return this;
|
658 |
+
},
|
659 |
+
|
660 |
+
|
661 |
+
// Queue the position all function so it doesn't run repeatedly and
|
662 |
+
// use up resources.
|
663 |
+
queuePosition: function queuePosition(milliseconds) {
|
664 |
+
if (posTimer) {
|
665 |
+
clearTimeout(posTimer);
|
666 |
+
}
|
667 |
+
if (!milliseconds) {
|
668 |
+
milliseconds = 10;
|
669 |
+
}
|
670 |
+
posTimer = setTimeout(function () {
|
671 |
+
PNotify.positionAll();
|
672 |
+
}, milliseconds);
|
673 |
+
return this;
|
674 |
+
},
|
675 |
+
cancelRemove: function cancelRemove() {
|
676 |
+
return this.cancelClose();
|
677 |
+
},
|
678 |
+
|
679 |
+
|
680 |
+
// Cancel any pending removal timer.
|
681 |
+
cancelClose: function cancelClose() {
|
682 |
+
var _get13 = this.get(),
|
683 |
+
_timer = _get13._timer,
|
684 |
+
_animTimer = _get13._animTimer,
|
685 |
+
_state = _get13._state,
|
686 |
+
animation = _get13.animation;
|
687 |
+
|
688 |
+
if (_timer) {
|
689 |
+
clearTimeout(_timer);
|
690 |
+
}
|
691 |
+
if (_animTimer) {
|
692 |
+
clearTimeout(_animTimer);
|
693 |
+
}
|
694 |
+
if (_state === 'closing') {
|
695 |
+
// If it's animating out, stop it.
|
696 |
+
this.set({
|
697 |
+
'_state': 'open',
|
698 |
+
'_animating': false,
|
699 |
+
'_animatingClass': animation === 'fade' ? 'ui-pnotify-in ui-pnotify-fade-in' : 'ui-pnotify-in'
|
700 |
+
});
|
701 |
+
}
|
702 |
+
return this;
|
703 |
+
},
|
704 |
+
queueRemove: function queueRemove() {
|
705 |
+
return this.queueClose();
|
706 |
+
},
|
707 |
+
|
708 |
+
|
709 |
+
// Queue a close timer.
|
710 |
+
queueClose: function queueClose() {
|
711 |
+
var _this5 = this;
|
712 |
+
|
713 |
+
// Cancel any current close timer.
|
714 |
+
this.cancelClose();
|
715 |
+
this.set({
|
716 |
+
'_timer': setTimeout(function () {
|
717 |
+
return _this5.close(true);
|
718 |
+
}, isNaN(this.get().delay) ? 0 : this.get().delay)
|
719 |
+
});
|
720 |
+
return this;
|
721 |
+
},
|
722 |
+
addModuleClass: function addModuleClass() {
|
723 |
+
var _get14 = this.get(),
|
724 |
+
_moduleClasses = _get14._moduleClasses;
|
725 |
+
|
726 |
+
for (var _len = arguments.length, classNames = Array(_len), _key = 0; _key < _len; _key++) {
|
727 |
+
classNames[_key] = arguments[_key];
|
728 |
+
}
|
729 |
+
|
730 |
+
for (var i = 0; i < classNames.length; i++) {
|
731 |
+
var className = classNames[i];
|
732 |
+
if (_moduleClasses.indexOf(className) === -1) {
|
733 |
+
_moduleClasses.push(className);
|
734 |
+
}
|
735 |
+
}
|
736 |
+
this.set({ _moduleClasses: _moduleClasses });
|
737 |
+
},
|
738 |
+
removeModuleClass: function removeModuleClass() {
|
739 |
+
var _get15 = this.get(),
|
740 |
+
_moduleClasses = _get15._moduleClasses;
|
741 |
+
|
742 |
+
for (var _len2 = arguments.length, classNames = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
743 |
+
classNames[_key2] = arguments[_key2];
|
744 |
+
}
|
745 |
+
|
746 |
+
for (var i = 0; i < classNames.length; i++) {
|
747 |
+
var className = classNames[i];
|
748 |
+
var idx = _moduleClasses.indexOf(className);
|
749 |
+
if (idx !== -1) {
|
750 |
+
_moduleClasses.splice(idx, 1);
|
751 |
+
}
|
752 |
+
}
|
753 |
+
this.set({ _moduleClasses: _moduleClasses });
|
754 |
+
},
|
755 |
+
hasModuleClass: function hasModuleClass() {
|
756 |
+
var _get16 = this.get(),
|
757 |
+
_moduleClasses = _get16._moduleClasses;
|
758 |
+
|
759 |
+
for (var _len3 = arguments.length, classNames = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
760 |
+
classNames[_key3] = arguments[_key3];
|
761 |
+
}
|
762 |
+
|
763 |
+
for (var i = 0; i < classNames.length; i++) {
|
764 |
+
var className = classNames[i];
|
765 |
+
if (_moduleClasses.indexOf(className) === -1) {
|
766 |
+
return false;
|
767 |
+
}
|
768 |
+
}
|
769 |
+
return true;
|
770 |
+
}
|
771 |
+
};
|
772 |
+
|
773 |
+
function oncreate() {
|
774 |
+
var _this6 = this;
|
775 |
+
|
776 |
+
this.on('mouseenter', function (e) {
|
777 |
+
// Stop animation, reset the removal timer when the user mouses over.
|
778 |
+
if (_this6.get().mouseReset && _this6.get()._animating === 'out') {
|
779 |
+
if (!_this6.get()._timerHide) {
|
780 |
+
return;
|
781 |
+
}
|
782 |
+
_this6.cancelClose();
|
783 |
+
}
|
784 |
+
// Stop the close timer.
|
785 |
+
if (_this6.get().hide && _this6.get().mouseReset) {
|
786 |
+
_this6.cancelClose();
|
787 |
+
}
|
788 |
+
});
|
789 |
+
|
790 |
+
this.on('mouseleave', function (e) {
|
791 |
+
// Start the close timer.
|
792 |
+
if (_this6.get().hide && _this6.get().mouseReset && _this6.get()._animating !== 'out') {
|
793 |
+
_this6.queueClose();
|
794 |
+
}
|
795 |
+
PNotify.positionAll();
|
796 |
+
});
|
797 |
+
|
798 |
+
var _get17 = this.get(),
|
799 |
+
stack = _get17.stack;
|
800 |
+
|
801 |
+
// Add the notice to the notice array.
|
802 |
+
|
803 |
+
|
804 |
+
if (stack && stack.push === 'top') {
|
805 |
+
PNotify.notices.splice(0, 0, this);
|
806 |
+
} else {
|
807 |
+
PNotify.notices.push(this);
|
808 |
+
}
|
809 |
+
|
810 |
+
// Run the modules.
|
811 |
+
this.runModules('init');
|
812 |
+
|
813 |
+
// We're now initialized, but haven't been opened yet.
|
814 |
+
this.set({ '_state': 'closed' });
|
815 |
+
|
816 |
+
// Display the notice.
|
817 |
+
if (this.get().autoDisplay) {
|
818 |
+
this.open();
|
819 |
+
}
|
820 |
+
};
|
821 |
+
|
822 |
+
function setup(Component) {
|
823 |
+
// Add static properties to the PNotify object.
|
824 |
+
PNotify = Component;
|
825 |
+
|
826 |
+
PNotify.VERSION = '4.0.0';
|
827 |
+
|
828 |
+
PNotify.defaultStack = {
|
829 |
+
dir1: 'down',
|
830 |
+
dir2: 'left',
|
831 |
+
firstpos1: 25,
|
832 |
+
firstpos2: 25,
|
833 |
+
spacing1: 36,
|
834 |
+
spacing2: 36,
|
835 |
+
push: 'bottom',
|
836 |
+
context: window && document.body
|
837 |
+
};
|
838 |
+
|
839 |
+
PNotify.defaults = {
|
840 |
+
// The notice's title.
|
841 |
+
title: false,
|
842 |
+
// Whether to trust the title or escape its contents. (Not allow HTML.)
|
843 |
+
titleTrusted: false,
|
844 |
+
// The notice's text.
|
845 |
+
text: false,
|
846 |
+
// Whether to trust the text or escape its contents. (Not allow HTML.)
|
847 |
+
textTrusted: false,
|
848 |
+
// What styling classes to use. (Can be 'brighttheme', 'bootstrap3', 'bootstrap4', or a styling object.)
|
849 |
+
styling: 'brighttheme',
|
850 |
+
// What icons to use (Can be 'brighttheme', 'bootstrap3', 'fontawesome4', 'fontawesome5', or an icon object.)
|
851 |
+
icons: 'brighttheme',
|
852 |
+
// Additional classes to be added to the notice. (For custom styling.)
|
853 |
+
addClass: '',
|
854 |
+
// Class to be added to the notice for corner styling.
|
855 |
+
cornerClass: '',
|
856 |
+
// Display the notice when it is created.
|
857 |
+
autoDisplay: true,
|
858 |
+
// Width of the notice.
|
859 |
+
width: '360px',
|
860 |
+
// Minimum height of the notice. It will expand to fit content.
|
861 |
+
minHeight: '16px',
|
862 |
+
// Type of the notice. 'notice', 'info', 'success', or 'error'.
|
863 |
+
type: 'notice',
|
864 |
+
// Set icon to true to use the default icon for the selected
|
865 |
+
// style/type, false for no icon, or a string for your own icon class.
|
866 |
+
icon: true,
|
867 |
+
// The animation to use when displaying and hiding the notice. 'none'
|
868 |
+
// and 'fade' are supported through CSS. Others are supported
|
869 |
+
// through the Animate module and Animate.css.
|
870 |
+
animation: 'fade',
|
871 |
+
// Speed at which the notice animates in and out. 'slow', 'normal',
|
872 |
+
// or 'fast'. Respectively, 400ms, 250ms, 100ms.
|
873 |
+
animateSpeed: 'normal',
|
874 |
+
// Display a drop shadow.
|
875 |
+
shadow: true,
|
876 |
+
// After a delay, remove the notice.
|
877 |
+
hide: true,
|
878 |
+
// Delay in milliseconds before the notice is removed.
|
879 |
+
delay: 8000,
|
880 |
+
// Reset the hide timer if the mouse moves over the notice.
|
881 |
+
mouseReset: true,
|
882 |
+
// Remove the notice's elements from the DOM after it is removed.
|
883 |
+
remove: true,
|
884 |
+
// Whether to remove the notice from the global array when it is closed.
|
885 |
+
destroy: true,
|
886 |
+
// The stack on which the notices will be placed. Also controls the
|
887 |
+
// direction the notices stack.
|
888 |
+
stack: PNotify.defaultStack,
|
889 |
+
// This is where options for modules should be defined.
|
890 |
+
modules: {}
|
891 |
+
};
|
892 |
+
|
893 |
+
// An array of all active notices.
|
894 |
+
PNotify.notices = [];
|
895 |
+
|
896 |
+
// This object holds all the PNotify modules. They are used to provide
|
897 |
+
// additional functionality.
|
898 |
+
PNotify.modules = {};
|
899 |
+
|
900 |
+
// Modules can add themselves to these to be rendered in the template.
|
901 |
+
PNotify.modulesPrependContainer = [];
|
902 |
+
PNotify.modulesAppendContainer = [];
|
903 |
+
|
904 |
+
// Helper function to create a new notice.
|
905 |
+
PNotify.alert = function (options) {
|
906 |
+
return new PNotify(getDefaultArgs(options));
|
907 |
+
};
|
908 |
+
// Helper function to create a new notice (notice type).
|
909 |
+
PNotify.notice = function (options) {
|
910 |
+
return new PNotify(getDefaultArgs(options, 'notice'));
|
911 |
+
};
|
912 |
+
// Helper function to create a new notice (info type).
|
913 |
+
PNotify.info = function (options) {
|
914 |
+
return new PNotify(getDefaultArgs(options, 'info'));
|
915 |
+
};
|
916 |
+
// Helper function to create a new notice (success type).
|
917 |
+
PNotify.success = function (options) {
|
918 |
+
return new PNotify(getDefaultArgs(options, 'success'));
|
919 |
+
};
|
920 |
+
// Helper function to create a new notice (error type).
|
921 |
+
PNotify.error = function (options) {
|
922 |
+
return new PNotify(getDefaultArgs(options, 'error'));
|
923 |
+
};
|
924 |
+
|
925 |
+
PNotify.removeAll = function () {
|
926 |
+
PNotify.closeAll();
|
927 |
+
};
|
928 |
+
|
929 |
+
// Close all notices.
|
930 |
+
PNotify.closeAll = function () {
|
931 |
+
for (var i = 0; i < PNotify.notices.length; i++) {
|
932 |
+
if (PNotify.notices[i].close) {
|
933 |
+
PNotify.notices[i].close(false);
|
934 |
+
}
|
935 |
+
}
|
936 |
+
};
|
937 |
+
|
938 |
+
PNotify.removeStack = function (stack) {
|
939 |
+
PNotify.closeStack(stack);
|
940 |
+
};
|
941 |
+
|
942 |
+
// Close all notices in a single stack.
|
943 |
+
PNotify.closeStack = function (stack) {
|
944 |
+
if (stack === false) {
|
945 |
+
return;
|
946 |
+
}
|
947 |
+
for (var i = 0; i < PNotify.notices.length; i++) {
|
948 |
+
if (PNotify.notices[i].close && PNotify.notices[i].get().stack === stack) {
|
949 |
+
PNotify.notices[i].close(false);
|
950 |
+
}
|
951 |
+
}
|
952 |
+
};
|
953 |
+
|
954 |
+
// Position all notices.
|
955 |
+
PNotify.positionAll = function () {
|
956 |
+
// This timer is used for queueing this function so it doesn't run
|
957 |
+
// repeatedly.
|
958 |
+
if (posTimer) {
|
959 |
+
clearTimeout(posTimer);
|
960 |
+
}
|
961 |
+
posTimer = null;
|
962 |
+
// Reset the next position data.
|
963 |
+
if (PNotify.notices.length > 0) {
|
964 |
+
for (var i = 0; i < PNotify.notices.length; i++) {
|
965 |
+
var notice = PNotify.notices[i];
|
966 |
+
|
967 |
+
var _notice$get = notice.get(),
|
968 |
+
stack = _notice$get.stack;
|
969 |
+
|
970 |
+
if (!stack) {
|
971 |
+
continue;
|
972 |
+
}
|
973 |
+
if (stack.overlay) {
|
974 |
+
removeStackOverlay(stack);
|
975 |
+
}
|
976 |
+
stack.nextpos1 = stack.firstpos1;
|
977 |
+
stack.nextpos2 = stack.firstpos2;
|
978 |
+
stack.addpos2 = 0;
|
979 |
+
}
|
980 |
+
for (var _i = 0; _i < PNotify.notices.length; _i++) {
|
981 |
+
PNotify.notices[_i].position();
|
982 |
+
}
|
983 |
+
} else {
|
984 |
+
delete PNotify.defaultStack.nextpos1;
|
985 |
+
delete PNotify.defaultStack.nextpos2;
|
986 |
+
}
|
987 |
+
};
|
988 |
+
|
989 |
+
PNotify.styling = {
|
990 |
+
brighttheme: {
|
991 |
+
// Bright Theme doesn't require any UI libraries.
|
992 |
+
container: 'brighttheme',
|
993 |
+
notice: 'brighttheme-notice',
|
994 |
+
info: 'brighttheme-info',
|
995 |
+
success: 'brighttheme-success',
|
996 |
+
error: 'brighttheme-error'
|
997 |
+
},
|
998 |
+
bootstrap3: {
|
999 |
+
container: 'alert',
|
1000 |
+
notice: 'alert-warning',
|
1001 |
+
info: 'alert-info',
|
1002 |
+
success: 'alert-success',
|
1003 |
+
error: 'alert-danger',
|
1004 |
+
icon: 'ui-pnotify-icon-bs3'
|
1005 |
+
},
|
1006 |
+
bootstrap4: {
|
1007 |
+
container: 'alert',
|
1008 |
+
notice: 'alert-warning',
|
1009 |
+
info: 'alert-info',
|
1010 |
+
success: 'alert-success',
|
1011 |
+
error: 'alert-danger',
|
1012 |
+
icon: 'ui-pnotify-icon-bs4',
|
1013 |
+
title: 'ui-pnotify-title-bs4'
|
1014 |
+
}
|
1015 |
+
};
|
1016 |
+
|
1017 |
+
// icons are separate from the style, since bs4 doesn't come with any
|
1018 |
+
PNotify.icons = {
|
1019 |
+
brighttheme: {
|
1020 |
+
notice: 'brighttheme-icon-notice',
|
1021 |
+
info: 'brighttheme-icon-info',
|
1022 |
+
success: 'brighttheme-icon-success',
|
1023 |
+
error: 'brighttheme-icon-error'
|
1024 |
+
},
|
1025 |
+
bootstrap3: {
|
1026 |
+
notice: 'glyphicon glyphicon-exclamation-sign',
|
1027 |
+
info: 'glyphicon glyphicon-info-sign',
|
1028 |
+
success: 'glyphicon glyphicon-ok-sign',
|
1029 |
+
error: 'glyphicon glyphicon-warning-sign'
|
1030 |
+
},
|
1031 |
+
// User must have Font Awesome v4.0+
|
1032 |
+
fontawesome4: {
|
1033 |
+
notice: 'fa fa-exclamation-circle',
|
1034 |
+
info: 'fa fa-info-circle',
|
1035 |
+
success: 'fa fa-check-circle',
|
1036 |
+
error: 'fa fa-exclamation-triangle'
|
1037 |
+
},
|
1038 |
+
// User must have Font Awesome v5.0+
|
1039 |
+
fontawesome5: {
|
1040 |
+
notice: 'fas fa-exclamation-circle',
|
1041 |
+
info: 'fas fa-info-circle',
|
1042 |
+
success: 'fas fa-check-circle',
|
1043 |
+
error: 'fas fa-exclamation-triangle'
|
1044 |
+
}
|
1045 |
+
};
|
1046 |
+
|
1047 |
+
// Run the deferred actions once the DOM is ready.
|
1048 |
+
if (window && document.body) {
|
1049 |
+
onDocumentLoaded();
|
1050 |
+
} else {
|
1051 |
+
document.addEventListener('DOMContentLoaded', onDocumentLoaded);
|
1052 |
+
}
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
function add_css() {
|
1056 |
+
var style = createElement("style");
|
1057 |
+
style.id = 'svelte-1eldsjg-style';
|
1058 |
+
style.textContent = "body > .ui-pnotify{position:fixed;z-index:100040}body > .ui-pnotify.ui-pnotify-modal{z-index:100042}.ui-pnotify{position:absolute;height:auto;z-index:1;display:none}.ui-pnotify.ui-pnotify-modal{z-index:3}.ui-pnotify.ui-pnotify-in{display:block}.ui-pnotify.ui-pnotify-initial-hidden{display:block;visibility:hidden}.ui-pnotify.ui-pnotify-move{transition:left .5s ease, top .5s ease, right .5s ease, bottom .5s ease}.ui-pnotify.ui-pnotify-fade-slow{transition:opacity .4s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-slow.ui-pnotify.ui-pnotify-move{transition:opacity .4s linear, left .5s ease, top .5s ease, right .5s ease, bottom .5s ease}.ui-pnotify.ui-pnotify-fade-normal{transition:opacity .25s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-normal.ui-pnotify.ui-pnotify-move{transition:opacity .25s linear, left .5s ease, top .5s ease, right .5s ease, bottom .5s ease}.ui-pnotify.ui-pnotify-fade-fast{transition:opacity .1s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-fast.ui-pnotify.ui-pnotify-move{transition:opacity .1s linear, left .5s ease, top .5s ease, right .5s ease, bottom .5s ease}.ui-pnotify.ui-pnotify-fade-in{opacity:1}.ui-pnotify .ui-pnotify-shadow{-webkit-box-shadow:0px 6px 28px 0px rgba(0,0,0,0.1);-moz-box-shadow:0px 6px 28px 0px rgba(0,0,0,0.1);box-shadow:0px 6px 28px 0px rgba(0,0,0,0.1)}.ui-pnotify-container{background-position:0 0;padding:.8em;height:100%;margin:0}.ui-pnotify-container:after{content:\" \";visibility:hidden;display:block;height:0;clear:both}.ui-pnotify-container.ui-pnotify-sharp{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.ui-pnotify-title{display:block;white-space:pre-line;margin-bottom:.4em;margin-top:0}.ui-pnotify.ui-pnotify-with-icon .ui-pnotify-title,.ui-pnotify.ui-pnotify-with-icon .ui-pnotify-text{margin-left:24px}[dir=rtl] .ui-pnotify.ui-pnotify-with-icon .ui-pnotify-title,[dir=rtl] .ui-pnotify.ui-pnotify-with-icon .ui-pnotify-text{margin-right:24px;margin-left:0}.ui-pnotify-title-bs4{font-size:1.2rem}.ui-pnotify-text{display:block;white-space:pre-line}.ui-pnotify-icon,.ui-pnotify-icon span{display:block;float:left}[dir=rtl] .ui-pnotify-icon,[dir=rtl] .ui-pnotify-icon span{float:right}.ui-pnotify-icon-bs3 > span{position:relative;top:2px}.ui-pnotify-icon-bs4 > span{position:relative;top:4px}.ui-pnotify-modal-overlay{background-color:rgba(0, 0, 0, .4);top:0;left:0;position:absolute;height:100%;width:100%;z-index:2}body > .ui-pnotify-modal-overlay{position:fixed;z-index:100041}";
|
1059 |
+
append(document.head, style);
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
function get_each1_context(ctx, list, i) {
|
1063 |
+
var child_ctx = Object.create(ctx);
|
1064 |
+
child_ctx.module = list[i];
|
1065 |
+
return child_ctx;
|
1066 |
+
}
|
1067 |
+
|
1068 |
+
function get_each0_context(ctx, list, i) {
|
1069 |
+
var child_ctx = Object.create(ctx);
|
1070 |
+
child_ctx.module = list[i];
|
1071 |
+
return child_ctx;
|
1072 |
+
}
|
1073 |
+
|
1074 |
+
function create_main_fragment(component, ctx) {
|
1075 |
+
var div1,
|
1076 |
+
div0,
|
1077 |
+
each0_blocks_1 = [],
|
1078 |
+
each0_lookup = blankObject(),
|
1079 |
+
text0,
|
1080 |
+
text1,
|
1081 |
+
text2,
|
1082 |
+
text3,
|
1083 |
+
each1_blocks_1 = [],
|
1084 |
+
each1_lookup = blankObject(),
|
1085 |
+
div0_class_value,
|
1086 |
+
div0_style_value,
|
1087 |
+
div1_class_value;
|
1088 |
+
|
1089 |
+
var each0_value = ctx._modulesPrependContainer;
|
1090 |
+
|
1091 |
+
var get_key = function get_key(ctx) {
|
1092 |
+
return ctx.module.key;
|
1093 |
+
};
|
1094 |
+
|
1095 |
+
for (var i = 0; i < each0_value.length; i += 1) {
|
1096 |
+
var child_ctx = get_each0_context(ctx, each0_value, i);
|
1097 |
+
var key = get_key(child_ctx);
|
1098 |
+
each0_blocks_1[i] = each0_lookup[key] = create_each_block_1(component, key, child_ctx);
|
1099 |
+
}
|
1100 |
+
|
1101 |
+
var if_block0 = ctx.icon !== false && create_if_block_4(component, ctx);
|
1102 |
+
|
1103 |
+
var if_block1 = ctx.title !== false && create_if_block_2(component, ctx);
|
1104 |
+
|
1105 |
+
var if_block2 = ctx.text !== false && create_if_block(component, ctx);
|
1106 |
+
|
1107 |
+
var each1_value = ctx._modulesAppendContainer;
|
1108 |
+
|
1109 |
+
var get_key_1 = function get_key_1(ctx) {
|
1110 |
+
return ctx.module.key;
|
1111 |
+
};
|
1112 |
+
|
1113 |
+
for (var i = 0; i < each1_value.length; i += 1) {
|
1114 |
+
var _child_ctx = get_each1_context(ctx, each1_value, i);
|
1115 |
+
var _key4 = get_key_1(_child_ctx);
|
1116 |
+
each1_blocks_1[i] = each1_lookup[_key4] = create_each_block(component, _key4, _child_ctx);
|
1117 |
+
}
|
1118 |
+
|
1119 |
+
function mouseover_handler(event) {
|
1120 |
+
component.fire("mouseover", event);
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
function mouseout_handler(event) {
|
1124 |
+
component.fire("mouseout", event);
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
function mouseenter_handler(event) {
|
1128 |
+
component.fire("mouseenter", event);
|
1129 |
+
}
|
1130 |
+
|
1131 |
+
function mouseleave_handler(event) {
|
1132 |
+
component.fire("mouseleave", event);
|
1133 |
+
}
|
1134 |
+
|
1135 |
+
function mousemove_handler(event) {
|
1136 |
+
component.fire("mousemove", event);
|
1137 |
+
}
|
1138 |
+
|
1139 |
+
function mousedown_handler(event) {
|
1140 |
+
component.fire("mousedown", event);
|
1141 |
+
}
|
1142 |
+
|
1143 |
+
function mouseup_handler(event) {
|
1144 |
+
component.fire("mouseup", event);
|
1145 |
+
}
|
1146 |
+
|
1147 |
+
function click_handler(event) {
|
1148 |
+
component.fire("click", event);
|
1149 |
+
}
|
1150 |
+
|
1151 |
+
function dblclick_handler(event) {
|
1152 |
+
component.fire("dblclick", event);
|
1153 |
+
}
|
1154 |
+
|
1155 |
+
function focus_handler(event) {
|
1156 |
+
component.fire("focus", event);
|
1157 |
+
}
|
1158 |
+
|
1159 |
+
function blur_handler(event) {
|
1160 |
+
component.fire("blur", event);
|
1161 |
+
}
|
1162 |
+
|
1163 |
+
function touchstart_handler(event) {
|
1164 |
+
component.fire("touchstart", event);
|
1165 |
+
}
|
1166 |
+
|
1167 |
+
function touchmove_handler(event) {
|
1168 |
+
component.fire("touchmove", event);
|
1169 |
+
}
|
1170 |
+
|
1171 |
+
function touchend_handler(event) {
|
1172 |
+
component.fire("touchend", event);
|
1173 |
+
}
|
1174 |
+
|
1175 |
+
function touchcancel_handler(event) {
|
1176 |
+
component.fire("touchcancel", event);
|
1177 |
+
}
|
1178 |
+
|
1179 |
+
return {
|
1180 |
+
c: function c() {
|
1181 |
+
div1 = createElement("div");
|
1182 |
+
div0 = createElement("div");
|
1183 |
+
|
1184 |
+
for (i = 0; i < each0_blocks_1.length; i += 1) {
|
1185 |
+
each0_blocks_1[i].c();
|
1186 |
+
}text0 = createText("\n ");
|
1187 |
+
if (if_block0) if_block0.c();
|
1188 |
+
text1 = createText("\n ");
|
1189 |
+
if (if_block1) if_block1.c();
|
1190 |
+
text2 = createText("\n ");
|
1191 |
+
if (if_block2) if_block2.c();
|
1192 |
+
text3 = createText("\n ");
|
1193 |
+
|
1194 |
+
for (i = 0; i < each1_blocks_1.length; i += 1) {
|
1195 |
+
each1_blocks_1[i].c();
|
1196 |
+
}div0.className = div0_class_value = "\n ui-pnotify-container\n " + (ctx._styles.container ? ctx._styles.container : '') + "\n " + (ctx._styles[ctx.type] ? ctx._styles[ctx.type] : '') + "\n " + ctx.cornerClass + "\n " + (ctx.shadow ? 'ui-pnotify-shadow' : '') + "\n ";
|
1197 |
+
div0.style.cssText = div0_style_value = "" + ctx._widthStyle + " " + ctx._minHeightStyle;
|
1198 |
+
setAttribute(div0, "role", "alert");
|
1199 |
+
addListener(div1, "mouseover", mouseover_handler);
|
1200 |
+
addListener(div1, "mouseout", mouseout_handler);
|
1201 |
+
addListener(div1, "mouseenter", mouseenter_handler);
|
1202 |
+
addListener(div1, "mouseleave", mouseleave_handler);
|
1203 |
+
addListener(div1, "mousemove", mousemove_handler);
|
1204 |
+
addListener(div1, "mousedown", mousedown_handler);
|
1205 |
+
addListener(div1, "mouseup", mouseup_handler);
|
1206 |
+
addListener(div1, "click", click_handler);
|
1207 |
+
addListener(div1, "dblclick", dblclick_handler);
|
1208 |
+
addListener(div1, "focus", focus_handler);
|
1209 |
+
addListener(div1, "blur", blur_handler);
|
1210 |
+
addListener(div1, "touchstart", touchstart_handler);
|
1211 |
+
addListener(div1, "touchmove", touchmove_handler);
|
1212 |
+
addListener(div1, "touchend", touchend_handler);
|
1213 |
+
addListener(div1, "touchcancel", touchcancel_handler);
|
1214 |
+
div1.className = div1_class_value = "\n ui-pnotify\n " + (ctx.icon !== false ? 'ui-pnotify-with-icon' : '') + "\n " + (ctx._styles.element ? ctx._styles.element : '') + "\n " + ctx.addClass + "\n " + ctx._animatingClass + "\n " + ctx._moveClass + "\n " + (ctx.animation === 'fade' ? 'ui-pnotify-fade-' + ctx.animateSpeed : '') + "\n " + (ctx.stack && ctx.stack.modal ? 'ui-pnotify-modal' : '') + "\n " + ctx._moduleClasses.join(' ') + "\n ";
|
1215 |
+
setAttribute(div1, "aria-live", "assertive");
|
1216 |
+
setAttribute(div1, "role", "alertdialog");
|
1217 |
+
setAttribute(div1, "ui-pnotify", true);
|
1218 |
+
},
|
1219 |
+
m: function m(target, anchor) {
|
1220 |
+
insert(target, div1, anchor);
|
1221 |
+
append(div1, div0);
|
1222 |
+
|
1223 |
+
for (i = 0; i < each0_blocks_1.length; i += 1) {
|
1224 |
+
each0_blocks_1[i].m(div0, null);
|
1225 |
+
}append(div0, text0);
|
1226 |
+
if (if_block0) if_block0.m(div0, null);
|
1227 |
+
append(div0, text1);
|
1228 |
+
if (if_block1) if_block1.m(div0, null);
|
1229 |
+
append(div0, text2);
|
1230 |
+
if (if_block2) if_block2.m(div0, null);
|
1231 |
+
append(div0, text3);
|
1232 |
+
|
1233 |
+
for (i = 0; i < each1_blocks_1.length; i += 1) {
|
1234 |
+
each1_blocks_1[i].m(div0, null);
|
1235 |
+
}component.refs.container = div0;
|
1236 |
+
component.refs.elem = div1;
|
1237 |
+
},
|
1238 |
+
p: function p(changed, ctx) {
|
1239 |
+
var each0_value = ctx._modulesPrependContainer;
|
1240 |
+
each0_blocks_1 = updateKeyedEach(each0_blocks_1, component, changed, get_key, 1, ctx, each0_value, each0_lookup, div0, destroyBlock, create_each_block_1, "m", text0, get_each0_context);
|
1241 |
+
|
1242 |
+
if (ctx.icon !== false) {
|
1243 |
+
if (if_block0) {
|
1244 |
+
if_block0.p(changed, ctx);
|
1245 |
+
} else {
|
1246 |
+
if_block0 = create_if_block_4(component, ctx);
|
1247 |
+
if_block0.c();
|
1248 |
+
if_block0.m(div0, text1);
|
1249 |
+
}
|
1250 |
+
} else if (if_block0) {
|
1251 |
+
if_block0.d(1);
|
1252 |
+
if_block0 = null;
|
1253 |
+
}
|
1254 |
+
|
1255 |
+
if (ctx.title !== false) {
|
1256 |
+
if (if_block1) {
|
1257 |
+
if_block1.p(changed, ctx);
|
1258 |
+
} else {
|
1259 |
+
if_block1 = create_if_block_2(component, ctx);
|
1260 |
+
if_block1.c();
|
1261 |
+
if_block1.m(div0, text2);
|
1262 |
+
}
|
1263 |
+
} else if (if_block1) {
|
1264 |
+
if_block1.d(1);
|
1265 |
+
if_block1 = null;
|
1266 |
+
}
|
1267 |
+
|
1268 |
+
if (ctx.text !== false) {
|
1269 |
+
if (if_block2) {
|
1270 |
+
if_block2.p(changed, ctx);
|
1271 |
+
} else {
|
1272 |
+
if_block2 = create_if_block(component, ctx);
|
1273 |
+
if_block2.c();
|
1274 |
+
if_block2.m(div0, text3);
|
1275 |
+
}
|
1276 |
+
} else if (if_block2) {
|
1277 |
+
if_block2.d(1);
|
1278 |
+
if_block2 = null;
|
1279 |
+
}
|
1280 |
+
|
1281 |
+
var each1_value = ctx._modulesAppendContainer;
|
1282 |
+
each1_blocks_1 = updateKeyedEach(each1_blocks_1, component, changed, get_key_1, 1, ctx, each1_value, each1_lookup, div0, destroyBlock, create_each_block, "m", null, get_each1_context);
|
1283 |
+
|
1284 |
+
if ((changed._styles || changed.type || changed.cornerClass || changed.shadow) && div0_class_value !== (div0_class_value = "\n ui-pnotify-container\n " + (ctx._styles.container ? ctx._styles.container : '') + "\n " + (ctx._styles[ctx.type] ? ctx._styles[ctx.type] : '') + "\n " + ctx.cornerClass + "\n " + (ctx.shadow ? 'ui-pnotify-shadow' : '') + "\n ")) {
|
1285 |
+
div0.className = div0_class_value;
|
1286 |
+
}
|
1287 |
+
|
1288 |
+
if ((changed._widthStyle || changed._minHeightStyle) && div0_style_value !== (div0_style_value = "" + ctx._widthStyle + " " + ctx._minHeightStyle)) {
|
1289 |
+
div0.style.cssText = div0_style_value;
|
1290 |
+
}
|
1291 |
+
|
1292 |
+
if ((changed.icon || changed._styles || changed.addClass || changed._animatingClass || changed._moveClass || changed.animation || changed.animateSpeed || changed.stack || changed._moduleClasses) && div1_class_value !== (div1_class_value = "\n ui-pnotify\n " + (ctx.icon !== false ? 'ui-pnotify-with-icon' : '') + "\n " + (ctx._styles.element ? ctx._styles.element : '') + "\n " + ctx.addClass + "\n " + ctx._animatingClass + "\n " + ctx._moveClass + "\n " + (ctx.animation === 'fade' ? 'ui-pnotify-fade-' + ctx.animateSpeed : '') + "\n " + (ctx.stack && ctx.stack.modal ? 'ui-pnotify-modal' : '') + "\n " + ctx._moduleClasses.join(' ') + "\n ")) {
|
1293 |
+
div1.className = div1_class_value;
|
1294 |
+
}
|
1295 |
+
},
|
1296 |
+
d: function d(detach) {
|
1297 |
+
if (detach) {
|
1298 |
+
detachNode(div1);
|
1299 |
+
}
|
1300 |
+
|
1301 |
+
for (i = 0; i < each0_blocks_1.length; i += 1) {
|
1302 |
+
each0_blocks_1[i].d();
|
1303 |
+
}if (if_block0) if_block0.d();
|
1304 |
+
if (if_block1) if_block1.d();
|
1305 |
+
if (if_block2) if_block2.d();
|
1306 |
+
|
1307 |
+
for (i = 0; i < each1_blocks_1.length; i += 1) {
|
1308 |
+
each1_blocks_1[i].d();
|
1309 |
+
}if (component.refs.container === div0) component.refs.container = null;
|
1310 |
+
removeListener(div1, "mouseover", mouseover_handler);
|
1311 |
+
removeListener(div1, "mouseout", mouseout_handler);
|
1312 |
+
removeListener(div1, "mouseenter", mouseenter_handler);
|
1313 |
+
removeListener(div1, "mouseleave", mouseleave_handler);
|
1314 |
+
removeListener(div1, "mousemove", mousemove_handler);
|
1315 |
+
removeListener(div1, "mousedown", mousedown_handler);
|
1316 |
+
removeListener(div1, "mouseup", mouseup_handler);
|
1317 |
+
removeListener(div1, "click", click_handler);
|
1318 |
+
removeListener(div1, "dblclick", dblclick_handler);
|
1319 |
+
removeListener(div1, "focus", focus_handler);
|
1320 |
+
removeListener(div1, "blur", blur_handler);
|
1321 |
+
removeListener(div1, "touchstart", touchstart_handler);
|
1322 |
+
removeListener(div1, "touchmove", touchmove_handler);
|
1323 |
+
removeListener(div1, "touchend", touchend_handler);
|
1324 |
+
removeListener(div1, "touchcancel", touchcancel_handler);
|
1325 |
+
if (component.refs.elem === div1) component.refs.elem = null;
|
1326 |
+
}
|
1327 |
+
};
|
1328 |
+
}
|
1329 |
+
|
1330 |
+
// (53:4) {#each _modulesPrependContainer as module (module.key)}
|
1331 |
+
function create_each_block_1(component, key_1, ctx) {
|
1332 |
+
var first, switch_instance_anchor;
|
1333 |
+
|
1334 |
+
var switch_value = ctx.module;
|
1335 |
+
|
1336 |
+
function switch_props(ctx) {
|
1337 |
+
return {
|
1338 |
+
root: component.root,
|
1339 |
+
store: component.store
|
1340 |
+
};
|
1341 |
+
}
|
1342 |
+
|
1343 |
+
if (switch_value) {
|
1344 |
+
var switch_instance = new switch_value(switch_props(ctx));
|
1345 |
+
}
|
1346 |
+
|
1347 |
+
function switch_instance_init(event) {
|
1348 |
+
component.initModule(event.module);
|
1349 |
+
}
|
1350 |
+
|
1351 |
+
if (switch_instance) switch_instance.on("init", switch_instance_init);
|
1352 |
+
|
1353 |
+
return {
|
1354 |
+
key: key_1,
|
1355 |
+
|
1356 |
+
first: null,
|
1357 |
+
|
1358 |
+
c: function c() {
|
1359 |
+
first = createComment();
|
1360 |
+
if (switch_instance) switch_instance._fragment.c();
|
1361 |
+
switch_instance_anchor = createComment();
|
1362 |
+
this.first = first;
|
1363 |
+
},
|
1364 |
+
m: function m(target, anchor) {
|
1365 |
+
insert(target, first, anchor);
|
1366 |
+
|
1367 |
+
if (switch_instance) {
|
1368 |
+
switch_instance._mount(target, anchor);
|
1369 |
+
}
|
1370 |
+
|
1371 |
+
insert(target, switch_instance_anchor, anchor);
|
1372 |
+
},
|
1373 |
+
p: function p(changed, ctx) {
|
1374 |
+
if (switch_value !== (switch_value = ctx.module)) {
|
1375 |
+
if (switch_instance) {
|
1376 |
+
switch_instance.destroy();
|
1377 |
+
}
|
1378 |
+
|
1379 |
+
if (switch_value) {
|
1380 |
+
switch_instance = new switch_value(switch_props(ctx));
|
1381 |
+
switch_instance._fragment.c();
|
1382 |
+
switch_instance._mount(switch_instance_anchor.parentNode, switch_instance_anchor);
|
1383 |
+
|
1384 |
+
switch_instance.on("init", switch_instance_init);
|
1385 |
+
} else {
|
1386 |
+
switch_instance = null;
|
1387 |
+
}
|
1388 |
+
}
|
1389 |
+
},
|
1390 |
+
d: function d(detach) {
|
1391 |
+
if (detach) {
|
1392 |
+
detachNode(first);
|
1393 |
+
detachNode(switch_instance_anchor);
|
1394 |
+
}
|
1395 |
+
|
1396 |
+
if (switch_instance) switch_instance.destroy(detach);
|
1397 |
+
}
|
1398 |
+
};
|
1399 |
+
}
|
1400 |
+
|
1401 |
+
// (56:4) {#if icon !== false}
|
1402 |
+
function create_if_block_4(component, ctx) {
|
1403 |
+
var div, span, span_class_value, div_class_value;
|
1404 |
+
|
1405 |
+
return {
|
1406 |
+
c: function c() {
|
1407 |
+
div = createElement("div");
|
1408 |
+
span = createElement("span");
|
1409 |
+
span.className = span_class_value = ctx.icon === true ? ctx._icons[ctx.type] ? ctx._icons[ctx.type] : '' : ctx.icon;
|
1410 |
+
div.className = div_class_value = "ui-pnotify-icon " + (ctx._styles.icon ? ctx._styles.icon : '');
|
1411 |
+
},
|
1412 |
+
m: function m(target, anchor) {
|
1413 |
+
insert(target, div, anchor);
|
1414 |
+
append(div, span);
|
1415 |
+
component.refs.iconContainer = div;
|
1416 |
+
},
|
1417 |
+
p: function p(changed, ctx) {
|
1418 |
+
if ((changed.icon || changed._icons || changed.type) && span_class_value !== (span_class_value = ctx.icon === true ? ctx._icons[ctx.type] ? ctx._icons[ctx.type] : '' : ctx.icon)) {
|
1419 |
+
span.className = span_class_value;
|
1420 |
+
}
|
1421 |
+
|
1422 |
+
if (changed._styles && div_class_value !== (div_class_value = "ui-pnotify-icon " + (ctx._styles.icon ? ctx._styles.icon : ''))) {
|
1423 |
+
div.className = div_class_value;
|
1424 |
+
}
|
1425 |
+
},
|
1426 |
+
d: function d(detach) {
|
1427 |
+
if (detach) {
|
1428 |
+
detachNode(div);
|
1429 |
+
}
|
1430 |
+
|
1431 |
+
if (component.refs.iconContainer === div) component.refs.iconContainer = null;
|
1432 |
+
}
|
1433 |
+
};
|
1434 |
+
}
|
1435 |
+
|
1436 |
+
// (61:4) {#if title !== false}
|
1437 |
+
function create_if_block_2(component, ctx) {
|
1438 |
+
var h4, h4_class_value;
|
1439 |
+
|
1440 |
+
function select_block_type(ctx) {
|
1441 |
+
if (ctx.titleTrusted) return create_if_block_3;
|
1442 |
+
return create_else_block_1;
|
1443 |
+
}
|
1444 |
+
|
1445 |
+
var current_block_type = select_block_type(ctx);
|
1446 |
+
var if_block = current_block_type(component, ctx);
|
1447 |
+
|
1448 |
+
return {
|
1449 |
+
c: function c() {
|
1450 |
+
h4 = createElement("h4");
|
1451 |
+
if_block.c();
|
1452 |
+
h4.className = h4_class_value = "ui-pnotify-title " + (ctx._styles.title ? ctx._styles.title : '');
|
1453 |
+
},
|
1454 |
+
m: function m(target, anchor) {
|
1455 |
+
insert(target, h4, anchor);
|
1456 |
+
if_block.m(h4, null);
|
1457 |
+
component.refs.titleContainer = h4;
|
1458 |
+
},
|
1459 |
+
p: function p(changed, ctx) {
|
1460 |
+
if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {
|
1461 |
+
if_block.p(changed, ctx);
|
1462 |
+
} else {
|
1463 |
+
if_block.d(1);
|
1464 |
+
if_block = current_block_type(component, ctx);
|
1465 |
+
if_block.c();
|
1466 |
+
if_block.m(h4, null);
|
1467 |
+
}
|
1468 |
+
|
1469 |
+
if (changed._styles && h4_class_value !== (h4_class_value = "ui-pnotify-title " + (ctx._styles.title ? ctx._styles.title : ''))) {
|
1470 |
+
h4.className = h4_class_value;
|
1471 |
+
}
|
1472 |
+
},
|
1473 |
+
d: function d(detach) {
|
1474 |
+
if (detach) {
|
1475 |
+
detachNode(h4);
|
1476 |
+
}
|
1477 |
+
|
1478 |
+
if_block.d();
|
1479 |
+
if (component.refs.titleContainer === h4) component.refs.titleContainer = null;
|
1480 |
+
}
|
1481 |
+
};
|
1482 |
+
}
|
1483 |
+
|
1484 |
+
// (65:8) {:else}
|
1485 |
+
function create_else_block_1(component, ctx) {
|
1486 |
+
var text;
|
1487 |
+
|
1488 |
+
return {
|
1489 |
+
c: function c() {
|
1490 |
+
text = createText(ctx.title);
|
1491 |
+
},
|
1492 |
+
m: function m(target, anchor) {
|
1493 |
+
insert(target, text, anchor);
|
1494 |
+
},
|
1495 |
+
p: function p(changed, ctx) {
|
1496 |
+
if (changed.title) {
|
1497 |
+
setData(text, ctx.title);
|
1498 |
+
}
|
1499 |
+
},
|
1500 |
+
d: function d(detach) {
|
1501 |
+
if (detach) {
|
1502 |
+
detachNode(text);
|
1503 |
+
}
|
1504 |
+
}
|
1505 |
+
};
|
1506 |
+
}
|
1507 |
+
|
1508 |
+
// (63:8) {#if titleTrusted}
|
1509 |
+
function create_if_block_3(component, ctx) {
|
1510 |
+
var raw_before, raw_after;
|
1511 |
+
|
1512 |
+
return {
|
1513 |
+
c: function c() {
|
1514 |
+
raw_before = createElement('noscript');
|
1515 |
+
raw_after = createElement('noscript');
|
1516 |
+
},
|
1517 |
+
m: function m(target, anchor) {
|
1518 |
+
insert(target, raw_before, anchor);
|
1519 |
+
raw_before.insertAdjacentHTML("afterend", ctx.title);
|
1520 |
+
insert(target, raw_after, anchor);
|
1521 |
+
},
|
1522 |
+
p: function p(changed, ctx) {
|
1523 |
+
if (changed.title) {
|
1524 |
+
detachBetween(raw_before, raw_after);
|
1525 |
+
raw_before.insertAdjacentHTML("afterend", ctx.title);
|
1526 |
+
}
|
1527 |
+
},
|
1528 |
+
d: function d(detach) {
|
1529 |
+
if (detach) {
|
1530 |
+
detachBetween(raw_before, raw_after);
|
1531 |
+
detachNode(raw_before);
|
1532 |
+
detachNode(raw_after);
|
1533 |
+
}
|
1534 |
+
}
|
1535 |
+
};
|
1536 |
+
}
|
1537 |
+
|
1538 |
+
// (70:4) {#if text !== false}
|
1539 |
+
function create_if_block(component, ctx) {
|
1540 |
+
var div, div_class_value;
|
1541 |
+
|
1542 |
+
function select_block_type_1(ctx) {
|
1543 |
+
if (ctx.textTrusted) return create_if_block_1;
|
1544 |
+
return create_else_block;
|
1545 |
+
}
|
1546 |
+
|
1547 |
+
var current_block_type = select_block_type_1(ctx);
|
1548 |
+
var if_block = current_block_type(component, ctx);
|
1549 |
+
|
1550 |
+
return {
|
1551 |
+
c: function c() {
|
1552 |
+
div = createElement("div");
|
1553 |
+
if_block.c();
|
1554 |
+
div.className = div_class_value = "ui-pnotify-text " + (ctx._styles.text ? ctx._styles.text : '');
|
1555 |
+
setAttribute(div, "role", "alert");
|
1556 |
+
},
|
1557 |
+
m: function m(target, anchor) {
|
1558 |
+
insert(target, div, anchor);
|
1559 |
+
if_block.m(div, null);
|
1560 |
+
component.refs.textContainer = div;
|
1561 |
+
},
|
1562 |
+
p: function p(changed, ctx) {
|
1563 |
+
if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) {
|
1564 |
+
if_block.p(changed, ctx);
|
1565 |
+
} else {
|
1566 |
+
if_block.d(1);
|
1567 |
+
if_block = current_block_type(component, ctx);
|
1568 |
+
if_block.c();
|
1569 |
+
if_block.m(div, null);
|
1570 |
+
}
|
1571 |
+
|
1572 |
+
if (changed._styles && div_class_value !== (div_class_value = "ui-pnotify-text " + (ctx._styles.text ? ctx._styles.text : ''))) {
|
1573 |
+
div.className = div_class_value;
|
1574 |
+
}
|
1575 |
+
},
|
1576 |
+
d: function d(detach) {
|
1577 |
+
if (detach) {
|
1578 |
+
detachNode(div);
|
1579 |
+
}
|
1580 |
+
|
1581 |
+
if_block.d();
|
1582 |
+
if (component.refs.textContainer === div) component.refs.textContainer = null;
|
1583 |
+
}
|
1584 |
+
};
|
1585 |
+
}
|
1586 |
+
|
1587 |
+
// (74:8) {:else}
|
1588 |
+
function create_else_block(component, ctx) {
|
1589 |
+
var text;
|
1590 |
+
|
1591 |
+
return {
|
1592 |
+
c: function c() {
|
1593 |
+
text = createText(ctx.text);
|
1594 |
+
},
|
1595 |
+
m: function m(target, anchor) {
|
1596 |
+
insert(target, text, anchor);
|
1597 |
+
},
|
1598 |
+
p: function p(changed, ctx) {
|
1599 |
+
if (changed.text) {
|
1600 |
+
setData(text, ctx.text);
|
1601 |
+
}
|
1602 |
+
},
|
1603 |
+
d: function d(detach) {
|
1604 |
+
if (detach) {
|
1605 |
+
detachNode(text);
|
1606 |
+
}
|
1607 |
+
}
|
1608 |
+
};
|
1609 |
+
}
|
1610 |
+
|
1611 |
+
// (72:8) {#if textTrusted}
|
1612 |
+
function create_if_block_1(component, ctx) {
|
1613 |
+
var raw_before, raw_after;
|
1614 |
+
|
1615 |
+
return {
|
1616 |
+
c: function c() {
|
1617 |
+
raw_before = createElement('noscript');
|
1618 |
+
raw_after = createElement('noscript');
|
1619 |
+
},
|
1620 |
+
m: function m(target, anchor) {
|
1621 |
+
insert(target, raw_before, anchor);
|
1622 |
+
raw_before.insertAdjacentHTML("afterend", ctx.text);
|
1623 |
+
insert(target, raw_after, anchor);
|
1624 |
+
},
|
1625 |
+
p: function p(changed, ctx) {
|
1626 |
+
if (changed.text) {
|
1627 |
+
detachBetween(raw_before, raw_after);
|
1628 |
+
raw_before.insertAdjacentHTML("afterend", ctx.text);
|
1629 |
+
}
|
1630 |
+
},
|
1631 |
+
d: function d(detach) {
|
1632 |
+
if (detach) {
|
1633 |
+
detachBetween(raw_before, raw_after);
|
1634 |
+
detachNode(raw_before);
|
1635 |
+
detachNode(raw_after);
|
1636 |
+
}
|
1637 |
+
}
|
1638 |
+
};
|
1639 |
+
}
|
1640 |
+
|
1641 |
+
// (79:4) {#each _modulesAppendContainer as module (module.key)}
|
1642 |
+
function create_each_block(component, key_1, ctx) {
|
1643 |
+
var first, switch_instance_anchor;
|
1644 |
+
|
1645 |
+
var switch_value = ctx.module;
|
1646 |
+
|
1647 |
+
function switch_props(ctx) {
|
1648 |
+
return {
|
1649 |
+
root: component.root,
|
1650 |
+
store: component.store
|
1651 |
+
};
|
1652 |
+
}
|
1653 |
+
|
1654 |
+
if (switch_value) {
|
1655 |
+
var switch_instance = new switch_value(switch_props(ctx));
|
1656 |
+
}
|
1657 |
+
|
1658 |
+
function switch_instance_init(event) {
|
1659 |
+
component.initModule(event.module);
|
1660 |
+
}
|
1661 |
+
|
1662 |
+
if (switch_instance) switch_instance.on("init", switch_instance_init);
|
1663 |
+
|
1664 |
+
return {
|
1665 |
+
key: key_1,
|
1666 |
+
|
1667 |
+
first: null,
|
1668 |
+
|
1669 |
+
c: function c() {
|
1670 |
+
first = createComment();
|
1671 |
+
if (switch_instance) switch_instance._fragment.c();
|
1672 |
+
switch_instance_anchor = createComment();
|
1673 |
+
this.first = first;
|
1674 |
+
},
|
1675 |
+
m: function m(target, anchor) {
|
1676 |
+
insert(target, first, anchor);
|
1677 |
+
|
1678 |
+
if (switch_instance) {
|
1679 |
+
switch_instance._mount(target, anchor);
|
1680 |
+
}
|
1681 |
+
|
1682 |
+
insert(target, switch_instance_anchor, anchor);
|
1683 |
+
},
|
1684 |
+
p: function p(changed, ctx) {
|
1685 |
+
if (switch_value !== (switch_value = ctx.module)) {
|
1686 |
+
if (switch_instance) {
|
1687 |
+
switch_instance.destroy();
|
1688 |
+
}
|
1689 |
+
|
1690 |
+
if (switch_value) {
|
1691 |
+
switch_instance = new switch_value(switch_props(ctx));
|
1692 |
+
switch_instance._fragment.c();
|
1693 |
+
switch_instance._mount(switch_instance_anchor.parentNode, switch_instance_anchor);
|
1694 |
+
|
1695 |
+
switch_instance.on("init", switch_instance_init);
|
1696 |
+
} else {
|
1697 |
+
switch_instance = null;
|
1698 |
+
}
|
1699 |
+
}
|
1700 |
+
},
|
1701 |
+
d: function d(detach) {
|
1702 |
+
if (detach) {
|
1703 |
+
detachNode(first);
|
1704 |
+
detachNode(switch_instance_anchor);
|
1705 |
+
}
|
1706 |
+
|
1707 |
+
if (switch_instance) switch_instance.destroy(detach);
|
1708 |
+
}
|
1709 |
+
};
|
1710 |
+
}
|
1711 |
+
|
1712 |
+
function PNotify_1(options) {
|
1713 |
+
var _this7 = this;
|
1714 |
+
|
1715 |
+
init(this, options);
|
1716 |
+
this.refs = {};
|
1717 |
+
this._state = assign(data(), options.data);
|
1718 |
+
|
1719 |
+
this._recompute({ styling: 1, icons: 1, width: 1, minHeight: 1 }, this._state);
|
1720 |
+
this._intro = true;
|
1721 |
+
|
1722 |
+
if (!document.getElementById("svelte-1eldsjg-style")) add_css();
|
1723 |
+
|
1724 |
+
this._fragment = create_main_fragment(this, this._state);
|
1725 |
+
|
1726 |
+
this.root._oncreate.push(function () {
|
1727 |
+
oncreate.call(_this7);
|
1728 |
+
_this7.fire("update", { changed: assignTrue({}, _this7._state), current: _this7._state });
|
1729 |
+
});
|
1730 |
+
|
1731 |
+
if (options.target) {
|
1732 |
+
this._fragment.c();
|
1733 |
+
this._mount(options.target, options.anchor);
|
1734 |
+
|
1735 |
+
flush(this);
|
1736 |
+
}
|
1737 |
+
}
|
1738 |
+
|
1739 |
+
assign(PNotify_1.prototype, {
|
1740 |
+
destroy: destroy,
|
1741 |
+
get: get,
|
1742 |
+
fire: fire,
|
1743 |
+
on: on,
|
1744 |
+
set: set,
|
1745 |
+
_set: _set,
|
1746 |
+
_stage: _stage,
|
1747 |
+
_mount: _mount,
|
1748 |
+
_differs: _differs
|
1749 |
+
});
|
1750 |
+
assign(PNotify_1.prototype, methods);
|
1751 |
+
|
1752 |
+
PNotify_1.prototype._recompute = function _recompute(changed, state) {
|
1753 |
+
if (changed.styling) {
|
1754 |
+
if (this._differs(state._styles, state._styles = _styles(state))) changed._styles = true;
|
1755 |
+
}
|
1756 |
+
|
1757 |
+
if (changed.icons) {
|
1758 |
+
if (this._differs(state._icons, state._icons = _icons(state))) changed._icons = true;
|
1759 |
+
}
|
1760 |
+
|
1761 |
+
if (changed.width) {
|
1762 |
+
if (this._differs(state._widthStyle, state._widthStyle = _widthStyle(state))) changed._widthStyle = true;
|
1763 |
+
}
|
1764 |
+
|
1765 |
+
if (changed.minHeight) {
|
1766 |
+
if (this._differs(state._minHeightStyle, state._minHeightStyle = _minHeightStyle(state))) changed._minHeightStyle = true;
|
1767 |
+
}
|
1768 |
+
};
|
1769 |
+
|
1770 |
+
setup(PNotify_1);
|
1771 |
+
|
1772 |
+
function createElement(name) {
|
1773 |
+
return document.createElement(name);
|
1774 |
+
}
|
1775 |
+
|
1776 |
+
function append(target, node) {
|
1777 |
+
target.appendChild(node);
|
1778 |
+
}
|
1779 |
+
|
1780 |
+
function blankObject() {
|
1781 |
+
return Object.create(null);
|
1782 |
+
}
|
1783 |
+
|
1784 |
+
function createText(data) {
|
1785 |
+
return document.createTextNode(data);
|
1786 |
+
}
|
1787 |
+
|
1788 |
+
function setAttribute(node, attribute, value) {
|
1789 |
+
if (value == null) node.removeAttribute(attribute);else node.setAttribute(attribute, value);
|
1790 |
+
}
|
1791 |
+
|
1792 |
+
function addListener(node, event, handler, options) {
|
1793 |
+
node.addEventListener(event, handler, options);
|
1794 |
+
}
|
1795 |
+
|
1796 |
+
function insert(target, node, anchor) {
|
1797 |
+
target.insertBefore(node, anchor);
|
1798 |
+
}
|
1799 |
+
|
1800 |
+
function updateKeyedEach(old_blocks, component, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, intro_method, next, get_context) {
|
1801 |
+
var o = old_blocks.length;
|
1802 |
+
var n = list.length;
|
1803 |
+
|
1804 |
+
var i = o;
|
1805 |
+
var old_indexes = {};
|
1806 |
+
while (i--) {
|
1807 |
+
old_indexes[old_blocks[i].key] = i;
|
1808 |
+
}var new_blocks = [];
|
1809 |
+
var new_lookup = {};
|
1810 |
+
var deltas = {};
|
1811 |
+
|
1812 |
+
var i = n;
|
1813 |
+
while (i--) {
|
1814 |
+
var child_ctx = get_context(ctx, list, i);
|
1815 |
+
var key = get_key(child_ctx);
|
1816 |
+
var block = lookup[key];
|
1817 |
+
|
1818 |
+
if (!block) {
|
1819 |
+
block = create_each_block(component, key, child_ctx);
|
1820 |
+
block.c();
|
1821 |
+
} else if (dynamic) {
|
1822 |
+
block.p(changed, child_ctx);
|
1823 |
+
}
|
1824 |
+
|
1825 |
+
new_blocks[i] = new_lookup[key] = block;
|
1826 |
+
|
1827 |
+
if (key in old_indexes) deltas[key] = Math.abs(i - old_indexes[key]);
|
1828 |
+
}
|
1829 |
+
|
1830 |
+
var will_move = {};
|
1831 |
+
var did_move = {};
|
1832 |
+
|
1833 |
+
function insert(block) {
|
1834 |
+
block[intro_method](node, next);
|
1835 |
+
lookup[block.key] = block;
|
1836 |
+
next = block.first;
|
1837 |
+
n--;
|
1838 |
+
}
|
1839 |
+
|
1840 |
+
while (o && n) {
|
1841 |
+
var new_block = new_blocks[n - 1];
|
1842 |
+
var old_block = old_blocks[o - 1];
|
1843 |
+
var new_key = new_block.key;
|
1844 |
+
var old_key = old_block.key;
|
1845 |
+
|
1846 |
+
if (new_block === old_block) {
|
1847 |
+
// do nothing
|
1848 |
+
next = new_block.first;
|
1849 |
+
o--;
|
1850 |
+
n--;
|
1851 |
+
} else if (!new_lookup[old_key]) {
|
1852 |
+
// remove old block
|
1853 |
+
destroy(old_block, lookup);
|
1854 |
+
o--;
|
1855 |
+
} else if (!lookup[new_key] || will_move[new_key]) {
|
1856 |
+
insert(new_block);
|
1857 |
+
} else if (did_move[old_key]) {
|
1858 |
+
o--;
|
1859 |
+
} else if (deltas[new_key] > deltas[old_key]) {
|
1860 |
+
did_move[new_key] = true;
|
1861 |
+
insert(new_block);
|
1862 |
+
} else {
|
1863 |
+
will_move[old_key] = true;
|
1864 |
+
o--;
|
1865 |
+
}
|
1866 |
+
}
|
1867 |
+
|
1868 |
+
while (o--) {
|
1869 |
+
var old_block = old_blocks[o];
|
1870 |
+
if (!new_lookup[old_block.key]) destroy(old_block, lookup);
|
1871 |
+
}
|
1872 |
+
|
1873 |
+
while (n) {
|
1874 |
+
insert(new_blocks[n - 1]);
|
1875 |
+
}return new_blocks;
|
1876 |
+
}
|
1877 |
+
|
1878 |
+
function destroyBlock(block, lookup) {
|
1879 |
+
block.d(1);
|
1880 |
+
lookup[block.key] = null;
|
1881 |
+
}
|
1882 |
+
|
1883 |
+
function detachNode(node) {
|
1884 |
+
node.parentNode.removeChild(node);
|
1885 |
+
}
|
1886 |
+
|
1887 |
+
function removeListener(node, event, handler, options) {
|
1888 |
+
node.removeEventListener(event, handler, options);
|
1889 |
+
}
|
1890 |
+
|
1891 |
+
function createComment() {
|
1892 |
+
return document.createComment('');
|
1893 |
+
}
|
1894 |
+
|
1895 |
+
function setData(text, data) {
|
1896 |
+
text.data = '' + data;
|
1897 |
+
}
|
1898 |
+
|
1899 |
+
function detachBetween(before, after) {
|
1900 |
+
while (before.nextSibling && before.nextSibling !== after) {
|
1901 |
+
before.parentNode.removeChild(before.nextSibling);
|
1902 |
+
}
|
1903 |
+
}
|
1904 |
+
|
1905 |
+
function init(component, options) {
|
1906 |
+
component._handlers = blankObject();
|
1907 |
+
component._slots = blankObject();
|
1908 |
+
component._bind = options._bind;
|
1909 |
+
component._staged = {};
|
1910 |
+
|
1911 |
+
component.options = options;
|
1912 |
+
component.root = options.root || component;
|
1913 |
+
component.store = options.store || component.root.store;
|
1914 |
+
|
1915 |
+
if (!options.root) {
|
1916 |
+
component._beforecreate = [];
|
1917 |
+
component._oncreate = [];
|
1918 |
+
component._aftercreate = [];
|
1919 |
+
}
|
1920 |
+
}
|
1921 |
+
|
1922 |
+
function assign(tar, src) {
|
1923 |
+
for (var k in src) {
|
1924 |
+
tar[k] = src[k];
|
1925 |
+
}return tar;
|
1926 |
+
}
|
1927 |
+
|
1928 |
+
function assignTrue(tar, src) {
|
1929 |
+
for (var k in src) {
|
1930 |
+
tar[k] = 1;
|
1931 |
+
}return tar;
|
1932 |
+
}
|
1933 |
+
|
1934 |
+
function flush(component) {
|
1935 |
+
component._lock = true;
|
1936 |
+
callAll(component._beforecreate);
|
1937 |
+
callAll(component._oncreate);
|
1938 |
+
callAll(component._aftercreate);
|
1939 |
+
component._lock = false;
|
1940 |
+
}
|
1941 |
+
|
1942 |
+
function destroy(detach) {
|
1943 |
+
this.destroy = noop;
|
1944 |
+
this.fire('destroy');
|
1945 |
+
this.set = noop;
|
1946 |
+
|
1947 |
+
this._fragment.d(detach !== false);
|
1948 |
+
this._fragment = null;
|
1949 |
+
this._state = {};
|
1950 |
+
}
|
1951 |
+
|
1952 |
+
function get() {
|
1953 |
+
return this._state;
|
1954 |
+
}
|
1955 |
+
|
1956 |
+
function fire(eventName, data) {
|
1957 |
+
var handlers = eventName in this._handlers && this._handlers[eventName].slice();
|
1958 |
+
if (!handlers) return;
|
1959 |
+
|
1960 |
+
for (var i = 0; i < handlers.length; i += 1) {
|
1961 |
+
var handler = handlers[i];
|
1962 |
+
|
1963 |
+
if (!handler.__calling) {
|
1964 |
+
try {
|
1965 |
+
handler.__calling = true;
|
1966 |
+
handler.call(this, data);
|
1967 |
+
} finally {
|
1968 |
+
handler.__calling = false;
|
1969 |
+
}
|
1970 |
+
}
|
1971 |
+
}
|
1972 |
+
}
|
1973 |
+
|
1974 |
+
function on(eventName, handler) {
|
1975 |
+
var handlers = this._handlers[eventName] || (this._handlers[eventName] = []);
|
1976 |
+
handlers.push(handler);
|
1977 |
+
|
1978 |
+
return {
|
1979 |
+
cancel: function cancel() {
|
1980 |
+
var index = handlers.indexOf(handler);
|
1981 |
+
if (~index) handlers.splice(index, 1);
|
1982 |
+
}
|
1983 |
+
};
|
1984 |
+
}
|
1985 |
+
|
1986 |
+
function set(newState) {
|
1987 |
+
this._set(assign({}, newState));
|
1988 |
+
if (this.root._lock) return;
|
1989 |
+
flush(this.root);
|
1990 |
+
}
|
1991 |
+
|
1992 |
+
function _set(newState) {
|
1993 |
+
var oldState = this._state,
|
1994 |
+
changed = {},
|
1995 |
+
dirty = false;
|
1996 |
+
|
1997 |
+
newState = assign(this._staged, newState);
|
1998 |
+
this._staged = {};
|
1999 |
+
|
2000 |
+
for (var key in newState) {
|
2001 |
+
if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true;
|
2002 |
+
}
|
2003 |
+
if (!dirty) return;
|
2004 |
+
|
2005 |
+
this._state = assign(assign({}, oldState), newState);
|
2006 |
+
this._recompute(changed, this._state);
|
2007 |
+
if (this._bind) this._bind(changed, this._state);
|
2008 |
+
|
2009 |
+
if (this._fragment) {
|
2010 |
+
this.fire("state", { changed: changed, current: this._state, previous: oldState });
|
2011 |
+
this._fragment.p(changed, this._state);
|
2012 |
+
this.fire("update", { changed: changed, current: this._state, previous: oldState });
|
2013 |
+
}
|
2014 |
+
}
|
2015 |
+
|
2016 |
+
function _stage(newState) {
|
2017 |
+
assign(this._staged, newState);
|
2018 |
+
}
|
2019 |
+
|
2020 |
+
function _mount(target, anchor) {
|
2021 |
+
this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null);
|
2022 |
+
}
|
2023 |
+
|
2024 |
+
function _differs(a, b) {
|
2025 |
+
return a != a ? b == b : a !== b || a && (typeof a === 'undefined' ? 'undefined' : _typeof(a)) === 'object' || typeof a === 'function';
|
2026 |
+
}
|
2027 |
+
|
2028 |
+
function callAll(fns) {
|
2029 |
+
while (fns && fns.length) {
|
2030 |
+
fns.shift()();
|
2031 |
+
}
|
2032 |
+
}
|
2033 |
+
|
2034 |
+
function noop() {}
|
2035 |
+
return PNotify_1;
|
2036 |
+
}();
|
2037 |
+
//# sourceMappingURL=PNotify.js.map
|
components/assets-manager/assets/js/assets-conditions.js
ADDED
@@ -0,0 +1,783 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function($) {
|
2 |
+
class cEditorCondition {
|
3 |
+
constructor(editor, group, options) {
|
4 |
+
this.editor = editor;
|
5 |
+
this.group = group;
|
6 |
+
this.element = editor.element;
|
7 |
+
|
8 |
+
this.options = $.extend({}, {
|
9 |
+
index: null,
|
10 |
+
operator: 'equals'
|
11 |
+
}, options);
|
12 |
+
|
13 |
+
this._index = this.options.index;
|
14 |
+
this._conditionElement = this._createMarkup();
|
15 |
+
|
16 |
+
this._hintElement = this._conditionElement.find(".wam-cleditor__hint");
|
17 |
+
this._hintContentElement = this._conditionElement.find(".wam-cleditor__hint-content");
|
18 |
+
|
19 |
+
this._prepareFields(true);
|
20 |
+
this._register_events()
|
21 |
+
}
|
22 |
+
|
23 |
+
getData() {
|
24 |
+
let paramOptions = this._getParamOptions(),
|
25 |
+
currentParam = this._conditionElement.find(".wam-cleditor__param-select").val(),
|
26 |
+
$operator = this._conditionElement.find(".wam-cleditor__operator-select"),
|
27 |
+
currentOperator = $operator.val();
|
28 |
+
|
29 |
+
let value = null;
|
30 |
+
|
31 |
+
if( 'select' === paramOptions['type'] ) {
|
32 |
+
value = this._getSelectValue(paramOptions);
|
33 |
+
} else if( 'integer' === paramOptions['type'] ) {
|
34 |
+
value = this._getIntegerValue(paramOptions);
|
35 |
+
} else {
|
36 |
+
value = this._getTextValue(paramOptions);
|
37 |
+
}
|
38 |
+
|
39 |
+
return {
|
40 |
+
param: currentParam,
|
41 |
+
operator: currentOperator,
|
42 |
+
type: paramOptions['type'],
|
43 |
+
value: value
|
44 |
+
};
|
45 |
+
}
|
46 |
+
|
47 |
+
_createMarkup() {
|
48 |
+
let conditionTmpl = this.editor.getTemplate(".wam-cleditor__condition");
|
49 |
+
this.group.groupElement.find(".wam-cleditor__conditions").append(conditionTmpl);
|
50 |
+
return conditionTmpl;
|
51 |
+
}
|
52 |
+
|
53 |
+
_remove() {
|
54 |
+
this.group.removeCondition(this._index);
|
55 |
+
|
56 |
+
this._conditionElement.remove();
|
57 |
+
|
58 |
+
this.group.groupElement.trigger('winp.conditions-changed');
|
59 |
+
this.element.trigger('wam.editor-updated');
|
60 |
+
}
|
61 |
+
|
62 |
+
_register_events() {
|
63 |
+
let self = this;
|
64 |
+
|
65 |
+
this._conditionElement.find(".wam-cleditor__param-select").change(function() {
|
66 |
+
self._prepareFields();
|
67 |
+
self.element.trigger('wam.editor-updated');
|
68 |
+
});
|
69 |
+
|
70 |
+
this._conditionElement.find(".wam-cleditor__operator-select").change(function() {
|
71 |
+
self.element.trigger('wam.editor-updated');
|
72 |
+
});
|
73 |
+
|
74 |
+
this._conditionElement.find(".wam-cleditor__condition-value").on('change keyup', function() {
|
75 |
+
self.element.trigger('wam.editor-updated');
|
76 |
+
})
|
77 |
+
|
78 |
+
// buttons
|
79 |
+
this._conditionElement.find(".js-wam-cleditor__condition-remove").click(function() {
|
80 |
+
self._remove();
|
81 |
+
return false;
|
82 |
+
});
|
83 |
+
|
84 |
+
this._conditionElement.find(".js-wam-cleditor__condition-add-and").click(function() {
|
85 |
+
self.group.addCondition();
|
86 |
+
return false;
|
87 |
+
});
|
88 |
+
}
|
89 |
+
|
90 |
+
_prepareFields(isInit) {
|
91 |
+
if( isInit && this.options.param ) {
|
92 |
+
this._selectParam(this.options.param);
|
93 |
+
}
|
94 |
+
|
95 |
+
let paramOptions = this._getParamOptions();
|
96 |
+
|
97 |
+
this._setParamHint(paramOptions.description);
|
98 |
+
|
99 |
+
let operators = [];
|
100 |
+
|
101 |
+
if( 'select' === paramOptions['type'] || paramOptions['onlyEquals'] ) {
|
102 |
+
operators = ['equals', 'notequal'];
|
103 |
+
} else if( 'date' === paramOptions['type'] ) {
|
104 |
+
operators = ['equals', 'notequal', 'younger', 'older', 'between'];
|
105 |
+
} else if( 'date-between' === paramOptions['type'] ) {
|
106 |
+
operators = ['between'];
|
107 |
+
} else if( 'integer' === paramOptions['type'] ) {
|
108 |
+
operators = ['equals', 'notequal', 'less', 'greater', 'between'];
|
109 |
+
} else if( 'regexp' === paramOptions['type'] ) {
|
110 |
+
operators = ['equals'];
|
111 |
+
} else if( 'default' === paramOptions['type'] ) {
|
112 |
+
operators = ['equals', 'notequal'];
|
113 |
+
} else {
|
114 |
+
operators = ['equals', 'notequal', 'contains', 'notcontain'];
|
115 |
+
}
|
116 |
+
|
117 |
+
this._setOperators(operators);
|
118 |
+
|
119 |
+
if( isInit && this.options.operator ) {
|
120 |
+
this._selectOperator(this.options.operator);
|
121 |
+
} else {
|
122 |
+
this._selectFirstOperator();
|
123 |
+
}
|
124 |
+
|
125 |
+
this._createValueControl(paramOptions, isInit);
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Displays and configures the param hint.
|
130 |
+
*/
|
131 |
+
_setParamHint(description) {
|
132 |
+
|
133 |
+
if( description ) {
|
134 |
+
this._hintContentElement.html(description);
|
135 |
+
this._hintElement.show();
|
136 |
+
} else {
|
137 |
+
this._hintElement.hide();
|
138 |
+
}
|
139 |
+
}
|
140 |
+
|
141 |
+
/**
|
142 |
+
* Creates control to specify value.
|
143 |
+
*/
|
144 |
+
_createValueControl(paramOptions, isInit) {
|
145 |
+
if( 'select' === paramOptions['type'] ) {
|
146 |
+
this._createValueAsSelect(paramOptions, isInit);
|
147 |
+
} else if( 'integer' === paramOptions['type'] ) {
|
148 |
+
this._createValueAsInteger(paramOptions, isInit);
|
149 |
+
} else {
|
150 |
+
this._createValueAsText(paramOptions, isInit);
|
151 |
+
}
|
152 |
+
}
|
153 |
+
|
154 |
+
// -------------------
|
155 |
+
// Select Control
|
156 |
+
// -------------------
|
157 |
+
|
158 |
+
/**
|
159 |
+
* Creates the Select control.
|
160 |
+
*/
|
161 |
+
_createValueAsSelect(paramOptions, isInit) {
|
162 |
+
let self = this;
|
163 |
+
|
164 |
+
let createSelectField = function(values) {
|
165 |
+
let $select = self._createSelect(values);
|
166 |
+
self._insertValueControl($select);
|
167 |
+
if( isInit && self.options.value ) {
|
168 |
+
self._setSelectValue(self.options.value);
|
169 |
+
}
|
170 |
+
self._conditionElement.find(".wam-cleditor__condition-value").trigger("insert.select");
|
171 |
+
};
|
172 |
+
|
173 |
+
if( !paramOptions['values'] ) {
|
174 |
+
return;
|
175 |
+
}
|
176 |
+
if( 'ajax' === paramOptions['values']['type'] ) {
|
177 |
+
|
178 |
+
let $fakeSelect = self._createSelect([
|
179 |
+
{
|
180 |
+
value: null,
|
181 |
+
title: '- loading -'
|
182 |
+
}
|
183 |
+
]);
|
184 |
+
self._insertValueControl($fakeSelect);
|
185 |
+
|
186 |
+
$fakeSelect.attr('disabled', 'disabled');
|
187 |
+
$fakeSelect.addClass('wam-cleditor__fake-select');
|
188 |
+
|
189 |
+
if( isInit && this.options.value ) {
|
190 |
+
$fakeSelect.data('value', this.options.value);
|
191 |
+
}
|
192 |
+
|
193 |
+
let req = $.ajax({
|
194 |
+
url: window.ajaxurl,
|
195 |
+
method: 'post',
|
196 |
+
data: {
|
197 |
+
action: paramOptions['values']['action']
|
198 |
+
},
|
199 |
+
dataType: 'json',
|
200 |
+
success: function(data) {
|
201 |
+
createSelectField(data.values);
|
202 |
+
},
|
203 |
+
error: function() {
|
204 |
+
console.log('Unexpected error during the ajax request.');
|
205 |
+
},
|
206 |
+
complete: function() {
|
207 |
+
if( $fakeSelect ) {
|
208 |
+
$fakeSelect.remove();
|
209 |
+
}
|
210 |
+
$fakeSelect = null;
|
211 |
+
}
|
212 |
+
});
|
213 |
+
} else {
|
214 |
+
createSelectField(paramOptions['values']);
|
215 |
+
}
|
216 |
+
}
|
217 |
+
|
218 |
+
/**
|
219 |
+
* Returns a value for the select control.
|
220 |
+
*/
|
221 |
+
_getSelectValue() {
|
222 |
+
let $select = this._conditionElement.find(".wam-cleditor__condition-value select");
|
223 |
+
|
224 |
+
let value = $select.val();
|
225 |
+
if( !value ) {
|
226 |
+
value = $select.data('value');
|
227 |
+
}
|
228 |
+
return value;
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* Sets a select value.
|
233 |
+
*/
|
234 |
+
_setSelectValue(value) {
|
235 |
+
let $select = this._conditionElement.find(".wam-cleditor__condition-value select");
|
236 |
+
|
237 |
+
if( $select.hasClass('.wam-cleditor__fake-select') ) {
|
238 |
+
$select.data('value', value);
|
239 |
+
} else {
|
240 |
+
$select.val(value);
|
241 |
+
}
|
242 |
+
}
|
243 |
+
|
244 |
+
// -------------------
|
245 |
+
// Integer Control
|
246 |
+
// -------------------
|
247 |
+
|
248 |
+
/**
|
249 |
+
* Creates a control for the input linked with the integer.
|
250 |
+
*/
|
251 |
+
_createValueAsInteger(paramOptions, isInit) {
|
252 |
+
let self = this;
|
253 |
+
|
254 |
+
let $operator = this._conditionElement.find(".wam-cleditor__operator-select");
|
255 |
+
|
256 |
+
$operator.on('change', function() {
|
257 |
+
let currentOperator = $operator.val();
|
258 |
+
|
259 |
+
let $control;
|
260 |
+
if( 'between' === currentOperator ) {
|
261 |
+
$control = $("<span><input type='text' class='wam-cleditor__integer-start' /> and <input type='text' class='wam-cleditor__integer-end' /></span>");
|
262 |
+
} else {
|
263 |
+
$control = $("<input type='text' class='wam-cleditor__integer-solo' /></span>");
|
264 |
+
}
|
265 |
+
|
266 |
+
self._insertValueControl($control);
|
267 |
+
});
|
268 |
+
|
269 |
+
$operator.change();
|
270 |
+
if( isInit && this.options.value ) {
|
271 |
+
this._setIntegerValue(this.options.value);
|
272 |
+
}
|
273 |
+
}
|
274 |
+
|
275 |
+
/**
|
276 |
+
* Returns a value for the Integer control.
|
277 |
+
*/
|
278 |
+
_getIntegerValue() {
|
279 |
+
let value = {};
|
280 |
+
|
281 |
+
let $operator = this._conditionElement.find(".wam-cleditor__operator-select");
|
282 |
+
let currentOperator = $operator.val();
|
283 |
+
|
284 |
+
if( 'between' === currentOperator ) {
|
285 |
+
value.range = true;
|
286 |
+
value.start = this._conditionElement.find(".wam-cleditor__integer-start").val();
|
287 |
+
value.end = this._conditionElement.find(".wam-cleditor__integer-end").val();
|
288 |
+
|
289 |
+
} else {
|
290 |
+
value = this._conditionElement.find(".wam-cleditor__integer-solo").val();
|
291 |
+
}
|
292 |
+
|
293 |
+
return value;
|
294 |
+
}
|
295 |
+
|
296 |
+
/**
|
297 |
+
* Sets a value for the Integer control.
|
298 |
+
*/
|
299 |
+
_setIntegerValue(value) {
|
300 |
+
if( !value ) {
|
301 |
+
value = {};
|
302 |
+
}
|
303 |
+
|
304 |
+
if( value.range ) {
|
305 |
+
this._conditionElement.find(".wam-cleditor__integer-start").val(value.start);
|
306 |
+
this._conditionElement.find(".wam-cleditor__integer-end").val(value.end);
|
307 |
+
} else {
|
308 |
+
this._conditionElement.find(".wam-cleditor__integer-solo").val(value);
|
309 |
+
}
|
310 |
+
}
|
311 |
+
|
312 |
+
// -------------------
|
313 |
+
// Text Control
|
314 |
+
// -------------------
|
315 |
+
|
316 |
+
/**
|
317 |
+
* Creates a control for the input linked with the integer.
|
318 |
+
*/
|
319 |
+
_createValueAsText(paramOptions, isInit) {
|
320 |
+
let $control = $("<input type='text' class='wam-cleditor__text' /></span>");
|
321 |
+
|
322 |
+
if( paramOptions['placeholder'] ) {
|
323 |
+
$control.attr('placeholder', paramOptions['placeholder']);
|
324 |
+
}
|
325 |
+
|
326 |
+
this._insertValueControl($control);
|
327 |
+
|
328 |
+
if( isInit && this.options.value && "" !== this.options.value ) {
|
329 |
+
this._setTextValue(this.options.value);
|
330 |
+
} else if( paramOptions['default_value'] ) {
|
331 |
+
this._setTextValue(paramOptions['default_value'])
|
332 |
+
}
|
333 |
+
}
|
334 |
+
|
335 |
+
/**
|
336 |
+
* Returns a value for the Text control.
|
337 |
+
* @returns {undefined}
|
338 |
+
*/
|
339 |
+
_getTextValue() {
|
340 |
+
return this._conditionElement.find(".wam-cleditor__text").val();
|
341 |
+
}
|
342 |
+
|
343 |
+
/**
|
344 |
+
* Sets a value for the Text control.
|
345 |
+
*/
|
346 |
+
_setTextValue(value) {
|
347 |
+
this._conditionElement.find(".wam-cleditor__text").val(value);
|
348 |
+
}
|
349 |
+
|
350 |
+
// -------------------
|
351 |
+
// Helper Methods
|
352 |
+
// -------------------
|
353 |
+
|
354 |
+
_selectParam(value) {
|
355 |
+
this._conditionElement.find(".wam-cleditor__param-select").val(value);
|
356 |
+
}
|
357 |
+
|
358 |
+
_selectOperator(value) {
|
359 |
+
this._conditionElement.find(".wam-cleditor__operator-select").val(value);
|
360 |
+
}
|
361 |
+
|
362 |
+
_selectFirstOperator() {
|
363 |
+
this._conditionElement.find(".wam-cleditor__operator-select").prop('selectedIndex', 0);
|
364 |
+
}
|
365 |
+
|
366 |
+
_setOperators(values) {
|
367 |
+
let $operator = this._conditionElement.find(".wam-cleditor__operator-select");
|
368 |
+
$operator.show();//.off('change');
|
369 |
+
|
370 |
+
$operator.find("option").hide();
|
371 |
+
for( let index in values ) {
|
372 |
+
if( !values.hasOwnProperty(index) ) {
|
373 |
+
continue;
|
374 |
+
}
|
375 |
+
$operator.find("option[value='" + values[index] + "']").show();
|
376 |
+
}
|
377 |
+
let value = $operator.find("option:not(:hidden):eq(0)").val();
|
378 |
+
$operator.val(value);
|
379 |
+
}
|
380 |
+
|
381 |
+
_insertValueControl($control) {
|
382 |
+
this._conditionElement.find(".wam-cleditor__condition-value").html("").append($control);
|
383 |
+
}
|
384 |
+
|
385 |
+
_getParamOptions() {
|
386 |
+
let selectElement = this._conditionElement.find(".wam-cleditor__param-select"),
|
387 |
+
optionElement = selectElement.find('option:selected');
|
388 |
+
|
389 |
+
if( !selectElement.length ) {
|
390 |
+
return false;
|
391 |
+
}
|
392 |
+
|
393 |
+
let type = optionElement.data('type'),
|
394 |
+
data = {
|
395 |
+
id: selectElement.val(),
|
396 |
+
title: optionElement.text().trim(),
|
397 |
+
type: optionElement.data('type'),
|
398 |
+
default_value: optionElement.data('default-value'),
|
399 |
+
values: optionElement.data('params'),
|
400 |
+
description: optionElement.data('hint').trim()
|
401 |
+
};
|
402 |
+
|
403 |
+
if( "text" === type || "default" === type || "regexp" === type ) {
|
404 |
+
data['placeholder'] = optionElement.data('placeholder');
|
405 |
+
delete data['values'];
|
406 |
+
}
|
407 |
+
|
408 |
+
return data;
|
409 |
+
}
|
410 |
+
|
411 |
+
_createSelect(values, attrs) {
|
412 |
+
let $select = $("<select></select>");
|
413 |
+
if( attrs ) {
|
414 |
+
$select.attr(attrs);
|
415 |
+
}
|
416 |
+
|
417 |
+
for( let index in values ) {
|
418 |
+
if( !values.hasOwnProperty(index) ) {
|
419 |
+
continue;
|
420 |
+
}
|
421 |
+
let item = values[index];
|
422 |
+
let $option = '';
|
423 |
+
|
424 |
+
if( typeof index === "string" && isNaN(index) === true ) {
|
425 |
+
let $optgroup = $("<optgroup></optgroup>").attr('label', index);
|
426 |
+
|
427 |
+
for( let subindex in item ) {
|
428 |
+
if( !item.hasOwnProperty(subindex) ) {
|
429 |
+
continue;
|
430 |
+
}
|
431 |
+
let subvalue = item[subindex];
|
432 |
+
$option = $("<option></option>").attr('value', subvalue['value']).text(subvalue['title']);
|
433 |
+
$optgroup.append($option);
|
434 |
+
}
|
435 |
+
$select.append($optgroup);
|
436 |
+
} else {
|
437 |
+
$option = $("<option></option>").attr('value', item['value']).text(item['title']);
|
438 |
+
$select.append($option);
|
439 |
+
}
|
440 |
+
}
|
441 |
+
|
442 |
+
return $select;
|
443 |
+
}
|
444 |
+
}
|
445 |
+
|
446 |
+
class cEditorGroup {
|
447 |
+
constructor(editor, options) {
|
448 |
+
this.editor = editor;
|
449 |
+
this.element = editor.element;
|
450 |
+
|
451 |
+
this.options = $.extend({}, {
|
452 |
+
conditions: null,
|
453 |
+
index: null
|
454 |
+
}, options);
|
455 |
+
this._index = this.options.index;
|
456 |
+
|
457 |
+
this.conditions = {};
|
458 |
+
|
459 |
+
this.groupElement = this._createMarkup();
|
460 |
+
|
461 |
+
this._conditionsCounter = 0;
|
462 |
+
|
463 |
+
this._load();
|
464 |
+
}
|
465 |
+
|
466 |
+
getData() {
|
467 |
+
let condtions = [];
|
468 |
+
|
469 |
+
for( let ID in this.conditions ) {
|
470 |
+
if( !this.conditions.hasOwnProperty(ID) ) {
|
471 |
+
continue;
|
472 |
+
}
|
473 |
+
|
474 |
+
condtions.push(this.conditions[ID].getData());
|
475 |
+
}
|
476 |
+
|
477 |
+
if( !condtions.length ) {
|
478 |
+
return null;
|
479 |
+
}
|
480 |
+
|
481 |
+
return {
|
482 |
+
type: 'OR',
|
483 |
+
conditions: condtions
|
484 |
+
};
|
485 |
+
}
|
486 |
+
|
487 |
+
getCountConditions() {
|
488 |
+
return Object.keys(this.conditions).length;
|
489 |
+
}
|
490 |
+
|
491 |
+
removeCondition(ID) {
|
492 |
+
if( this.conditions[ID] ) {
|
493 |
+
delete this.conditions[ID];
|
494 |
+
}
|
495 |
+
}
|
496 |
+
|
497 |
+
_createMarkup() {
|
498 |
+
let $group = this.editor.getTemplate('.wam-cleditor__group');
|
499 |
+
this.element.find(".wam-cleditor__groups").append($group);
|
500 |
+
|
501 |
+
if( this._index <= 1 ) {
|
502 |
+
$group.find('.wam-cleditor__group-type').hide();
|
503 |
+
$group.find('.js-wam-cleditor__remove-group').remove();
|
504 |
+
} else {
|
505 |
+
$group.find('.wam-cleditor__group-type').show();
|
506 |
+
$group.find('.wam-cleditor__first-group-title').remove();
|
507 |
+
}
|
508 |
+
|
509 |
+
return $group;
|
510 |
+
}
|
511 |
+
|
512 |
+
_registerEvents() {
|
513 |
+
let self = this;
|
514 |
+
|
515 |
+
this.groupElement.find(".js-wam-cleditor__add-condition").click(function() {
|
516 |
+
self.addCondition();
|
517 |
+
return false;
|
518 |
+
});
|
519 |
+
|
520 |
+
this.groupElement.find(".js-wam-cleditor__remove-group").click(function() {
|
521 |
+
self._remove();
|
522 |
+
return false;
|
523 |
+
});
|
524 |
+
|
525 |
+
this.groupElement.on('winp.conditions-changed', function() {
|
526 |
+
self._checkIsEmpty();
|
527 |
+
});
|
528 |
+
}
|
529 |
+
|
530 |
+
_load() {
|
531 |
+
if( !this.options.conditions ) {
|
532 |
+
this.addCondition();
|
533 |
+
} else {
|
534 |
+
this._setGroupData();
|
535 |
+
}
|
536 |
+
|
537 |
+
this._registerEvents();
|
538 |
+
}
|
539 |
+
|
540 |
+
_remove() {
|
541 |
+
this.editor.removeGroup(this._index);
|
542 |
+
this.groupElement.remove();
|
543 |
+
|
544 |
+
this.element.trigger('wam.filters-changed');
|
545 |
+
this.element.trigger('wam.editor-updated');
|
546 |
+
}
|
547 |
+
|
548 |
+
_setGroupData() {
|
549 |
+
this.groupElement.find('.wam-cleditor__condition').remove();
|
550 |
+
|
551 |
+
if( this.options.conditions ) {
|
552 |
+
for( let index in this.options.conditions ) {
|
553 |
+
if( !this.options.conditions.hasOwnProperty(index) ) {
|
554 |
+
continue;
|
555 |
+
}
|
556 |
+
|
557 |
+
this.addCondition(this.options.conditions[index]);
|
558 |
+
}
|
559 |
+
}
|
560 |
+
|
561 |
+
this._checkIsEmpty();
|
562 |
+
}
|
563 |
+
|
564 |
+
addCondition(data) {
|
565 |
+
if( !data ) {
|
566 |
+
data = {type: 'AND'};
|
567 |
+
}
|
568 |
+
|
569 |
+
this._conditionsCounter = this._conditionsCounter + 1;
|
570 |
+
data.index = this._index + '_' + this._conditionsCounter;
|
571 |
+
|
572 |
+
this.conditions[data.index] = new cEditorCondition(this.editor, this, data);
|
573 |
+
|
574 |
+
this.groupElement.trigger('winp.conditions-changed');
|
575 |
+
this.element.trigger('wam.editor-updated');
|
576 |
+
}
|
577 |
+
|
578 |
+
_checkIsEmpty() {
|
579 |
+
if( this.getCountConditions() === 0 ) {
|
580 |
+
this.groupElement.addClass('wam-cleditor__empty');
|
581 |
+
} else {
|
582 |
+
this.groupElement.removeClass('wam-cleditor__empty');
|
583 |
+
}
|
584 |
+
}
|
585 |
+
}
|
586 |
+
|
587 |
+
class cEditor {
|
588 |
+
constructor(element, options) {
|
589 |
+
this.element = element;
|
590 |
+
|
591 |
+
this.options = $.extend({}, {
|
592 |
+
groups: null,
|
593 |
+
// where to get an editor template
|
594 |
+
templateSelector: null,
|
595 |
+
// where to put editor options
|
596 |
+
saveInputSelector: null,
|
597 |
+
callback: null
|
598 |
+
}, options);
|
599 |
+
|
600 |
+
this.groups = {};
|
601 |
+
this.groupsCounter = 0;
|
602 |
+
|
603 |
+
this.element = this._createMarkup();
|
604 |
+
|
605 |
+
this._load();
|
606 |
+
|
607 |
+
if( this.options.callback ) {
|
608 |
+
this.options.callback(this);
|
609 |
+
}
|
610 |
+
}
|
611 |
+
|
612 |
+
/*showParams() {
|
613 |
+
this.element.find('.wam-cleditor__param-select').find('options').show();
|
614 |
+
}
|
615 |
+
|
616 |
+
hideParams(params) {
|
617 |
+
if( params.length ) {
|
618 |
+
for( let i = 0; i < params.length; i++ ) {
|
619 |
+
this.element.find('.wam-cleditor__param-select').find('option[value="' + params[i] + '"]').hide();
|
620 |
+
}
|
621 |
+
}
|
622 |
+
}*/
|
623 |
+
|
624 |
+
getData() {
|
625 |
+
let self = this;
|
626 |
+
let groups = [];
|
627 |
+
|
628 |
+
for( let ID in self.groups ) {
|
629 |
+
if( !self.groups.hasOwnProperty(ID) ) {
|
630 |
+
continue;
|
631 |
+
}
|
632 |
+
|
633 |
+
let groupData = self.groups[ID].getData();
|
634 |
+
|
635 |
+
if( groupData ) {
|
636 |
+
groups.push(self.groups[ID].getData());
|
637 |
+
}
|
638 |
+
}
|
639 |
+
|
640 |
+
if( !groups.length ) {
|
641 |
+
return null;
|
642 |
+
}
|
643 |
+
|
644 |
+
return groups;
|
645 |
+
}
|
646 |
+
|
647 |
+
getImportData() {
|
648 |
+
if( this.options.saveInputSelector ) {
|
649 |
+
let data = this.element.parent().find(this.options.saveInputSelector).val();
|
650 |
+
|
651 |
+
if( !data ) {
|
652 |
+
return null;
|
653 |
+
}
|
654 |
+
|
655 |
+
return JSON.parse(data);
|
656 |
+
}
|
657 |
+
|
658 |
+
return null;
|
659 |
+
}
|
660 |
+
|
661 |
+
setExportData() {
|
662 |
+
if( this.options.saveInputSelector && $(this.options.saveInputSelector).length ) {
|
663 |
+
let data = !this.getData() ? '' : JSON.stringify(this.getData());
|
664 |
+
this.element.parent().find(this.options.saveInputSelector).val(data);
|
665 |
+
} else {
|
666 |
+
throw new Error('[Error]: Save input is not found! Selector: ' + this.options.saveInputSelector);
|
667 |
+
}
|
668 |
+
}
|
669 |
+
|
670 |
+
getTemplate(selector) {
|
671 |
+
let tmpl = $($(this.options.templateSelector).html());
|
672 |
+
|
673 |
+
if( !tmpl.length ) {
|
674 |
+
throw new Error('[Error]: Editor template is not found! Selector: ' + this.options.templateSelector);
|
675 |
+
}
|
676 |
+
|
677 |
+
return tmpl.find(selector).clone();
|
678 |
+
}
|
679 |
+
|
680 |
+
getCountGroups() {
|
681 |
+
return Object.keys(this.groups).length;
|
682 |
+
}
|
683 |
+
|
684 |
+
removeGroup(ID) {
|
685 |
+
if( this.groups[ID] ) {
|
686 |
+
delete this.groups[ID];
|
687 |
+
}
|
688 |
+
}
|
689 |
+
|
690 |
+
destroy() {
|
691 |
+
this.element.remove();
|
692 |
+
}
|
693 |
+
|
694 |
+
_registerEvents() {
|
695 |
+
let self = this;
|
696 |
+
|
697 |
+
this.element.on('wam.editor-updated', function() {
|
698 |
+
self.setExportData();
|
699 |
+
});
|
700 |
+
|
701 |
+
this.element.on('wam.filters-changed', function() {
|
702 |
+
self._checkIsEmpty();
|
703 |
+
});
|
704 |
+
|
705 |
+
this.element.find(".js-wam-cleditor__add-group").click(function() {
|
706 |
+
self._addGroup();
|
707 |
+
return false;
|
708 |
+
});
|
709 |
+
}
|
710 |
+
|
711 |
+
_createMarkup() {
|
712 |
+
let $editor = $('<div></div>').addClass('wam-cleditor');
|
713 |
+
this.element.prepend($editor);
|
714 |
+
|
715 |
+
$editor.append(this.getTemplate('.wam-cleditor__wrap'));
|
716 |
+
$editor.append(this.getTemplate('.wam-cleditor__buttons-group'));
|
717 |
+
|
718 |
+
return $editor;
|
719 |
+
}
|
720 |
+
|
721 |
+
_load() {
|
722 |
+
let groups, savedOptions;
|
723 |
+
|
724 |
+
savedOptions = this.getImportData();
|
725 |
+
|
726 |
+
if( savedOptions ) {
|
727 |
+
groups = savedOptions;
|
728 |
+
} else if( this.options.groups && this.options.groups.length > 0 ) {
|
729 |
+
groups = this.options.groups;
|
730 |
+
}
|
731 |
+
|
732 |
+
if( groups ) {
|
733 |
+
for( let index in groups ) {
|
734 |
+
if( !groups.hasOwnProperty(index) ) {
|
735 |
+
continue;
|
736 |
+
}
|
737 |
+
|
738 |
+
this._addGroup(groups[index]);
|
739 |
+
}
|
740 |
+
}
|
741 |
+
|
742 |
+
this._checkIsEmpty();
|
743 |
+
this._registerEvents();
|
744 |
+
|
745 |
+
// If editor will create demo data, we will trigger an event
|
746 |
+
if( !savedOptions ) {
|
747 |
+
this.element.trigger('wam.editor-updated');
|
748 |
+
}
|
749 |
+
|
750 |
+
}
|
751 |
+
|
752 |
+
_addGroup(data) {
|
753 |
+
if( !data ) {
|
754 |
+
data = {type: 'OR'};
|
755 |
+
}
|
756 |
+
|
757 |
+
this.groupsCounter = this.groupsCounter + 1;
|
758 |
+
|
759 |
+
this.groups[this.groupsCounter] = new cEditorGroup(this, {
|
760 |
+
index: this.groupsCounter,
|
761 |
+
conditions: data.conditions
|
762 |
+
});
|
763 |
+
|
764 |
+
this.element.trigger('wam.editor-updated');
|
765 |
+
this.element.trigger('wam.filters-changed');
|
766 |
+
}
|
767 |
+
|
768 |
+
_checkIsEmpty() {
|
769 |
+
if( this.getCountGroups() === 0 ) {
|
770 |
+
this.element.addClass('wam-cleditor__empty');
|
771 |
+
} else {
|
772 |
+
this.element.removeClass('wam-cleditor__empty');
|
773 |
+
}
|
774 |
+
}
|
775 |
+
}
|
776 |
+
|
777 |
+
$.fn.wamConditionsEditor = function(options) {
|
778 |
+
return this.each(function() {
|
779 |
+
new cEditor($(this), options);
|
780 |
+
});
|
781 |
+
};
|
782 |
+
|
783 |
+
})(jQuery);
|
components/assets-manager/assets/js/assets-manager.js
CHANGED
@@ -4,120 +4,521 @@
|
|
4 |
* @copyright (c) 13.11.2017, Webcraftic
|
5 |
* @version 1.0
|
6 |
*/
|
|
|
|
|
7 |
|
8 |
(function($) {
|
9 |
'use strict';
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
var
|
14 |
-
|
15 |
-
if(
|
16 |
-
|
17 |
}
|
18 |
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
$(this).closest('tr').find('.wbcr-assets-manager-enable').show();
|
23 |
-
$(this).closest('tr').find('.wbcr-state').removeClass('wbcr-gnz-table__loaded-yes');
|
24 |
-
$(this).closest('tr').find('.wbcr-state').addClass(class_name).trigger('cssClassChanged');
|
25 |
|
26 |
-
|
27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
}
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
$(this).
|
35 |
-
|
36 |
-
|
37 |
-
wbcrChangeHandleState(this, 0);
|
38 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
}
|
40 |
-
});
|
41 |
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
|
46 |
-
|
47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
}
|
49 |
-
});
|
50 |
|
51 |
-
|
52 |
-
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
$('.wbcr-gnz-sided-' + handle)
|
57 |
-
.prop('checked', $(this).prop('checked'))
|
58 |
-
.closest('label')
|
59 |
-
.find('input[type="hidden"]').val($(this).prop('checked') ? 1 : 0);
|
60 |
}
|
61 |
-
});
|
62 |
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
});
|
68 |
-
|
69 |
-
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
});
|
72 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
if(
|
78 |
-
|
79 |
}
|
80 |
-
|
81 |
-
|
82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
}
|
84 |
-
}
|
85 |
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
$(this)
|
98 |
-
.addClass('active').parent().siblings().find('.wbcr-gnz-tabs__button').removeClass('active')
|
99 |
-
.closest('.wbcr-gnz-content').find('div.wbcr-gnz-tabs-content').removeClass('active').eq($(this).parent().index()).addClass('active');
|
100 |
-
});
|
101 |
-
|
102 |
-
var tabHash = window.location.hash.replace('#', '');
|
103 |
-
if( tabHash ) {
|
104 |
-
$('ul.wbcr-gnz-tabs .wbcr-gnz-tabs__button[data-hash="' + tabHash + '"]').click();
|
105 |
-
} else {
|
106 |
-
$('ul.wbcr-gnz-tabs li').eq(0).find('.wbcr-gnz-tabs__button').click();
|
107 |
-
}
|
108 |
-
|
109 |
-
/*if ($('#wpadminbar').length > 0) {
|
110 |
-
var h = $('#wpadminbar').height();
|
111 |
-
if (h > 0) {
|
112 |
-
$('#wbcr-gnz header.wbcr-gnz-panel').css('top', h + 'px');
|
113 |
-
var top = $('#wbcr-gnz ul.wbcr-gnz-tabs').css('top');
|
114 |
-
$('#wbcr-gnz ul.wbcr-gnz-tabs').css('top', top.replace('px', '') * 1 + h + 'px');
|
115 |
-
}
|
116 |
-
}*/
|
117 |
-
|
118 |
-
$('.wbcr-close-button').on('click', function() {
|
119 |
-
document.location.href = $(this).data('href');
|
120 |
-
});
|
121 |
});
|
122 |
|
123 |
})(jQuery);
|
4 |
* @copyright (c) 13.11.2017, Webcraftic
|
5 |
* @version 1.0
|
6 |
*/
|
7 |
+
// [{"type":"group","conditions":[{"param":"location-some-page","operator":"equals","type":"select","value":"base_web"}]}]
|
8 |
+
// [{"type":"group","conditions":[{"param":"location-some-page","operator":"equals","type":"select","value":"base_web"}]}]
|
9 |
|
10 |
(function($) {
|
11 |
'use strict';
|
12 |
|
13 |
+
class AssetsManager {
|
14 |
+
constructor() {
|
15 |
+
var tabHash = window.location.hash.replace('#', '');
|
16 |
+
|
17 |
+
if( tabHash ) {
|
18 |
+
$('.js-wam-assets-type-tabs__button[data-type="' + tabHash + '"]').click();
|
19 |
}
|
20 |
|
21 |
+
this.initEvents();
|
22 |
+
this.updateStat();
|
23 |
+
}
|
|
|
|
|
|
|
24 |
|
25 |
+
initEvents() {
|
26 |
+
var self = this;
|
27 |
+
|
28 |
+
$('.js-wam-assets-type-tabs__button').click(function() {
|
29 |
+
self.switchCategoryTab($(this));
|
30 |
+
return false;
|
31 |
+
});
|
32 |
+
|
33 |
+
$('.js-wam-nav-plugins__tab-switch').click(function() {
|
34 |
+
self.switchPluginTab($(this));
|
35 |
+
return false;
|
36 |
+
});
|
37 |
+
|
38 |
+
$('.js-wam-top-panel__save-button').click(function() {
|
39 |
+
self.saveSettings();
|
40 |
+
return false;
|
41 |
+
});
|
42 |
+
|
43 |
+
$('.js-wam-select-plugin-load-mode').change(function() {
|
44 |
+
if( 'enable' === $(this).val() ) {
|
45 |
+
self.enablePlugin($(this));
|
46 |
+
} else if( 'disable_assets' === $(this).val() || 'disable_plugin' === $(this).val() ) {
|
47 |
+
self.disablePlugin($(this));
|
48 |
}
|
49 |
+
|
50 |
+
return false;
|
51 |
+
});
|
52 |
+
|
53 |
+
$('.js-wam-open-plugin-settings').click(function() {
|
54 |
+
if( $(this).hasClass('js-wam-button--opened') ) {
|
55 |
+
self.closePluginSettings($(this));
|
56 |
+
return false;
|
|
|
57 |
}
|
58 |
+
|
59 |
+
self.openPluginSettings($(this));
|
60 |
+
|
61 |
+
return false;
|
62 |
+
});
|
63 |
+
|
64 |
+
$('.js-wam-select-asset-load-mode').change(function() {
|
65 |
+
let selectElement = $(this);
|
66 |
+
|
67 |
+
if( 'enable' === selectElement.val() ) {
|
68 |
+
self.enableAsset(selectElement);
|
69 |
+
return false;
|
70 |
+
}
|
71 |
+
self.disableAsset(selectElement);
|
72 |
+
return false;
|
73 |
+
});
|
74 |
+
|
75 |
+
$('.js-wam-open-asset-settings').click(function() {
|
76 |
+
if( $(this).hasClass('js-wam-button--opened') ) {
|
77 |
+
self.closeAssetSettings($(this));
|
78 |
+
return false;
|
79 |
+
}
|
80 |
+
|
81 |
+
self.openAssetSettings($(this));
|
82 |
+
return false;
|
83 |
+
});
|
84 |
+
}
|
85 |
+
|
86 |
+
switchCategoryTab(element) {
|
87 |
+
window.location.hash = '#' + element.data('type');
|
88 |
+
|
89 |
+
$('.js-wam-assets-type-tabs__button').removeClass('wam-assets-type-tab__active');
|
90 |
+
element.addClass('wam-assets-type-tab__active');
|
91 |
+
|
92 |
+
$('.wam-assets-type-tab-content').removeClass('wam-assets-type-tab-content__active');
|
93 |
+
$('#wam-assets-type-tab-content__' + element.data('type')).addClass('wam-assets-type-tab-content__active');
|
94 |
+
}
|
95 |
+
|
96 |
+
switchPluginTab(element) {
|
97 |
+
$('.js-wam-nav-plugins__tab-switch').removeClass('wam-nav-plugins__tab--active');
|
98 |
+
element.addClass('wam-nav-plugins__tab--active');
|
99 |
+
|
100 |
+
$('.wam-nav-plugins__tab-content').removeClass('js-wam-nav-plugins__tab-content--active');
|
101 |
+
$(element.find('a').attr('href')).addClass('js-wam-nav-plugins__tab-content--active');
|
102 |
+
|
103 |
+
$('.wam-table__th-plugins-settings').text(element.find('.wam-plugin-name').text());
|
104 |
+
|
105 |
+
}
|
106 |
+
|
107 |
+
setSettingsButtonOpenState(buttonElement) {
|
108 |
+
buttonElement.removeClass('js-wam-button--opened');
|
109 |
+
buttonElement.addClass('js-wam-button__icon--cogs').removeClass('js-wam-button__icon--close');
|
110 |
+
}
|
111 |
+
|
112 |
+
setSettingsButtonCloseState(buttonElement) {
|
113 |
+
buttonElement.addClass('js-wam-button--opened');
|
114 |
+
buttonElement.removeClass('js-wam-button__icon--cogs').addClass('js-wam-button__icon--close');
|
115 |
+
}
|
116 |
+
|
117 |
+
disablePlugin(selectElement) {
|
118 |
+
let activeContainerElement = selectElement.closest('.js-wam-nav-plugins__tab-content--active'),
|
119 |
+
settingsButtonElement = selectElement.closest('.wam-plugin-settings__controls').find('.js-wam-open-plugin-settings');
|
120 |
+
|
121 |
+
/*if( currentContentTabElement.find('.js-wam-select-asset-load-mode option[value="disable"]:selected').length ) {
|
122 |
+
var passAction = confirm("If you want to change the plugin’s load mode, all your logical settings to disable the plugins assets will be reset. Do you really want to do this?");
|
123 |
+
if( !passAction ) {
|
124 |
+
return;
|
125 |
+
}
|
126 |
+
}*/
|
127 |
+
|
128 |
+
/*var notice = PNotify.notice({
|
129 |
+
title: 'Confirmation Needed',
|
130 |
+
text: 'Are you sure?',
|
131 |
+
icon: 'fas fa-question-circle',
|
132 |
+
hide: false,
|
133 |
+
stack: {
|
134 |
+
'dir1': 'down',
|
135 |
+
'modal': true,
|
136 |
+
'firstpos1': 25
|
137 |
+
},
|
138 |
+
modules: {
|
139 |
+
Confirm: {
|
140 |
+
confirm: true
|
141 |
+
},
|
142 |
+
Buttons: {
|
143 |
+
closer: false,
|
144 |
+
sticker: false
|
145 |
+
},
|
146 |
+
History: {
|
147 |
+
history: false
|
148 |
+
},
|
149 |
+
}
|
150 |
+
});
|
151 |
+
notice.on('pnotify.confirm', function() {
|
152 |
+
alert('Ok, cool.');
|
153 |
+
});
|
154 |
+
notice.on('pnotify.cancel', function() {
|
155 |
+
alert('Oh ok. Chicken, I see.');
|
156 |
+
});*/
|
157 |
+
|
158 |
+
settingsButtonElement.removeClass('js-wam-button--hidden');
|
159 |
+
|
160 |
+
selectElement.removeClass('js-wam-select--enable')
|
161 |
+
.addClass('js-wam-select--disable');
|
162 |
+
|
163 |
+
// Disable assets table
|
164 |
+
let assetSettingsContainer = activeContainerElement.find('.wam-table__asset-settings');
|
165 |
+
assetSettingsContainer.addClass('js-wam-table__tr--disabled-section');
|
166 |
+
//assetSettingsContainer.hide();
|
167 |
+
|
168 |
+
let assetConditionsContainer = activeContainerElement.find('.wam-table__asset-settings-conditions');
|
169 |
+
assetConditionsContainer.hide();
|
170 |
+
assetConditionsContainer.find(".wam-cleditor").remove();
|
171 |
+
assetConditionsContainer.find(".wam-conditions-builder__settings").val('');
|
172 |
+
|
173 |
+
activeContainerElement.find('.js-wam-select-asset-load-mode').val('disable')
|
174 |
+
.removeClass('js-wam-select--enable')
|
175 |
+
.addClass('js-wam-select--disable')
|
176 |
+
.prop('disabled', true);
|
177 |
+
|
178 |
+
activeContainerElement.find('.js-wam-open-asset-settings')
|
179 |
+
.removeClass('js-wam-button--opened')
|
180 |
+
.addClass('js-wam-button--hidden');
|
181 |
+
|
182 |
+
this.openPluginSettings(settingsButtonElement, "disable_plugin" === selectElement.val());
|
183 |
+
this.updateStat();
|
184 |
+
}
|
185 |
+
|
186 |
+
enablePlugin(selectElement) {
|
187 |
+
let activeContainerElement = selectElement.closest('.js-wam-nav-plugins__tab-content--active'),
|
188 |
+
settingsButtonElement = selectElement.closest('.wam-plugin-settings__controls').find('.js-wam-open-plugin-settings');
|
189 |
+
|
190 |
+
settingsButtonElement.addClass('js-wam-button--hidden');
|
191 |
+
|
192 |
+
selectElement.removeClass('js-wam-select--disable')
|
193 |
+
.addClass('js-wam-select--enable');
|
194 |
+
|
195 |
+
// Enable assets table
|
196 |
+
activeContainerElement.find('.wam-table__asset-settings').removeClass('js-wam-table__tr--disabled-section');
|
197 |
+
activeContainerElement.find('.js-wam-select-asset-load-mode').val('enable')
|
198 |
+
.addClass('js-wam-select--enable')
|
199 |
+
.removeClass('js-wam-select--disable')
|
200 |
+
.prop('disabled', false);
|
201 |
+
|
202 |
+
activeContainerElement.find('.js-wam-open-asset-settings')
|
203 |
+
.addClass('js-wam-button--hidden');
|
204 |
+
|
205 |
+
this.closePluginSettings(settingsButtonElement, true);
|
206 |
+
this.updateStat();
|
207 |
+
|
208 |
+
}
|
209 |
+
|
210 |
+
openPluginSettings(buttonElement) {
|
211 |
+
let containerElement = buttonElement.closest('.wam-plugin-settings'),
|
212 |
+
editorContainerElement = containerElement.find('.js-wam-plugin-settings__conditions');
|
213 |
+
|
214 |
+
this.setSettingsButtonCloseState(buttonElement);
|
215 |
+
editorContainerElement.show();
|
216 |
+
if( !editorContainerElement.find('.wam-cleditor').length ) {
|
217 |
+
|
218 |
+
this.createConditionsEditor(editorContainerElement, function(e) {
|
219 |
+
function a() {
|
220 |
+
let params = ['location-some-page', 'location-taxonomy', 'location-post-type'],
|
221 |
+
loadMode = containerElement.find('.js-wam-select-plugin-load-mode').val();
|
222 |
+
|
223 |
+
if( "disable_plugin" === loadMode ) {
|
224 |
+
for( let i = 0; i < params.length; i++ ) {
|
225 |
+
e.element.find('.wam-cleditor__param-select').find('option[value="' + params[i] + '"]').hide();
|
226 |
+
}
|
227 |
+
} else {
|
228 |
+
e.element.find('.wam-cleditor__param-select').find('option').show();
|
229 |
+
}
|
230 |
+
}
|
231 |
+
|
232 |
+
containerElement.find('.js-wam-select-plugin-load-mode').change(function() {
|
233 |
+
a();
|
234 |
+
});
|
235 |
+
|
236 |
+
a();
|
237 |
+
});
|
238 |
+
}
|
239 |
+
}
|
240 |
+
|
241 |
+
closePluginSettings(buttonElement, destroyEditor = false) {
|
242 |
+
let containerElement = buttonElement.closest('.wam-plugin-settings'),
|
243 |
+
editorContainerElement = containerElement.find('.js-wam-plugin-settings__conditions');
|
244 |
+
|
245 |
+
if( destroyEditor ) {
|
246 |
+
this.destroyCoditionEditor(editorContainerElement);
|
247 |
}
|
|
|
248 |
|
249 |
+
if( !buttonElement.hasClass('js-wam-button--opened') ) {
|
250 |
+
return false;
|
251 |
+
}
|
252 |
|
253 |
+
this.setSettingsButtonOpenState(buttonElement);
|
254 |
+
editorContainerElement.hide();
|
255 |
+
}
|
256 |
+
|
257 |
+
disableAsset(selectElement) {
|
258 |
+
let containerElement = selectElement.closest('tr'),
|
259 |
+
settingsButtonElement = containerElement.find('.js-wam-open-asset-settings');
|
260 |
+
|
261 |
+
settingsButtonElement.removeClass('js-wam-button--hidden');
|
262 |
+
containerElement.addClass('js-wam-table__tr--disabled-section');
|
263 |
+
selectElement.removeClass('js-wam-select--enable').addClass('js-wam-select--disable');
|
264 |
+
|
265 |
+
this.openAssetSettings(settingsButtonElement);
|
266 |
+
this.updateStat();
|
267 |
+
}
|
268 |
+
|
269 |
+
enableAsset(selectElement) {
|
270 |
+
let containerElement = selectElement.closest('tr'),
|
271 |
+
settingsButtonElement = containerElement.find('.js-wam-open-asset-settings');
|
272 |
+
|
273 |
+
settingsButtonElement.addClass('js-wam-button--hidden');
|
274 |
+
selectElement.removeClass('js-wam-select--disable').addClass('js-wam-select--enable');
|
275 |
+
containerElement.removeClass('js-wam-table__tr--disabled-section');
|
276 |
+
|
277 |
+
this.closeAssetSettings(settingsButtonElement, true);
|
278 |
+
this.updateStat();
|
279 |
+
}
|
280 |
+
|
281 |
+
/**
|
282 |
+
* Toggle Asset Settings
|
283 |
+
* @param buttonElement Object settings button
|
284 |
+
* @returns {boolean}
|
285 |
+
*/
|
286 |
+
openAssetSettings(buttonElement) {
|
287 |
+
var placeID = buttonElement.closest('tr').attr('id'),
|
288 |
+
place = $('#' + placeID + '-conditions');
|
289 |
+
|
290 |
+
if( buttonElement.hasClass('js-wam-button--opened') ) {
|
291 |
+
return false;
|
292 |
}
|
|
|
293 |
|
294 |
+
this.setSettingsButtonCloseState(buttonElement);
|
295 |
+
place.show();
|
296 |
|
297 |
+
if( !place.find('.wam-cleditor').length ) {
|
298 |
+
this.createConditionsEditor(place.find(".wam-asset-conditions-builder"));
|
|
|
|
|
|
|
|
|
299 |
}
|
|
|
300 |
|
301 |
+
return true;
|
302 |
+
}
|
303 |
+
|
304 |
+
closeAssetSettings(buttonElement, destroyEditor = false) {
|
305 |
+
var placeID = buttonElement.closest('tr').attr('id'),
|
306 |
+
place = $('#' + placeID + '-conditions');
|
307 |
+
|
308 |
+
if( destroyEditor ) {
|
309 |
+
this.destroyCoditionEditor(place.find(".wam-asset-conditions-builder"));
|
310 |
+
}
|
311 |
+
|
312 |
+
if( !buttonElement.hasClass('js-wam-button--opened') ) {
|
313 |
+
return false;
|
314 |
+
}
|
315 |
+
|
316 |
+
this.setSettingsButtonOpenState(buttonElement);
|
317 |
+
place.hide();
|
318 |
+
|
319 |
+
return true;
|
320 |
+
}
|
321 |
+
|
322 |
+
saveSettings() {
|
323 |
+
var settings = {
|
324 |
+
save_mode: $('#js-wam-save-mode-checkbox').prop("checked"),
|
325 |
+
plugins: {},
|
326 |
+
theme: {},
|
327 |
+
misc: {}
|
328 |
+
};
|
329 |
+
|
330 |
+
$('.wam-nav-plugins__tab-content').each(function() {
|
331 |
+
let pluginGroupVisabilityConditionsElement = $(this).find('.js-wam-plugin-settings__conditions').find('.wam-conditions-builder__settings'),
|
332 |
+
pluginName = pluginGroupVisabilityConditionsElement.data('plugin-name'),
|
333 |
+
pluginGroupVisabilityConditionsVal = pluginGroupVisabilityConditionsElement.val(),
|
334 |
+
pluginGroupLoadMode = $('.js-wam-select-plugin-load-mode', $(this)).val();
|
335 |
+
|
336 |
+
if( pluginName ) {
|
337 |
+
if( !settings['plugins'][pluginName] ) {
|
338 |
+
settings['plugins'][pluginName] = {};
|
339 |
+
}
|
340 |
+
settings['plugins'][pluginName]['load_mode'] = pluginGroupLoadMode;
|
341 |
+
settings['plugins'][pluginName]['visability'] = pluginGroupVisabilityConditionsVal;
|
342 |
+
}
|
343 |
+
|
344 |
+
$('.wam-table__asset-settings-conditions', $(this)).each(function() {
|
345 |
+
let resourceVisabilityConditionsElement = $(this).find('.wam-conditions-builder__settings'),
|
346 |
+
resourceVisabilityConditionsVal = resourceVisabilityConditionsElement.val(),
|
347 |
+
resourceType = resourceVisabilityConditionsElement.data('resource-type'),
|
348 |
+
resourceHandle = resourceVisabilityConditionsElement.data('resource-handle');
|
349 |
+
|
350 |
+
if( settings['plugins'][pluginName] ) {
|
351 |
+
if( !settings['plugins'][pluginName][resourceType] ) {
|
352 |
+
settings['plugins'][pluginName][resourceType] = {};
|
353 |
+
}
|
354 |
+
|
355 |
+
if( 'enable' !== pluginGroupLoadMode ) {
|
356 |
+
resourceVisabilityConditionsVal = "";
|
357 |
+
}
|
358 |
+
|
359 |
+
settings['plugins'][pluginName][resourceType][resourceHandle] = {
|
360 |
+
visability: resourceVisabilityConditionsVal
|
361 |
+
};
|
362 |
+
}
|
363 |
+
});
|
364 |
+
|
365 |
+
if( undefined === typeof window.wam_localize_data || !wam_localize_data.ajaxurl ) {
|
366 |
+
throw new Error("Undefined wam_localize_data, please check the var in source!");
|
367 |
+
}
|
368 |
+
});
|
369 |
+
|
370 |
+
$('.wam-conditions-builder__settings', '#wam-assets-type-tab-content__theme,#wam-assets-type-tab-content__misc').each(function() {
|
371 |
+
let groupType = $(this).data('group-type'),
|
372 |
+
recourceType = $(this).data("resource-type"),
|
373 |
+
resourceHandle = $(this).data("resource-handle");
|
374 |
+
|
375 |
+
if( !settings[groupType][recourceType] ) {
|
376 |
+
settings[groupType][recourceType] = {};
|
377 |
+
}
|
378 |
+
|
379 |
+
settings[groupType][recourceType][resourceHandle] = {
|
380 |
+
visability: $(this).val()
|
381 |
+
}
|
382 |
+
});
|
383 |
+
|
384 |
+
let stackBottomRight = {
|
385 |
+
'dir1': 'up',
|
386 |
+
'dir2': 'left',
|
387 |
+
'firstpos1': 25,
|
388 |
+
'firstpos2': 25
|
389 |
+
};
|
390 |
+
|
391 |
+
PNotify.closeAll();
|
392 |
+
PNotify.alert({
|
393 |
+
title: 'Saving settings!',
|
394 |
+
text: 'Please wait, saving settings ...',
|
395 |
+
stack: stackBottomRight,
|
396 |
+
hide: false
|
397 |
+
});
|
398 |
+
|
399 |
+
$.ajax(wam_localize_data.ajaxurl, {
|
400 |
+
type: 'post',
|
401 |
+
dataType: 'json',
|
402 |
+
data: {
|
403 |
+
action: 'wam-save-settings',
|
404 |
+
settings: settings,
|
405 |
+
_wpnonce: $('#wam-save-button').data('nonce')
|
406 |
+
},
|
407 |
+
success: function(response) {
|
408 |
+
PNotify.closeAll();
|
409 |
+
|
410 |
+
if( !response || !response.success ) {
|
411 |
+
if( response.data ) {
|
412 |
+
console.log(response.data.error_message_content);
|
413 |
+
PNotify.alert({
|
414 |
+
title: response.data.error_message_title,
|
415 |
+
text: response.data.error_message_content,
|
416 |
+
stack: stackBottomRight,
|
417 |
+
type: 'error',
|
418 |
+
//hide: false
|
419 |
+
});
|
420 |
+
} else {
|
421 |
+
console.log(response);
|
422 |
+
}
|
423 |
+
return;
|
424 |
+
}
|
425 |
+
if( response.data ) {
|
426 |
+
PNotify.alert({
|
427 |
+
title: response.data.save_massage_title,
|
428 |
+
text: response.data.save_message_content,
|
429 |
+
stack: stackBottomRight,
|
430 |
+
type: 'success',
|
431 |
+
//hide: false
|
432 |
+
});
|
433 |
+
}
|
434 |
+
},
|
435 |
+
error: function(xhr, ajaxOptions, thrownError) {
|
436 |
+
PNotify.alert({
|
437 |
+
title: 'Unknown error',
|
438 |
+
text: thrownError,
|
439 |
+
stack: {
|
440 |
+
'dir1': 'up',
|
441 |
+
'dir2': 'left',
|
442 |
+
'firstpos1': 25,
|
443 |
+
'firstpos2': 25
|
444 |
+
},
|
445 |
+
type: 'error',
|
446 |
+
//hide: false
|
447 |
+
});
|
448 |
+
}
|
449 |
});
|
450 |
+
}
|
451 |
+
|
452 |
+
createConditionsEditor(element, callback = null) {
|
453 |
+
element.wamConditionsEditor({
|
454 |
+
// where to get an editor template
|
455 |
+
templateSelector: '#wam-conditions-builder-template',
|
456 |
+
// where to put editor options
|
457 |
+
saveInputSelector: '.wam-conditions-builder__settings',
|
458 |
+
groups: [
|
459 |
+
{
|
460 |
+
"type": "group",
|
461 |
+
"conditions": [
|
462 |
+
{
|
463 |
+
"param": "current-url",
|
464 |
+
"operator": "equals",
|
465 |
+
"type": "default",
|
466 |
+
"value": $(location).attr('pathname')
|
467 |
+
}
|
468 |
+
|
469 |
+
]
|
470 |
+
}
|
471 |
+
|
472 |
+
],
|
473 |
+
callback: callback
|
474 |
});
|
475 |
+
}
|
476 |
+
|
477 |
+
destroyCoditionEditor(element) {
|
478 |
+
element.find('.wam-cleditor').remove();
|
479 |
+
element.find('.wam-conditions-builder__settings').val('');
|
480 |
+
}
|
481 |
+
|
482 |
+
updateStat() {
|
483 |
+
let total_requests = 0,
|
484 |
+
total_size = 0,
|
485 |
+
optimized_size = 0,
|
486 |
+
disabled_js = 0,
|
487 |
+
disabled_css = 0;
|
488 |
|
489 |
+
$('.js-wam-asset').each(function() {
|
490 |
+
let size = $(this).data('size');
|
491 |
+
|
492 |
+
if( !$.isNumeric(size) ) {
|
493 |
+
return;
|
494 |
}
|
495 |
+
|
496 |
+
total_requests++;
|
497 |
+
total_size = total_size + size;
|
498 |
+
|
499 |
+
if( !$(this).hasClass('js-wam-table__tr--disabled-section') ) {
|
500 |
+
optimized_size = optimized_size + size;
|
501 |
+
} else {
|
502 |
+
if( $(this).hasClass('js-wam-js-asset') ) {
|
503 |
+
disabled_js++;
|
504 |
+
}
|
505 |
+
if( $(this).hasClass('js-wam-css-asset') ) {
|
506 |
+
disabled_css++;
|
507 |
+
}
|
508 |
}
|
509 |
+
});
|
510 |
|
511 |
+
$('.wam-float-panel__data-item.__info-request').find('.wam-float-panel__item_value').html(total_requests);
|
512 |
+
$('.wam-float-panel__data-item.__info-total-size').find('.wam-float-panel__item_value').html(Math.round(total_size) + ' KB');
|
513 |
+
$('.wam-float-panel__data-item.__info-reduced-total-size').find('.wam-float-panel__item_value').html(Math.round(optimized_size) + ' KB');
|
514 |
+
$('.wam-float-panel__data-item.__info-disabled-js').find('.wam-float-panel__item_value').html(disabled_js);
|
515 |
+
$('.wam-float-panel__data-item.__info-disabled-css').find('.wam-float-panel__item_value').html(disabled_css);
|
516 |
+
}
|
517 |
+
|
518 |
+
}
|
519 |
+
|
520 |
+
$(function() {
|
521 |
+
new AssetsManager();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
522 |
});
|
523 |
|
524 |
})(jQuery);
|
components/assets-manager/assets/js/wam-jquery-migrate.min.js
ADDED
@@ -0,0 +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);
|
components/assets-manager/assets/js/wam-jquery.js
ADDED
@@ -0,0 +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});
|
6 |
+
jQuery.noConflict();
|
components/assets-manager/clearfy.php
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Этот файл инициализирует этот плагин, как аддон для плагина Clearfy.
|
4 |
+
*
|
5 |
+
* Файл будет подключен только в плагине Clearfy, используя особый вариант загрузки. Это более простое решение
|
6 |
+
* пришло на смену встроенной системы подключения аддонов в фреймворке.
|
7 |
+
*
|
8 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
9 |
+
* @copyright (c) 2018 Webraftic Ltd
|
10 |
+
*/
|
11 |
+
|
12 |
+
// Exit if accessed directly
|
13 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
14 |
+
exit;
|
15 |
+
}
|
16 |
+
|
17 |
+
if ( ! defined( 'WGZ_PLUGIN_ACTIVE' ) ) {
|
18 |
+
define( 'WGZ_PLUGIN_VERSION', '2.0.1' );
|
19 |
+
define( 'WGZ_PLUGIN_ACTIVE', true );
|
20 |
+
|
21 |
+
// Этот плагин загружен, как аддон для плагина Clearfy
|
22 |
+
define( 'LOADING_ASSETS_MANAGER_AS_ADDON', true );
|
23 |
+
|
24 |
+
if ( ! defined( 'WGZ_PLUGIN_DIR' ) ) {
|
25 |
+
define( 'WGZ_PLUGIN_DIR', dirname( __FILE__ ) );
|
26 |
+
}
|
27 |
+
|
28 |
+
if ( ! defined( 'WGZ_PLUGIN_BASE' ) ) {
|
29 |
+
define( 'WGZ_PLUGIN_BASE', plugin_basename( __FILE__ ) );
|
30 |
+
}
|
31 |
+
|
32 |
+
if ( ! defined( 'WGZ_PLUGIN_URL' ) ) {
|
33 |
+
define( 'WGZ_PLUGIN_URL', plugins_url( null, __FILE__ ) );
|
34 |
+
}
|
35 |
+
|
36 |
+
try {
|
37 |
+
// Global scripts
|
38 |
+
require_once( WGZ_PLUGIN_DIR . '/includes/functions.php' );
|
39 |
+
require_once( WGZ_PLUGIN_DIR . '/includes/3rd-party/class-clearfy-plugin.php' );
|
40 |
+
|
41 |
+
new WGZ_Plugin();
|
42 |
+
} catch( Exception $e ) {
|
43 |
+
$wgnz_plugin_error_func = function () use ( $e ) {
|
44 |
+
$error = sprintf( "The %s plugin has stopped. <b>Error:</b> %s Code: %s", 'Webcraftic Assets Manager', $e->getMessage(), $e->getCode() );
|
45 |
+
echo '<div class="notice notice-error"><p>' . $error . '</p></div>';
|
46 |
+
};
|
47 |
+
|
48 |
+
add_action( 'admin_notices', $wgnz_plugin_error_func );
|
49 |
+
add_action( 'network_admin_notices', $wgnz_plugin_error_func );
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
|
components/assets-manager/gonzales.php
CHANGED
@@ -4,93 +4,134 @@
|
|
4 |
* Plugin URI: https://wordpress.org/plugins/gonzales/
|
5 |
* Description: Increase the speed of the pages by disabling unused scripts (.JS) and styles (.CSS). Make your website REACTIVE!
|
6 |
* Author: Webcraftic <wordpress.webraftic@gmail.com>
|
7 |
-
* Version:
|
8 |
* Text Domain: gonzales
|
9 |
* Domain Path: /languages/
|
10 |
-
* Author URI: https://
|
11 |
-
* Framework Version:
|
12 |
*/
|
13 |
|
14 |
// Exit if accessed directly
|
15 |
if ( ! defined( 'ABSPATH' ) ) {
|
16 |
exit;
|
17 |
}
|
18 |
-
if ( ! defined( 'WGZ_PLUGIN_VERSION' ) ) {
|
19 |
-
define( 'WGZ_PLUGIN_VERSION', '1.0.7' );
|
20 |
-
}
|
21 |
-
|
22 |
-
// Fix for ithemes sync. When the ithemes sync plugin accepts the request, set the WP_ADMIN constant,
|
23 |
-
// after which the plugin Clearfy begins to create errors, and how the logic of its work is broken.
|
24 |
-
// Solution to simply terminate the plugin if there is a request from ithemes sync
|
25 |
-
// --------------------------------------
|
26 |
-
if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'ithemes_sync_request' ) {
|
27 |
-
return;
|
28 |
-
}
|
29 |
-
|
30 |
-
if ( isset( $_GET['ithemes-sync-request'] ) && ! empty( $_GET['ithemes-sync-request'] ) ) {
|
31 |
-
return;
|
32 |
-
}
|
33 |
-
// ----------------------------------------
|
34 |
-
|
35 |
-
if ( ! defined( 'WGZ_PLUGIN_DIR' ) ) {
|
36 |
-
define( 'WGZ_PLUGIN_DIR', dirname( __FILE__ ) );
|
37 |
-
}
|
38 |
-
if ( ! defined( 'WGZ_PLUGIN_BASE' ) ) {
|
39 |
-
define( 'WGZ_PLUGIN_BASE', plugin_basename( __FILE__ ) );
|
40 |
-
}
|
41 |
-
if ( ! defined( 'WGZ_PLUGIN_URL' ) ) {
|
42 |
-
define( 'WGZ_PLUGIN_URL', plugins_url( null, __FILE__ ) );
|
43 |
-
}
|
44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
-
|
48 |
-
require_once( WGZ_PLUGIN_DIR . '/libs/factory/core/includes/check-compatibility.php' );
|
49 |
-
require_once( WGZ_PLUGIN_DIR . '/libs/factory/clearfy/includes/check-clearfy-compatibility.php' );
|
50 |
-
}
|
51 |
|
52 |
-
|
|
|
53 |
'prefix' => 'wbcr_gnz_',
|
54 |
'plugin_name' => 'wbcr_gonzales',
|
55 |
'plugin_title' => __( 'Webcraftic assets manager', 'gonzales' ),
|
56 |
-
|
57 |
-
|
58 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
);
|
60 |
|
61 |
-
|
62 |
-
* Проверяет совместимость с Wordpress, php и другими плагинами.
|
63 |
-
*/
|
64 |
-
$compatibility = new Wbcr_FactoryClearfy_Compatibility( array_merge( $plugin_info, array(
|
65 |
-
'factory_version' => 'FACTORY_409_VERSION',
|
66 |
'plugin_already_activate' => defined( 'WGZ_PLUGIN_ACTIVE' ),
|
67 |
-
'
|
68 |
-
'plugin_dir' => WGZ_PLUGIN_DIR,
|
69 |
-
'plugin_base' => WGZ_PLUGIN_BASE,
|
70 |
-
'plugin_url' => WGZ_PLUGIN_URL,
|
71 |
-
'required_php_version' => '5.3',
|
72 |
'required_wp_version' => '4.2.0',
|
73 |
-
'required_clearfy_check_component' =>
|
74 |
) ) );
|
75 |
|
|
|
76 |
/**
|
77 |
-
*
|
78 |
-
*
|
79 |
*/
|
80 |
-
if ( ! $
|
81 |
return;
|
82 |
}
|
83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
define( 'WGZ_PLUGIN_ACTIVE', true );
|
|
|
|
|
|
|
|
|
85 |
|
86 |
-
if ( ! defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
|
87 |
-
require_once( WGZ_PLUGIN_DIR . '/libs/factory/core/boot.php' );
|
88 |
-
}
|
89 |
|
90 |
-
require_once( WGZ_PLUGIN_DIR . '/includes/class.plugin.php' );
|
91 |
|
92 |
-
if ( ! defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
|
93 |
-
new WGZ_Plugin( __FILE__, $plugin_info );
|
94 |
-
}
|
95 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
* Plugin URI: https://wordpress.org/plugins/gonzales/
|
5 |
* Description: Increase the speed of the pages by disabling unused scripts (.JS) and styles (.CSS). Make your website REACTIVE!
|
6 |
* Author: Webcraftic <wordpress.webraftic@gmail.com>
|
7 |
+
* Version: 2.0.1
|
8 |
* Text Domain: gonzales
|
9 |
* Domain Path: /languages/
|
10 |
+
* Author URI: https://webcraftic.com
|
11 |
+
* Framework Version: FACTORY_421_VERSION
|
12 |
*/
|
13 |
|
14 |
// Exit if accessed directly
|
15 |
if ( ! defined( 'ABSPATH' ) ) {
|
16 |
exit;
|
17 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
+
/**
|
20 |
+
* Developers who contributions in the development plugin:
|
21 |
+
*
|
22 |
+
* Alexander Kovalev
|
23 |
+
* ---------------------------------------------------------------------------------
|
24 |
+
* Full plugin development.
|
25 |
+
*
|
26 |
+
* Email: alex.kovalevv@gmail.com
|
27 |
+
* Personal card: https://alexkovalevv.github.io
|
28 |
+
* Personal repo: https://github.com/alexkovalevv
|
29 |
+
* ---------------------------------------------------------------------------------
|
30 |
+
*/
|
31 |
|
32 |
+
/**
|
33 |
+
* -----------------------------------------------------------------------------
|
34 |
+
* CHECK REQUIREMENTS
|
35 |
+
* Check compatibility with php and wp version of the user's site. As well as checking
|
36 |
+
* compatibility with other plugins from Webcraftic.
|
37 |
+
* -----------------------------------------------------------------------------
|
38 |
+
*/
|
39 |
|
40 |
+
require_once( dirname( __FILE__ ) . '/libs/factory/core/includes/class-factory-requirements.php' );
|
|
|
|
|
|
|
41 |
|
42 |
+
// @formatter:off
|
43 |
+
$wgnz_plugin_info = array(
|
44 |
'prefix' => 'wbcr_gnz_',
|
45 |
'plugin_name' => 'wbcr_gonzales',
|
46 |
'plugin_title' => __( 'Webcraftic assets manager', 'gonzales' ),
|
47 |
+
|
48 |
+
// PLUGIN SUPPORT
|
49 |
+
'support_details' => array(
|
50 |
+
'url' => 'https://webcraftic.com',
|
51 |
+
'pages_map' => array(
|
52 |
+
'support' => 'support', // {site}/support
|
53 |
+
'docs' => 'docs' // {site}/docs
|
54 |
+
)
|
55 |
+
),
|
56 |
+
|
57 |
+
// PLUGIN ADVERTS
|
58 |
+
'render_adverts' => true,
|
59 |
+
'adverts_settings' => array(
|
60 |
+
'dashboard_widget' => true, // show dashboard widget (default: false)
|
61 |
+
'right_sidebar' => true, // show adverts sidebar (default: false)
|
62 |
+
'notice' => true, // show notice message (default: false)
|
63 |
+
),
|
64 |
+
|
65 |
+
// FRAMEWORK MODULES
|
66 |
+
'load_factory_modules' => array(
|
67 |
+
array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
|
68 |
+
array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
|
69 |
+
array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
|
70 |
+
array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
|
71 |
+
array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
|
72 |
+
)
|
73 |
);
|
74 |
|
75 |
+
$wgnz_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $wgnz_plugin_info, array(
|
|
|
|
|
|
|
|
|
76 |
'plugin_already_activate' => defined( 'WGZ_PLUGIN_ACTIVE' ),
|
77 |
+
'required_php_version' => '5.4',
|
|
|
|
|
|
|
|
|
78 |
'required_wp_version' => '4.2.0',
|
79 |
+
'required_clearfy_check_component' => false
|
80 |
) ) );
|
81 |
|
82 |
+
|
83 |
/**
|
84 |
+
* If the plugin is compatible, then it will continue its work, otherwise it will be stopped,
|
85 |
+
* and the user will throw a warning.
|
86 |
*/
|
87 |
+
if ( ! $wgnz_compatibility->check() ) {
|
88 |
return;
|
89 |
}
|
90 |
|
91 |
+
/**
|
92 |
+
* -----------------------------------------------------------------------------
|
93 |
+
* CONSTANTS
|
94 |
+
* Install frequently used constants and constants for debugging, which will be
|
95 |
+
* removed after compiling the plugin.
|
96 |
+
* -----------------------------------------------------------------------------
|
97 |
+
*/
|
98 |
+
|
99 |
+
// This plugin is activated
|
100 |
define( 'WGZ_PLUGIN_ACTIVE', true );
|
101 |
+
define( 'WGZ_PLUGIN_VERSION', $wgnz_compatibility->get_plugin_version() );
|
102 |
+
define( 'WGZ_PLUGIN_DIR', dirname( __FILE__ ) );
|
103 |
+
define( 'WGZ_PLUGIN_BASE', plugin_basename( __FILE__ ) );
|
104 |
+
define( 'WGZ_PLUGIN_URL', plugins_url( null, __FILE__ ) );
|
105 |
|
|
|
|
|
|
|
106 |
|
|
|
107 |
|
|
|
|
|
|
|
108 |
|
109 |
+
/**
|
110 |
+
* -----------------------------------------------------------------------------
|
111 |
+
* PLUGIN INIT
|
112 |
+
* -----------------------------------------------------------------------------
|
113 |
+
*/
|
114 |
+
|
115 |
+
require_once ( WGZ_PLUGIN_DIR . '/libs/factory/core/boot.php' );
|
116 |
+
require_once ( WGZ_PLUGIN_DIR . '/includes/functions.php' );
|
117 |
+
require_once ( WGZ_PLUGIN_DIR . '/includes/class-plugin.php' );
|
118 |
|
119 |
+
|
120 |
+
try {
|
121 |
+
new WGZ_Plugin( __FILE__, array_merge( $wgnz_plugin_info, array(
|
122 |
+
'plugin_version' => WGZ_PLUGIN_VERSION,
|
123 |
+
'plugin_text_domain' => $wgnz_compatibility->get_text_domain(),
|
124 |
+
) ) );
|
125 |
+
} catch( Exception $e ) {
|
126 |
+
// Plugin wasn't initialized due to an error
|
127 |
+
define( 'WGZ_PLUGIN_THROW_ERROR', true );
|
128 |
+
|
129 |
+
$wgnz_plugin_error_func = function () use ( $e ) {
|
130 |
+
$error = sprintf( "The %s plugin has stopped. <b>Error:</b> %s Code: %s", 'Webcraftic Assets Manager', $e->getMessage(), $e->getCode() );
|
131 |
+
echo '<div class="notice notice-error"><p>' . $error . '</p></div>';
|
132 |
+
};
|
133 |
+
|
134 |
+
add_action( 'admin_notices', $wgnz_plugin_error_func );
|
135 |
+
add_action( 'network_admin_notices', $wgnz_plugin_error_func );
|
136 |
+
}
|
137 |
+
// @formatter:on
|
components/assets-manager/includes/3rd-party/class-clearfy-plugin.php
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Exit if accessed directly
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Disable comments
|
9 |
+
*
|
10 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
11 |
+
*
|
12 |
+
* @copyright (c) 2018 Webraftic Ltd
|
13 |
+
*/
|
14 |
+
class WGZ_Plugin {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* @see self::app()
|
18 |
+
* @var WCL_Plugin
|
19 |
+
*/
|
20 |
+
private static $app;
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Конструктор
|
24 |
+
*
|
25 |
+
* Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app.
|
26 |
+
* Подробнее о свойстве $app см. self::app()
|
27 |
+
*
|
28 |
+
* @param string $plugin_path
|
29 |
+
* @param array $data
|
30 |
+
*
|
31 |
+
* @throws Exception
|
32 |
+
*/
|
33 |
+
public function __construct() {
|
34 |
+
if ( ! class_exists( 'WCL_Plugin' ) ) {
|
35 |
+
throw new Exception( 'Plugin Clearfy is not installed!' );
|
36 |
+
}
|
37 |
+
|
38 |
+
self::$app = WCL_Plugin::app();
|
39 |
+
|
40 |
+
$this->global_scripts();
|
41 |
+
|
42 |
+
if ( is_admin() ) {
|
43 |
+
require( WGZ_PLUGIN_DIR . '/admin/boot.php' );
|
44 |
+
}
|
45 |
+
|
46 |
+
add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] );
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Статический метод для быстрого доступа к интерфейсу плагина.
|
51 |
+
*
|
52 |
+
* Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте
|
53 |
+
* плагина, но при этом разработчик не может вносить изменения в основной класс плагина.
|
54 |
+
*
|
55 |
+
* Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
|
56 |
+
* классам.
|
57 |
+
*
|
58 |
+
* @return WCL_Plugin
|
59 |
+
*/
|
60 |
+
public static function app() {
|
61 |
+
return self::$app;
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* @throws \Exception
|
66 |
+
*/
|
67 |
+
public function plugins_loaded() {
|
68 |
+
if ( is_admin() ) {
|
69 |
+
$this->register_pages();
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Регистрирует классы страниц в плагине
|
75 |
+
*
|
76 |
+
* Мы указываем плагину, где найти файлы страниц и какое имя у их класса. Чтобы плагин
|
77 |
+
* выполнил подключение классов страниц. После регистрации, страницы будут доступные по url
|
78 |
+
* и в меню боковой панели администратора. Регистрируемые страницы будут связаны с текущим плагином
|
79 |
+
* все операции выполняемые внутри классов страниц, имеют отношение только текущему плагину.
|
80 |
+
*
|
81 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
82 |
+
* @throws \Exception
|
83 |
+
*/
|
84 |
+
private function register_pages() {
|
85 |
+
$admin_path = WGZ_PLUGIN_DIR . '/admin/pages';
|
86 |
+
|
87 |
+
self::app()->registerPage( 'WGZ_AssetsManagerPage', $admin_path . '/class-pages-settings.php' );
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
92 |
+
* @since 1.1.0
|
93 |
+
*/
|
94 |
+
private function global_scripts() {
|
95 |
+
require_once( WGZ_PLUGIN_DIR . '/includes/classes/class-views.php' );
|
96 |
+
require_once WGZ_PLUGIN_DIR . '/includes/classes/class-assets-manager-global.php';
|
97 |
+
|
98 |
+
new WGZ_Assets_Manager_Public( self::$app );
|
99 |
+
}
|
100 |
+
}
|
components/assets-manager/includes/3rd-party/index.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/assets-manager/includes/class-plugin.php
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Exit if accessed directly
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Assets manager core class
|
9 |
+
*
|
10 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
11 |
+
* @copyright (c) 19.02.2018, Webcraftic
|
12 |
+
* @version 1.0
|
13 |
+
*/
|
14 |
+
class WGZ_Plugin extends Wbcr_Factory421_Plugin {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* @see self::app()
|
18 |
+
* @var Wbcr_Factory421_Plugin
|
19 |
+
*/
|
20 |
+
private static $app;
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Конструктор
|
24 |
+
*
|
25 |
+
* Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app.
|
26 |
+
* Подробнее о свойстве $app см. self::app()
|
27 |
+
*
|
28 |
+
* @param string $plugin_path
|
29 |
+
* @param array $data
|
30 |
+
*
|
31 |
+
* @throws Exception
|
32 |
+
*/
|
33 |
+
public function __construct( $plugin_path, $data ) {
|
34 |
+
parent::__construct( $plugin_path, $data );
|
35 |
+
self::$app = $this;
|
36 |
+
|
37 |
+
$this->global_scripts();
|
38 |
+
|
39 |
+
if ( is_admin() ) {
|
40 |
+
$this->init_activation();
|
41 |
+
require( WGZ_PLUGIN_DIR . '/admin/boot.php' );
|
42 |
+
}
|
43 |
+
|
44 |
+
add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] );
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Статический метод для быстрого доступа к интерфейсу плагина.
|
49 |
+
*
|
50 |
+
* Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте
|
51 |
+
* плагина, но при этом разработчик не может вносить изменения в основной класс плагина.
|
52 |
+
*
|
53 |
+
* Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
|
54 |
+
* классам.
|
55 |
+
*
|
56 |
+
* @return \Wbcr_Factory421_Plugin|\WGZ_Plugin
|
57 |
+
*/
|
58 |
+
public static function app() {
|
59 |
+
return self::$app;
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* @throws \Exception
|
64 |
+
*/
|
65 |
+
public function plugins_loaded() {
|
66 |
+
if ( is_admin() ) {
|
67 |
+
$this->register_pages();
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
protected function init_activation() {
|
72 |
+
include_once( WGZ_PLUGIN_DIR . '/admin/activation.php' );
|
73 |
+
self::app()->registerActivation( 'WGNZ_Activation' );
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Регистрирует классы страниц в плагине
|
78 |
+
*
|
79 |
+
* Мы указываем плагину, где найти файлы страниц и какое имя у их класса. Чтобы плагин
|
80 |
+
* выполнил подключение классов страниц. После регистрации, страницы будут доступные по url
|
81 |
+
* и в меню боковой панели администратора. Регистрируемые страницы будут связаны с текущим плагином
|
82 |
+
* все операции выполняемые внутри классов страниц, имеют отношение только текущему плагину.
|
83 |
+
*
|
84 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
85 |
+
* @throws \Exception
|
86 |
+
*/
|
87 |
+
private function register_pages() {
|
88 |
+
$admin_path = WGZ_PLUGIN_DIR . '/admin/pages';
|
89 |
+
self::app()->registerPage( 'WGZ_AssetsManagerPage', $admin_path . '/class-pages-settings.php' );
|
90 |
+
self::app()->registerPage( 'WGZ_MoreFeaturesPage', $admin_path . '/class-pages-more-features.php' );
|
91 |
+
}
|
92 |
+
|
93 |
+
private function global_scripts() {
|
94 |
+
require_once( WGZ_PLUGIN_DIR . '/includes/classes/class-views.php' );
|
95 |
+
require_once WGZ_PLUGIN_DIR . '/includes/classes/class-assets-manager-global.php';
|
96 |
+
|
97 |
+
new WGZ_Assets_Manager_Public( self::$app );
|
98 |
+
}
|
99 |
+
}
|
components/assets-manager/includes/class.configurate-assets.php
DELETED
@@ -1,1659 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Assets manager base class
|
5 |
-
*
|
6 |
-
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
7 |
-
* @copyright (c) 05.11.2017, Webcraftic
|
8 |
-
* @version 1.0
|
9 |
-
*/
|
10 |
-
|
11 |
-
// Exit if accessed directly
|
12 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
-
exit;
|
14 |
-
}
|
15 |
-
|
16 |
-
class WbcrGnz_ConfigAssetsManager extends Wbcr_FactoryClearfy206_Configurate {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Stores list of all available assets (used in rendering panel)
|
20 |
-
*
|
21 |
-
* @var array
|
22 |
-
*/
|
23 |
-
public $collection = [];
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Plugins for additional columns
|
27 |
-
*
|
28 |
-
* @var array
|
29 |
-
*/
|
30 |
-
private $sided_plugins = [];
|
31 |
-
|
32 |
-
/**
|
33 |
-
* Css and js files excluded in sided plugins
|
34 |
-
*
|
35 |
-
* @var array
|
36 |
-
*/
|
37 |
-
private $sided_plugin_files = [];
|
38 |
-
|
39 |
-
/**
|
40 |
-
* @var bool
|
41 |
-
*/
|
42 |
-
private $is_user_can;
|
43 |
-
|
44 |
-
/**
|
45 |
-
* @param Wbcr_Factory409_Plugin $plugin
|
46 |
-
*/
|
47 |
-
public function __construct( Wbcr_Factory409_Plugin $plugin ) {
|
48 |
-
parent::__construct( $plugin );
|
49 |
-
$this->plugin = $plugin;
|
50 |
-
}
|
51 |
-
|
52 |
-
protected function isUserCan() {
|
53 |
-
return current_user_can( 'manage_options' ) || current_user_can( 'manage_network' );
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* Initilize entire machine
|
58 |
-
*/
|
59 |
-
protected function registerActionsAndFilters() {
|
60 |
-
if ( $this->getPopulateOption( 'disable_assets_manager', false ) ) {
|
61 |
-
return;
|
62 |
-
}
|
63 |
-
|
64 |
-
$on_frontend = $this->getPopulateOption( 'disable_assets_manager_on_front' );
|
65 |
-
$on_backend = $this->getPopulateOption( 'disable_assets_manager_on_backend', true );
|
66 |
-
$is_panel = $this->getPopulateOption( 'disable_assets_manager_panel' );
|
67 |
-
|
68 |
-
if ( ( ! is_admin() && ! $on_frontend ) || ( is_admin() && ! $on_backend ) ) {
|
69 |
-
add_filter( 'script_loader_src', [ $this, 'unloadAssets' ], 10, 2 );
|
70 |
-
add_filter( 'style_loader_src', [ $this, 'unloadAssets' ], 10, 2 );
|
71 |
-
}
|
72 |
-
|
73 |
-
if ( ! $is_panel && ( ( is_admin() && ! $on_backend ) || ( ! is_admin() && ! $on_frontend ) ) ) {
|
74 |
-
if ( ! is_admin() ) {
|
75 |
-
add_action( 'wp_enqueue_scripts', [ $this, 'appendAsset' ], - 100001 );
|
76 |
-
add_action( 'wp_footer', [ $this, 'assetsManager' ], 100001 );
|
77 |
-
} else {
|
78 |
-
add_action( 'admin_enqueue_scripts', [ $this, 'appendAsset' ], - 100001 );
|
79 |
-
add_action( 'admin_footer', [ $this, 'assetsManager' ], 100001 );
|
80 |
-
}
|
81 |
-
}
|
82 |
-
|
83 |
-
if ( ! is_admin() && ! $on_frontend ) {
|
84 |
-
add_action( 'wp_head', [ $this, 'collectAssets' ], 10000 );
|
85 |
-
add_action( 'wp_footer', [ $this, 'collectAssets' ], 10000 );
|
86 |
-
}
|
87 |
-
|
88 |
-
if ( is_admin() && ! $on_backend ) {
|
89 |
-
add_action( 'admin_head', [ $this, 'collectAssets' ], 10000 );
|
90 |
-
add_action( 'admin_footer', [ $this, 'collectAssets' ], 10000 );
|
91 |
-
}
|
92 |
-
|
93 |
-
if ( ! $is_panel && ( ( is_admin() && ! $on_backend ) || ( ! is_admin() && ! $on_frontend ) ) ) {
|
94 |
-
if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
|
95 |
-
add_action( 'wbcr/clearfy/adminbar_menu_items', [ $this, 'clearfyAdminBarMenu' ] );
|
96 |
-
} else {
|
97 |
-
add_action( 'admin_bar_menu', [ $this, 'assetsManagerAdminBar' ], 1000 );
|
98 |
-
}
|
99 |
-
}
|
100 |
-
|
101 |
-
if ( ! is_admin() && ! $on_frontend ) {
|
102 |
-
add_action( 'init', [ $this, 'formSave' ] );
|
103 |
-
}
|
104 |
-
|
105 |
-
if ( is_admin() && ! $on_backend ) {
|
106 |
-
add_action( 'admin_init', [ $this, 'formSave' ] );
|
107 |
-
}
|
108 |
-
|
109 |
-
add_action( 'plugins_loaded', [ $this, 'pluginsLoaded' ] );
|
110 |
-
add_action( 'wbcr_gnz_form_save', [ $this, 'actionFormSave' ] );
|
111 |
-
|
112 |
-
add_filter( 'wbcr_gnz_unset_disabled', [ $this, 'unsetDisabled' ], 10, 2 );
|
113 |
-
add_filter( 'wbcr_gnz_get_additional_head_columns', [ $this, 'getAdditionalHeadColumns' ] );
|
114 |
-
add_filter( 'wbcr_gnz_get_additional_controls_columns', [ $this, 'getAdditionalControlsColumns' ], 10, 4 );
|
115 |
-
|
116 |
-
add_filter( 'autoptimize_filter_js_exclude', [ $this, 'aoptFilterJsExclude' ], 10, 2 );
|
117 |
-
add_filter( 'autoptimize_filter_css_exclude', [ $this, 'aoptFilterCssExclude' ], 10, 2 );
|
118 |
-
add_filter( 'wmac_filter_js_exclude', [ $this, 'wmacFilterJsExclude' ], 10, 2 );
|
119 |
-
add_filter( 'wmac_filter_css_exclude', [ $this, 'wmacFilterCssExclude' ], 10, 2 );
|
120 |
-
add_filter( 'wmac_filter_js_minify_excluded', [ $this, 'wmacFilterJsMinifyExclude' ], 10, 2 );
|
121 |
-
add_filter( 'wmac_filter_css_minify_excluded', [ $this, 'wmacFilterCssMinifyExclude' ], 10, 2 );
|
122 |
-
}
|
123 |
-
|
124 |
-
function clearfyAdminBarMenu( $menu_items ) {
|
125 |
-
$current_url = add_query_arg( [ 'wbcr_assets_manager' => 1 ] );
|
126 |
-
|
127 |
-
$menu_items['assetsManager'] = [
|
128 |
-
'title' => '<span class="dashicons dashicons-list-view"></span> ' . __( 'Assets Manager', 'gonzales' ),
|
129 |
-
'href' => $current_url
|
130 |
-
];
|
131 |
-
|
132 |
-
return $menu_items;
|
133 |
-
}
|
134 |
-
|
135 |
-
/**
|
136 |
-
* @param WP_Admin_Bar $wp_admin_bar
|
137 |
-
*/
|
138 |
-
function assetsManagerAdminBar( $wp_admin_bar ) {
|
139 |
-
if ( ! $this->isUserCan() ) {
|
140 |
-
return;
|
141 |
-
}
|
142 |
-
|
143 |
-
$current_url = add_query_arg( [ 'wbcr_assets_manager' => 1 ] );
|
144 |
-
|
145 |
-
$args = [
|
146 |
-
'id' => 'assetsManager',
|
147 |
-
'title' => __( 'Assets Manager', 'gonzales' ),
|
148 |
-
'href' => $current_url
|
149 |
-
];
|
150 |
-
$wp_admin_bar->add_node( $args );
|
151 |
-
}
|
152 |
-
|
153 |
-
/**
|
154 |
-
* Action plugins loaded
|
155 |
-
*/
|
156 |
-
public function pluginsLoaded() {
|
157 |
-
if ( ! is_admin() ) {
|
158 |
-
$this->sided_plugins = [
|
159 |
-
'aopt' => 'autoptimize/autoptimize.php',
|
160 |
-
'wmac' => 'minify-and-combine/minify-and-combine.php'
|
161 |
-
];
|
162 |
-
}
|
163 |
-
|
164 |
-
if ( class_exists( 'WCL_Plugin' ) && ( WCL_Plugin::app()->getPopulateOption( 'remove_js_version', false ) || WCL_Plugin::app()->getPopulateOption( 'remove_css_version', false ) ) ) {
|
165 |
-
$this->sided_plugins['wclp'] = 'clearfy/clearfy.php';
|
166 |
-
}
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
$this->sided_plugins = apply_filters( 'wbcr_gnz_sided_plugins', $this->sided_plugins );
|
171 |
-
}
|
172 |
-
|
173 |
-
function assetsManager() {
|
174 |
-
if ( ! $this->isUserCan() || ! isset( $_GET['wbcr_assets_manager'] ) ) {
|
175 |
-
return;
|
176 |
-
}
|
177 |
-
|
178 |
-
$current_url = esc_url( $this->getCurrentUrl() );
|
179 |
-
|
180 |
-
// todo: вынести в метод
|
181 |
-
if ( is_multisite() && is_network_admin() ) {
|
182 |
-
$options = $this->getNetworkOption( 'assets_manager_options', [] );
|
183 |
-
} else {
|
184 |
-
$options = $this->getOption( 'assets_manager_options', [] );
|
185 |
-
}
|
186 |
-
|
187 |
-
echo '<div id="WBCR" class="wbcr-gnz-wrapper"';
|
188 |
-
if ( isset( $_GET['wbcr_assets_manager'] ) ) {
|
189 |
-
echo 'style="display: block;"';
|
190 |
-
}
|
191 |
-
echo '>';
|
192 |
-
|
193 |
-
//Form
|
194 |
-
echo '<form method="POST">';
|
195 |
-
wp_nonce_field( 'wbcr_assets_manager_nonce', 'wbcr_assets_manager_save' );
|
196 |
-
|
197 |
-
//Header
|
198 |
-
echo '<header class="wbcr-gnz-panel">';
|
199 |
-
echo '<div class="wbcr-gnz-panel__left">';
|
200 |
-
echo '<div class="wbcr-gnz-panel__logo"></div>';
|
201 |
-
echo '<ul class="wbcr-gnz-panel__data panel__data-main">';
|
202 |
-
echo '<li class="wbcr-gnz-panel__data-item __info-query">' . __( 'Total requests', 'gonzales' ) . ': <b class="wbcr-gnz-panel__item_value">--</b></li>';
|
203 |
-
echo '<li class="wbcr-gnz-panel__data-item __info-all-weight">' . __( 'Total size', 'gonzales' ) . ': <b class="wbcr-gnz-panel__item_value"><span class="wbcr-gnz-panel__color-1">--</span></b></li>';
|
204 |
-
echo '<li class="wbcr-gnz-panel__data-item __info-opt-weight">' . __( 'Optimized size', 'gonzales' ) . ': <b class="wbcr-gnz-panel__item_value"><span class="wbcr-gnz-panel__color-2">--</span></b></li>';
|
205 |
-
echo '<li class="wbcr-gnz-panel__data-item __info-off-js">' . __( 'Disabled js', 'gonzales' ) . ': <b class="wbcr-gnz-panel__item_value">--</li></b>';
|
206 |
-
echo '<li class="wbcr-gnz-panel__data-item __info-off-css">' . __( 'Disabled css', 'gonzales' ) . ': <b class="wbcr-gnz-panel__item_value">--</li></b>';
|
207 |
-
echo '</ul>';
|
208 |
-
$panel_to_premium_info = '<div class="wbcr-gnz-panel__premium"><div class="wbcr-gnz-tooltip wbcr-gnz-tooltip-bottom" data-tooltip="' . __( 'This is the general statistics to see the optimization result. Available in the paid version only.', 'gonzales' ) . '.">PRO</div></div>';
|
209 |
-
echo apply_filters( 'wbcr_gnz_panel_premium', $panel_to_premium_info );
|
210 |
-
echo '</div>';
|
211 |
-
echo '<div class="wbcr-gnz-panel__right">';
|
212 |
-
echo '<button class="wbcr-gnz-panel__reset wbcr-reset-button" type="button">' . __( 'Reset', 'gonzales' ) . '</button>';
|
213 |
-
echo '<input class="wbcr-gnz-panel__save" type="submit" value="' . __( 'Save', 'gonzales' ) . '">';
|
214 |
-
echo '<label class="wbcr-gnz-panel__checkbox wbcr-gnz-tooltip wbcr-gnz-tooltip-bottom" data-tooltip="' . __( 'In test mode, you can experiment with disabling unused scripts safely for your site. The resources that you disabled will be visible only to you (the administrator), and all other users will receive an unoptimized version of the site, until you remove this tick', 'gonzales' ) . '.">';
|
215 |
-
echo apply_filters( 'wbcr_gnz_test_mode_checkbox', '<input class="wbcr-gnz-panel__checkbox-input visually-hidden" type="checkbox" disabled="disabled" checked/><span class="wbcr-gnz-panel__checkbox-text-premium">' . __( 'Safe mode <b>PRO</b>', 'gonzales' ) . '</span>' );
|
216 |
-
echo '</label>';
|
217 |
-
echo '<button class="wbcr-gnz-panel__close wbcr-close-button" type="button" aria-label="' . __( 'Close', 'gonzales' ) . '" data-href="' . remove_query_arg( 'wbcr_assets_manager' ) . '"></button>';
|
218 |
-
echo '</div>';
|
219 |
-
echo '</header>';
|
220 |
-
|
221 |
-
// Main content
|
222 |
-
echo '<main class="wbcr-gnz-content">';
|
223 |
-
|
224 |
-
uksort( $this->collection, function ( $a, $b ) {
|
225 |
-
if ( 'plugins' == $a ) {
|
226 |
-
return - 1;
|
227 |
-
}
|
228 |
-
|
229 |
-
if ( 'plugins' == $b ) {
|
230 |
-
return 1;
|
231 |
-
}
|
232 |
-
|
233 |
-
return strcasecmp( $a, $b );
|
234 |
-
} );
|
235 |
-
|
236 |
-
// Tabs
|
237 |
-
echo '<ul class="wbcr-gnz-tabs">';
|
238 |
-
foreach ( $this->collection as $resource_type => $resources ) {
|
239 |
-
echo '<li class="wbcr-gnz-tabs__item">';
|
240 |
-
echo '<div class="wbcr-gnz-tabs__button wbcr-gnz-tabs__button--' . $resource_type . '" data-hash="' . $resource_type . '" aria-label="' . $resource_type . '"></div>';
|
241 |
-
echo '</li>';
|
242 |
-
}
|
243 |
-
echo '</ul>';
|
244 |
-
|
245 |
-
// Info
|
246 |
-
echo '<div class="wbcr-gnz-info"><div class="wbcr-gnz-info__warning">';
|
247 |
-
echo '<p><b>' . __( 'Important! Each page of your website has different sets of scripts and styles files.', 'gonzales' ) . '</b></p>';
|
248 |
-
echo '<p>' . __( 'Use this feature to disable unwanted scripts and styles by setting up the logic for different types of pages. We recommend working in "Safe mode" because disabling any necessary system script file can corrupt the website. All changes done in Safe mode are available for administrator only. This way only you, as the administrator, can see the result of optimization. To enable the changes for other users, uncheck Safe mode.', 'gonzales' ) . '</p>';
|
249 |
-
echo '<p>' . sprintf( __( 'For more details and user guides, check the plugin’s <a href="%s" target="_blank" rel="noreferrer noopener">documentation</a>.', 'gonzales' ), WbcrFactoryClearfy206_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'docs' ) ) . '</p>';
|
250 |
-
echo '</div>';
|
251 |
-
|
252 |
-
$premium_button = '<a class="wbcr-gnz-button__pro" href="' . WbcrFactoryClearfy206_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'assets-manager' ) . '" target="_blank" rel="noreferrer noopener">' . __( 'Upgrade to Premium', 'gonzales' ) . '</a>';
|
253 |
-
|
254 |
-
$upgrade_to_premium_info = '<div class="wbcr-gnz-info__go-to-premium"><ul>';
|
255 |
-
$upgrade_to_premium_info .= '<h3><span>' . __( 'MORE IN CLEARFY BUSINESS', 'gonzales' ) . '</span>' . $premium_button . '</h3><ul>';
|
256 |
-
$upgrade_to_premium_info .= '<li>' . __( 'Disable plugins (groups of scripts)', 'gonzales' ) . '</li>';
|
257 |
-
$upgrade_to_premium_info .= '<li>' . __( 'Conditions by the link template', 'gonzales' ) . '</li>';
|
258 |
-
$upgrade_to_premium_info .= '<li>' . __( 'Conditions by the regular expression', 'gonzales' ) . '</li>';
|
259 |
-
$upgrade_to_premium_info .= '<li>' . __( 'Safe mode', 'gonzales' ) . '</li>';
|
260 |
-
$upgrade_to_premium_info .= '<li>' . __( 'Statistics and optimization results', 'gonzales' ) . '</li>';
|
261 |
-
$upgrade_to_premium_info .= '</ul>';
|
262 |
-
$upgrade_to_premium_info .= '</div>';
|
263 |
-
echo apply_filters( 'wbcr_gnz_upgrade_to_premium_info', $upgrade_to_premium_info );
|
264 |
-
echo '</div>';
|
265 |
-
|
266 |
-
global $plugin_state;
|
267 |
-
|
268 |
-
foreach ( $this->collection as $resource_type => $resources ) {
|
269 |
-
// Tabs content
|
270 |
-
echo '<div class="wbcr-gnz-tabs-content">';
|
271 |
-
echo '<div class="wbcr-gnz-table">';
|
272 |
-
echo '<table>';
|
273 |
-
echo '<col class="wbcr-gnz-table__loaded"/>';
|
274 |
-
echo '<col class="wbcr-gnz-table__size"/>';
|
275 |
-
echo '<col class="wbcr-gnz-table__script"/>';
|
276 |
-
echo '<col class="wbcr-gnz-table__state"/>';
|
277 |
-
echo '<col class="wbcr-gnz-table__turn-on"/>';
|
278 |
-
|
279 |
-
foreach ( $resources as $resource_name => $types ) {
|
280 |
-
$plugin_state = false;
|
281 |
-
|
282 |
-
if ( 'plugins' == $resource_type && ! empty( $resource_name ) ) {
|
283 |
-
$plugin_data = $this->getPluginData( $resource_name );
|
284 |
-
|
285 |
-
echo '<tbody>';
|
286 |
-
|
287 |
-
if ( ! empty( $plugin_data ) ) {
|
288 |
-
$is_disabled = $this->getIsDisabled( $options, $resource_type, $resource_name );
|
289 |
-
$disabled = $this->getDisabled( $is_disabled, $options, $resource_type, $resource_name );
|
290 |
-
|
291 |
-
$is_enabled = $this->getIsEnabled( $options, $resource_type, $resource_name );
|
292 |
-
$enabled = $this->getEnabled( $is_enabled, $options, $resource_type, $resource_name );
|
293 |
-
|
294 |
-
$plugin_state = $this->getState( $is_disabled, $disabled, $current_url );
|
295 |
-
$plugin_state = apply_filters( 'wbcr_gnz_get_plugin_state', false, $plugin_state );
|
296 |
-
|
297 |
-
echo '<tr class="wbcr-gnz-table__alternate">';
|
298 |
-
echo '<th style="width:5%">' . __( 'Loaded', 'gonzales' ) . '</th>';
|
299 |
-
echo '<th colspan="2">' . __( 'Plugin', 'gonzales' ) . '</th>';
|
300 |
-
|
301 |
-
echo apply_filters( 'wbcr_gnz_get_additional_head_columns', '' );
|
302 |
-
|
303 |
-
echo '<th class="wbcr-gnz-table__column_switch"><b>' . __( 'Load resource?', 'gonzales' ) . '</b></th>';
|
304 |
-
echo '<th class="wbcr-gnz-table__column_condition">' . __( 'Conditions', 'gonzales' ) . '</th>';
|
305 |
-
echo '</tr>';
|
306 |
-
echo '<tr>';
|
307 |
-
echo '<td>';
|
308 |
-
echo '<div class="wbcr-gnz-table__loaded-state wbcr-gnz-table__loaded-' . ( $plugin_state ? 'no' : 'yes' ) . ' wbcr-state"></div>';
|
309 |
-
echo '</td>';
|
310 |
-
echo '<td colspan="2" class="wbcr-gnz-table__item">';
|
311 |
-
echo '<div class="wbcr-gnz-table__item-name">' . $plugin_data['Name'] . '</div>';
|
312 |
-
echo '<div class="wbcr-gnz-table__item-author"><strong>' . __( 'Author', 'gonzales' ) . ':</strong> ' . $plugin_data['Author'] . '</div>';
|
313 |
-
echo '<div class="wbcr-gnz-table__item-version"><strong>' . __( 'Version', 'gonzales' ) . ':</strong> ' . $plugin_data['Version'] . '</div>';
|
314 |
-
echo '</td>';
|
315 |
-
|
316 |
-
echo apply_filters( 'wbcr_gnz_get_additional_controls_columns', '', $resource_type, $resource_name, $resource_name );
|
317 |
-
|
318 |
-
// State Controls
|
319 |
-
$id = '[' . $resource_type . '][' . $resource_name . ']';
|
320 |
-
echo $this->getStateControrlHTML( $id, $plugin_state, $is_disabled, $is_enabled, $resource_type, $resource_name, $disabled, $enabled, $current_url );
|
321 |
-
echo '</tr>';
|
322 |
-
}
|
323 |
-
}
|
324 |
-
|
325 |
-
echo '<tr class="wbcr-gnz-table__alternate">';
|
326 |
-
echo '<th style="width:5%">' . __( 'Loaded', 'gonzales' ) . '</th>';
|
327 |
-
echo '<th style="width:5%">' . __( 'Size', 'gonzales' ) . '</th>';
|
328 |
-
echo '<th class="wgz-th">' . __( 'Resource', 'gonzales' ) . '</th>';
|
329 |
-
|
330 |
-
echo apply_filters( 'wbcr_gnz_get_additional_head_columns', '' );
|
331 |
-
|
332 |
-
echo '<th class="wbcr-gnz-table__column_switch"><b>' . __( 'Load resource?', 'gonzales' ) . '</b></th>';
|
333 |
-
echo '<th class="wbcr-gnz-table__column_condition">' . __( 'Conditions', 'gonzales' ) . '</th>';
|
334 |
-
echo '</tr>';
|
335 |
-
|
336 |
-
foreach ( $types as $type_name => $rows ) {
|
337 |
-
|
338 |
-
if ( ! empty( $rows ) ) {
|
339 |
-
foreach ( $rows as $handle => $row ) {
|
340 |
-
$is_disabled = $this->getIsDisabled( $options, $type_name, $handle );
|
341 |
-
$disabled = $this->getDisabled( $is_disabled, $options, $type_name, $handle );
|
342 |
-
|
343 |
-
$is_enabled = $this->getIsEnabled( $options, $type_name, $handle );
|
344 |
-
$enabled = $this->getEnabled( $is_enabled, $options, $type_name, $handle );
|
345 |
-
|
346 |
-
/**
|
347 |
-
* Find dependency
|
348 |
-
*/
|
349 |
-
$deps = [];
|
350 |
-
foreach ( $rows as $dep_key => $dep_val ) {
|
351 |
-
if ( in_array( $handle, $dep_val['deps'] ) /*&& $is_disabled*/ ) {
|
352 |
-
$deps[] = '<a href="#' . $type_name . '-' . $dep_key . '">' . $dep_key . '</a>';
|
353 |
-
}
|
354 |
-
}
|
355 |
-
|
356 |
-
$comment = ( ! empty( $deps ) ? '<span class="wbcr-use-by-comment">' . __( 'In use by', 'gonzales' ) . ' ' . implode( ', ', $deps ) . '</span>' : '' );
|
357 |
-
$requires = '';
|
358 |
-
if ( ! empty( $row['deps'] ) ) {
|
359 |
-
$rdeps = [];
|
360 |
-
foreach ( $row['deps'] as $dep_val ) {
|
361 |
-
$rdeps[] = '<a href="#' . $type_name . '-' . $dep_val . '">' . $dep_val . '</a>';
|
362 |
-
}
|
363 |
-
$requires = ( $comment ? '<br>' : '' ) . '<span class="wbcr-use-by-comment">' . __( 'Requires', 'gonzales' ) . ' ' . implode( ', ', $rdeps ) . '</span>';
|
364 |
-
}
|
365 |
-
|
366 |
-
echo '<tr>';
|
367 |
-
|
368 |
-
// Loaded
|
369 |
-
$state = $this->getState( $is_disabled, $disabled, $current_url );
|
370 |
-
$display_state = $plugin_state === 1 ? 1 : $state;
|
371 |
-
echo '<td>';
|
372 |
-
echo '<div class="wbcr-gnz-table__loaded-state wbcr-gnz-table__loaded-' . ( $plugin_state ? 'no' : 'yes' );
|
373 |
-
echo ' wbcr-state' . ( $state ? ' wbcr-gnz-table__loaded-super-no' : '' );
|
374 |
-
echo ( 'plugins' == $resource_type ? ' wbcr-state-' . $resource_name : '' ) . '">';
|
375 |
-
echo '</div>';
|
376 |
-
echo '</td>';
|
377 |
-
|
378 |
-
// Size
|
379 |
-
echo '<td>';
|
380 |
-
echo '<div class="wbcr-gnz-table__size-value">' . $row['size'] . ' <b>KB</b></div>';
|
381 |
-
echo '</td>';
|
382 |
-
|
383 |
-
// Handle + Path + In use
|
384 |
-
echo '<td class="wgz-td">';
|
385 |
-
echo '<div class="wbcr-gnz-table__script-name"><b class="wbcr-wgz-resource-type-' . $type_name . '">' . $type_name . '</b>[' . $handle . ']</div>';
|
386 |
-
echo "<a id='" . $type_name . "-" . $handle . "' class='wbcr-anchor'></a>";
|
387 |
-
echo '<div class="wbcr-gnz-table__script-path">';
|
388 |
-
echo "<a href='" . $row['url_full'] . "' target='_blank'>";
|
389 |
-
echo str_replace( get_home_url(), '', $row['url_full'] ) . "</a>";
|
390 |
-
echo '</div>';
|
391 |
-
echo '<div class="wbcr-gnz-table__script-version">';
|
392 |
-
echo __( 'Version', 'gonzales' ) . ': ' . ( ! empty( $row['ver'] ) ? $row['ver'] : __( '--', 'gonzales' ) );
|
393 |
-
echo '</div>';
|
394 |
-
echo '<div>' . $comment . $requires . '</div>';
|
395 |
-
echo '</td>';
|
396 |
-
|
397 |
-
// Controls for other plugins
|
398 |
-
echo apply_filters( 'wbcr_gnz_get_additional_controls_columns', '', $type_name, $row['url_full'], $resource_name );
|
399 |
-
|
400 |
-
// State Controls
|
401 |
-
$id = '[' . $type_name . '][' . $handle . ']';
|
402 |
-
echo $this->getStateControrlHTML( $id, $state, $is_disabled, $is_enabled, $type_name, $handle, $disabled, $enabled, $current_url );
|
403 |
-
|
404 |
-
echo "<input type='hidden' class='wbcr-info-data' data-type='{$type_name}' data-off='{$display_state}' value='{$row['size']}'>";
|
405 |
-
echo '</tr>';
|
406 |
-
|
407 |
-
echo apply_filters( 'wbcr_gnz_after_scripts_table_row', '', $resource_type, $resource_name, $type_name, $handle );
|
408 |
-
}
|
409 |
-
}
|
410 |
-
}
|
411 |
-
|
412 |
-
if ( 'plugins' == $resource_type && ! empty( $resource_name ) ) {
|
413 |
-
echo '</tbody>';
|
414 |
-
}
|
415 |
-
}
|
416 |
-
|
417 |
-
echo '</table>';
|
418 |
-
echo '</div>';
|
419 |
-
echo '</div>';
|
420 |
-
}
|
421 |
-
echo '</main>';
|
422 |
-
echo '</form> <!-- /endform -->';
|
423 |
-
echo '</div> <!-- /div2 -->';
|
424 |
-
}
|
425 |
-
|
426 |
-
/**
|
427 |
-
* Get is disabled
|
428 |
-
*
|
429 |
-
* @param $options
|
430 |
-
* @param $type_name
|
431 |
-
* @param $handle
|
432 |
-
*
|
433 |
-
* @return bool
|
434 |
-
*/
|
435 |
-
public function getIsDisabled( $options, $type_name, $handle ) {
|
436 |
-
return isset( $options['disabled'] ) && isset( $options['disabled'][ $type_name ] ) && isset( $options['disabled'][ $type_name ][ $handle ] );
|
437 |
-
}
|
438 |
-
|
439 |
-
/**
|
440 |
-
* Get disabled
|
441 |
-
*
|
442 |
-
* @param $is_disabled
|
443 |
-
* @param $options
|
444 |
-
* @param $type_name
|
445 |
-
* @param $handle
|
446 |
-
*
|
447 |
-
* @return array
|
448 |
-
*/
|
449 |
-
public function getDisabled( $is_disabled, $options, $type_name, $handle ) {
|
450 |
-
$disabled = [];
|
451 |
-
|
452 |
-
if ( $is_disabled ) {
|
453 |
-
$disabled = &$options['disabled'][ $type_name ][ $handle ];
|
454 |
-
if ( ! isset( $disabled['current'] ) ) {
|
455 |
-
$disabled['current'] = [];
|
456 |
-
}
|
457 |
-
if ( ! isset( $disabled['everywhere'] ) ) {
|
458 |
-
$disabled['everywhere'] = [];
|
459 |
-
}
|
460 |
-
|
461 |
-
$disabled = apply_filters( 'wbcr_gnz_get_disabled', $disabled );
|
462 |
-
}
|
463 |
-
|
464 |
-
return $disabled;
|
465 |
-
}
|
466 |
-
|
467 |
-
/**
|
468 |
-
* Get is enabled
|
469 |
-
*
|
470 |
-
* @param $options
|
471 |
-
* @param $type_name
|
472 |
-
* @param $handle
|
473 |
-
*
|
474 |
-
* @return bool
|
475 |
-
*/
|
476 |
-
public function getIsEnabled( $options, $type_name, $handle ) {
|
477 |
-
return isset( $options['enabled'] ) && isset( $options['enabled'][ $type_name ] ) && isset( $options['enabled'][ $type_name ][ $handle ] );
|
478 |
-
}
|
479 |
-
|
480 |
-
/**
|
481 |
-
* Get enabled
|
482 |
-
*
|
483 |
-
* @param $is_enabled
|
484 |
-
* @param $options
|
485 |
-
* @param $type_name
|
486 |
-
* @param $handle
|
487 |
-
*
|
488 |
-
* @return array
|
489 |
-
*/
|
490 |
-
public function getEnabled( $is_enabled, $options, $type_name, $handle ) {
|
491 |
-
$enabled = [];
|
492 |
-
|
493 |
-
if ( $is_enabled ) {
|
494 |
-
$enabled = &$options['enabled'][ $type_name ][ $handle ];
|
495 |
-
|
496 |
-
if ( ! isset( $enabled['current'] ) ) {
|
497 |
-
$enabled['current'] = [];
|
498 |
-
}
|
499 |
-
if ( ! isset( $enabled['everywhere'] ) ) {
|
500 |
-
$enabled['everywhere'] = [];
|
501 |
-
}
|
502 |
-
|
503 |
-
$enabled = apply_filters( 'wbcr_gnz_get_enabled', $enabled );
|
504 |
-
}
|
505 |
-
|
506 |
-
return $enabled;
|
507 |
-
}
|
508 |
-
|
509 |
-
/**
|
510 |
-
* Get State
|
511 |
-
*
|
512 |
-
* @param $is_disabled
|
513 |
-
* @param $disabled
|
514 |
-
* @param $current_url
|
515 |
-
*
|
516 |
-
* @return int
|
517 |
-
*/
|
518 |
-
public function getState( $is_disabled, $disabled, $current_url ) {
|
519 |
-
$state = 0;
|
520 |
-
if ( $is_disabled && ( $disabled['everywhere'] == 1 || in_array( $current_url, $disabled['current'] ) || apply_filters( 'wbcr_gnz_check_state_disabled', false, $disabled ) ) ) {
|
521 |
-
$state = 1;
|
522 |
-
}
|
523 |
-
|
524 |
-
return $state;
|
525 |
-
}
|
526 |
-
|
527 |
-
/**
|
528 |
-
* Get state controrl HTML
|
529 |
-
*
|
530 |
-
* @param $id
|
531 |
-
* @param $state
|
532 |
-
* @param $is_disabled
|
533 |
-
* @param $is_enabled
|
534 |
-
* @param $type_name
|
535 |
-
* @param $handle
|
536 |
-
* @param $disabled
|
537 |
-
* @param $enabled
|
538 |
-
* @param $current_url
|
539 |
-
*
|
540 |
-
* @return string
|
541 |
-
*/
|
542 |
-
public function getStateControrlHTML( $id, $state, $is_disabled, $is_enabled, $type_name, $handle, $disabled, $enabled, $current_url ) {
|
543 |
-
// Disable
|
544 |
-
$html = '<td>';
|
545 |
-
$html .= '<label class="wbcr-gnz-switch' . ( $type_name == 'plugins' ? apply_filters( 'wbcr_gnz_switch_premium', ' wbcr-gnz-switch-premium' ) : '' ) . '">';
|
546 |
-
$html .= '<input class="wbcr-gnz-switch__input visually-hidden' . apply_filters( 'wbcr_gnz_switch_plugin_premium', $type_name == 'plugins' ? '' : ' wbcr-gnz-disable' ) . '" type="checkbox"' . checked( $state, true, false );
|
547 |
-
$html .= ( 'plugins' == $type_name ? " data-handle='{$handle}'" : "" ) . '/>';
|
548 |
-
$html .= '<input type="hidden" name="disabled' . $id . '[state]" value="' . ( $state ? 'disable' : '' ) . '"/>';
|
549 |
-
$html .= '<span class="wbcr-gnz-switch__inner" data-off="' . __( 'No', 'gonzales' ) . '" data-on="' . __( 'Yes', 'gonzales' ) . '"></span>';
|
550 |
-
$html .= '<span class="wbcr-gnz-switch__slider"></span>';
|
551 |
-
$html .= '</label>';
|
552 |
-
$html .= '</td>';
|
553 |
-
|
554 |
-
// Enable
|
555 |
-
$class_name = 'wbcr-assets-manager-enable';
|
556 |
-
if ( 'plugins' == $type_name ) {
|
557 |
-
$class_name = apply_filters( 'wbcr_gnz_control_classname', 'wbcr-gnz' );
|
558 |
-
}
|
559 |
-
$html .= '<td>';
|
560 |
-
$html .= '<div class="wbcr-gnz-table__note ' . $class_name . '-placeholder"';
|
561 |
-
if ( $state ) {
|
562 |
-
$html .= ' style="display: none;"';
|
563 |
-
}
|
564 |
-
if ( 'plugins' != $type_name ) {
|
565 |
-
$html .= '><p>' . __( 'Click the switch in the <b>Load resource?</b> column to display the conditions for loading the resource.', 'gonzales' ) . '</p>';
|
566 |
-
} else {
|
567 |
-
$html .= '><p>' . apply_filters( 'wbcr_gnz_conditions_note_premium', __( 'Set the plugin logic to apply it to all plugin’s resources. This feature available at the paid version.', 'gonzales' ) ) . '</p>';
|
568 |
-
}
|
569 |
-
$html .= '</div>';
|
570 |
-
$html .= '<span class="' . $class_name . '"';
|
571 |
-
if ( ! $state ) {
|
572 |
-
$html .= ' style="display: none;"';
|
573 |
-
}
|
574 |
-
$html .= '>';
|
575 |
-
$html .= '<select class="wbcr-gnz-table__select wbcr-gnz-action-select" name="wgz_action' . $id . '">';
|
576 |
-
$html .= '<option value="current"' . selected( $is_disabled && ! empty( $disabled['current'] ), true, false ) . '>' . __( 'Current URL', 'gonzales' ) . '</option>';
|
577 |
-
$html .= '<option value="everywhere"' . selected( $is_disabled && ! empty( $disabled['everywhere'] ), true, false ) . '>' . __( 'Everywhere', 'gonzales' ) . '</option>';
|
578 |
-
$options = '<option value="custom"' . selected( $is_disabled && ! empty( $disabled['custom'] ), true, false ) . ' class="wbcr-gnz-table__select-pro">' . __( 'Custom URL (PRO)', 'gonzales' ) . '</option>';
|
579 |
-
$options .= '<option value="regex"' . selected( $is_disabled && ! empty( $disabled['regex'] ), true, false ) . ' class="wbcr-gnz-table__select-pro">' . __( 'Regular expression (PRO)', 'gonzales' ) . '</option>';
|
580 |
-
$html .= apply_filters( 'wbcr_gnz_select_options', $options, $is_disabled, $disabled );
|
581 |
-
$html .= '</select>';
|
582 |
-
|
583 |
-
// Everywhere
|
584 |
-
$html .= "<span class='wbcr-assets-manager everywhere'";
|
585 |
-
if ( ! $is_disabled || empty( $disabled['everywhere'] ) ) {
|
586 |
-
$html .= " style='display: none;'";
|
587 |
-
}
|
588 |
-
$html .= ">";
|
589 |
-
$html .= '<div class="wbcr-gnz-table__label">' . __( 'Exclude', 'gonzales' ) . ': <i class="wbcr-gnz-help-hint wbcr-gnz-tooltip wbcr-gnz-tooltip-bottom" data-tooltip="' . __( 'You can disable this resource for all pages, except sections and page types listed below. Specify sections and page types with the enabled resource.', 'gonzales' ) . '"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""></i></div>';
|
590 |
-
$html .= '<ul class="wbcr-gnz-table__options">';
|
591 |
-
|
592 |
-
$html .= '<li class="wbcr-gnz-table__options-item">';
|
593 |
-
$html .= "<input type='hidden' name='enabled{$id}[current]' value='' />";
|
594 |
-
$html .= '<label class="wbcr-gnz-table__checkbox">';
|
595 |
-
$html .= '<input class="wbcr-gnz-table__checkbox-input visually-hidden" type="checkbox" name="enabled' . $id . '[current]" value="' . $current_url . '"';
|
596 |
-
if ( $is_enabled && in_array( $current_url, $enabled['current'] ) ) {
|
597 |
-
$html .= ' checked';
|
598 |
-
}
|
599 |
-
$html .= '/>';
|
600 |
-
$html .= '<span class="wbcr-gnz-table__checkbox-text">' . __( 'Current URL', 'gonzales' ) . '</span>';
|
601 |
-
$html .= '</label>';
|
602 |
-
$html .= '</li>';
|
603 |
-
|
604 |
-
$post_types = get_post_types( [ 'public' => true ], 'objects', 'and' );
|
605 |
-
if ( ! empty( $post_types ) ) {
|
606 |
-
$html .= "<input type='hidden' name='enabled{$id}[post_types]' value='' />";
|
607 |
-
foreach ( $post_types as $key => $value ) {
|
608 |
-
$html .= '<li class="wbcr-gnz-table__options-item">';
|
609 |
-
$html .= '<label class="wbcr-gnz-table__checkbox">';
|
610 |
-
$html .= '<input class="wbcr-gnz-table__checkbox-input visually-hidden" type="checkbox" name="enabled' . $id . '[post_types][]" value="' . $key . '"';
|
611 |
-
if ( isset( $enabled['post_types'] ) ) {
|
612 |
-
if ( in_array( $key, $enabled['post_types'] ) ) {
|
613 |
-
$html .= ' checked';
|
614 |
-
}
|
615 |
-
}
|
616 |
-
$html .= '/>';
|
617 |
-
$html .= '<span class="wbcr-gnz-table__checkbox-text">' . $value->label . '</span>';
|
618 |
-
$html .= '</label>';
|
619 |
-
$html .= '</li>';
|
620 |
-
}
|
621 |
-
}
|
622 |
-
|
623 |
-
$taxonomies = get_taxonomies( [ 'public' => true ], 'objects', 'and' );
|
624 |
-
|
625 |
-
if ( ! empty( $taxonomies ) ) {
|
626 |
-
unset( $taxonomies['category'] );
|
627 |
-
$html .= "<input type='hidden' name='enabled{$id}[taxonomies]' value='' />";
|
628 |
-
foreach ( $taxonomies as $key => $value ) {
|
629 |
-
$html .= '<li class="wbcr-gnz-table__options-item">';
|
630 |
-
$html .= '<label class="wbcr-gnz-table__checkbox">';
|
631 |
-
$html .= '<input class="wbcr-gnz-table__checkbox-input visually-hidden" type="checkbox" name="enabled' . $id . '[taxonomies][]" value="' . $key . '"';
|
632 |
-
if ( isset( $enabled['taxonomies'] ) ) {
|
633 |
-
if ( in_array( $key, $enabled['taxonomies'] ) ) {
|
634 |
-
$html .= ' checked';
|
635 |
-
}
|
636 |
-
}
|
637 |
-
$html .= '/>';
|
638 |
-
$html .= '<span class="wbcr-gnz-table__checkbox-text">' . $value->label . '</span>';
|
639 |
-
$html .= '</label>';
|
640 |
-
$html .= '</li>';
|
641 |
-
}
|
642 |
-
}
|
643 |
-
|
644 |
-
$categories = get_categories();
|
645 |
-
|
646 |
-
if ( ! empty( $categories ) ) {
|
647 |
-
$html .= "<input type='hidden' name='enabled{$id}[categories]' value='' />";
|
648 |
-
foreach ( $categories as $key => $cat ) {
|
649 |
-
$html .= '<li class="wbcr-gnz-table__options-item">';
|
650 |
-
$html .= '<label class="wbcr-gnz-table__checkbox">';
|
651 |
-
$html .= '<input class="wbcr-gnz-table__checkbox-input visually-hidden" type="checkbox" name="enabled' . $id . '[categories][]" value="' . $cat->term_id . '"';
|
652 |
-
if ( isset( $enabled['categories'] ) ) {
|
653 |
-
if ( in_array( $cat->term_id, $enabled['categories'] ) ) {
|
654 |
-
$html .= ' checked';
|
655 |
-
}
|
656 |
-
}
|
657 |
-
$html .= '/>';
|
658 |
-
$html .= '<span class="wbcr-gnz-table__checkbox-text">' . $cat->name . '</span>';
|
659 |
-
$html .= '</label>';
|
660 |
-
$html .= '</li>';
|
661 |
-
}
|
662 |
-
}
|
663 |
-
|
664 |
-
$html .= '</ul>';
|
665 |
-
$html .= '</span>';
|
666 |
-
|
667 |
-
// Custom URL
|
668 |
-
$control_html = '<div class="wbcr-gnz-table__field wbcr-assets-manager custom"';
|
669 |
-
if ( ! $is_disabled || empty( $disabled['custom'] ) ) {
|
670 |
-
$control_html .= ' style="display: none;"';
|
671 |
-
}
|
672 |
-
$control_html .= '>';
|
673 |
-
$control_html .= '<label class="wbcr-gnz-table__label" for="disabled' . $id . '[custom][]" title="' . __( 'Example', 'gonzales' ) . ': ' . site_url() . '/post/*, ' . site_url() . '/page-*>">' . __( 'Enter URL (set * for mask)', 'gonzales' ) . ': <i class="wbcr-gnz-help-hint wbcr-gnz-tooltip wbcr-gnz-tooltip-bottom" data-tooltip="' . __( 'You can disable the resource only for the pages with the matched to the template address. For example, if you set the template for the link as http://yoursite.test/profile/*, then the resource is disabled for the following pages: http://yoursite.test/profile/12, http://yoursite.test/profile/43, http://yoursite.test/profile/999. If you don’t use the asterisk symbol in the template then the plugin will disable the resource only for the pages with 100% match in the specified link type. This feature is available at the paid version.', 'gonzales' ) . '"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""></i></label>';
|
674 |
-
$control_html .= '<div class="wbcr-gnz-table__field-item">';
|
675 |
-
$control_html .= '<input class="wbcr-gnz-table__field-input" name="disabled' . $id . '[custom][]" type="text" placeholder="http://yoursite.test/profile/*" value="" disabled="disabled">';
|
676 |
-
$control_html .= '<button class="wbcr-gnz-table__field-add" type="button" aria-label="' . __( 'Add field', 'gonzales' ) . '" disabled></button>';
|
677 |
-
$control_html .= '</div>';
|
678 |
-
//$control_html .= '<em>Пример: http://yoursite.test/profile/*</em>';
|
679 |
-
$control_html .= '</div>';
|
680 |
-
// Regex
|
681 |
-
$control_html .= "<div class='wbcr-gnz-table__field wbcr-assets-manager regex'";
|
682 |
-
if ( ! $is_disabled || empty( $disabled['regex'] ) ) {
|
683 |
-
$control_html .= " style='display: none;'";
|
684 |
-
}
|
685 |
-
$control_html .= ">";
|
686 |
-
$control_html .= '<label class="wbcr-gnz-table__label" for="disabled' . $id . '[regex]">' . __( 'Enter regular expression', 'gonzales' ) . ': <i class="wbcr-gnz-help-hint wbcr-gnz-tooltip wbcr-gnz-tooltip-bottom" data-tooltip="' . __( 'Regular expressions can be used by experts. This tool creates flexible conditions to disable the resource. For example, if you specify this expression: ^([A-z0-9]+-)?gifts? then the resource will be disabled at the following pages http://yoursite.test/get-gift/, http://yoursite.test/gift/, http://yoursite.test/get-gifts/, http://yoursite.test/gifts/. The plugin ignores the backslash at the beginning of the query string, so you can dismiss it. Check your regular expressions in here: https://regex101.com, this will prevent you from the mistakes. This feature is available at the paid version.', 'gonzales' ) . '"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""></i></label>';
|
687 |
-
$control_html .= '<textarea class="wbcr-gnz-table__textarea" rows="3" name="disabled' . $id . '[regex]" placeholder="^rockstar-[0-9]{2,5}" disabled="disabled"></textarea>';
|
688 |
-
$control_html .= "</div>";
|
689 |
-
$html .= apply_filters( 'wbcr_gnz_control_html', $control_html, $id, $is_disabled, $disabled );
|
690 |
-
|
691 |
-
$html .= '</span>';
|
692 |
-
|
693 |
-
if ( isset( $disabled['current'] ) && ! empty( $disabled['current'] ) ) {
|
694 |
-
$custom_urls = "";
|
695 |
-
|
696 |
-
foreach ( $disabled['current'] as $item_url ) {
|
697 |
-
if ( $current_url != $item_url ) {
|
698 |
-
$full_url = site_url() . $item_url;
|
699 |
-
$custom_urls .= "<span><a href='" . $full_url . "'>" . $full_url . "</a></span>";
|
700 |
-
}
|
701 |
-
}
|
702 |
-
|
703 |
-
if ( ! empty( $custom_urls ) ) {
|
704 |
-
$html .= '<div class="wbcr-gnz-table__also">';
|
705 |
-
$html .= '<div class="wbcr-gnz-table__label">' . __( 'Also disabled for pages', 'gonzales' ) . ':</div>';
|
706 |
-
$html .= '<div class="wbcr-gnz-table__also-url">' . $custom_urls . '</div>';
|
707 |
-
$html .= '</div>';
|
708 |
-
}
|
709 |
-
}
|
710 |
-
$html .= '</td>';
|
711 |
-
|
712 |
-
return $html;
|
713 |
-
}
|
714 |
-
|
715 |
-
public function formSave() {
|
716 |
-
if ( isset( $_GET['wbcr_assets_manager'] ) && isset( $_POST['wbcr_assets_manager_save'] ) ) {
|
717 |
-
|
718 |
-
if ( ! $this->isUserCan() || ! wp_verify_nonce( filter_input( INPUT_POST, 'wbcr_assets_manager_save' ), 'wbcr_assets_manager_nonce' ) ) {
|
719 |
-
wp_die( __( 'You don\'t have enough capability to edit this information.', 'gonzales' ), 403 );
|
720 |
-
|
721 |
-
return;
|
722 |
-
}
|
723 |
-
|
724 |
-
// todo: вынести в метод
|
725 |
-
if ( is_multisite() && is_network_admin() ) {
|
726 |
-
$options = $this->getNetworkOption( 'assets_manager_options', [] );
|
727 |
-
} else {
|
728 |
-
$options = $this->getOption( 'assets_manager_options', [] );
|
729 |
-
}
|
730 |
-
|
731 |
-
$current_url = esc_url( $this->getCurrentUrl() );
|
732 |
-
|
733 |
-
if ( isset( $_POST['disabled'] ) && ! empty( $_POST['disabled'] ) ) {
|
734 |
-
foreach ( $_POST['disabled'] as $type => $assets ) {
|
735 |
-
if ( ! empty( $assets ) ) {
|
736 |
-
foreach ( $assets as $handle => $where ) {
|
737 |
-
$handle = sanitize_text_field( $handle );
|
738 |
-
$where = sanitize_text_field( $where['state'] );
|
739 |
-
|
740 |
-
if ( ! isset( $options['disabled'][ $type ][ $handle ] ) ) {
|
741 |
-
$options = is_array( $options ) ? $options : [];
|
742 |
-
$options['disabled'][ $type ][ $handle ] = [];
|
743 |
-
}
|
744 |
-
$disabled = &$options['disabled'][ $type ][ $handle ];
|
745 |
-
|
746 |
-
if ( ! empty( $where ) && 'disable' == $where ) {
|
747 |
-
$action = isset( $_POST['wgz_action'][ $type ][ $handle ] ) ? $_POST['wgz_action'][ $type ][ $handle ] : '';
|
748 |
-
|
749 |
-
if ( "everywhere" == $action ) {
|
750 |
-
$disabled = apply_filters( 'wbcr_gnz_unset_disabled', $disabled, $action );
|
751 |
-
|
752 |
-
$disabled['everywhere'] = 1;
|
753 |
-
} else if ( "current" == $action ) {
|
754 |
-
$disabled = apply_filters( 'wbcr_gnz_unset_disabled', $disabled, $action );
|
755 |
-
|
756 |
-
if ( ! isset( $disabled['current'] ) || ! is_array( $disabled['current'] ) ) {
|
757 |
-
$disabled['current'] = [];
|
758 |
-
}
|
759 |
-
|
760 |
-
if ( ! in_array( $current_url, $disabled['current'] ) ) {
|
761 |
-
array_push( $disabled['current'], $current_url );
|
762 |
-
}
|
763 |
-
} else {
|
764 |
-
$post_value = isset( $_POST['disabled'][ $type ][ $handle ] ) ? $_POST['disabled'][ $type ][ $handle ] : null;
|
765 |
-
$disabled = apply_filters( 'wbcr_gnz_pre_save_disabled', $disabled, $action, $post_value );
|
766 |
-
}
|
767 |
-
} else {
|
768 |
-
$disabled = apply_filters( 'wbcr_gnz_unset_disabled', $disabled, 'current' );
|
769 |
-
|
770 |
-
if ( isset( $disabled['current'] ) ) {
|
771 |
-
$current_key = array_search( $current_url, $disabled['current'] );
|
772 |
-
|
773 |
-
if ( ! empty( $current_key ) || $current_key === 0 ) {
|
774 |
-
unset( $disabled['current'][ $current_key ] );
|
775 |
-
if ( empty( $disabled['current'] ) ) {
|
776 |
-
unset( $disabled['current'] );
|
777 |
-
}
|
778 |
-
}
|
779 |
-
}
|
780 |
-
}
|
781 |
-
|
782 |
-
if ( empty( $disabled ) ) {
|
783 |
-
unset( $options['disabled'][ $type ][ $handle ] );
|
784 |
-
if ( empty( $options['disabled'][ $type ] ) ) {
|
785 |
-
unset( $options['disabled'][ $type ] );
|
786 |
-
if ( empty( $options['disabled'] ) ) {
|
787 |
-
unset( $options['disabled'] );
|
788 |
-
}
|
789 |
-
}
|
790 |
-
}
|
791 |
-
}
|
792 |
-
}
|
793 |
-
}
|
794 |
-
}
|
795 |
-
|
796 |
-
if ( isset( $_POST['enabled'] ) && ! empty( $_POST['enabled'] ) ) {
|
797 |
-
foreach ( $_POST['enabled'] as $type => $assets ) {
|
798 |
-
if ( ! empty( $assets ) ) {
|
799 |
-
foreach ( $assets as $handle => $where ) {
|
800 |
-
|
801 |
-
if ( ! isset( $options['enabled'][ $type ][ $handle ] ) ) {
|
802 |
-
$options = is_array( $options ) ? $options : [];
|
803 |
-
$options['enabled'][ $type ][ $handle ] = [];
|
804 |
-
}
|
805 |
-
$enabled = &$options['enabled'][ $type ][ $handle ];
|
806 |
-
|
807 |
-
$action = isset( $_POST['wgz_action'][ $type ][ $handle ] ) ? $_POST['wgz_action'][ $type ][ $handle ] : '';
|
808 |
-
|
809 |
-
if ( "everywhere" == $action && ( ! empty( $where['current'] ) || $where['current'] === "0" ) ) {
|
810 |
-
if ( ! isset( $enabled['current'] ) || ! is_array( $enabled['current'] ) ) {
|
811 |
-
$enabled['current'] = [];
|
812 |
-
}
|
813 |
-
if ( ! in_array( $where['current'], $enabled['current'] ) ) {
|
814 |
-
array_push( $enabled['current'], $where['current'] );
|
815 |
-
}
|
816 |
-
} else {
|
817 |
-
if ( isset( $enabled['current'] ) ) {
|
818 |
-
$current_key = array_search( $current_url, $enabled['current'] );
|
819 |
-
if ( ! empty( $current_key ) || $current_key === 0 ) {
|
820 |
-
unset( $enabled['current'][ $current_key ] );
|
821 |
-
if ( empty( $enabled['current'] ) ) {
|
822 |
-
unset( $options['enabled'][ $type ][ $handle ]['current'] );
|
823 |
-
}
|
824 |
-
}
|
825 |
-
}
|
826 |
-
}
|
827 |
-
|
828 |
-
if ( "everywhere" == $action && ! empty( $where['post_types'] ) ) {
|
829 |
-
$enabled['post_types'] = [];
|
830 |
-
foreach ( $where['post_types'] as $key => $post_type ) {
|
831 |
-
if ( isset( $enabled['post_types'] ) ) {
|
832 |
-
if ( ! in_array( $post_type, $enabled['post_types'] ) ) {
|
833 |
-
array_push( $enabled['post_types'], $post_type );
|
834 |
-
}
|
835 |
-
}
|
836 |
-
}
|
837 |
-
} else {
|
838 |
-
unset( $enabled['post_types'] );
|
839 |
-
}
|
840 |
-
|
841 |
-
if ( "everywhere" == $action && ! empty( $where['taxonomies'] ) ) {
|
842 |
-
$enabled['taxonomies'] = [];
|
843 |
-
foreach ( $where['taxonomies'] as $key => $taxonomy ) {
|
844 |
-
if ( isset( $enabled['taxonomies'] ) ) {
|
845 |
-
if ( ! in_array( $taxonomy, $enabled['taxonomies'] ) ) {
|
846 |
-
array_push( $enabled['taxonomies'], $taxonomy );
|
847 |
-
}
|
848 |
-
}
|
849 |
-
}
|
850 |
-
} else {
|
851 |
-
unset( $enabled['taxonomies'] );
|
852 |
-
}
|
853 |
-
|
854 |
-
if ( "everywhere" == $action && ! empty( $where['categories'] ) ) {
|
855 |
-
$enabled['categories'] = [];
|
856 |
-
foreach ( $where['categories'] as $key => $category ) {
|
857 |
-
if ( isset( $enabled['categories'] ) ) {
|
858 |
-
if ( ! in_array( $category, $enabled['categories'] ) ) {
|
859 |
-
array_push( $enabled['categories'], $category );
|
860 |
-
}
|
861 |
-
}
|
862 |
-
}
|
863 |
-
} else {
|
864 |
-
unset( $enabled['categories'] );
|
865 |
-
}
|
866 |
-
|
867 |
-
if ( empty( $enabled ) ) {
|
868 |
-
unset( $options['enabled'][ $type ][ $handle ] );
|
869 |
-
if ( empty( $options['enabled'][ $type ] ) ) {
|
870 |
-
unset( $options['enabled'][ $type ] );
|
871 |
-
if ( empty( $options['enabled'] ) ) {
|
872 |
-
unset( $options['enabled'] );
|
873 |
-
}
|
874 |
-
}
|
875 |
-
}
|
876 |
-
}
|
877 |
-
}
|
878 |
-
}
|
879 |
-
}
|
880 |
-
|
881 |
-
do_action( 'wbcr_gnz_form_save' );
|
882 |
-
|
883 |
-
if ( is_multisite() && is_network_admin() ) {
|
884 |
-
$this->updateNetworkOption( 'assets_manager_options', $options );
|
885 |
-
} else {
|
886 |
-
$this->updateOption( 'assets_manager_options', $options );
|
887 |
-
}
|
888 |
-
|
889 |
-
WbcrFactoryClearfy206_Helpers::flushPageCache();
|
890 |
-
}
|
891 |
-
}
|
892 |
-
|
893 |
-
/**
|
894 |
-
* Get disabled from options
|
895 |
-
*
|
896 |
-
* @param $type
|
897 |
-
* @param $handle
|
898 |
-
*
|
899 |
-
* @return null
|
900 |
-
*/
|
901 |
-
private function getDisabledFromOptions( $type, $handle ) {
|
902 |
-
// todo: вынести в метод
|
903 |
-
if ( is_multisite() && is_network_admin() ) {
|
904 |
-
$options = $this->getNetworkOption( 'assets_manager_options', [] );
|
905 |
-
} else {
|
906 |
-
$options = $this->getOption( 'assets_manager_options', [] );
|
907 |
-
}
|
908 |
-
|
909 |
-
$results = apply_filters( 'wbcr_gnz_get_disabled_from_options', false, $options, $type, $handle );
|
910 |
-
if ( false !== $results ) {
|
911 |
-
return $results;
|
912 |
-
}
|
913 |
-
|
914 |
-
if ( isset( $options['disabled'] ) && isset( $options['disabled'][ $type ] ) && isset( $options['disabled'][ $type ][ $handle ] ) ) {
|
915 |
-
return $options['disabled'][ $type ][ $handle ];
|
916 |
-
}
|
917 |
-
|
918 |
-
return null;
|
919 |
-
}
|
920 |
-
|
921 |
-
/**
|
922 |
-
* Get enabled from options
|
923 |
-
*
|
924 |
-
* @param $type
|
925 |
-
* @param $handle
|
926 |
-
*
|
927 |
-
* @return null
|
928 |
-
*/
|
929 |
-
private function getEnabledFromOptions( $type, $handle ) {
|
930 |
-
// todo: вынести в метод
|
931 |
-
if ( is_multisite() && is_network_admin() ) {
|
932 |
-
$options = $this->getNetworkOption( 'assets_manager_options', [] );
|
933 |
-
} else {
|
934 |
-
$options = $this->getOption( 'assets_manager_options', [] );
|
935 |
-
}
|
936 |
-
|
937 |
-
$results = apply_filters( 'wbcr_gnz_get_enabled_from_options', false, $options, $type, $handle );
|
938 |
-
if ( false !== $results ) {
|
939 |
-
return $results;
|
940 |
-
}
|
941 |
-
|
942 |
-
if ( isset( $options['enabled'] ) && isset( $options['enabled'][ $type ] ) && isset( $options['enabled'][ $type ][ $handle ] ) ) {
|
943 |
-
return $options['enabled'][ $type ][ $handle ];
|
944 |
-
}
|
945 |
-
|
946 |
-
return null;
|
947 |
-
}
|
948 |
-
|
949 |
-
function unloadAssets( $src, $handle ) {
|
950 |
-
if ( isset( $_GET['wbcr_assets_manager'] ) ) {
|
951 |
-
return $src;
|
952 |
-
}
|
953 |
-
|
954 |
-
if ( apply_filters( 'wbcr_gnz_check_unload_assets', false ) ) {
|
955 |
-
return $src;
|
956 |
-
}
|
957 |
-
|
958 |
-
$type = ( current_filter() == 'script_loader_src' ) ? 'js' : 'css';
|
959 |
-
|
960 |
-
$current_url = esc_url( $this->getCurrentUrl() );
|
961 |
-
|
962 |
-
$disabled = $this->getDisabledFromOptions( $type, $handle );
|
963 |
-
$enabled = $this->getEnabledFromOptions( $type, $handle );
|
964 |
-
|
965 |
-
if ( ( isset( $disabled['everywhere'] ) && $disabled['everywhere'] == 1 ) || ( isset( $disabled['current'] ) && is_array( $disabled['current'] ) && in_array( $current_url, $disabled['current'] ) ) || apply_filters( 'wbcr_gnz_check_disabled_is_set', false, $disabled, $current_url ) ) {
|
966 |
-
|
967 |
-
if ( isset( $enabled['current'] ) && is_array( $enabled['current'] ) && in_array( $current_url, $enabled['current'] ) ) {
|
968 |
-
return $src;
|
969 |
-
}
|
970 |
-
|
971 |
-
if ( apply_filters( 'wbcr_gnz_check_unload_disabled', false, $disabled, $current_url ) ) {
|
972 |
-
return $src;
|
973 |
-
}
|
974 |
-
|
975 |
-
if ( isset( $enabled['post_types'] ) && is_singular() && in_array( get_post_type(), $enabled['post_types'] ) ) {
|
976 |
-
return $src;
|
977 |
-
}
|
978 |
-
|
979 |
-
if ( isset( $enabled['taxonomies'] ) ) {
|
980 |
-
$query = get_queried_object();
|
981 |
-
|
982 |
-
if ( ! empty( $query ) && isset( $query->taxonomy ) && in_array( $query->taxonomy, $enabled['taxonomies'] ) ) {
|
983 |
-
return $src;
|
984 |
-
}
|
985 |
-
}
|
986 |
-
|
987 |
-
if ( isset( $enabled['categories'] ) && in_array( get_query_var( 'cat' ), $enabled['categories'] ) ) {
|
988 |
-
return $src;
|
989 |
-
}
|
990 |
-
|
991 |
-
return false;
|
992 |
-
}
|
993 |
-
|
994 |
-
return $src;
|
995 |
-
}
|
996 |
-
|
997 |
-
/**
|
998 |
-
* Get information regarding used assets
|
999 |
-
*
|
1000 |
-
* @return bool
|
1001 |
-
*/
|
1002 |
-
public function collectAssets() {
|
1003 |
-
if ( ! isset( $_GET['wbcr_assets_manager'] ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
1004 |
-
return false;
|
1005 |
-
}
|
1006 |
-
|
1007 |
-
$denied = [
|
1008 |
-
'js' => [ 'wbcr-assets-manager', 'admin-bar' ],
|
1009 |
-
'css' => [ 'wbcr-assets-manager', 'admin-bar', 'dashicons' ],
|
1010 |
-
];
|
1011 |
-
$denied = apply_filters( 'wbcr_gnz_denied_assets', $denied );
|
1012 |
-
|
1013 |
-
/**
|
1014 |
-
* Imitate full untouched list without dequeued assets
|
1015 |
-
* Appends part of original table. Safe approach.
|
1016 |
-
*/
|
1017 |
-
$data_assets = [
|
1018 |
-
'js' => wp_scripts(),
|
1019 |
-
'css' => wp_styles(),
|
1020 |
-
];
|
1021 |
-
|
1022 |
-
foreach ( $data_assets as $type => $data ) {
|
1023 |
-
//$resource = array();
|
1024 |
-
foreach ( $data->groups as $el => $val ) {
|
1025 |
-
if ( isset( $data->registered[ $el ] ) ) {
|
1026 |
-
//foreach($resource as $el) {
|
1027 |
-
if ( ! in_array( $el, $denied[ $type ] ) ) {
|
1028 |
-
if ( isset( $data->registered[ $el ]->src ) ) {
|
1029 |
-
$url = $this->prepareCorrectUrl( $data->registered[ $el ]->src );
|
1030 |
-
$url_short = str_replace( get_home_url(), '', $url );
|
1031 |
-
|
1032 |
-
if ( false !== strpos( $url, get_theme_root_uri() ) ) {
|
1033 |
-
$resource_type = 'theme';
|
1034 |
-
} else if ( false !== strpos( $url, plugins_url() ) ) {
|
1035 |
-
$resource_type = 'plugins';
|
1036 |
-
} else {
|
1037 |
-
$resource_type = 'misc';
|
1038 |
-
}
|
1039 |
-
|
1040 |
-
$resource_name = '';
|
1041 |
-
if ( 'plugins' == $resource_type ) {
|
1042 |
-
$clean_url = str_replace( WP_PLUGIN_URL . '/', '', $url );
|
1043 |
-
$url_parts = explode( '/', $clean_url );
|
1044 |
-
$resource_name = isset( $url_parts[0] ) ? $url_parts[0] : '';
|
1045 |
-
}
|
1046 |
-
|
1047 |
-
$this->collection[ $resource_type ][ $resource_name ][ $type ][ $el ] = [
|
1048 |
-
'url_full' => $url,
|
1049 |
-
'url_short' => $url_short,
|
1050 |
-
//'state' => $this->get_visibility($type, $el),
|
1051 |
-
'size' => $this->getAssetSize( $url ),
|
1052 |
-
'ver' => $data->registered[ $el ]->ver,
|
1053 |
-
'deps' => ( isset( $data->registered[ $el ]->deps ) ? $data->registered[ $el ]->deps : [] ),
|
1054 |
-
];
|
1055 |
-
}
|
1056 |
-
}
|
1057 |
-
//}
|
1058 |
-
}
|
1059 |
-
}
|
1060 |
-
}
|
1061 |
-
|
1062 |
-
return false;
|
1063 |
-
}
|
1064 |
-
|
1065 |
-
/**
|
1066 |
-
* Loads functionality that allows to enable/disable js/css without site reload
|
1067 |
-
*/
|
1068 |
-
public function appendAsset() {
|
1069 |
-
if ( $this->isUserCan() && isset( $_GET['wbcr_assets_manager'] ) ) {
|
1070 |
-
wp_enqueue_style( 'wbcr-assets-manager', WGZ_PLUGIN_URL . '/assets/css/assets-manager.css', [], $this->plugin->getPluginVersion() );
|
1071 |
-
wp_enqueue_script( 'wbcr-assets-manager', WGZ_PLUGIN_URL . '/assets/js/assets-manager.js', [ 'jquery' ], $this->plugin->getPluginVersion(), true );
|
1072 |
-
}
|
1073 |
-
}
|
1074 |
-
|
1075 |
-
/**
|
1076 |
-
* Exception for address starting from "//example.com" instead of
|
1077 |
-
* "http://example.com". WooCommerce likes such a format
|
1078 |
-
*
|
1079 |
-
* @param string $url Incorrect URL.
|
1080 |
-
*
|
1081 |
-
* @return string Correct URL.
|
1082 |
-
*/
|
1083 |
-
private function prepareCorrectUrl( $url ) {
|
1084 |
-
if ( isset( $url[0] ) && isset( $url[1] ) && '/' == $url[0] && '/' == $url[1] ) {
|
1085 |
-
$out = ( is_ssl() ? 'https:' : 'http:' ) . $url;
|
1086 |
-
} else {
|
1087 |
-
$out = $url;
|
1088 |
-
}
|
1089 |
-
|
1090 |
-
return $out;
|
1091 |
-
}
|
1092 |
-
|
1093 |
-
/**
|
1094 |
-
* Get current URL
|
1095 |
-
*
|
1096 |
-
* @return string
|
1097 |
-
*/
|
1098 |
-
private function getCurrentUrl() {
|
1099 |
-
$url = explode( '?', $_SERVER['REQUEST_URI'], 2 );
|
1100 |
-
if ( strlen( $url[0] ) > 1 ) {
|
1101 |
-
$out = rtrim( $url[0], '/' );
|
1102 |
-
} else {
|
1103 |
-
$out = $url[0];
|
1104 |
-
}
|
1105 |
-
|
1106 |
-
return $out;
|
1107 |
-
}
|
1108 |
-
|
1109 |
-
/**
|
1110 |
-
* Checks how heavy is file
|
1111 |
-
*
|
1112 |
-
* @param string $src URL.
|
1113 |
-
*
|
1114 |
-
* @return int Size in KB.
|
1115 |
-
*/
|
1116 |
-
private function getAssetSize( $src ) {
|
1117 |
-
$weight = 0;
|
1118 |
-
|
1119 |
-
$home = get_theme_root() . '/../..';
|
1120 |
-
$src = explode( '?', $src );
|
1121 |
-
|
1122 |
-
if ( ! filter_var( $src[0], FILTER_VALIDATE_URL ) === false && strpos( $src[0], get_home_url() ) === false ) {
|
1123 |
-
return 0;
|
1124 |
-
}
|
1125 |
-
|
1126 |
-
$src_relative = $home . str_replace( get_home_url(), '', $this->prepareCorrectUrl( $src[0] ) );
|
1127 |
-
|
1128 |
-
if ( file_exists( $src_relative ) ) {
|
1129 |
-
$weight = round( filesize( $src_relative ) / 1024, 1 );
|
1130 |
-
}
|
1131 |
-
|
1132 |
-
return $weight;
|
1133 |
-
}
|
1134 |
-
|
1135 |
-
/**
|
1136 |
-
* Unset disabled
|
1137 |
-
*
|
1138 |
-
* @param $disabled
|
1139 |
-
* @param $action
|
1140 |
-
*
|
1141 |
-
* @return mixed
|
1142 |
-
*/
|
1143 |
-
public function unsetDisabled( $disabled, $action ) {
|
1144 |
-
if ( "everywhere" == $action ) {
|
1145 |
-
unset( $disabled['current'] );
|
1146 |
-
} else if ( "current" == $action ) {
|
1147 |
-
unset( $disabled['everywhere'] );
|
1148 |
-
}
|
1149 |
-
|
1150 |
-
return $disabled;
|
1151 |
-
}
|
1152 |
-
|
1153 |
-
/**
|
1154 |
-
* Get plugin data from folder name
|
1155 |
-
*
|
1156 |
-
* @param $name
|
1157 |
-
*
|
1158 |
-
* @return array
|
1159 |
-
*/
|
1160 |
-
private function getPluginData( $name ) {
|
1161 |
-
$data = [];
|
1162 |
-
|
1163 |
-
if ( $name ) {
|
1164 |
-
if ( ! function_exists( 'get_plugins' ) ) {
|
1165 |
-
// подключим файл с функцией get_plugins()
|
1166 |
-
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
1167 |
-
}
|
1168 |
-
$all_plugins = get_plugins();
|
1169 |
-
if ( ! empty( $all_plugins ) ) {
|
1170 |
-
foreach ( $all_plugins as $plugin_path => $plugin_data ) {
|
1171 |
-
if ( strpos( $plugin_path, $name . '/' ) !== false ) {
|
1172 |
-
$data = $plugin_data;
|
1173 |
-
$data['path'] = $plugin_path;
|
1174 |
-
break;
|
1175 |
-
}
|
1176 |
-
}
|
1177 |
-
}
|
1178 |
-
}
|
1179 |
-
|
1180 |
-
return $data;
|
1181 |
-
}
|
1182 |
-
|
1183 |
-
/**
|
1184 |
-
* Get sided plugin name
|
1185 |
-
*
|
1186 |
-
* @param string $index
|
1187 |
-
*
|
1188 |
-
* @return string
|
1189 |
-
*/
|
1190 |
-
private function getSidedPluginName( $index ) {
|
1191 |
-
return $index;
|
1192 |
-
/*if( isset($this->sided_plugins[$index]) ) {
|
1193 |
-
$parts = explode('/', $this->sided_plugins[$index]);
|
1194 |
-
|
1195 |
-
return isset($parts[0]) ? $parts[0] : $this->sided_plugins[$index];
|
1196 |
-
}
|
1197 |
-
|
1198 |
-
return "";*/
|
1199 |
-
}
|
1200 |
-
|
1201 |
-
/**
|
1202 |
-
* Get exclude sided plugin files
|
1203 |
-
*
|
1204 |
-
* @param string $index
|
1205 |
-
* @param string $type
|
1206 |
-
* @param bool $full
|
1207 |
-
*
|
1208 |
-
* @return array
|
1209 |
-
*/
|
1210 |
-
private function getSidedPluginFiles( $index, $type, $full = false ) {
|
1211 |
-
if ( isset( $this->sided_plugin_files[ $index ][ $type ] ) && ! empty( $this->sided_plugin_files[ $index ][ $type ] ) ) {
|
1212 |
-
return $this->sided_plugin_files[ $index ][ $type ];
|
1213 |
-
}
|
1214 |
-
|
1215 |
-
$this->sided_plugin_files[ $index ][ $type ] = [];
|
1216 |
-
|
1217 |
-
// todo: вынести в метод
|
1218 |
-
if ( is_multisite() && is_network_admin() ) {
|
1219 |
-
$options = $this->getNetworkOption( 'assets_manager_sided_plugins', [] );
|
1220 |
-
} else {
|
1221 |
-
$options = $this->getOption( 'assets_manager_sided_plugins', [] );
|
1222 |
-
}
|
1223 |
-
|
1224 |
-
$plugin = $this->getSidedPluginName( $index );
|
1225 |
-
|
1226 |
-
if ( $plugin && $options ) {
|
1227 |
-
if ( isset( $options[ $plugin ][ $type ] ) ) {
|
1228 |
-
$urls = $options[ $plugin ][ $type ];
|
1229 |
-
|
1230 |
-
if ( is_array( $urls ) ) {
|
1231 |
-
foreach ( $urls as $url ) {
|
1232 |
-
|
1233 |
-
if ( $full ) {
|
1234 |
-
$file = ( false !== strpos( $url, site_url() ) ? $url : site_url() . '/' . trim( $url, '/\\' ) );
|
1235 |
-
} else {
|
1236 |
-
$parts = explode( '/', $url );
|
1237 |
-
$file = array_pop( $parts );
|
1238 |
-
if ( empty( $file ) ) {
|
1239 |
-
$file = $url;
|
1240 |
-
}
|
1241 |
-
}
|
1242 |
-
|
1243 |
-
$this->sided_plugin_files[ $index ][ $type ][] = $file;
|
1244 |
-
}
|
1245 |
-
}
|
1246 |
-
}
|
1247 |
-
}
|
1248 |
-
|
1249 |
-
return $this->sided_plugin_files[ $index ][ $type ];
|
1250 |
-
}
|
1251 |
-
|
1252 |
-
/**
|
1253 |
-
* Is component active
|
1254 |
-
*
|
1255 |
-
* @param $index
|
1256 |
-
*
|
1257 |
-
* @return bool
|
1258 |
-
*/
|
1259 |
-
private function isComponentActive( $index ) {
|
1260 |
-
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
1261 |
-
|
1262 |
-
$plugin_path = isset( $this->sided_plugins[ $index ] ) ? $this->sided_plugins[ $index ] : null;
|
1263 |
-
|
1264 |
-
if ( $index == 'wmac' && defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) && class_exists( 'WCL_Plugin' ) ) {
|
1265 |
-
return WCL_Plugin::app()->isActivateComponent( 'minify_and_combine' );
|
1266 |
-
}
|
1267 |
-
|
1268 |
-
return is_plugin_active( $plugin_path );
|
1269 |
-
}
|
1270 |
-
|
1271 |
-
/**
|
1272 |
-
* Get component name
|
1273 |
-
*
|
1274 |
-
* @param $plugin_path
|
1275 |
-
* @param $index
|
1276 |
-
*
|
1277 |
-
* @return string
|
1278 |
-
*/
|
1279 |
-
private function getComponentName( $plugin_path, $index ) {
|
1280 |
-
if ( $index == 'wclp' ) {
|
1281 |
-
$name = 'Clearfy';
|
1282 |
-
} else if ( $index == 'wmac' ) {
|
1283 |
-
$name = __( 'Minify and Combine', 'gonzales' );
|
1284 |
-
} else {
|
1285 |
-
$data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin_path );
|
1286 |
-
$name = $data['Name'];
|
1287 |
-
}
|
1288 |
-
|
1289 |
-
return $name;
|
1290 |
-
}
|
1291 |
-
|
1292 |
-
/**
|
1293 |
-
* Get head columns
|
1294 |
-
*
|
1295 |
-
* @param string $html
|
1296 |
-
*
|
1297 |
-
* @return string
|
1298 |
-
*/
|
1299 |
-
public function getAdditionalHeadColumns( $html ) {
|
1300 |
-
if ( ! empty( $this->sided_plugins ) ) {
|
1301 |
-
foreach ( $this->sided_plugins as $index => $plugin_path ) {
|
1302 |
-
if ( $this->isComponentActive( $index ) ) {
|
1303 |
-
$title = $this->getComponentName( $plugin_path, $index );
|
1304 |
-
$text = $index == 'wclp' ? __( 'remove version?', 'gonzales' ) : __( 'optimize?', 'gonzales' );
|
1305 |
-
|
1306 |
-
$hint = '';
|
1307 |
-
if ( $index == 'wclp' ) {
|
1308 |
-
$hint = __( 'You’ve enabled "Remove query strings" from static resources in the "Clearfy" plugin. This list of settings helps you to exclude the necessary scripts and styles with remaining query strings. Press No to add a file to the excluded list.', 'gonzales' );
|
1309 |
-
} else if ( $index == 'wmac' ) {
|
1310 |
-
$hint = __( 'You’ve enabled the "Optimize js scripts?" and "Optimize CSS options" in the "Minify & Combine plugin". These settings exclude scripts and styles that you don’t want to optimize. Press No to add a file to the excluded list.', 'gonzales' );
|
1311 |
-
} else if ( $index == 'aopt' ) {
|
1312 |
-
$hint = __( 'You’ve enabled the "Optimize js scripts?" and "Optimize CSS options" in the "Autoptimize". These settings exclude scripts and styles that you don’t want to optimize. Press No to add a file to the excluded list.', 'gonzales' );
|
1313 |
-
}
|
1314 |
-
$html .= '<th class="wbcr-gnz-table__column_switch"><span class="wbcr-gnz-table__th-external-plugin">' . $title . ':<i class="wbcr-gnz-help-hint wbcr-gnz-tooltip wbcr-gnz-tooltip-bottom" data-tooltip="' . $hint . '."><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""></i></span><em>' . $text . '</em></th>';
|
1315 |
-
}
|
1316 |
-
}
|
1317 |
-
}
|
1318 |
-
|
1319 |
-
return $html;
|
1320 |
-
}
|
1321 |
-
|
1322 |
-
/**
|
1323 |
-
* Get active status for sided plugin
|
1324 |
-
*
|
1325 |
-
* @param $index
|
1326 |
-
* @param $options
|
1327 |
-
* @param $plugin
|
1328 |
-
* @param $type
|
1329 |
-
* @param $handle
|
1330 |
-
*
|
1331 |
-
* @return bool
|
1332 |
-
*/
|
1333 |
-
private function getActiveStatusForSidedPlugin( $index, $options, $plugin, $type, $handle ) {
|
1334 |
-
$active = isset( $options[ $plugin ][ $type ] ) && is_array( $options[ $plugin ][ $type ] ) && in_array( $handle, $options[ $plugin ][ $type ] );
|
1335 |
-
|
1336 |
-
/*if( !$active && !isset($options[$plugin]) ) {
|
1337 |
-
|
1338 |
-
switch( $index ) {
|
1339 |
-
case 'wclp':
|
1340 |
-
if( class_exists('WCL_Plugin') ) {
|
1341 |
-
if( 'plugins' == $type ) {
|
1342 |
-
$active = WCL_Plugin::app()->getPopulateOption('remove_js_version', false);
|
1343 |
-
if( !$active ) {
|
1344 |
-
$active = WCL_Plugin::app()->getPopulateOption('remove_css_version', false);
|
1345 |
-
}
|
1346 |
-
} else {
|
1347 |
-
$active = WCL_Plugin::app()->getPopulateOption('remove_' . $type . '_version', false);
|
1348 |
-
}
|
1349 |
-
}
|
1350 |
-
break;
|
1351 |
-
}
|
1352 |
-
}*/
|
1353 |
-
|
1354 |
-
return $active;
|
1355 |
-
}
|
1356 |
-
|
1357 |
-
/**
|
1358 |
-
* Get controls columns
|
1359 |
-
*
|
1360 |
-
* @param string $html
|
1361 |
-
* @param string $type
|
1362 |
-
* @param string $handle
|
1363 |
-
* @param string $plugin_handle
|
1364 |
-
*
|
1365 |
-
* @return string
|
1366 |
-
*/
|
1367 |
-
public function getAdditionalControlsColumns( $html, $type, $handle, $plugin_handle ) {
|
1368 |
-
if ( ! empty( $this->sided_plugins ) ) {
|
1369 |
-
|
1370 |
-
// todo: вынести в метод
|
1371 |
-
if ( is_multisite() && is_network_admin() ) {
|
1372 |
-
$options = $this->getNetworkOption( 'assets_manager_sided_plugins', [] );
|
1373 |
-
} else {
|
1374 |
-
$options = $this->getOption( 'assets_manager_sided_plugins', [] );
|
1375 |
-
}
|
1376 |
-
|
1377 |
-
foreach ( $this->sided_plugins as $index => $plugin_path ) {
|
1378 |
-
if ( $this->isComponentActive( $index ) ) {
|
1379 |
-
$plugin = $this->getSidedPluginName( $index );
|
1380 |
-
|
1381 |
-
$active = $this->getActiveStatusForSidedPlugin( $index, $options, $plugin, $type, $handle );
|
1382 |
-
$name = "sided_plugins[{$plugin}][{$type}][{$handle}]";
|
1383 |
-
|
1384 |
-
$html .= "<td>";
|
1385 |
-
|
1386 |
-
if ( ! empty( $handle ) && ( 'plugins' != $type && false !== strpos( $handle, '.' . $type ) || 'plugins' == $type ) ) {
|
1387 |
-
$html .= '<label class="wbcr-gnz-switch">';
|
1388 |
-
$html .= '<input class="wbcr-gnz-switch__input visually-hidden wbcr-gnz-sided-disable';
|
1389 |
-
$html .= ( 'plugins' != $type ? ' wbcr-gnz-sided-' . $index . '-' . $plugin_handle : '' );
|
1390 |
-
$html .= '" type="checkbox"' . checked( $active, true, false );
|
1391 |
-
$html .= ( 'plugins' == $type ? ' data-handle="' . $index . '-' . $plugin_handle . '"' : '' ) . '/>';
|
1392 |
-
$html .= '<input type="hidden" name="' . $name . '" value="' . ( $active ? 1 : 0 ) . '"/>';
|
1393 |
-
$html .= '<span class="wbcr-gnz-switch__inner" data-off="' . __( 'No', 'gonzales' ) . '" data-on="' . __( 'Yes', 'gonzales' ) . '"></span>';
|
1394 |
-
$html .= '<span class="wbcr-gnz-switch__slider"></span>';
|
1395 |
-
$html .= '</label>';
|
1396 |
-
}
|
1397 |
-
$html .= "</td>";
|
1398 |
-
}
|
1399 |
-
}
|
1400 |
-
}
|
1401 |
-
|
1402 |
-
return $html;
|
1403 |
-
}
|
1404 |
-
|
1405 |
-
/**
|
1406 |
-
* @param $index
|
1407 |
-
* @param $type
|
1408 |
-
* @param $exclude
|
1409 |
-
*
|
1410 |
-
* @return array
|
1411 |
-
*/
|
1412 |
-
private function filterExclusions( $index, $type, $exclude ) {
|
1413 |
-
$files = $this->getSidedPluginFiles( $index, $type );
|
1414 |
-
|
1415 |
-
if ( ! empty( $files ) ) {
|
1416 |
-
if ( is_array( $exclude ) ) {
|
1417 |
-
$exclude = array_merge( $exclude, $files );
|
1418 |
-
} else {
|
1419 |
-
$dontmove = implode( ',', $files );
|
1420 |
-
$exclude .= ! empty( $exclude ) ? ',' . $dontmove : $dontmove;
|
1421 |
-
}
|
1422 |
-
}
|
1423 |
-
|
1424 |
-
return $exclude;
|
1425 |
-
}
|
1426 |
-
|
1427 |
-
/**
|
1428 |
-
* aopt filter js exclude
|
1429 |
-
*
|
1430 |
-
* @param $exclude
|
1431 |
-
* @param $content
|
1432 |
-
*
|
1433 |
-
* @return array
|
1434 |
-
*/
|
1435 |
-
public function aoptFilterJsExclude( $exclude, $content ) {
|
1436 |
-
return $this->filterExclusions( 'aopt', 'js', $exclude );
|
1437 |
-
}
|
1438 |
-
|
1439 |
-
/**
|
1440 |
-
* aopt filter css exclude
|
1441 |
-
*
|
1442 |
-
* @param $exclude
|
1443 |
-
* @param $content
|
1444 |
-
*
|
1445 |
-
* @return array
|
1446 |
-
*/
|
1447 |
-
public function aoptFilterCssExclude( $exclude, $content ) {
|
1448 |
-
return $this->filterExclusions( 'aopt', 'css', $exclude );
|
1449 |
-
}
|
1450 |
-
|
1451 |
-
/**
|
1452 |
-
* wmac filter js exclude
|
1453 |
-
*
|
1454 |
-
* @param $exclude
|
1455 |
-
* @param $content
|
1456 |
-
*
|
1457 |
-
* @return array
|
1458 |
-
*/
|
1459 |
-
public function wmacFilterJsExclude( $exclude, $content ) {
|
1460 |
-
return $this->filterExclusions( 'wmac', 'js', $exclude );
|
1461 |
-
}
|
1462 |
-
|
1463 |
-
/**
|
1464 |
-
* wmac filter css exclude
|
1465 |
-
*
|
1466 |
-
* @param $exclude
|
1467 |
-
* @param $content
|
1468 |
-
*
|
1469 |
-
* @return array
|
1470 |
-
*/
|
1471 |
-
public function wmacFilterCssExclude( $exclude, $content ) {
|
1472 |
-
return $this->filterExclusions( 'wmac', 'css', $exclude );
|
1473 |
-
}
|
1474 |
-
|
1475 |
-
/**
|
1476 |
-
* Filter js minify exclusions
|
1477 |
-
*
|
1478 |
-
* @param $index
|
1479 |
-
* @param $type
|
1480 |
-
* @param $result
|
1481 |
-
* @param $url
|
1482 |
-
*
|
1483 |
-
* @return bool
|
1484 |
-
*/
|
1485 |
-
private function filterJsMinifyExclusions( $index, $type, $result, $url ) {
|
1486 |
-
$files = $this->getSidedPluginFiles( $index, $type );
|
1487 |
-
|
1488 |
-
if ( ! empty( $files ) ) {
|
1489 |
-
foreach ( $files as $file ) {
|
1490 |
-
if ( false !== strpos( $url, $file ) ) {
|
1491 |
-
return false;
|
1492 |
-
}
|
1493 |
-
}
|
1494 |
-
}
|
1495 |
-
|
1496 |
-
return $result;
|
1497 |
-
}
|
1498 |
-
|
1499 |
-
/**
|
1500 |
-
* Action wmac_filter_js_minify_excluded
|
1501 |
-
*
|
1502 |
-
* @param $result
|
1503 |
-
* @param $url
|
1504 |
-
*
|
1505 |
-
* @return mixed
|
1506 |
-
*/
|
1507 |
-
public function wmacFilterJsMinifyExclude( $result, $url ) {
|
1508 |
-
return $this->filterJsMinifyExclusions( 'wmac', 'js', $result, $url );
|
1509 |
-
}
|
1510 |
-
|
1511 |
-
/**
|
1512 |
-
* Action wmac_filter_css_minify_excluded
|
1513 |
-
*
|
1514 |
-
* @param $result
|
1515 |
-
* @param $url
|
1516 |
-
*
|
1517 |
-
* @return mixed
|
1518 |
-
*/
|
1519 |
-
public function wmacFilterCssMinifyExclude( $result, $url ) {
|
1520 |
-
return $this->filterJsMinifyExclusions( 'wmac', 'css', $result, $url );
|
1521 |
-
}
|
1522 |
-
|
1523 |
-
/**
|
1524 |
-
* Manage excluded files
|
1525 |
-
*
|
1526 |
-
* @param $sided_exclude_files
|
1527 |
-
* @param $index
|
1528 |
-
* @param $type
|
1529 |
-
*/
|
1530 |
-
private function manageExcludeFiles( $sided_exclude_files, $index, $type ) {
|
1531 |
-
switch ( $index ) {
|
1532 |
-
case 'aopt':
|
1533 |
-
if ( get_option( 'autoptimize_js', false ) || get_option( 'autoptimize_css', false ) ) {
|
1534 |
-
$exclude_files = get_option( 'autoptimize_' . $type . '_exclude', '' );
|
1535 |
-
} else {
|
1536 |
-
return;
|
1537 |
-
}
|
1538 |
-
break;
|
1539 |
-
case 'wmac':
|
1540 |
-
if ( class_exists( 'WMAC_Plugin' ) && ( WMAC_Plugin::app()->getPopulateOption( 'js_optimize', false ) || WMAC_Plugin::app()->getPopulateOption( 'css_optimize', false ) ) ) {
|
1541 |
-
$exclude_files = WMAC_Plugin::app()->getPopulateOption( $type . '_exclude', '' );
|
1542 |
-
} else {
|
1543 |
-
return;
|
1544 |
-
}
|
1545 |
-
break;
|
1546 |
-
case 'wclp':
|
1547 |
-
if ( class_exists( 'WCL_Plugin' ) && ( WCL_Plugin::app()->getPopulateOption( 'remove_js_version', false ) || WCL_Plugin::app()->getPopulateOption( 'remove_css_version', false ) ) ) {
|
1548 |
-
$exclude_files = WCL_Plugin::app()->getPopulateOption( 'remove_version_exclude', '' );
|
1549 |
-
} else {
|
1550 |
-
return;
|
1551 |
-
}
|
1552 |
-
break;
|
1553 |
-
default:
|
1554 |
-
return;
|
1555 |
-
}
|
1556 |
-
|
1557 |
-
// For clearfy need new line
|
1558 |
-
$delimeter = $index == 'wclp' ? "\n" : ",";
|
1559 |
-
$current_exclude_files = ! empty( $exclude_files ) ? array_filter( array_map( 'trim', explode( $delimeter, $exclude_files ) ) ) : [];
|
1560 |
-
|
1561 |
-
$delete_files = array_diff( $sided_exclude_files['before'][ $type ], $sided_exclude_files['after'][ $type ] );
|
1562 |
-
$new_files = array_diff( $sided_exclude_files['after'][ $type ], $current_exclude_files );
|
1563 |
-
|
1564 |
-
if ( empty( $current_exclude_files ) && ! empty( $new_files ) ) {
|
1565 |
-
$current_exclude_files = $new_files;
|
1566 |
-
} else if ( ! empty( $current_exclude_files ) ) {
|
1567 |
-
$new_exclude_files = [];
|
1568 |
-
foreach ( $current_exclude_files as $file ) {
|
1569 |
-
|
1570 |
-
if ( ! in_array( $file, $delete_files ) ) {
|
1571 |
-
$new_exclude_files[] = $file;
|
1572 |
-
}
|
1573 |
-
}
|
1574 |
-
$current_exclude_files = array_merge( $new_exclude_files, $new_files );
|
1575 |
-
}
|
1576 |
-
|
1577 |
-
$current_exclude_files = array_filter( array_unique( $current_exclude_files ) );
|
1578 |
-
|
1579 |
-
switch ( $index ) {
|
1580 |
-
case 'aopt':
|
1581 |
-
update_option( 'autoptimize_' . $type . '_exclude', implode( ', ', $current_exclude_files ) );
|
1582 |
-
break;
|
1583 |
-
case 'wmac':
|
1584 |
-
if ( class_exists( 'WMAC_Plugin' ) ) {
|
1585 |
-
WMAC_Plugin::app()->updatePopulateOption( $type . '_exclude', implode( ', ', $current_exclude_files ) );
|
1586 |
-
}
|
1587 |
-
break;
|
1588 |
-
case 'wclp':
|
1589 |
-
if ( class_exists( 'WCL_Plugin' ) ) {
|
1590 |
-
WCL_Plugin::app()->updatePopulateOption( 'remove_version_exclude', implode( $delimeter, $current_exclude_files ) );
|
1591 |
-
}
|
1592 |
-
break;
|
1593 |
-
}
|
1594 |
-
}
|
1595 |
-
|
1596 |
-
/**
|
1597 |
-
* Action form save
|
1598 |
-
*
|
1599 |
-
* @param bool $empty_before
|
1600 |
-
*/
|
1601 |
-
public function actionFormSave( $empty_before = false ) {
|
1602 |
-
if ( ! empty( $this->sided_plugins ) && ! $empty_before ) {
|
1603 |
-
foreach ( $this->sided_plugins as $index => $sided_plugin ) {
|
1604 |
-
$sided_exclude_files[ $index ]['before'] = [
|
1605 |
-
'js' => [],
|
1606 |
-
'css' => []
|
1607 |
-
];
|
1608 |
-
// For clearfy need full url
|
1609 |
-
$full = ( $index == 'wclp' ? true : false );
|
1610 |
-
|
1611 |
-
$sided_exclude_files[ $index ]['before']['js'] += $this->getSidedPluginFiles( $index, 'js', $full );
|
1612 |
-
$sided_exclude_files[ $index ]['before']['css'] += $this->getSidedPluginFiles( $index, 'css', $full );
|
1613 |
-
}
|
1614 |
-
}
|
1615 |
-
|
1616 |
-
if ( isset( $_POST['sided_plugins'] ) && ! empty( $_POST['sided_plugins'] ) ) {
|
1617 |
-
$sided_plugins_options = [];
|
1618 |
-
foreach ( $_POST['sided_plugins'] as $plugin => $types ) {
|
1619 |
-
foreach ( $types as $type => $urls ) {
|
1620 |
-
foreach ( $urls as $url => $active ) {
|
1621 |
-
|
1622 |
-
if ( ! empty( $url ) && $active ) {
|
1623 |
-
$sided_plugins_options[ $plugin ][ $type ][] = $url;
|
1624 |
-
}
|
1625 |
-
}
|
1626 |
-
}
|
1627 |
-
}
|
1628 |
-
|
1629 |
-
if ( is_multisite() && is_network_admin() ) {
|
1630 |
-
$this->updateNetworkOption( 'assets_manager_sided_plugins', $sided_plugins_options );
|
1631 |
-
} else {
|
1632 |
-
$this->updateOption( 'assets_manager_sided_plugins', $sided_plugins_options );
|
1633 |
-
}
|
1634 |
-
}
|
1635 |
-
|
1636 |
-
if ( ! empty( $this->sided_plugins ) ) {
|
1637 |
-
$this->sided_plugin_files = [];
|
1638 |
-
foreach ( $this->sided_plugins as $index => $sided_plugin ) {
|
1639 |
-
$sided_exclude_files[ $index ]['after'] = [
|
1640 |
-
'js' => [],
|
1641 |
-
'css' => []
|
1642 |
-
];
|
1643 |
-
// For clearfy need full url
|
1644 |
-
$full = ( $index == 'wclp' ? true : false );
|
1645 |
-
|
1646 |
-
$sided_exclude_files[ $index ]['after']['js'] += $this->getSidedPluginFiles( $index, 'js', $full );
|
1647 |
-
$sided_exclude_files[ $index ]['after']['css'] += $this->getSidedPluginFiles( $index, 'css', $full );
|
1648 |
-
|
1649 |
-
if ( ! empty( $sided_exclude_files[ $index ]['before']['js'] ) || ! empty( $sided_exclude_files[ $index ]['after']['js'] ) ) {
|
1650 |
-
$this->manageExcludeFiles( $sided_exclude_files[ $index ], $index, 'js' );
|
1651 |
-
}
|
1652 |
-
|
1653 |
-
if ( ! empty( $sided_exclude_files[ $index ]['before']['css'] ) || ! empty( $sided_exclude_files[ $index ]['after']['css'] ) ) {
|
1654 |
-
$this->manageExcludeFiles( $sided_exclude_files[ $index ], $index, 'css' );
|
1655 |
-
}
|
1656 |
-
}
|
1657 |
-
}
|
1658 |
-
}
|
1659 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components/assets-manager/includes/class.plugin.php
DELETED
@@ -1,121 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Hide my wp core class
|
4 |
-
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
5 |
-
* @copyright (c) 19.02.2018, Webcraftic
|
6 |
-
* @version 1.0
|
7 |
-
*/
|
8 |
-
|
9 |
-
// Exit if accessed directly
|
10 |
-
if( !defined('ABSPATH') ) {
|
11 |
-
exit;
|
12 |
-
}
|
13 |
-
|
14 |
-
if( !class_exists('WGZ_Plugin') ) {
|
15 |
-
|
16 |
-
if( !class_exists('WGZ_PluginFactory') ) {
|
17 |
-
if( defined('LOADING_ASSETS_MANAGER_AS_ADDON') ) {
|
18 |
-
class WGZ_PluginFactory {
|
19 |
-
|
20 |
-
}
|
21 |
-
} else {
|
22 |
-
class WGZ_PluginFactory extends Wbcr_Factory409_Plugin {
|
23 |
-
|
24 |
-
}
|
25 |
-
}
|
26 |
-
}
|
27 |
-
|
28 |
-
class WGZ_Plugin extends WGZ_PluginFactory {
|
29 |
-
|
30 |
-
/**
|
31 |
-
* @var Wbcr_Factory409_Plugin
|
32 |
-
*/
|
33 |
-
private static $app;
|
34 |
-
|
35 |
-
/**
|
36 |
-
* @var bool
|
37 |
-
*/
|
38 |
-
private $as_addon;
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @param string $plugin_path
|
42 |
-
* @param array $data
|
43 |
-
* @throws Exception
|
44 |
-
*/
|
45 |
-
public function __construct($plugin_path, $data)
|
46 |
-
{
|
47 |
-
$this->as_addon = isset($data['as_addon']);
|
48 |
-
|
49 |
-
if( $this->as_addon ) {
|
50 |
-
$plugin_parent = isset($data['plugin_parent']) ? $data['plugin_parent'] : null;
|
51 |
-
|
52 |
-
if( !($plugin_parent instanceof Wbcr_Factory409_Plugin) ) {
|
53 |
-
throw new Exception('An invalid instance of the class was passed.');
|
54 |
-
}
|
55 |
-
|
56 |
-
self::$app = $plugin_parent;
|
57 |
-
} else {
|
58 |
-
self::$app = $this;
|
59 |
-
}
|
60 |
-
|
61 |
-
if( !$this->as_addon ) {
|
62 |
-
parent::__construct($plugin_path, $data);
|
63 |
-
}
|
64 |
-
|
65 |
-
$this->setModules();
|
66 |
-
|
67 |
-
$this->globalScripts();
|
68 |
-
|
69 |
-
if( is_admin() ) {
|
70 |
-
require(WGZ_PLUGIN_DIR . '/admin/boot.php');
|
71 |
-
}
|
72 |
-
|
73 |
-
add_action('plugins_loaded', array($this, 'pluginsLoaded'));
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* @return Wbcr_Factory409_Plugin
|
78 |
-
*/
|
79 |
-
public static function app()
|
80 |
-
{
|
81 |
-
return self::$app;
|
82 |
-
}
|
83 |
-
|
84 |
-
public function pluginsLoaded()
|
85 |
-
{
|
86 |
-
self::app()->setTextDomain('gonzales', WGZ_PLUGIN_DIR);
|
87 |
-
|
88 |
-
if( is_admin() ) {
|
89 |
-
$this->registerPages();
|
90 |
-
}
|
91 |
-
}
|
92 |
-
|
93 |
-
protected function setModules()
|
94 |
-
{
|
95 |
-
if( !$this->as_addon ) {
|
96 |
-
self::app()->load(array(
|
97 |
-
array('libs/factory/bootstrap', 'factory_bootstrap_409', 'admin'),
|
98 |
-
array('libs/factory/forms', 'factory_forms_410', 'admin'),
|
99 |
-
array('libs/factory/pages', 'factory_pages_410', 'admin'),
|
100 |
-
array('libs/factory/clearfy', 'factory_clearfy_206', 'all')
|
101 |
-
));
|
102 |
-
}
|
103 |
-
}
|
104 |
-
|
105 |
-
private function registerPages()
|
106 |
-
{
|
107 |
-
$admin_path = WGZ_PLUGIN_DIR . '/admin/pages';
|
108 |
-
self::app()->registerPage('WbcrGnz_AssetsManagerPage', $admin_path . '/assets-manager.php');
|
109 |
-
|
110 |
-
if( !$this->as_addon ) {
|
111 |
-
self::app()->registerPage('WbcrGnz_MoreFeaturesPage', $admin_path . '/more-features.php');
|
112 |
-
}
|
113 |
-
}
|
114 |
-
|
115 |
-
private function globalScripts()
|
116 |
-
{
|
117 |
-
require(WGZ_PLUGIN_DIR . '/includes/class.configurate-assets.php');
|
118 |
-
new WbcrGnz_ConfigAssetsManager(self::$app);
|
119 |
-
}
|
120 |
-
}
|
121 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components/assets-manager/includes/classes/class-assets-manager-global.php
ADDED
@@ -0,0 +1,1115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Exit if accessed directly
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Assets manager base class
|
9 |
+
*
|
10 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
11 |
+
* @copyright (c) 05.11.2017, Webcraftic
|
12 |
+
* @version 1.0
|
13 |
+
*/
|
14 |
+
class WGZ_Assets_Manager_Public {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Stores list of all available assets (used in rendering panel)
|
18 |
+
*
|
19 |
+
* @var array
|
20 |
+
*/
|
21 |
+
public $collection = [];
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @param Wbcr_Factory421_Plugin $plugin
|
25 |
+
*/
|
26 |
+
public function __construct( Wbcr_Factory421_Plugin $plugin ) {
|
27 |
+
$this->plugin = $plugin;
|
28 |
+
|
29 |
+
$this->register_hooks();
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Проверяет права пользователя
|
34 |
+
*
|
35 |
+
* Пользователь должен иметь права администратора или суперадминистратора,
|
36 |
+
* чтобы использовать менеджер скриптов.
|
37 |
+
*
|
38 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
39 |
+
* @since 1.1.0
|
40 |
+
* @return bool
|
41 |
+
*/
|
42 |
+
protected function is_user_can() {
|
43 |
+
return current_user_can( 'manage_options' ) || current_user_can( 'manage_network' );
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Initilize entire machine
|
48 |
+
*/
|
49 |
+
protected function register_hooks() {
|
50 |
+
if ( $this->plugin->getPopulateOption( 'disable_assets_manager', false ) ) {
|
51 |
+
return;
|
52 |
+
}
|
53 |
+
|
54 |
+
$on_frontend = $this->plugin->getPopulateOption( 'disable_assets_manager_on_front' );
|
55 |
+
$on_backend = $this->plugin->getPopulateOption( 'disable_assets_manager_on_backend', true );
|
56 |
+
$is_panel = $this->plugin->getPopulateOption( 'disable_assets_manager_panel' );
|
57 |
+
|
58 |
+
if ( ( ! is_admin() && ! $on_frontend ) || ( is_admin() && ! $on_backend ) ) {
|
59 |
+
add_filter( 'script_loader_src', [ $this, 'filter_load_assets' ], 10, 2 );
|
60 |
+
add_filter( 'style_loader_src', [ $this, 'filter_load_assets' ], 10, 2 );
|
61 |
+
}
|
62 |
+
|
63 |
+
if ( ! $is_panel && ( ( is_admin() && ! $on_backend ) || ( ! is_admin() && ! $on_frontend ) ) ) {
|
64 |
+
if ( ! is_admin() ) {
|
65 |
+
add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_plugin_scripts' ], - 100001 );
|
66 |
+
add_action( 'wp_footer', [ $this, 'assets_manager_render_template' ], 100001 );
|
67 |
+
} else {
|
68 |
+
add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_plugin_scripts' ], - 100001 );
|
69 |
+
add_action( 'admin_footer', [ $this, 'assets_manager_render_template' ], 100001 );
|
70 |
+
}
|
71 |
+
|
72 |
+
add_action( 'wam/views/safe_mode_checkbox', [ $this, 'print_save_mode_fake_checkbox' ] );
|
73 |
+
}
|
74 |
+
|
75 |
+
if ( ! is_admin() && ! $on_frontend ) {
|
76 |
+
add_action( 'template_redirect', [ $this, 'clean_source_code' ], 9999 );
|
77 |
+
add_action( 'wp_head', [ $this, 'collect_assets' ], 10000 );
|
78 |
+
add_action( 'wp_footer', [ $this, 'collect_assets' ], 10000 );
|
79 |
+
}
|
80 |
+
|
81 |
+
if ( is_admin() && ! $on_backend ) {
|
82 |
+
add_action( 'admin_head', [ $this, 'collect_assets' ], 10000 );
|
83 |
+
add_action( 'admin_footer', [ $this, 'collect_assets' ], 10000 );
|
84 |
+
}
|
85 |
+
|
86 |
+
if ( ! $is_panel && ( ( is_admin() && ! $on_backend ) || ( ! is_admin() && ! $on_frontend ) ) ) {
|
87 |
+
if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
|
88 |
+
add_action( 'wbcr/clearfy/adminbar_menu_items', [ $this, 'clearfy_admin_bar_menu_filter' ] );
|
89 |
+
} else {
|
90 |
+
add_action( 'admin_bar_menu', [ $this, 'assets_manager_add_admin_bar_menu' ], 1000 );
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
##Login/Logout
|
95 |
+
add_action( 'wp_login', [ $this, 'user_logged_in' ], 99, 2 );
|
96 |
+
add_action( 'wp_logout', [ $this, 'user_logged_out' ] );
|
97 |
+
|
98 |
+
// Stop optimizing scripts and caching the asset manager page.
|
99 |
+
add_action( 'wp', [ $this, 'stop_caching_and_script_optimize' ] );
|
100 |
+
|
101 |
+
// Disable autoptimize on Assets manager page
|
102 |
+
add_filter( 'autoptimize_filter_noptimize', [ $this, 'autoptimize_noptimize' ], 10, 0 );
|
103 |
+
add_filter( 'wmac_filter_noptimize', [ $this, 'autoptimize_noptimize' ], 10, 0 );
|
104 |
+
|
105 |
+
if ( wp_doing_ajax() ) {
|
106 |
+
require_once WGZ_PLUGIN_DIR . '/admin/ajax/save-settings.php';
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
public function print_save_mode_fake_checkbox( $data ) {
|
111 |
+
if ( defined( 'WGZP_PLUGIN_ACTIVE' ) ) {
|
112 |
+
return;
|
113 |
+
}
|
114 |
+
?>
|
115 |
+
<label class="wam-float-panel__checkbox wam-tooltip wam-tooltip--bottom" data-tooltip="<?php _e( 'In test mode, you can experiment with disabling unused scripts safely for your site. The resources that you disabled will be visible only to you (the administrator), and all other users will receive an unoptimized version of the site, until you remove this tick', 'gonzales' ) ?>.">
|
116 |
+
<input class="wam-float-panel__checkbox-input visually-hidden" type="checkbox"<?php checked( $data['save_mode'] ) ?>>
|
117 |
+
<span class="wam-float-panel__checkbox-text-premium"><?php _e( 'Safe mode <b>PRO</b>', 'gonzales' ) ?></span>
|
118 |
+
</label>
|
119 |
+
<?php
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
* Записываем cookie с ролями пользователя
|
124 |
+
*
|
125 |
+
* Это нужно для идентификации в MU плагине, так как мы не можем использовать
|
126 |
+
* большинство функций wordpress.
|
127 |
+
*
|
128 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
129 |
+
* @since 2.0.0
|
130 |
+
*
|
131 |
+
* @param string $login
|
132 |
+
* @param string $user
|
133 |
+
*/
|
134 |
+
public function user_logged_in( $login, $user = null ) {
|
135 |
+
if ( is_null( $user ) ) {
|
136 |
+
$user = wp_get_current_user();
|
137 |
+
}
|
138 |
+
|
139 |
+
foreach ( $user->roles as $key => $role ) {
|
140 |
+
setcookie( 'wam_assigned_roles[' . $key . ']', $role, 0, "/" );
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Удаляем cookie с ролями
|
146 |
+
*
|
147 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
148 |
+
* @since 2.0.0
|
149 |
+
*/
|
150 |
+
public function user_logged_out() {
|
151 |
+
if ( isset( $_COOKIE['wam_assigned_roles'] ) && is_array( $_COOKIE['wam_assigned_roles'] ) ) {
|
152 |
+
foreach ( $_COOKIE['wam_assigned_roles'] as $key => $cookie_val ) {
|
153 |
+
setcookie( 'wam_assigned_roles[' . $key . ']', '', time() - 999999, "/" );
|
154 |
+
}
|
155 |
+
}
|
156 |
+
}
|
157 |
+
|
158 |
+
/**
|
159 |
+
* Stop optimizing scripts and caching the asset manager page.
|
160 |
+
*
|
161 |
+
* For some types of pages it is imperative to not be cached. Think of an e-commerce scenario:
|
162 |
+
* when a customer enters checkout, they wouldn’t want to see a cached page with some previous
|
163 |
+
* customer’s payment data.
|
164 |
+
*
|
165 |
+
* Elaborate plugins like WooCommerce (and many others) use the DONOTCACHEPAGE constant to let
|
166 |
+
* caching plugins know about certain pages or endpoints that should not be cached in any case.
|
167 |
+
* Accordingly, all popular caching plugins, including WP Rocket, support the constant and would
|
168 |
+
* not cache a request for which DONOTCACHEPAGE is defined as true.
|
169 |
+
*
|
170 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
171 |
+
* @since 1.0.8
|
172 |
+
*/
|
173 |
+
public function stop_caching_and_script_optimize() {
|
174 |
+
if ( ! isset( $_GET['wbcr_assets_manager'] ) ) {
|
175 |
+
return;
|
176 |
+
}
|
177 |
+
|
178 |
+
if ( ! defined( 'DONOTCACHEPAGE' ) ) {
|
179 |
+
define( 'DONOTCACHEPAGE', true );
|
180 |
+
}
|
181 |
+
|
182 |
+
if ( ! defined( 'DONOTCACHCEOBJECT' ) ) {
|
183 |
+
define( 'DONOTCACHCEOBJECT', true );
|
184 |
+
}
|
185 |
+
|
186 |
+
if ( ! defined( 'DONOTMINIFY' ) ) {
|
187 |
+
define( 'DONOTMINIFY', true );
|
188 |
+
}
|
189 |
+
}
|
190 |
+
|
191 |
+
/**
|
192 |
+
* Disable autoptimize on Assets manager page
|
193 |
+
*
|
194 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
195 |
+
* @since 1.0.8
|
196 |
+
* @return bool
|
197 |
+
*/
|
198 |
+
public function autoptimize_noptimize() {
|
199 |
+
if ( ! isset( $_GET['wbcr_assets_manager'] ) ) {
|
200 |
+
return false;
|
201 |
+
}
|
202 |
+
|
203 |
+
return true;
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* We remove scripts and styles of themes, plugins to avoidE
|
208 |
+
* unnecessary conflicts during the use of the asset manager.
|
209 |
+
*
|
210 |
+
* todo: the method requires better study. Sorry, I don't have time for this.
|
211 |
+
*
|
212 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
213 |
+
* @since 1.0.8
|
214 |
+
*/
|
215 |
+
public function clean_source_code() {
|
216 |
+
if ( ! isset( $_GET['wbcr_assets_manager'] ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
217 |
+
return false;
|
218 |
+
}
|
219 |
+
|
220 |
+
ob_start( function ( $html ) {
|
221 |
+
|
222 |
+
$raw_html = $html;
|
223 |
+
|
224 |
+
$html = preg_replace( [
|
225 |
+
"'<\s*style.*?<\s*/\s*style\s*>'is",
|
226 |
+
], [
|
227 |
+
""
|
228 |
+
], $html );
|
229 |
+
|
230 |
+
$html = preg_replace_callback( [
|
231 |
+
"'<\s*link.*?>'is",
|
232 |
+
], function ( $matches ) {
|
233 |
+
$doc = new DOMDocument();
|
234 |
+
$doc->loadHTML( $matches[0] );
|
235 |
+
$imageTags = $doc->getElementsByTagName( 'link' );
|
236 |
+
|
237 |
+
foreach ( $imageTags as $tag ) {
|
238 |
+
$src = $tag->getAttribute( 'href' );
|
239 |
+
|
240 |
+
$white_list_js = [
|
241 |
+
'wp-includes/css/dashicons.min.css',
|
242 |
+
'wp-includes/css/admin-bar.min.css',
|
243 |
+
// --
|
244 |
+
'assets-manager/assets/css/assets-manager.css',
|
245 |
+
'assets-manager-premium/assets/css/assets-manager.css',
|
246 |
+
'assets-manager-premium-premium/assets/css/assets-manager.css',
|
247 |
+
// --
|
248 |
+
'assets-manager/assets/css/assets-conditions.css',
|
249 |
+
'assets-manager-premium/assets/css/assets-conditions.css',
|
250 |
+
'assets-manager-premium-premium/assets/css/assets-conditions.css',
|
251 |
+
// --
|
252 |
+
'clearfy/assets/css/admin-bar.css',
|
253 |
+
// --
|
254 |
+
'assets-manager/assets/css/PNotifyBrightTheme.css',
|
255 |
+
'assets-manager-premium/assets/css/PNotifyBrightTheme.css',
|
256 |
+
'assets-manager-premium-premium/assets/css/PNotifyBrightTheme.css',
|
257 |
+
|
258 |
+
];
|
259 |
+
|
260 |
+
if ( ! empty( $src ) ) {
|
261 |
+
foreach ( $white_list_js as $js ) {
|
262 |
+
if ( false !== strpos( $src, $js ) ) {
|
263 |
+
return $matches[0];
|
264 |
+
}
|
265 |
+
}
|
266 |
+
}
|
267 |
+
|
268 |
+
return '';
|
269 |
+
}
|
270 |
+
}, $html );
|
271 |
+
|
272 |
+
$html = preg_replace_callback( [
|
273 |
+
"'<\s*script.*?<\s*\/\s*script\s*>'is",
|
274 |
+
], function ( $matches ) {
|
275 |
+
if ( false !== strpos( $matches[0], 'wam_localize_data' ) ) {
|
276 |
+
return $matches[0];
|
277 |
+
}
|
278 |
+
if ( false !== strpos( $matches[0], 'wam-conditions-builder-template' ) ) {
|
279 |
+
return $matches[0];
|
280 |
+
}
|
281 |
+
|
282 |
+
$doc = new DOMDocument();
|
283 |
+
$doc->loadHTML( $matches[0] );
|
284 |
+
$imageTags = $doc->getElementsByTagName( 'script' );
|
285 |
+
|
286 |
+
foreach ( $imageTags as $tag ) {
|
287 |
+
$src = $tag->getAttribute( 'src' );
|
288 |
+
|
289 |
+
$white_list_js = [
|
290 |
+
'wam-jquery.js',
|
291 |
+
'wam-jquery-migrate.min.js',
|
292 |
+
'wp-includes/js/admin-bar.min.js',
|
293 |
+
// --
|
294 |
+
'assets-manager/assets/js/assets-manager.js',
|
295 |
+
'assets-manager-premium/assets/js/assets-manager.js',
|
296 |
+
'assets-manager-premium-premium/assets/js/assets-manager.js',
|
297 |
+
// --
|
298 |
+
'assets-manager/assets/js/assets-conditions.js',
|
299 |
+
'assets-manager-premium/assets/js/assets-conditions.js',
|
300 |
+
'assets-manager-premium-premium/assets/js/assets-conditions.js',
|
301 |
+
// --
|
302 |
+
'assets-manager/assets/js/PNotify.js',
|
303 |
+
'assets-manager-premium/assets/js/PNotify.js',
|
304 |
+
'assets-manager-premium-premium/assets/js/PNotify.js',
|
305 |
+
|
306 |
+
];
|
307 |
+
|
308 |
+
if ( ! empty( $src ) ) {
|
309 |
+
foreach ( $white_list_js as $js ) {
|
310 |
+
if ( false !== strpos( $src, $js ) ) {
|
311 |
+
return $matches[0];
|
312 |
+
}
|
313 |
+
}
|
314 |
+
}
|
315 |
+
|
316 |
+
return '';
|
317 |
+
}
|
318 |
+
//return $matches[0];
|
319 |
+
}, $html );
|
320 |
+
|
321 |
+
if ( empty( $html ) ) {
|
322 |
+
return $raw_html;
|
323 |
+
}
|
324 |
+
|
325 |
+
return $html;
|
326 |
+
} );
|
327 |
+
}
|
328 |
+
|
329 |
+
/**
|
330 |
+
* Добавляем ссылку для перехода к менджеру в меню Clearfy (которое в админбаре)
|
331 |
+
*
|
332 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
333 |
+
* @since 1.1.0
|
334 |
+
*
|
335 |
+
* @param array $menu_items Массив ссылок из меню Clearfy
|
336 |
+
*
|
337 |
+
* @return mixed
|
338 |
+
*/
|
339 |
+
function clearfy_admin_bar_menu_filter( $menu_items ) {
|
340 |
+
//todo: Закрыть функциональность для админки
|
341 |
+
if ( is_admin() ) {
|
342 |
+
return $menu_items;
|
343 |
+
}
|
344 |
+
|
345 |
+
$current_url = add_query_arg( [ 'wbcr_assets_manager' => 1 ] );
|
346 |
+
|
347 |
+
$menu_items['assets_manager_render_template'] = [
|
348 |
+
'title' => '<span class="dashicons dashicons-list-view"></span> ' . __( 'Assets Manager', 'gonzales' ),
|
349 |
+
'href' => $current_url
|
350 |
+
];
|
351 |
+
|
352 |
+
return $menu_items;
|
353 |
+
}
|
354 |
+
|
355 |
+
/**
|
356 |
+
* Добавляем меню для перехода к менджеру в админбар
|
357 |
+
*
|
358 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
359 |
+
* @since 1.1.0
|
360 |
+
*
|
361 |
+
* @param WP_Admin_Bar $wp_admin_bar
|
362 |
+
*/
|
363 |
+
function assets_manager_add_admin_bar_menu( $wp_admin_bar ) {
|
364 |
+
//todo: Закрыть функциональность для админки
|
365 |
+
if ( ! $this->is_user_can() || is_admin() ) {
|
366 |
+
return;
|
367 |
+
}
|
368 |
+
|
369 |
+
$current_url = add_query_arg( [ 'wbcr_assets_manager' => 1 ] );
|
370 |
+
|
371 |
+
$args = [
|
372 |
+
'id' => 'assets_manager_render_template',
|
373 |
+
'title' => __( 'Assets Manager', 'gonzales' ),
|
374 |
+
'href' => $current_url
|
375 |
+
];
|
376 |
+
$wp_admin_bar->add_node( $args );
|
377 |
+
}
|
378 |
+
|
379 |
+
/**
|
380 |
+
* Печатает шаблон менеджера скриптов в теле страницы
|
381 |
+
*
|
382 |
+
* Это функция обратного вызова, для хуков admin_footer,
|
383 |
+
* wp_footer
|
384 |
+
*
|
385 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
386 |
+
* @since 2.0.0
|
387 |
+
* @throws \Exception
|
388 |
+
*/
|
389 |
+
function assets_manager_render_template() {
|
390 |
+
if ( ! $this->is_user_can() || ! isset( $_GET['wbcr_assets_manager'] ) ) {
|
391 |
+
return;
|
392 |
+
}
|
393 |
+
|
394 |
+
// Reset settings
|
395 |
+
if ( isset( $_GET['wam_reset_settings'] ) ) {
|
396 |
+
check_admin_referer( 'wam_reset_settings' );
|
397 |
+
$this->plugin->updateOption( 'assets_states', [] );
|
398 |
+
wp_redirect( untrailingslashit( $this->get_current_url() ) . '?wbcr_assets_manager' );
|
399 |
+
die();
|
400 |
+
}
|
401 |
+
|
402 |
+
$settings = $this->plugin->getOption( 'assets_states', [] );
|
403 |
+
|
404 |
+
$views = new WGZ_Views( WGZ_PLUGIN_DIR );
|
405 |
+
$views->print_template( 'assets-manager', [
|
406 |
+
'current_url' => esc_url( $this->get_current_url() ),
|
407 |
+
'save_mode' => isset( $settings['save_mode'] ) ? (bool) $settings['save_mode'] : false,
|
408 |
+
'collection' => $this->collection,
|
409 |
+
'loaded_plugins' => $this->get_loaded_plugins(),
|
410 |
+
'theme_assets' => $this->get_collected_assets( 'theme' ),
|
411 |
+
'misc_assets' => $this->get_collected_assets( 'misc' ),
|
412 |
+
'conditions_logic_params' => $this->get_conditions_login_params( true ),
|
413 |
+
'settings' => $settings
|
414 |
+
] );
|
415 |
+
|
416 |
+
$this->print_plugin_scripts();
|
417 |
+
}
|
418 |
+
|
419 |
+
/**
|
420 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
421 |
+
* @since 2.0.0
|
422 |
+
*
|
423 |
+
* @param $src
|
424 |
+
* @param $handle
|
425 |
+
*
|
426 |
+
* @return mixed
|
427 |
+
*/
|
428 |
+
function filter_load_assets( $src, $handle ) {
|
429 |
+
$settings = $this->plugin->getOption( 'assets_states', [] );
|
430 |
+
|
431 |
+
if ( isset( $_GET['wbcr_assets_manager'] ) || empty( $settings ) || ( true === $settings['save_mode'] && ! $this->is_user_can() ) ) {
|
432 |
+
return $src;
|
433 |
+
}
|
434 |
+
|
435 |
+
require_once WGZ_PLUGIN_DIR . '/includes/classes/class-check-conditions.php';
|
436 |
+
|
437 |
+
$resource_type = ( current_filter() == 'script_loader_src' ) ? 'js' : 'css';
|
438 |
+
$resource_visability = "";
|
439 |
+
|
440 |
+
if ( ! empty( $settings['plugins'] ) ) {
|
441 |
+
foreach ( (array) $settings['plugins'] as $plugin_name => $plugin ) {
|
442 |
+
if ( ! empty( $plugin[ $resource_type ] ) && isset( $plugin[ $resource_type ][ $handle ] ) ) {
|
443 |
+
if ( 'disable_assets' === $plugin['load_mode'] ) {
|
444 |
+
$resource_visability = $plugin['visability'];
|
445 |
+
} else if ( 'disable_plugin' === $plugin['load_mode'] ) {
|
446 |
+
return $src;
|
447 |
+
} else {
|
448 |
+
$resource_visability = $plugin[ $resource_type ][ $handle ]['visability'];
|
449 |
+
}
|
450 |
+
break;
|
451 |
+
}
|
452 |
+
}
|
453 |
+
}
|
454 |
+
|
455 |
+
foreach ( [ 'theme', 'misc' ] as $group_name ) {
|
456 |
+
if ( ! empty( $settings[ $group_name ] ) && ! empty( $settings[ $group_name ][ $resource_type ] ) && isset( $settings[ $group_name ][ $resource_type ][ $handle ] ) ) {
|
457 |
+
$resource_visability = $settings[ $group_name ][ $resource_type ][ $handle ]['visability'];
|
458 |
+
break;
|
459 |
+
}
|
460 |
+
}
|
461 |
+
|
462 |
+
if ( ! empty( $resource_visability ) ) {
|
463 |
+
$condition = new WGZ_Check_Conditions( $resource_visability );
|
464 |
+
if ( $condition->validate() ) {
|
465 |
+
return false;
|
466 |
+
}
|
467 |
+
}
|
468 |
+
|
469 |
+
return $src;
|
470 |
+
}
|
471 |
+
|
472 |
+
/**
|
473 |
+
* Get information regarding used assets
|
474 |
+
*
|
475 |
+
* @return bool
|
476 |
+
*/
|
477 |
+
public function collect_assets() {
|
478 |
+
if ( ! isset( $_GET['wbcr_assets_manager'] ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
|
479 |
+
return false;
|
480 |
+
}
|
481 |
+
|
482 |
+
$denied = [
|
483 |
+
'js' => [ 'wam-assets-manager', 'wam-assets-conditions', 'admin-bar', 'wam-pnotify' ],
|
484 |
+
'css' => [
|
485 |
+
'wam-pnotify',
|
486 |
+
'wbcr-clearfy-adminbar-styles',
|
487 |
+
'wam-assets-conditions',
|
488 |
+
'wam-assets-manager',
|
489 |
+
'admin-bar',
|
490 |
+
'dashicons'
|
491 |
+
],
|
492 |
+
];
|
493 |
+
$denied = apply_filters( 'wbcr_gnz_denied_assets', $denied );
|
494 |
+
|
495 |
+
/**
|
496 |
+
* Imitate full untouched list without dequeued assets
|
497 |
+
* Appends part of original table. Safe approach.
|
498 |
+
*/
|
499 |
+
$data_assets = [
|
500 |
+
'js' => wp_scripts(),
|
501 |
+
'css' => wp_styles(),
|
502 |
+
];
|
503 |
+
|
504 |
+
foreach ( $data_assets as $type => $data ) {
|
505 |
+
foreach ( $data->done as $el ) {
|
506 |
+
if ( isset( $data->registered[ $el ] ) ) {
|
507 |
+
|
508 |
+
if ( ! in_array( $el, $denied[ $type ] ) ) {
|
509 |
+
if ( isset( $data->registered[ $el ]->src ) ) {
|
510 |
+
$url = $this->prepare_url( $data->registered[ $el ]->src );
|
511 |
+
$url_short = str_replace( get_home_url(), '', $url );
|
512 |
+
|
513 |
+
if ( false !== strpos( $url, get_theme_root_uri() ) ) {
|
514 |
+
$resource_type = 'theme';
|
515 |
+
} else if ( false !== strpos( $url, plugins_url() ) ) {
|
516 |
+
$resource_type = 'plugins';
|
517 |
+
} else {
|
518 |
+
$resource_type = 'misc';
|
519 |
+
}
|
520 |
+
|
521 |
+
$resource_name = '';
|
522 |
+
if ( 'plugins' == $resource_type ) {
|
523 |
+
$clean_url = str_replace( WP_PLUGIN_URL . '/', '', $url );
|
524 |
+
$url_parts = explode( '/', $clean_url );
|
525 |
+
$resource_name = isset( $url_parts[0] ) ? $url_parts[0] : '';
|
526 |
+
}
|
527 |
+
|
528 |
+
if ( ! isset( $this->collection[ $resource_type ][ $resource_name ][ $type ][ $el ] ) ) {
|
529 |
+
$this->collection[ $resource_type ][ $resource_name ][ $type ][ $el ] = [
|
530 |
+
'url_full' => $url,
|
531 |
+
'url_short' => $url_short,
|
532 |
+
//'state' => $this->get_visibility($type, $el),
|
533 |
+
'size' => $this->get_asset_size( $url ),
|
534 |
+
'ver' => $data->registered[ $el ]->ver,
|
535 |
+
'deps' => ( isset( $data->registered[ $el ]->deps ) ? $data->registered[ $el ]->deps : [] ),
|
536 |
+
];
|
537 |
+
|
538 |
+
# Deregister scripts, styles so that they do not conflict with assets managers.
|
539 |
+
# ------------------------------------------------
|
540 |
+
$no_js = [
|
541 |
+
'jquery',
|
542 |
+
'jquery-core',
|
543 |
+
'jquery-migrate',
|
544 |
+
'jquery-ui-core',
|
545 |
+
'wam-jquery-core',
|
546 |
+
'wam-jquery-migrate'
|
547 |
+
];
|
548 |
+
|
549 |
+
if ( "js" == $type && ! in_array( $el, $no_js ) ) {
|
550 |
+
wp_deregister_script( $el );
|
551 |
+
}
|
552 |
+
|
553 |
+
if ( "css" == $type ) {
|
554 |
+
wp_deregister_style( $el );
|
555 |
+
}
|
556 |
+
#-------------------------------------------------
|
557 |
+
}
|
558 |
+
}
|
559 |
+
}
|
560 |
+
}
|
561 |
+
}
|
562 |
+
}
|
563 |
+
|
564 |
+
return false;
|
565 |
+
}
|
566 |
+
|
567 |
+
/**
|
568 |
+
* Подключаем скрипты и стили плагина
|
569 |
+
*
|
570 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
571 |
+
* @since 2.0.0
|
572 |
+
*/
|
573 |
+
public function enqueue_plugin_scripts() {
|
574 |
+
if ( $this->is_user_can() && isset( $_GET['wbcr_assets_manager'] ) ) {
|
575 |
+
$plugin_ver = $this->plugin->getPluginVersion();
|
576 |
+
|
577 |
+
wp_enqueue_style( 'wam-assets-manager', WGZ_PLUGIN_URL . '/assets/css/assets-manager.css', [], $plugin_ver );
|
578 |
+
wp_enqueue_style( 'wam-assets-conditions', WGZ_PLUGIN_URL . '/assets/css/assets-conditions.css', [], $plugin_ver );
|
579 |
+
wp_enqueue_style( 'wam-pnotify', WGZ_PLUGIN_URL . '/assets/css/PNotifyBrightTheme.css', [], $plugin_ver );
|
580 |
+
|
581 |
+
// Фикс для рукожопов, которые отключают jquery из ядра
|
582 |
+
/*if ( ! wp_script_is( 'jquery' ) ) {
|
583 |
+
wp_enqueue_script( 'jquery', '/wp-includes/js/jquery/jquery.js', [], '1.12.4-wp' );
|
584 |
+
}*/
|
585 |
+
/*wp_enqueue_script( 'wam-pnotify', WGZ_PLUGIN_URL . '/assets/js/PNotify.js', [], $plugin_ver, true );
|
586 |
+
wp_enqueue_script( 'wam-assets-conditions', WGZ_PLUGIN_URL . '/assets/js/assets-conditions.js', [ 'jquery' ], $plugin_ver, true );
|
587 |
+
wp_enqueue_script( 'wam-assets-manager', WGZ_PLUGIN_URL . '/assets/js/assets-manager.js', [
|
588 |
+
'jquery',
|
589 |
+
'wam-assets-conditions'
|
590 |
+
], $plugin_ver, true );
|
591 |
+
|
592 |
+
wp_localize_script( 'wam-assets-manager', 'wam_localize_data', [
|
593 |
+
'ajaxurl' => admin_url( 'admin-ajax.php', is_ssl() ? 'admin' : 'http' )
|
594 |
+
] );*/
|
595 |
+
}
|
596 |
+
}
|
597 |
+
|
598 |
+
/**
|
599 |
+
* Hardcode? Because, other plugins disable scripts or manipulate them.
|
600 |
+
*
|
601 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
602 |
+
* @since 2.0.0
|
603 |
+
*/
|
604 |
+
public function print_plugin_scripts() {
|
605 |
+
?>
|
606 |
+
<script>
|
607 |
+
var wam_localize_data = <?php echo json_encode( [
|
608 |
+
'ajaxurl' => admin_url( 'admin-ajax.php', is_ssl() ? 'admin' : 'http' )
|
609 |
+
] ) ?>;
|
610 |
+
</script>
|
611 |
+
<script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/wam-jquery.js'; ?>'></script>
|
612 |
+
<script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/wam-jquery-migrate.min.js'; ?>'></script>
|
613 |
+
<script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/PNotify.js'; ?>'></script>
|
614 |
+
<script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/assets-conditions.js'; ?>'></script>
|
615 |
+
<script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/assets-manager.js'; ?>'></script>
|
616 |
+
<?php
|
617 |
+
}
|
618 |
+
|
619 |
+
|
620 |
+
private function get_collected_assets( $type ) {
|
621 |
+
$assets = [];
|
622 |
+
|
623 |
+
if ( empty( $this->collection ) ) {
|
624 |
+
return $assets;
|
625 |
+
}
|
626 |
+
|
627 |
+
foreach ( (array) $this->collection as $resource_type => $resources ) {
|
628 |
+
if ( $type == $resource_type ) {
|
629 |
+
foreach ( $resources as $resource_name => $types ) {
|
630 |
+
$assets = $this->get_parsed_asset_settings( $types, $resource_type );
|
631 |
+
}
|
632 |
+
}
|
633 |
+
}
|
634 |
+
|
635 |
+
return $assets;
|
636 |
+
}
|
637 |
+
|
638 |
+
/**
|
639 |
+
* Позволяет получить список плагинов, которые загружаются на странице
|
640 |
+
*
|
641 |
+
* Каждый элемент списка имеет собственные настройки, которые будут
|
642 |
+
* переданы в шаблон для печати.
|
643 |
+
*
|
644 |
+
* @since 2.0.0
|
645 |
+
* @return array
|
646 |
+
* @throws \Exception
|
647 |
+
*/
|
648 |
+
private function get_loaded_plugins() {
|
649 |
+
$plugins = [];
|
650 |
+
|
651 |
+
if ( empty( $this->collection ) ) {
|
652 |
+
return $plugins;
|
653 |
+
}
|
654 |
+
|
655 |
+
foreach ( (array) $this->collection as $resource_type => $resources ) {
|
656 |
+
foreach ( $resources as $resource_name => $types ) {
|
657 |
+
if ( 'plugins' == $resource_type && ! empty( $resource_name ) ) {
|
658 |
+
$plugins[ $resource_name ]['name'] = $resource_name;
|
659 |
+
$plugins[ $resource_name ]['info'] = $this->get_plugin_data( $resource_name );
|
660 |
+
$plugins[ $resource_name ]['assets'] = $this->get_parsed_asset_settings( $types, 'plugins', $resource_name );
|
661 |
+
$plugins[ $resource_name ]['load_mode'] = $this->get_parsed_plugin_settings( $resource_name, 'load_mode' );
|
662 |
+
$plugins[ $resource_name ]['visability'] = $this->get_parsed_plugin_settings( $resource_name, 'visability' );
|
663 |
+
$plugins[ $resource_name ]['select_control_classes'] = $this->get_parsed_plugin_settings( $resource_name, 'select_control_classes' );
|
664 |
+
$plugins[ $resource_name ]['settings_button_classes'] = $this->get_parsed_plugin_settings( $resource_name, 'settings_button_classes' );
|
665 |
+
}
|
666 |
+
}
|
667 |
+
}
|
668 |
+
|
669 |
+
return $plugins;
|
670 |
+
}
|
671 |
+
|
672 |
+
/**
|
673 |
+
* Подготовка настроек плагина к выводу в шаблоне
|
674 |
+
*
|
675 |
+
* Устанавливаем ключи и значения по умолчанию или берем сохраненные
|
676 |
+
* значения из базы данных. Тем самым мы гарантируем, что в шаблоне
|
677 |
+
* всегда будет существовать используемый элемент массива из настроек
|
678 |
+
* плагина.
|
679 |
+
*
|
680 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
681 |
+
* @since 2.0.0
|
682 |
+
*
|
683 |
+
* @param string $plugin_name Имя плагина, для которого подготавливаются настройки
|
684 |
+
* @param null $setting_name Имя настройки, заполняется, если нужно извлечь только
|
685 |
+
* 1 конкретную настройку
|
686 |
+
*
|
687 |
+
* @return array|mixed
|
688 |
+
* @throws \Exception
|
689 |
+
*/
|
690 |
+
private function get_parsed_plugin_settings( $plugin_name, $setting_name = null ) {
|
691 |
+
$settings = $this->plugin->getOption( 'assets_states', [] );
|
692 |
+
$default_settings = [
|
693 |
+
'load_mode' => 'enable',
|
694 |
+
'visability' => "",
|
695 |
+
'js' => [],
|
696 |
+
'css' => [],
|
697 |
+
'select_control_classes' => " js-wam-select--enable",
|
698 |
+
'settings_button_classes' => " js-wam-button--hidden",
|
699 |
+
];
|
700 |
+
|
701 |
+
$settings_formated = $default_settings;
|
702 |
+
|
703 |
+
if ( ! empty( $settings['plugins'] ) && isset( $settings['plugins'][ $plugin_name ] ) ) {
|
704 |
+
$plugin_settings = $settings['plugins'][ $plugin_name ];
|
705 |
+
$settings_formated['load_mode'] = ! empty( $plugin_settings['load_mode'] ) ? $plugin_settings['load_mode'] : "enable";
|
706 |
+
$settings_formated['visability'] = ! empty( $plugin_settings['visability'] ) ? stripslashes( $plugin_settings['visability'] ) : "";
|
707 |
+
$settings_formated['js'] = ! empty( $plugin_settings['js'] ) ? $plugin_settings['js'] : "";
|
708 |
+
$settings_formated['css'] = ! empty( $plugin_settings['css'] ) ? $plugin_settings['css'] : "";
|
709 |
+
|
710 |
+
if ( "enable" === $settings_formated['load_mode'] ) {
|
711 |
+
$settings_formated['select_control_classes'] = " js-wam-select--enable";
|
712 |
+
$settings_formated['settings_button_classes'] = " js-wam-button--hidden";
|
713 |
+
} else {
|
714 |
+
$settings_formated['select_control_classes'] = " js-wam-select--disable";
|
715 |
+
$settings_formated['settings_button_classes'] = "";
|
716 |
+
}
|
717 |
+
}
|
718 |
+
|
719 |
+
if ( $setting_name && isset( $settings_formated[ $setting_name ] ) ) {
|
720 |
+
return $settings_formated[ $setting_name ];
|
721 |
+
}
|
722 |
+
|
723 |
+
return $settings_formated;
|
724 |
+
}
|
725 |
+
|
726 |
+
/**
|
727 |
+
* Подготовка настроек ресурсов к выводу в шаблоне
|
728 |
+
*
|
729 |
+
* Устанавливаем ключи и значения по умолчанию или берем сохраненные
|
730 |
+
* значения из базы данных. Тем самым мы гарантируем, что в шаблоне
|
731 |
+
* всегда будет существовать используемый элемент массива из настроек
|
732 |
+
* ресурсов.
|
733 |
+
*
|
734 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
735 |
+
* @since 2.0.0
|
736 |
+
*
|
737 |
+
* @param array $assets Массив с загружаемыми ресурсами, к которому будут
|
738 |
+
* добавлены настройки по умолчанию и сохраненные настройки
|
739 |
+
* @param string $plugin_name Имя плагина, если нужно сфокусироваться на группе ресурсов,
|
740 |
+
* которые относятся к определенному плагину
|
741 |
+
*
|
742 |
+
* @return array
|
743 |
+
* @throws \Exception
|
744 |
+
*/
|
745 |
+
private function get_parsed_asset_settings( array $assets, $group_name, $plugin_name = null ) {
|
746 |
+
$plugin_group = false;
|
747 |
+
$settings_formated = [];
|
748 |
+
$settings = $this->plugin->getOption( 'assets_states', [] );
|
749 |
+
|
750 |
+
if ( ! isset( $assets['js'] ) ) {
|
751 |
+
$assets['js'] = [];
|
752 |
+
}
|
753 |
+
if ( ! isset( $assets['css'] ) ) {
|
754 |
+
$assets['css'] = [];
|
755 |
+
}
|
756 |
+
|
757 |
+
if ( ! empty( $settings[ $group_name ] ) ) {
|
758 |
+
if ( ! empty( $plugin_name ) ) {
|
759 |
+
$settings = isset( $settings[ $group_name ][ $plugin_name ] ) ? $settings[ $group_name ][ $plugin_name ] : [];
|
760 |
+
$plugin_group = true;
|
761 |
+
} else if ( 'plugins' !== $group_name ) {
|
762 |
+
$settings = $settings[ $group_name ];
|
763 |
+
}
|
764 |
+
}
|
765 |
+
|
766 |
+
foreach ( (array) $assets as $type => $resources ) {
|
767 |
+
$settings_formated[ $type ] = [];
|
768 |
+
|
769 |
+
foreach ( (array) $resources as $name => $attrs ) {
|
770 |
+
$s = &$settings_formated[ $type ][ $name ];
|
771 |
+
|
772 |
+
if ( isset( $settings[ $type ] ) && isset( $settings[ $type ][ $name ] ) && ! empty( $settings[ $type ][ $name ]['visability'] ) ) {
|
773 |
+
$s['load_mode'] = "disable";
|
774 |
+
$s['visability'] = stripslashes( $settings[ $type ][ $name ]['visability'] );
|
775 |
+
} else {
|
776 |
+
if ( $plugin_group ) {
|
777 |
+
$plugin_load_mode = ! empty( $settings['load_mode'] ) ? $settings['load_mode'] : 'enable';
|
778 |
+
|
779 |
+
$s['load_mode'] = "enable" === $plugin_load_mode ? 'enable' : 'disable';
|
780 |
+
} else {
|
781 |
+
$s['load_mode'] = "enable";
|
782 |
+
}
|
783 |
+
$s['visability'] = "";
|
784 |
+
}
|
785 |
+
|
786 |
+
if ( 'disable' === $s['load_mode'] ) {
|
787 |
+
$s['row_classes'] = " js-wam-table__tr--disabled-section";
|
788 |
+
$s['select_control_classes'] = " js-wam-select--disable";
|
789 |
+
$s['settings_button_classes'] = "";
|
790 |
+
|
791 |
+
if ( $plugin_load_mode && 'enable' !== $plugin_load_mode ) {
|
792 |
+
$s['settings_button_classes'] = " js-wam-button--hidden";
|
793 |
+
}
|
794 |
+
} else {
|
795 |
+
$s['row_classes'] = "";
|
796 |
+
$s['select_control_classes'] = " js-wam-select--enable";
|
797 |
+
$s['settings_button_classes'] = " js-wam-button--hidden";
|
798 |
+
}
|
799 |
+
|
800 |
+
$s = array_merge( $s, $attrs );
|
801 |
+
}
|
802 |
+
}
|
803 |
+
|
804 |
+
return $settings_formated;
|
805 |
+
}
|
806 |
+
|
807 |
+
/**
|
808 |
+
* Get plugin data from folder name
|
809 |
+
*
|
810 |
+
* @param $name
|
811 |
+
*
|
812 |
+
* @return array
|
813 |
+
*/
|
814 |
+
private function get_plugin_data( $name ) {
|
815 |
+
$data = [];
|
816 |
+
|
817 |
+
if ( $name ) {
|
818 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
819 |
+
// подключим файл с функцией get_plugins()
|
820 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
821 |
+
}
|
822 |
+
$all_plugins = get_plugins();
|
823 |
+
if ( ! empty( $all_plugins ) ) {
|
824 |
+
foreach ( $all_plugins as $plugin_path => $plugin_data ) {
|
825 |
+
if ( strpos( $plugin_path, $name . '/' ) !== false ) {
|
826 |
+
$data = $plugin_data;
|
827 |
+
$data['basename'] = $plugin_path;
|
828 |
+
break;
|
829 |
+
}
|
830 |
+
}
|
831 |
+
}
|
832 |
+
}
|
833 |
+
|
834 |
+
return $data;
|
835 |
+
}
|
836 |
+
|
837 |
+
/**
|
838 |
+
* Exception for address starting from "//example.com" instead of
|
839 |
+
* "http://example.com". WooCommerce likes such a format
|
840 |
+
*
|
841 |
+
* @param string $url Incorrect URL.
|
842 |
+
*
|
843 |
+
* @return string Correct URL.
|
844 |
+
*/
|
845 |
+
private function prepare_url( $url ) {
|
846 |
+
if ( isset( $url[0] ) && isset( $url[1] ) && '/' == $url[0] && '/' == $url[1] ) {
|
847 |
+
$out = ( is_ssl() ? 'https:' : 'http:' ) . $url;
|
848 |
+
} else {
|
849 |
+
$out = $url;
|
850 |
+
}
|
851 |
+
|
852 |
+
return $out;
|
853 |
+
}
|
854 |
+
|
855 |
+
/**
|
856 |
+
* Get current URL
|
857 |
+
*
|
858 |
+
* @return string
|
859 |
+
*/
|
860 |
+
private function get_current_url() {
|
861 |
+
$url = explode( '?', $_SERVER['REQUEST_URI'], 2 );
|
862 |
+
if ( strlen( $url[0] ) > 1 ) {
|
863 |
+
$out = rtrim( $url[0], '/' );
|
864 |
+
} else {
|
865 |
+
$out = $url[0];
|
866 |
+
}
|
867 |
+
|
868 |
+
return $out;
|
869 |
+
}
|
870 |
+
|
871 |
+
/**
|
872 |
+
* Checks how heavy is file
|
873 |
+
*
|
874 |
+
* @param string $src URL.
|
875 |
+
*
|
876 |
+
* @return int Size in KB.
|
877 |
+
*/
|
878 |
+
private function get_asset_size( $src ) {
|
879 |
+
$weight = 0;
|
880 |
+
|
881 |
+
$home = get_theme_root() . '/../..';
|
882 |
+
$src = explode( '?', $src );
|
883 |
+
|
884 |
+
if ( ! filter_var( $src[0], FILTER_VALIDATE_URL ) === false && strpos( $src[0], get_home_url() ) === false ) {
|
885 |
+
return 0;
|
886 |
+
}
|
887 |
+
|
888 |
+
$src_relative = $home . str_replace( get_home_url(), '', $this->prepare_url( $src[0] ) );
|
889 |
+
|
890 |
+
if ( file_exists( $src_relative ) ) {
|
891 |
+
$weight = round( filesize( $src_relative ) / 1024, 1 );
|
892 |
+
}
|
893 |
+
|
894 |
+
return $weight;
|
895 |
+
}
|
896 |
+
|
897 |
+
private function get_conditions_login_params( $group = false ) {
|
898 |
+
global $wp_roles, $wp;
|
899 |
+
|
900 |
+
# Add User Roles
|
901 |
+
#---------------------------------------------------------------
|
902 |
+
$all_roles = $wp_roles->roles;
|
903 |
+
$editable_roles = apply_filters( 'editable_roles', $all_roles );
|
904 |
+
$roles_param_values = [
|
905 |
+
[
|
906 |
+
'value' => 'guest',
|
907 |
+
'title' => __( 'Guest', 'insert-php' ),
|
908 |
+
]
|
909 |
+
];
|
910 |
+
|
911 |
+
if ( ! empty( $editable_roles ) ) {
|
912 |
+
foreach ( $editable_roles as $role_ID => $role ) {
|
913 |
+
$roles_param_values[] = [ 'value' => $role_ID, 'title' => $role['name'] ];
|
914 |
+
}
|
915 |
+
}
|
916 |
+
|
917 |
+
# Add Post Types
|
918 |
+
#---------------------------------------------------------------
|
919 |
+
$post_types = get_post_types( [
|
920 |
+
'public' => true
|
921 |
+
], 'objects' );
|
922 |
+
$post_types_param_values = [];
|
923 |
+
|
924 |
+
if ( ! empty( $post_types ) ) {
|
925 |
+
foreach ( $post_types as $type ) {
|
926 |
+
if ( isset( $type->name ) ) {
|
927 |
+
$post_types_param_values[] = [ 'value' => $type->name, 'title' => $type->label ];
|
928 |
+
}
|
929 |
+
}
|
930 |
+
}
|
931 |
+
|
932 |
+
# Add Taxonomies
|
933 |
+
#---------------------------------------------------------------
|
934 |
+
$taxonomies = get_taxonomies( [
|
935 |
+
'public' => true
|
936 |
+
], 'objects' );
|
937 |
+
$taxonomies_param_values = [];
|
938 |
+
|
939 |
+
if ( ! empty( $taxonomies ) ) {
|
940 |
+
foreach ( $taxonomies as $tax ) {
|
941 |
+
$taxonomies_param_values[] = [ 'value' => $tax->name, 'title' => $tax->label ];
|
942 |
+
}
|
943 |
+
}
|
944 |
+
|
945 |
+
$pro_label = ! defined( 'WGZP_PLUGIN_ACTIVE' ) ? ' (Pro)' : '';
|
946 |
+
|
947 |
+
$grouped_filter_params = [
|
948 |
+
[
|
949 |
+
'id' => 'user',
|
950 |
+
'title' => __( 'User', 'gonzales' ),
|
951 |
+
'items' => [
|
952 |
+
[
|
953 |
+
'id' => 'user-role',
|
954 |
+
'title' => __( 'Role', 'gonzales' ) . $pro_label,
|
955 |
+
'type' => 'select',
|
956 |
+
'params' => $roles_param_values,
|
957 |
+
'description' => __( 'A role of the user who views your website. The role "guest" is applied to unregistered users.', 'gonzales' ),
|
958 |
+
'disabled' => ! defined( 'WGZP_PLUGIN_ACTIVE' )
|
959 |
+
],
|
960 |
+
/*[
|
961 |
+
'id' => 'user-registered',
|
962 |
+
'title' => __( 'Registration Date', 'gonzales' ),
|
963 |
+
'type' => 'date',
|
964 |
+
'description' => __( 'The date when the user who views your website was registered. For unregistered users this date always equals to 1 Jan 1970.', 'gonzales' )
|
965 |
+
],*/
|
966 |
+
[
|
967 |
+
'id' => 'user-mobile',
|
968 |
+
'title' => __( 'Mobile Device', 'gonzales' ) . $pro_label,
|
969 |
+
'type' => 'select',
|
970 |
+
'params' => [
|
971 |
+
[ 'value' => 'yes', 'title' => __( 'Yes', 'gonzales' ) ],
|
972 |
+
[ 'value' => 'no', 'title' => __( 'No', 'gonzales' ) ]
|
973 |
+
],
|
974 |
+
'description' => __( 'Determines whether the user views your website from mobile device or not.', 'gonzales' ),
|
975 |
+
'disabled' => ! defined( 'WGZP_PLUGIN_ACTIVE' )
|
976 |
+
],
|
977 |
+
[
|
978 |
+
'id' => 'user-cookie-name',
|
979 |
+
'title' => __( 'Cookie Name', 'gonzales' ) . $pro_label,
|
980 |
+
'type' => 'text',
|
981 |
+
'only_equals' => true,
|
982 |
+
'description' => __( 'Determines whether the user\'s browser has a cookie with a given name.', 'gonzales' ),
|
983 |
+
'disabled' => ! defined( 'WGZP_PLUGIN_ACTIVE' )
|
984 |
+
]
|
985 |
+
]
|
986 |
+
],
|
987 |
+
[
|
988 |
+
'id' => 'location',
|
989 |
+
'title' => __( 'Location', 'gonzales' ),
|
990 |
+
'items' => [
|
991 |
+
[
|
992 |
+
'id' => 'current-url',
|
993 |
+
'title' => __( 'Current URL', 'gonzales' ),
|
994 |
+
'type' => 'default',
|
995 |
+
'default_value' => ( "/" === $this->get_current_url() ? "/" : trailingslashit( $this->get_current_url() ) ),
|
996 |
+
'description' => __( 'Current Url', 'gonzales' )
|
997 |
+
],
|
998 |
+
[
|
999 |
+
'id' => 'location-page',
|
1000 |
+
'title' => __( 'Custom URL', 'gonzales' ) . $pro_label,
|
1001 |
+
'type' => 'text',
|
1002 |
+
'description' => __( 'An URL of the current page where a user who views your website is located.', 'gonzales' ),
|
1003 |
+
'disabled' => ! defined( 'WGZP_PLUGIN_ACTIVE' )
|
1004 |
+
],
|
1005 |
+
[
|
1006 |
+
'id' => 'regular-expression',
|
1007 |
+
'title' => __( 'Regular Expression', 'gonzales' ) . $pro_label,
|
1008 |
+
'type' => 'regexp',
|
1009 |
+
'placeholder' => '^(about-page-[0-9]+|contacts-[0-9]{,2})',
|
1010 |
+
'description' => __( 'Regular expressions can be used by experts. This tool creates flexible conditions to disable the resource. For example, if you specify this expression: ^([A-z0-9]+-)?gifts? then the resource will be disabled at the following pages http://yoursite.test/get-gift/, http://yoursite.test/gift/, http://yoursite.test/get-gifts/, http://yoursite.test/gifts/. The plugin ignores the backslash at the beginning of the query string, so you can dismiss it. Check your regular expressions in here: https://regex101.com, this will prevent you from the mistakes. This feature is available at the paid version.', 'gonzales' ),
|
1011 |
+
'disabled' => ! defined( 'WGZP_PLUGIN_ACTIVE' )
|
1012 |
+
],
|
1013 |
+
[
|
1014 |
+
'id' => 'location-some-page',
|
1015 |
+
'title' => __( 'Page', 'gonzales' ),
|
1016 |
+
'type' => 'select',
|
1017 |
+
'params' => [
|
1018 |
+
'Basic' => [
|
1019 |
+
[
|
1020 |
+
'value' => 'base_web',
|
1021 |
+
'title' => __( 'Entire Website', 'insert-php' ),
|
1022 |
+
],
|
1023 |
+
[
|
1024 |
+
'value' => 'base_sing',
|
1025 |
+
'title' => __( 'All Singulars', 'insert-php' ),
|
1026 |
+
],
|
1027 |
+
[
|
1028 |
+
'value' => 'base_arch',
|
1029 |
+
'title' => __( 'All Archives', 'insert-php' ),
|
1030 |
+
],
|
1031 |
+
],
|
1032 |
+
'Special Pages' => [
|
1033 |
+
[
|
1034 |
+
'value' => 'spec_404',
|
1035 |
+
'title' => __( '404 Page', 'insert-php' )
|
1036 |
+
],
|
1037 |
+
[
|
1038 |
+
'value' => 'spec_search',
|
1039 |
+
'title' => __( 'Search Page', 'insert-php' )
|
1040 |
+
],
|
1041 |
+
[
|
1042 |
+
'value' => 'spec_blog',
|
1043 |
+
'title' => __( 'Blog / Posts Page', 'insert-php' )
|
1044 |
+
],
|
1045 |
+
[
|
1046 |
+
'value' => 'spec_front',
|
1047 |
+
'title' => __( 'Front Page', 'insert-php' )
|
1048 |
+
],
|
1049 |
+
[
|
1050 |
+
'value' => 'spec_date',
|
1051 |
+
'title' => __( 'Date Archive', 'insert-php' )
|
1052 |
+
],
|
1053 |
+
[
|
1054 |
+
'value' => 'spec_auth',
|
1055 |
+
'title' => __( 'Author Archive', 'insert-php' )
|
1056 |
+
],
|
1057 |
+
],
|
1058 |
+
'Posts' => [
|
1059 |
+
[
|
1060 |
+
'value' => 'post_all',
|
1061 |
+
'title' => __( 'All Posts', 'insert-php' )
|
1062 |
+
],
|
1063 |
+
[
|
1064 |
+
'value' => 'post_arch',
|
1065 |
+
'title' => __( 'All Posts Archive', 'insert-php' )
|
1066 |
+
],
|
1067 |
+
[
|
1068 |
+
'value' => 'post_cat',
|
1069 |
+
'title' => __( 'All Categories Archive', 'insert-php' )
|
1070 |
+
],
|
1071 |
+
[
|
1072 |
+
'value' => 'post_tag',
|
1073 |
+
'title' => __( 'All Tags Archive', 'insert-php' )
|
1074 |
+
],
|
1075 |
+
],
|
1076 |
+
'Pages' => [
|
1077 |
+
[
|
1078 |
+
'value' => 'page_all',
|
1079 |
+
'title' => __( 'All Pages', 'insert-php' )
|
1080 |
+
],
|
1081 |
+
[
|
1082 |
+
'value' => 'page_arch',
|
1083 |
+
'title' => __( 'All Pages Archive', 'insert-php' )
|
1084 |
+
],
|
1085 |
+
],
|
1086 |
+
|
1087 |
+
],
|
1088 |
+
'description' => __( 'List of specific pages.', 'gonzales' )
|
1089 |
+
],
|
1090 |
+
[
|
1091 |
+
'id' => 'location-post-type',
|
1092 |
+
'title' => __( 'Post type', 'gonzales' ),
|
1093 |
+
'type' => 'select',
|
1094 |
+
'params' => $post_types_param_values,
|
1095 |
+
'description' => __( 'A post type of the current page.', 'gonzales' ),
|
1096 |
+
],
|
1097 |
+
[
|
1098 |
+
'id' => 'location-taxonomy',
|
1099 |
+
'title' => __( 'Taxonomy', 'gonzales' ),
|
1100 |
+
'type' => 'select',
|
1101 |
+
'params' => $taxonomies_param_values,
|
1102 |
+
'description' => __( 'A taxonomy of the current page.', 'gonzales' ),
|
1103 |
+
]
|
1104 |
+
]
|
1105 |
+
]
|
1106 |
+
];
|
1107 |
+
|
1108 |
+
$filterParams = [];
|
1109 |
+
foreach ( (array) $grouped_filter_params as $filter_group ) {
|
1110 |
+
$filterParams = array_merge( $filterParams, $filter_group['items'] );
|
1111 |
+
}
|
1112 |
+
|
1113 |
+
return $group ? $grouped_filter_params : $filterParams;
|
1114 |
+
}
|
1115 |
+
}
|
components/assets-manager/includes/classes/class-check-conditions.php
ADDED
@@ -0,0 +1,368 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Exit if accessed directly
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Assets manager base class
|
9 |
+
*
|
10 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
11 |
+
* @copyright (c) 10.09.20198, Webcraftic
|
12 |
+
* @since 2.0
|
13 |
+
*/
|
14 |
+
class WGZ_Check_Conditions {
|
15 |
+
|
16 |
+
protected $condition;
|
17 |
+
|
18 |
+
public function __construct( $condition ) {
|
19 |
+
if ( empty( $condition ) ) {
|
20 |
+
$this->condition = [];
|
21 |
+
} else {
|
22 |
+
$condition = @json_decode( stripslashes( $condition ) );
|
23 |
+
$this->condition = $condition;
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
/*public function __call( $method ) {
|
28 |
+
$extended_methods = apply_filters( 'wam/conditions/extended_methods', [] );
|
29 |
+
|
30 |
+
if ( isset( $extended_methods[ $method ] ) ) {
|
31 |
+
return $extended_methods[ $method ]();
|
32 |
+
}
|
33 |
+
|
34 |
+
return null;
|
35 |
+
}*/
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Проверяем в правильном ли формате нам передано условие
|
39 |
+
*
|
40 |
+
* @since 2.2.0
|
41 |
+
*
|
42 |
+
* @param \stdClass $condition
|
43 |
+
*
|
44 |
+
* @return bool
|
45 |
+
*/
|
46 |
+
protected function validate_condition_schema( $condition ) {
|
47 |
+
$isset_attrs = ! empty( $condition->param ) && ! empty( $condition->operator ) && ! empty( $condition->type ) && isset( $condition->value );
|
48 |
+
|
49 |
+
$allow_params = in_array( $condition->param, [
|
50 |
+
'user-role',
|
51 |
+
'user-mobile',
|
52 |
+
'user-cookie-name',
|
53 |
+
'current-url',
|
54 |
+
'location-page',
|
55 |
+
'regular-expression',
|
56 |
+
'location-some-page',
|
57 |
+
'location-post-type',
|
58 |
+
'location-taxonomy'
|
59 |
+
] );
|
60 |
+
|
61 |
+
$allow_operators = in_array( $condition->operator, [
|
62 |
+
'equals',
|
63 |
+
'notequal',
|
64 |
+
'less',
|
65 |
+
'older',
|
66 |
+
'greater',
|
67 |
+
'younger',
|
68 |
+
'contains',
|
69 |
+
'notcontain',
|
70 |
+
'between'
|
71 |
+
] );
|
72 |
+
|
73 |
+
$allow_types = in_array( $condition->type, [ 'select', 'text', 'default', 'regexp' ] );
|
74 |
+
|
75 |
+
return $isset_attrs && $allow_params && $allow_operators && $allow_types;
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
80 |
+
* @since 2.0.0
|
81 |
+
* @return bool
|
82 |
+
*/
|
83 |
+
public function validate() {
|
84 |
+
if ( empty( $this->condition ) && ! is_array( $this->condition ) ) {
|
85 |
+
return false;
|
86 |
+
}
|
87 |
+
|
88 |
+
$or = null;
|
89 |
+
foreach ( $this->condition as $group_OR ) {
|
90 |
+
if ( ! empty( $group_OR->conditions ) && is_array( $group_OR->conditions ) ) {
|
91 |
+
$and = null;
|
92 |
+
foreach ( $group_OR->conditions as $condition ) {
|
93 |
+
if ( $this->validate_condition_schema( $condition ) ) {
|
94 |
+
$method_name = str_replace( '-', '_', $condition->param );
|
95 |
+
if ( is_null( $and ) ) {
|
96 |
+
$and = $this->call_method( $method_name, $condition->operator, $condition->value );
|
97 |
+
} else {
|
98 |
+
$and = $and && $this->call_method( $method_name, $condition->operator, $condition->value );
|
99 |
+
}
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
+
$or = is_null( $or ) ? $and : $or || $and;
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
return is_null( $or ) ? false : $or;
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Call specified method
|
112 |
+
*
|
113 |
+
* @param $method_name
|
114 |
+
* @param $operator
|
115 |
+
* @param $value
|
116 |
+
*
|
117 |
+
* @return bool
|
118 |
+
*/
|
119 |
+
protected function call_method( $method_name, $operator, $value ) {
|
120 |
+
if ( method_exists( $this, $method_name ) ) {
|
121 |
+
return $this->$method_name( $operator, $value );
|
122 |
+
} else {
|
123 |
+
return apply_filters( 'wam/conditions/call_method', false, $method_name, $operator, $value );
|
124 |
+
}
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Get current URL
|
129 |
+
*
|
130 |
+
* @return string
|
131 |
+
*/
|
132 |
+
protected function get_current_url_path() {
|
133 |
+
$url = explode( '?', $_SERVER['REQUEST_URI'], 2 );
|
134 |
+
|
135 |
+
return ! empty( $url[0] ) ? trailingslashit( $url[0] ) : '/';
|
136 |
+
}
|
137 |
+
|
138 |
+
/**
|
139 |
+
* Get referer URL
|
140 |
+
*
|
141 |
+
* @return string
|
142 |
+
*/
|
143 |
+
protected function get_referer_url() {
|
144 |
+
$out = "";
|
145 |
+
$url = explode( '?', str_replace( site_url(), '', $_SERVER['HTTP_REFERER'] ), 2 );
|
146 |
+
if ( isset( $url[0] ) ) {
|
147 |
+
$out = trim( $url[0], '/' );
|
148 |
+
}
|
149 |
+
|
150 |
+
return $out ? urldecode( $out ) : '/';
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Check by operator
|
155 |
+
*
|
156 |
+
* @param $operator
|
157 |
+
* @param $first
|
158 |
+
* @param $second
|
159 |
+
* @param $third
|
160 |
+
*
|
161 |
+
* @return bool
|
162 |
+
*/
|
163 |
+
public function apply_operator( $operator, $first, $second, $third = false ) {
|
164 |
+
switch ( $operator ) {
|
165 |
+
case 'equals':
|
166 |
+
return $first === $second;
|
167 |
+
case 'notequal':
|
168 |
+
return $first !== $second;
|
169 |
+
case 'less':
|
170 |
+
case 'older':
|
171 |
+
return $first > $second;
|
172 |
+
case 'greater':
|
173 |
+
case 'younger':
|
174 |
+
return $first < $second;
|
175 |
+
case 'contains':
|
176 |
+
return strpos( $first, $second ) !== false;
|
177 |
+
case 'notcontain':
|
178 |
+
return strpos( $first, $second ) === false;
|
179 |
+
case 'between':
|
180 |
+
return $first < $second && $second < $third;
|
181 |
+
|
182 |
+
default:
|
183 |
+
return $first === $second;
|
184 |
+
}
|
185 |
+
}
|
186 |
+
|
187 |
+
/**
|
188 |
+
* Get timestamp
|
189 |
+
*
|
190 |
+
* @param $units
|
191 |
+
* @param $count
|
192 |
+
*
|
193 |
+
* @return integer
|
194 |
+
*/
|
195 |
+
protected function get_timestamp( $units, $count ) {
|
196 |
+
switch ( $units ) {
|
197 |
+
case 'seconds':
|
198 |
+
return $count;
|
199 |
+
case 'minutes':
|
200 |
+
return $count * MINUTE_IN_SECONDS;
|
201 |
+
case 'hours':
|
202 |
+
return $count * HOUR_IN_SECONDS;
|
203 |
+
case 'days':
|
204 |
+
return $count * DAY_IN_SECONDS;
|
205 |
+
case 'weeks':
|
206 |
+
return $count * WEEK_IN_SECONDS;
|
207 |
+
case 'months':
|
208 |
+
return $count * MONTH_IN_SECONDS;
|
209 |
+
case 'years':
|
210 |
+
return $count * YEAR_IN_SECONDS;
|
211 |
+
|
212 |
+
default:
|
213 |
+
return $count;
|
214 |
+
}
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* Get date timestamp
|
219 |
+
*
|
220 |
+
* @param $value
|
221 |
+
*
|
222 |
+
* @return integer
|
223 |
+
*/
|
224 |
+
public function get_date_timestamp( $value ) {
|
225 |
+
if ( is_object( $value ) ) {
|
226 |
+
return ( current_time( 'timestamp' ) - $this->get_timestamp( $value->units, $value->unitsCount ) ) * 1000;
|
227 |
+
} else {
|
228 |
+
return $value;
|
229 |
+
}
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* A some selected page
|
234 |
+
*
|
235 |
+
* @param $operator
|
236 |
+
* @param $value
|
237 |
+
*
|
238 |
+
* @return boolean
|
239 |
+
*/
|
240 |
+
protected function location_some_page( $operator, $value ) {
|
241 |
+
$post_id = ( ! is_404() && ! is_search() && ! is_archive() && ! is_home() ) ? get_the_ID() : false;
|
242 |
+
|
243 |
+
switch ( $value ) {
|
244 |
+
case 'base_web': // Basic - Entire Website
|
245 |
+
$result = true;
|
246 |
+
break;
|
247 |
+
case 'base_sing': // Basic - All Singulars
|
248 |
+
$result = is_singular();
|
249 |
+
break;
|
250 |
+
case 'base_arch': // Basic - All Archives
|
251 |
+
$result = is_archive();
|
252 |
+
break;
|
253 |
+
case 'spec_404': // Special Pages - 404 Page
|
254 |
+
$result = is_404();
|
255 |
+
break;
|
256 |
+
case 'spec_search': // Special Pages - Search Page
|
257 |
+
$result = is_search();
|
258 |
+
break;
|
259 |
+
case 'spec_blog': // Special Pages - Blog / Posts Page
|
260 |
+
$result = is_home();
|
261 |
+
break;
|
262 |
+
case 'spec_front': // Special Pages - Front Page
|
263 |
+
$result = is_front_page();
|
264 |
+
break;
|
265 |
+
case 'spec_date': // Special Pages - Date Archive
|
266 |
+
$result = is_date();
|
267 |
+
break;
|
268 |
+
case 'spec_auth': // Special Pages - Author Archive
|
269 |
+
$result = is_author();
|
270 |
+
break;
|
271 |
+
case 'post_all': // Posts - All Posts
|
272 |
+
case 'page_all': // Pages - All Pages
|
273 |
+
$result = false;
|
274 |
+
if ( false !== $post_id ) {
|
275 |
+
$post_type = 'post_all' == $value ? 'post' : 'page';
|
276 |
+
$result = $post_type == get_post_type( $post_id );
|
277 |
+
}
|
278 |
+
break;
|
279 |
+
case 'post_arch': // Posts - All Posts Archive
|
280 |
+
case 'page_arch': // Pages - All Pages Archive
|
281 |
+
$result = false;
|
282 |
+
if ( is_archive() ) {
|
283 |
+
$post_type = 'post_arch' == $value ? 'post' : 'page';
|
284 |
+
$result = $post_type == get_post_type();
|
285 |
+
}
|
286 |
+
break;
|
287 |
+
case 'post_cat': // Posts - All Categories Archive
|
288 |
+
case 'post_tag': // Posts - All Tags Archive
|
289 |
+
$result = false;
|
290 |
+
if ( is_archive() && 'post' == get_post_type() ) {
|
291 |
+
$taxonomy = 'post_tag' == $value ? 'post_tag' : 'category';
|
292 |
+
$obj = get_queried_object();
|
293 |
+
|
294 |
+
$current_taxonomy = '';
|
295 |
+
if ( '' !== $obj && null !== $obj ) {
|
296 |
+
$current_taxonomy = $obj->taxonomy;
|
297 |
+
}
|
298 |
+
|
299 |
+
if ( $current_taxonomy == $taxonomy ) {
|
300 |
+
$result = true;
|
301 |
+
}
|
302 |
+
}
|
303 |
+
break;
|
304 |
+
|
305 |
+
default:
|
306 |
+
$result = true;
|
307 |
+
}
|
308 |
+
|
309 |
+
return $this->apply_operator( $operator, $result, true );
|
310 |
+
}
|
311 |
+
|
312 |
+
/**
|
313 |
+
* Проверяет текущий URL страницы.
|
314 |
+
*
|
315 |
+
* Если url в условии и url текущей страницы совпадают,
|
316 |
+
* условие будет выполнено успешно.
|
317 |
+
*
|
318 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
319 |
+
* @since 2.0.0
|
320 |
+
*
|
321 |
+
* @param string $operator
|
322 |
+
* @param string $value
|
323 |
+
*/
|
324 |
+
protected function current_url( $operator, $value ) {
|
325 |
+
$value = trailingslashit( $value );
|
326 |
+
|
327 |
+
return $this->apply_operator( $operator, $value, $this->get_current_url_path() );
|
328 |
+
}
|
329 |
+
|
330 |
+
/**
|
331 |
+
* A post type of the current page
|
332 |
+
*
|
333 |
+
* @param $operator
|
334 |
+
* @param $value
|
335 |
+
*
|
336 |
+
* @return boolean
|
337 |
+
*/
|
338 |
+
protected function location_post_type( $operator, $value ) {
|
339 |
+
if ( is_singular() ) {
|
340 |
+
return $this->apply_operator( $operator, $value, get_post_type() );
|
341 |
+
}
|
342 |
+
|
343 |
+
return false;
|
344 |
+
}
|
345 |
+
|
346 |
+
/**
|
347 |
+
* A taxonomy of the current page
|
348 |
+
*
|
349 |
+
* @since 2.2.8 The bug is fixed, the condition was not checked
|
350 |
+
* for tachonomies, only posts.
|
351 |
+
*
|
352 |
+
* @param $operator
|
353 |
+
* @param $value
|
354 |
+
*
|
355 |
+
* @return boolean
|
356 |
+
*/
|
357 |
+
protected function location_taxonomy( $operator, $value ) {
|
358 |
+
$term_name = null;
|
359 |
+
|
360 |
+
if ( is_tax() || is_tag() || is_category() ) {
|
361 |
+
$term_name = get_queried_object()->name;
|
362 |
+
}
|
363 |
+
|
364 |
+
return $this->apply_operator( $operator, $term_name, $value );
|
365 |
+
}
|
366 |
+
|
367 |
+
|
368 |
+
}
|
components/assets-manager/includes/classes/class-views.php
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class that handles templates.
|
4 |
+
*
|
5 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
6 |
+
* @copyright (c) 05.04.2019, Webcraftic
|
7 |
+
* @version 1.0
|
8 |
+
*/
|
9 |
+
|
10 |
+
class WGZ_Views {
|
11 |
+
|
12 |
+
/**
|
13 |
+
* The single instance of the class.
|
14 |
+
*
|
15 |
+
* @since 1.3.0
|
16 |
+
* @access protected
|
17 |
+
* @var array
|
18 |
+
*/
|
19 |
+
protected static $_instance = [];
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
23 |
+
* @since 1.3.0
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
protected $plugin_dir;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* WRIO_Views constructor.
|
30 |
+
*
|
31 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
32 |
+
*
|
33 |
+
* @param string $plugin_dir
|
34 |
+
*/
|
35 |
+
public function __construct( $plugin_dir ) {
|
36 |
+
$this->plugin_dir = $plugin_dir;
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
41 |
+
* @since 1.3.6 - add instace id
|
42 |
+
* @since 1.3.0
|
43 |
+
*
|
44 |
+
* @param string $plugin_dir
|
45 |
+
*
|
46 |
+
* @return object|\WGZ_Views object Main instance.
|
47 |
+
*/
|
48 |
+
public static function get_instance( $plugin_dir ) {
|
49 |
+
$instance_id = md5( $plugin_dir );
|
50 |
+
|
51 |
+
if ( ! isset( self::$_instance[ $instance_id ] ) ) {
|
52 |
+
self::$_instance[ $instance_id ] = new self( $plugin_dir );
|
53 |
+
}
|
54 |
+
|
55 |
+
return self::$_instance[ $instance_id ];
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Get a template contents.
|
60 |
+
*
|
61 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
62 |
+
* @since 1.3.0
|
63 |
+
*
|
64 |
+
* @param string $template The template name.
|
65 |
+
* @param mixed $data Some data to pass to the template.
|
66 |
+
* @param Wbcr_FactoryClearfy213_PageBase $page
|
67 |
+
*
|
68 |
+
* @return bool|string The page contents. False if the template doesn't exist.
|
69 |
+
*/
|
70 |
+
public function get_template( $template, $data = [], Wbcr_FactoryClearfy213_PageBase $page = null ) {
|
71 |
+
$template = str_replace( '_', '-', $template );
|
72 |
+
$path = $this->plugin_dir . '/views/' . $template . '.php';
|
73 |
+
|
74 |
+
if ( ! file_exists( $path ) ) {
|
75 |
+
return false;
|
76 |
+
}
|
77 |
+
|
78 |
+
ob_start();
|
79 |
+
include $path;
|
80 |
+
$contents = ob_get_clean();
|
81 |
+
|
82 |
+
return trim( (string) $contents );
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Print a template.
|
87 |
+
*
|
88 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
89 |
+
* @access public
|
90 |
+
*
|
91 |
+
* @since 1.3.0
|
92 |
+
*
|
93 |
+
* @param string $template The template name.
|
94 |
+
* @param mixed $data Some data to pass to the template.
|
95 |
+
* @param Wbcr_FactoryClearfy213_PageBase $page
|
96 |
+
*/
|
97 |
+
public function print_template( $template, $data = [], Wbcr_FactoryClearfy213_PageBase $page = null ) {
|
98 |
+
echo $this->get_template( $template, $data, $page );
|
99 |
+
}
|
100 |
+
}
|
components/assets-manager/includes/functions.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Helpers functions
|
4 |
+
*
|
5 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
6 |
+
* @copyright (c) 11.05.2019, Webcraftic
|
7 |
+
* @version 1.0
|
8 |
+
*/
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Assets manager MU dynamically activated only plugins that you have selected in each page.
|
12 |
+
* This method installs the MU plugin if it does not exist or its current version does not
|
13 |
+
* match the current version.
|
14 |
+
*
|
15 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
16 |
+
* @since 1.0.7
|
17 |
+
*/
|
18 |
+
function wbcr_gnz_deploy_mu_plugin() {
|
19 |
+
if ( wp_mkdir_p( WPMU_PLUGIN_DIR ) ) {
|
20 |
+
if ( ! file_exists( WPMU_PLUGIN_DIR . "/assets-manager.php" ) ) {
|
21 |
+
@copy( WGZ_PLUGIN_DIR . '/mu-plugins/assets-manager.php', WPMU_PLUGIN_DIR . '/assets-manager.php' );
|
22 |
+
} else {
|
23 |
+
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
24 |
+
$dp = get_plugin_data( WPMU_PLUGIN_DIR . "/assets-manager.php", false, false );
|
25 |
+
$sp = get_plugin_data( WGZ_PLUGIN_DIR . '/mu-plugins/assets-manager.php', false, false );
|
26 |
+
if ( version_compare( $dp['Version'], $sp['Version'], '!=' ) ) {
|
27 |
+
@copy( WGZ_PLUGIN_DIR . '/mu-plugins/assets-manager.php', WPMU_PLUGIN_DIR . '/assets-manager.php' );
|
28 |
+
}
|
29 |
+
}
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Remove MU plugin
|
35 |
+
*
|
36 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
37 |
+
* @since 1.0.7
|
38 |
+
*/
|
39 |
+
function wbcr_gnz_remove_mu_plugin() {
|
40 |
+
if ( file_exists( WPMU_PLUGIN_DIR . "/assets-manager.php" ) ) {
|
41 |
+
@unlink( WPMU_PLUGIN_DIR . '/assets-manager.php' );
|
42 |
+
}
|
43 |
+
}
|
components/assets-manager/includes/index.php
CHANGED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/assets-manager/index.php
CHANGED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/assets-manager/languages/gonzales-es_ES.po
CHANGED
@@ -1,466 +1,466 @@
|
|
1 |
-
# Translation of Plugins - Clearfy in Spanish (Spain)
|
2 |
-
# This file is distributed under the same license as the Plugins - Clearfy – WordPress optimization plugin and disable ultimate tweaker - Development (trunk) package.
|
3 |
-
msgid ""
|
4 |
-
msgstr ""
|
5 |
-
"Project-Id-Version: \n"
|
6 |
-
"POT-Creation-Date: 2019-04-28 06:23+0300\n"
|
7 |
-
"PO-Revision-Date: 2019-04-28 06:23+0300\n"
|
8 |
-
"Last-Translator: \n"
|
9 |
-
"Language-Team: \n"
|
10 |
-
"Language: es\n"
|
11 |
-
"MIME-Version: 1.0\n"
|
12 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
-
"Content-Transfer-Encoding: 8bit\n"
|
14 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
-
"X-Generator: Poedit 2.1.1\n"
|
16 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
-
"X-Generator: Poedit 2.1.1\n"
|
18 |
-
"X-Poedit-Basepath: ..\n"
|
19 |
-
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
20 |
-
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
21 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
22 |
-
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
|
23 |
-
"X-Poedit-SearchPath-0: .\n"
|
24 |
-
"X-Poedit-SearchPathExcluded-0: libs\n"
|
25 |
-
"X-Poedit-SearchPathExcluded-1: components\n"
|
26 |
-
"X-Poedit-SearchPathExcluded-2: cache\n"
|
27 |
-
|
28 |
-
#: admin/boot.php:30
|
29 |
-
msgid ""
|
30 |
-
"We detected that you used the Assets manager plugin. Do you want to import "
|
31 |
-
"settings from this plugin to the Clearfy plugin?"
|
32 |
-
msgstr ""
|
33 |
-
"Configuración de activos detectada. ¿Desea importar esta configuración al "
|
34 |
-
"plugin Clearfy?"
|
35 |
-
|
36 |
-
#: admin/boot.php:31
|
37 |
-
msgid "Import options"
|
38 |
-
msgstr "Importar opciones"
|
39 |
-
|
40 |
-
#: admin/boot.php:48
|
41 |
-
msgid "Settings has been successfully imported!"
|
42 |
-
msgstr "¡Configuración importada exitosamente!"
|
43 |
-
|
44 |
-
#: admin/boot.php:140 admin/pages/assets-manager.php:96
|
45 |
-
msgid "Disable assets manager"
|
46 |
-
msgstr "Deshabilitar gestor de activos"
|
47 |
-
|
48 |
-
#: admin/boot.php:147 admin/pages/assets-manager.php:120
|
49 |
-
msgid "Disable assets manager panel"
|
50 |
-
msgstr "Deshabilitar el panel de Gestor de Activos"
|
51 |
-
|
52 |
-
#: admin/boot.php:153 admin/pages/assets-manager.php:129
|
53 |
-
msgid "Disable assets manager on front"
|
54 |
-
msgstr "Deshabilitar el administrador de activos en el frontend"
|
55 |
-
|
56 |
-
#: admin/boot.php:159 admin/pages/assets-manager.php:138
|
57 |
-
msgid "Disable assets manager on back-end"
|
58 |
-
msgstr "Deshabilitar el administrador de activos en el back-end"
|
59 |
-
|
60 |
-
#: admin/boot.php:165
|
61 |
-
msgid "Assets manager options"
|
62 |
-
msgstr "Opciiones del Gestor de Activos"
|
63 |
-
|
64 |
-
#: admin/boot.php:205 includes/class.configurate-assets.php:266
|
65 |
-
msgid "Disable plugins (groups of scripts)"
|
66 |
-
msgstr "Deshabilitar plugins (grupos de scripts)"
|
67 |
-
|
68 |
-
#: admin/boot.php:206 includes/class.configurate-assets.php:267
|
69 |
-
msgid "Conditions by the link template"
|
70 |
-
msgstr "Condiciones para enlace de plantilla."
|
71 |
-
|
72 |
-
#: admin/boot.php:207 includes/class.configurate-assets.php:268
|
73 |
-
msgid "Conditions by the regular expression"
|
74 |
-
msgstr "Condiciones para la expresión regular."
|
75 |
-
|
76 |
-
#: admin/boot.php:208 includes/class.configurate-assets.php:269
|
77 |
-
msgid "Safe mode"
|
78 |
-
msgstr "Modo seguro"
|
79 |
-
|
80 |
-
#: admin/boot.php:209 includes/class.configurate-assets.php:270
|
81 |
-
msgid "Statistics and optimization results"
|
82 |
-
msgstr "Estadísticas y resultados de optimización."
|
83 |
-
|
84 |
-
#: admin/boot.php:220
|
85 |
-
msgid "Get premium"
|
86 |
-
msgstr "Obtener premium"
|
87 |
-
|
88 |
-
#: admin/pages/assets-manager.php:48 admin/pages/assets-manager.php:67
|
89 |
-
#: admin/pages/assets-manager.php:75
|
90 |
-
msgid "Assets manager"
|
91 |
-
msgstr "Gestor de Activos"
|
92 |
-
|
93 |
-
#: admin/pages/assets-manager.php:67 admin/pages/assets-manager.php:75
|
94 |
-
msgid "General"
|
95 |
-
msgstr "General"
|
96 |
-
|
97 |
-
#: admin/pages/assets-manager.php:89
|
98 |
-
msgid "Disable unused scripts, styles, and fonts"
|
99 |
-
msgstr "Deshabilitar los scripts, estilos y fuentes no utilizados"
|
100 |
-
|
101 |
-
#: admin/pages/assets-manager.php:89
|
102 |
-
msgid ""
|
103 |
-
"There is a button in the adminbar called \"Script Manager\". If you click on "
|
104 |
-
"it you will see a list of loaded scripts, styles and fonts on the current "
|
105 |
-
"page of your site. If you think that one of the assets is superfluous on "
|
106 |
-
"this page, you can disable it individually, so that it does not create "
|
107 |
-
"unnecessary queries when page loading. Use the script manager very carefull "
|
108 |
-
"to non-corrupt your website. We recommend to test this function at a local "
|
109 |
-
"server."
|
110 |
-
msgstr ""
|
111 |
-
"Hay un botón en la barra de administración llamado \"Administrador de "
|
112 |
-
"secuencias de comandos\". Si hace clic en él, verá una lista de los scripts, "
|
113 |
-
"estilos y fuentes cargados en la página actual de su sitio. Si cree que uno "
|
114 |
-
"de los recursos es superfluo en esta página, puede deshabilitarlo "
|
115 |
-
"individualmente, para que no cree consultas innecesarias cuando se carga la "
|
116 |
-
"página. Utilice el administrador de scripts con mucho cuidado para no dañar "
|
117 |
-
"su sitio web. Recomendamos probar esta función en un servidor local."
|
118 |
-
|
119 |
-
#: admin/pages/assets-manager.php:98
|
120 |
-
msgid "Full disable of the module."
|
121 |
-
msgstr "Deshabilitación completa del módulo."
|
122 |
-
|
123 |
-
#: admin/pages/assets-manager.php:122
|
124 |
-
msgid ""
|
125 |
-
"By default in your admin bar there is a button for control the assets "
|
126 |
-
"scripts and styles. With this option, you can turn off the script manager on "
|
127 |
-
"front and back-end."
|
128 |
-
msgstr ""
|
129 |
-
"De forma predeterminada, en la barra de administración hay un botón para "
|
130 |
-
"controlar los scripts y estilos de activos. Con esta opción, puede "
|
131 |
-
"desactivar el administrador de secuencias de comandos en la parte frontal y "
|
132 |
-
"posterior."
|
133 |
-
|
134 |
-
#: admin/pages/assets-manager.php:131
|
135 |
-
msgid "Disables assets manager initialization for frontend."
|
136 |
-
msgstr "Desactiva el inicio del administrador de activos para el frontend."
|
137 |
-
|
138 |
-
#: admin/pages/assets-manager.php:140
|
139 |
-
msgid "Disables assets manager initialization for backend."
|
140 |
-
msgstr "Desactiva el inicio del administrador de activos para el backend."
|
141 |
-
|
142 |
-
#: gonzales.php:84
|
143 |
-
msgid "Webcraftic assets manager"
|
144 |
-
msgstr "Gestor de activos webcraftic"
|
145 |
-
|
146 |
-
#: includes/class.configurate-assets.php:128
|
147 |
-
#: includes/class.configurate-assets.php:147
|
148 |
-
msgid "Assets Manager"
|
149 |
-
msgstr "Gestor de Activos"
|
150 |
-
|
151 |
-
#: includes/class.configurate-assets.php:212
|
152 |
-
msgid "Total requests"
|
153 |
-
msgstr "Total de solicitudes"
|
154 |
-
|
155 |
-
#: includes/class.configurate-assets.php:213
|
156 |
-
msgid "Total size"
|
157 |
-
msgstr "Tamaño total"
|
158 |
-
|
159 |
-
#: includes/class.configurate-assets.php:214
|
160 |
-
msgid "Optimized size"
|
161 |
-
msgstr "Tamaño optimizado"
|
162 |
-
|
163 |
-
#: includes/class.configurate-assets.php:215
|
164 |
-
msgid "Disabled js"
|
165 |
-
msgstr "JS desactivado"
|
166 |
-
|
167 |
-
#: includes/class.configurate-assets.php:216
|
168 |
-
msgid "Disabled css"
|
169 |
-
msgstr "CSS desactivado"
|
170 |
-
|
171 |
-
#: includes/class.configurate-assets.php:218
|
172 |
-
msgid ""
|
173 |
-
"This is the general statistics to see the optimization result. Available in "
|
174 |
-
"the paid version only."
|
175 |
-
msgstr ""
|
176 |
-
"Esta es la estadística general para ver el resultado de la optimización. "
|
177 |
-
"Disponible solo en la versión de pago."
|
178 |
-
|
179 |
-
#: includes/class.configurate-assets.php:222
|
180 |
-
msgid "Reset"
|
181 |
-
msgstr "Resetear"
|
182 |
-
|
183 |
-
#: includes/class.configurate-assets.php:223
|
184 |
-
msgid "Save"
|
185 |
-
msgstr "Guardar"
|
186 |
-
|
187 |
-
#: includes/class.configurate-assets.php:224
|
188 |
-
msgid ""
|
189 |
-
"In test mode, you can experiment with disabling unused scripts safely for "
|
190 |
-
"your site. The resources that you disabled will be visible only to you (the "
|
191 |
-
"administrator), and all other users will receive an unoptimized version of "
|
192 |
-
"the site, until you remove this tick"
|
193 |
-
msgstr ""
|
194 |
-
"En el modo de prueba, puede experimentar con la desactivación segura de "
|
195 |
-
"scripts no utilizados para su sitio. Los recursos que desactivó solo serán "
|
196 |
-
"visibles para usted (el administrador), y todos los demás usuarios recibirán "
|
197 |
-
"una versión no optimizada del sitio, hasta que elimine esta marca"
|
198 |
-
|
199 |
-
#: includes/class.configurate-assets.php:225
|
200 |
-
msgid "Safe mode <b>PRO</b>"
|
201 |
-
msgstr "Modo seguro <b>PRO</b>"
|
202 |
-
|
203 |
-
#: includes/class.configurate-assets.php:227
|
204 |
-
msgid "Close"
|
205 |
-
msgstr "Cerrar"
|
206 |
-
|
207 |
-
#: includes/class.configurate-assets.php:257
|
208 |
-
msgid ""
|
209 |
-
"Important! Each page of your website has different sets of scripts and "
|
210 |
-
"styles files."
|
211 |
-
msgstr ""
|
212 |
-
"¡Importante! Cada página de su sitio web tiene diferentes conjuntos de "
|
213 |
-
"scripts y archivos de estilos."
|
214 |
-
|
215 |
-
#: includes/class.configurate-assets.php:258
|
216 |
-
msgid ""
|
217 |
-
"Use this feature to disable unwanted scripts and styles by setting up the "
|
218 |
-
"logic for different types of pages. We recommend working in \"Safe mode\" "
|
219 |
-
"because disabling any necessary system script file can corrupt the website. "
|
220 |
-
"All changes done in Safe mode are available for administrator only. This way "
|
221 |
-
"only you, as the administrator, can see the result of optimization. To "
|
222 |
-
"enable the changes for other users, uncheck Safe mode."
|
223 |
-
msgstr ""
|
224 |
-
"Utilice esta función para deshabilitar los scripts y estilos no deseados "
|
225 |
-
"configurando la mejor lógica para diferentes tipos de páginas. Recomendamos "
|
226 |
-
"trabajar en \"Safe mode\" ya que deshabilitar cualquier archivo importante "
|
227 |
-
"del script del sistema podría dañar el sitio web. Todos los cambios "
|
228 |
-
"realizados en Modo seguro están disponibles solo para el administrador. De "
|
229 |
-
"esta manera solo usted, como administrador, puede ver el resultado de la "
|
230 |
-
"optimización. Para habilitar los cambios para otros usuarios, desmarque Modo "
|
231 |
-
"seguro."
|
232 |
-
|
233 |
-
#: includes/class.configurate-assets.php:259
|
234 |
-
#, php-format
|
235 |
-
msgid ""
|
236 |
-
"For more details and user guides, check the plugin’s <a href=\"%s\" target="
|
237 |
-
"\"_blank\" rel=\"noreferrer noopener\">documentation</a>."
|
238 |
-
msgstr ""
|
239 |
-
"Para más detalles y guías de usuario del plugin, consulte la <a href=\"%s\" "
|
240 |
-
"target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>."
|
241 |
-
|
242 |
-
#: includes/class.configurate-assets.php:262
|
243 |
-
msgid "Upgrade to Premium"
|
244 |
-
msgstr "Actualizar a Premium"
|
245 |
-
|
246 |
-
#: includes/class.configurate-assets.php:265
|
247 |
-
msgid "MORE IN CLEARFY BUSINESS"
|
248 |
-
msgstr "MÁS EN CLEARFY BUSINESS"
|
249 |
-
|
250 |
-
#: includes/class.configurate-assets.php:308
|
251 |
-
#: includes/class.configurate-assets.php:336
|
252 |
-
msgid "Loaded"
|
253 |
-
msgstr "Cargado"
|
254 |
-
|
255 |
-
#: includes/class.configurate-assets.php:309
|
256 |
-
msgid "Plugin"
|
257 |
-
msgstr "Plugin"
|
258 |
-
|
259 |
-
#: includes/class.configurate-assets.php:313
|
260 |
-
#: includes/class.configurate-assets.php:342
|
261 |
-
msgid "Load resource?"
|
262 |
-
msgstr "¿Cargar recurso?"
|
263 |
-
|
264 |
-
#: includes/class.configurate-assets.php:314
|
265 |
-
#: includes/class.configurate-assets.php:343
|
266 |
-
msgid "Conditions"
|
267 |
-
msgstr "Condiciones"
|
268 |
-
|
269 |
-
#: includes/class.configurate-assets.php:322
|
270 |
-
msgid "Author"
|
271 |
-
msgstr "Autor"
|
272 |
-
|
273 |
-
#: includes/class.configurate-assets.php:323
|
274 |
-
#: includes/class.configurate-assets.php:402
|
275 |
-
msgid "Version"
|
276 |
-
msgstr "Versión"
|
277 |
-
|
278 |
-
#: includes/class.configurate-assets.php:337
|
279 |
-
msgid "Size"
|
280 |
-
msgstr "Tamaño"
|
281 |
-
|
282 |
-
#: includes/class.configurate-assets.php:338
|
283 |
-
msgid "Resource"
|
284 |
-
msgstr "Recurso"
|
285 |
-
|
286 |
-
#: includes/class.configurate-assets.php:366
|
287 |
-
msgid "In use by"
|
288 |
-
msgstr "En uso por"
|
289 |
-
|
290 |
-
#: includes/class.configurate-assets.php:373
|
291 |
-
msgid "Requires"
|
292 |
-
msgstr "Requiere"
|
293 |
-
|
294 |
-
#: includes/class.configurate-assets.php:402
|
295 |
-
msgid "--"
|
296 |
-
msgstr "--"
|
297 |
-
|
298 |
-
#: includes/class.configurate-assets.php:559
|
299 |
-
#: includes/class.configurate-assets.php:1403
|
300 |
-
msgid "No"
|
301 |
-
msgstr "No"
|
302 |
-
|
303 |
-
#: includes/class.configurate-assets.php:559
|
304 |
-
#: includes/class.configurate-assets.php:1403
|
305 |
-
msgid "Yes"
|
306 |
-
msgstr "Sí"
|
307 |
-
|
308 |
-
#: includes/class.configurate-assets.php:575
|
309 |
-
msgid ""
|
310 |
-
"Click the switch in the <b>Load resource?</b> column to display the "
|
311 |
-
"conditions for loading the resource."
|
312 |
-
msgstr ""
|
313 |
-
"Haga clic en el switch de la columna <b>¿Cargar recurso?</b> para mostrar "
|
314 |
-
"las condiciones para cargar el recurso."
|
315 |
-
|
316 |
-
#: includes/class.configurate-assets.php:577
|
317 |
-
msgid ""
|
318 |
-
"Set the plugin logic to apply it to all plugin’s resources. This feature "
|
319 |
-
"available at the paid version."
|
320 |
-
msgstr ""
|
321 |
-
"Configure el \"plugin logic\" para aplicarlo a todos los recursos del "
|
322 |
-
"complemento. Esta característica está disponible en la versión de pago."
|
323 |
-
|
324 |
-
#: includes/class.configurate-assets.php:586
|
325 |
-
#: includes/class.configurate-assets.php:610
|
326 |
-
msgid "Current URL"
|
327 |
-
msgstr "URL actual"
|
328 |
-
|
329 |
-
#: includes/class.configurate-assets.php:587
|
330 |
-
msgid "Everywhere"
|
331 |
-
msgstr "Donde sea"
|
332 |
-
|
333 |
-
#: includes/class.configurate-assets.php:588
|
334 |
-
msgid "Custom URL (PRO)"
|
335 |
-
msgstr "URL personalizada (PRO)"
|
336 |
-
|
337 |
-
#: includes/class.configurate-assets.php:589
|
338 |
-
msgid "Regular expression (PRO)"
|
339 |
-
msgstr "Expresión regular (PRO)"
|
340 |
-
|
341 |
-
#: includes/class.configurate-assets.php:599
|
342 |
-
msgid "Exclude"
|
343 |
-
msgstr "Excluir"
|
344 |
-
|
345 |
-
#: includes/class.configurate-assets.php:599
|
346 |
-
msgid ""
|
347 |
-
"You can disable this resource for all pages, except sections and page types "
|
348 |
-
"listed below. Specify sections and page types with the enabled resource."
|
349 |
-
msgstr ""
|
350 |
-
"Puede deshabilitar este recurso para todas las páginas, excepto las "
|
351 |
-
"secciones y los tipos de página que se enumeran a continuación. Especifique "
|
352 |
-
"secciones y tipos de página con el recurso habilitado."
|
353 |
-
|
354 |
-
#: includes/class.configurate-assets.php:683
|
355 |
-
msgid "Example"
|
356 |
-
msgstr "Ejemplo"
|
357 |
-
|
358 |
-
#: includes/class.configurate-assets.php:683
|
359 |
-
msgid "Enter URL (set * for mask)"
|
360 |
-
msgstr "Ingrese URL (set * for mask)"
|
361 |
-
|
362 |
-
#: includes/class.configurate-assets.php:683
|
363 |
-
msgid ""
|
364 |
-
"You can disable the resource only for the pages with the matched to the "
|
365 |
-
"template address. For example, if you set the template for the link as "
|
366 |
-
"http://yoursite.test/profile/*, then the resource is disabled for the "
|
367 |
-
"following pages: http://yoursite.test/profile/12, http://yoursite.test/"
|
368 |
-
"profile/43, http://yoursite.test/profile/999. If you don’t use the asterisk "
|
369 |
-
"symbol in the template then the plugin will disable the resource only for "
|
370 |
-
"the pages with 100% match in the specified link type. This feature is "
|
371 |
-
"available at the paid version."
|
372 |
-
msgstr ""
|
373 |
-
"Puede deshabilitar el recurso solo para las páginas que coincidan con la "
|
374 |
-
"dirección de la plantilla. Por ejemplo, si configura la plantilla para el "
|
375 |
-
"enlace como http://yoursite.test/profile/*, el recurso se deshabilita para "
|
376 |
-
"las siguientes páginas: http://yoursite.test/profile/12, http://yoursite."
|
377 |
-
"test/profile/43, http://yoursite.test/profile/999. Si no usa el símbolo de "
|
378 |
-
"asterisco en la plantilla, el complemento deshabilitará el recurso solo para "
|
379 |
-
"las páginas con una coincidencia del 100% en el tipo de enlace especificado. "
|
380 |
-
"Esta característica está disponible en la versión de pago."
|
381 |
-
|
382 |
-
#: includes/class.configurate-assets.php:686
|
383 |
-
msgid "Add field"
|
384 |
-
msgstr "Añadir campo"
|
385 |
-
|
386 |
-
#: includes/class.configurate-assets.php:696
|
387 |
-
msgid "Enter regular expression"
|
388 |
-
msgstr "Ingrese la expresión regular"
|
389 |
-
|
390 |
-
#: includes/class.configurate-assets.php:696
|
391 |
-
msgid ""
|
392 |
-
"Regular expressions can be used by experts. This tool creates flexible "
|
393 |
-
"conditions to disable the resource. For example, if you specify this "
|
394 |
-
"expression: ^([A-z0-9]+-)?gifts? then the resource will be disabled at the "
|
395 |
-
"following pages http://yoursite.test/get-gift/, http://yoursite.test/gift/, "
|
396 |
-
"http://yoursite.test/get-gifts/, http://yoursite.test/gifts/. The plugin "
|
397 |
-
"ignores the backslash at the beginning of the query string, so you can "
|
398 |
-
"dismiss it. Check your regular expressions in here: https://regex101.com, "
|
399 |
-
"this will prevent you from the mistakes. This feature is available at the "
|
400 |
-
"paid version."
|
401 |
-
msgstr ""
|
402 |
-
"Las expresiones regulares pueden ser utilizadas por expertos. Esta "
|
403 |
-
"herramienta crea condiciones flexibles para deshabilitar el recurso. Por "
|
404 |
-
"ejemplo, si especifica esta expresión: ^ ([A-z0-9] + -)?Gifts? significa que "
|
405 |
-
"el recurso se deshabilitará en las siguientes páginas http: //yoursite.test/"
|
406 |
-
"get-gift/, http: //yoursite.test/gift/, http: //yoursite.test/get-gifts/, "
|
407 |
-
"http: / /yoursite.test/gifts/. El plugin ignora la barra diagonal inversa al "
|
408 |
-
"principio de la cadena de consulta, por lo que puede descartarla. Verifique "
|
409 |
-
"sus expresiones regulares aquí: https://regex101.com, esto evitará que "
|
410 |
-
"cometa errores. Esta característica está disponible en la versión de pago."
|
411 |
-
|
412 |
-
#: includes/class.configurate-assets.php:715
|
413 |
-
msgid "Also disabled for pages"
|
414 |
-
msgstr "También deshabilitado para páginas"
|
415 |
-
|
416 |
-
#: includes/class.configurate-assets.php:729
|
417 |
-
msgid "You don't have enough capability to edit this information."
|
418 |
-
msgstr "No tienes suficiente permisos para editar esta información."
|
419 |
-
|
420 |
-
#: includes/class.configurate-assets.php:1293
|
421 |
-
msgid "Minify and Combine"
|
422 |
-
msgstr "Minificar y Combinar"
|
423 |
-
|
424 |
-
#: includes/class.configurate-assets.php:1314
|
425 |
-
msgid "remove version?"
|
426 |
-
msgstr "¿Eliminar versión?"
|
427 |
-
|
428 |
-
#: includes/class.configurate-assets.php:1314
|
429 |
-
msgid "optimize?"
|
430 |
-
msgstr "¿optimizar?"
|
431 |
-
|
432 |
-
#: includes/class.configurate-assets.php:1318
|
433 |
-
msgid ""
|
434 |
-
"You’ve enabled "Remove query strings" from static resources in the "
|
435 |
-
""Clearfy" plugin. This list of settings helps you to exclude the "
|
436 |
-
"necessary scripts and styles with remaining query strings. Press No to add a "
|
437 |
-
"file to the excluded list."
|
438 |
-
msgstr ""
|
439 |
-
"Has habilitado "Eliminar cadenas de consulta" de los recursos "
|
440 |
-
"estáticos en el "Clearfy" plugin. Esta lista de configuraciones le "
|
441 |
-
"ayuda a excluir los scripts y estilos necesarios con las cadenas de consulta "
|
442 |
-
"restantes. Presione No para agregar un archivo a la lista excluida."
|
443 |
-
|
444 |
-
#: includes/class.configurate-assets.php:1320
|
445 |
-
msgid ""
|
446 |
-
"You’ve enabled the "Optimize js scripts?" and "Optimize CSS "
|
447 |
-
"options" in the "Minify & Combine plugin". These settings "
|
448 |
-
"exclude scripts and styles that you don’t want to optimize. Press No to add "
|
449 |
-
"a file to the excluded list."
|
450 |
-
msgstr ""
|
451 |
-
"Has habilitado "Optimizar js scripts?" y "Optimizar CSS "
|
452 |
-
"options" en el "plugin Minify & Combine". Esta configuración "
|
453 |
-
"excluye los scripts y los estilos que no desea optimizar. Presione No para "
|
454 |
-
"agregar un archivo a la lista excluida."
|
455 |
-
|
456 |
-
#: includes/class.configurate-assets.php:1322
|
457 |
-
msgid ""
|
458 |
-
"You’ve enabled the "Optimize js scripts?" and "Optimize CSS "
|
459 |
-
"options" in the "Autoptimize". These settings exclude scripts "
|
460 |
-
"and styles that you don’t want to optimize. Press No to add a file to the "
|
461 |
-
"excluded list."
|
462 |
-
msgstr ""
|
463 |
-
"Has habilitado "Optimizar js scripts?" y "Optimizar CSS "
|
464 |
-
"options" en el "Autoptimize". Esta configuración excluye los "
|
465 |
-
"scripts y los estilos que no desea optimizar. Presione No para agregar un "
|
466 |
"archivo a la lista excluida."
|
1 |
+
# Translation of Plugins - Clearfy in Spanish (Spain)
|
2 |
+
# This file is distributed under the same license as the Plugins - Clearfy – WordPress optimization plugin and disable ultimate tweaker - Development (trunk) package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: \n"
|
6 |
+
"POT-Creation-Date: 2019-04-28 06:23+0300\n"
|
7 |
+
"PO-Revision-Date: 2019-04-28 06:23+0300\n"
|
8 |
+
"Last-Translator: \n"
|
9 |
+
"Language-Team: \n"
|
10 |
+
"Language: es\n"
|
11 |
+
"MIME-Version: 1.0\n"
|
12 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
+
"Content-Transfer-Encoding: 8bit\n"
|
14 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
+
"X-Generator: Poedit 2.1.1\n"
|
16 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
+
"X-Generator: Poedit 2.1.1\n"
|
18 |
+
"X-Poedit-Basepath: ..\n"
|
19 |
+
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
20 |
+
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
21 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
22 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
|
23 |
+
"X-Poedit-SearchPath-0: .\n"
|
24 |
+
"X-Poedit-SearchPathExcluded-0: libs\n"
|
25 |
+
"X-Poedit-SearchPathExcluded-1: components\n"
|
26 |
+
"X-Poedit-SearchPathExcluded-2: cache\n"
|
27 |
+
|
28 |
+
#: admin/boot.php:30
|
29 |
+
msgid ""
|
30 |
+
"We detected that you used the Assets manager plugin. Do you want to import "
|
31 |
+
"settings from this plugin to the Clearfy plugin?"
|
32 |
+
msgstr ""
|
33 |
+
"Configuración de activos detectada. ¿Desea importar esta configuración al "
|
34 |
+
"plugin Clearfy?"
|
35 |
+
|
36 |
+
#: admin/boot.php:31
|
37 |
+
msgid "Import options"
|
38 |
+
msgstr "Importar opciones"
|
39 |
+
|
40 |
+
#: admin/boot.php:48
|
41 |
+
msgid "Settings has been successfully imported!"
|
42 |
+
msgstr "¡Configuración importada exitosamente!"
|
43 |
+
|
44 |
+
#: admin/boot.php:140 admin/pages/assets-manager.php:96
|
45 |
+
msgid "Disable assets manager"
|
46 |
+
msgstr "Deshabilitar gestor de activos"
|
47 |
+
|
48 |
+
#: admin/boot.php:147 admin/pages/assets-manager.php:120
|
49 |
+
msgid "Disable assets manager panel"
|
50 |
+
msgstr "Deshabilitar el panel de Gestor de Activos"
|
51 |
+
|
52 |
+
#: admin/boot.php:153 admin/pages/assets-manager.php:129
|
53 |
+
msgid "Disable assets manager on front"
|
54 |
+
msgstr "Deshabilitar el administrador de activos en el frontend"
|
55 |
+
|
56 |
+
#: admin/boot.php:159 admin/pages/assets-manager.php:138
|
57 |
+
msgid "Disable assets manager on back-end"
|
58 |
+
msgstr "Deshabilitar el administrador de activos en el back-end"
|
59 |
+
|
60 |
+
#: admin/boot.php:165
|
61 |
+
msgid "Assets manager options"
|
62 |
+
msgstr "Opciiones del Gestor de Activos"
|
63 |
+
|
64 |
+
#: admin/boot.php:205 includes/class.configurate-assets.php:266
|
65 |
+
msgid "Disable plugins (groups of scripts)"
|
66 |
+
msgstr "Deshabilitar plugins (grupos de scripts)"
|
67 |
+
|
68 |
+
#: admin/boot.php:206 includes/class.configurate-assets.php:267
|
69 |
+
msgid "Conditions by the link template"
|
70 |
+
msgstr "Condiciones para enlace de plantilla."
|
71 |
+
|
72 |
+
#: admin/boot.php:207 includes/class.configurate-assets.php:268
|
73 |
+
msgid "Conditions by the regular expression"
|
74 |
+
msgstr "Condiciones para la expresión regular."
|
75 |
+
|
76 |
+
#: admin/boot.php:208 includes/class.configurate-assets.php:269
|
77 |
+
msgid "Safe mode"
|
78 |
+
msgstr "Modo seguro"
|
79 |
+
|
80 |
+
#: admin/boot.php:209 includes/class.configurate-assets.php:270
|
81 |
+
msgid "Statistics and optimization results"
|
82 |
+
msgstr "Estadísticas y resultados de optimización."
|
83 |
+
|
84 |
+
#: admin/boot.php:220
|
85 |
+
msgid "Get premium"
|
86 |
+
msgstr "Obtener premium"
|
87 |
+
|
88 |
+
#: admin/pages/assets-manager.php:48 admin/pages/assets-manager.php:67
|
89 |
+
#: admin/pages/assets-manager.php:75
|
90 |
+
msgid "Assets manager"
|
91 |
+
msgstr "Gestor de Activos"
|
92 |
+
|
93 |
+
#: admin/pages/assets-manager.php:67 admin/pages/assets-manager.php:75
|
94 |
+
msgid "General"
|
95 |
+
msgstr "General"
|
96 |
+
|
97 |
+
#: admin/pages/assets-manager.php:89
|
98 |
+
msgid "Disable unused scripts, styles, and fonts"
|
99 |
+
msgstr "Deshabilitar los scripts, estilos y fuentes no utilizados"
|
100 |
+
|
101 |
+
#: admin/pages/assets-manager.php:89
|
102 |
+
msgid ""
|
103 |
+
"There is a button in the adminbar called \"Script Manager\". If you click on "
|
104 |
+
"it you will see a list of loaded scripts, styles and fonts on the current "
|
105 |
+
"page of your site. If you think that one of the assets is superfluous on "
|
106 |
+
"this page, you can disable it individually, so that it does not create "
|
107 |
+
"unnecessary queries when page loading. Use the script manager very carefull "
|
108 |
+
"to non-corrupt your website. We recommend to test this function at a local "
|
109 |
+
"server."
|
110 |
+
msgstr ""
|
111 |
+
"Hay un botón en la barra de administración llamado \"Administrador de "
|
112 |
+
"secuencias de comandos\". Si hace clic en él, verá una lista de los scripts, "
|
113 |
+
"estilos y fuentes cargados en la página actual de su sitio. Si cree que uno "
|
114 |
+
"de los recursos es superfluo en esta página, puede deshabilitarlo "
|
115 |
+
"individualmente, para que no cree consultas innecesarias cuando se carga la "
|
116 |
+
"página. Utilice el administrador de scripts con mucho cuidado para no dañar "
|
117 |
+
"su sitio web. Recomendamos probar esta función en un servidor local."
|
118 |
+
|
119 |
+
#: admin/pages/assets-manager.php:98
|
120 |
+
msgid "Full disable of the module."
|
121 |
+
msgstr "Deshabilitación completa del módulo."
|
122 |
+
|
123 |
+
#: admin/pages/assets-manager.php:122
|
124 |
+
msgid ""
|
125 |
+
"By default in your admin bar there is a button for control the assets "
|
126 |
+
"scripts and styles. With this option, you can turn off the script manager on "
|
127 |
+
"front and back-end."
|
128 |
+
msgstr ""
|
129 |
+
"De forma predeterminada, en la barra de administración hay un botón para "
|
130 |
+
"controlar los scripts y estilos de activos. Con esta opción, puede "
|
131 |
+
"desactivar el administrador de secuencias de comandos en la parte frontal y "
|
132 |
+
"posterior."
|
133 |
+
|
134 |
+
#: admin/pages/assets-manager.php:131
|
135 |
+
msgid "Disables assets manager initialization for frontend."
|
136 |
+
msgstr "Desactiva el inicio del administrador de activos para el frontend."
|
137 |
+
|
138 |
+
#: admin/pages/assets-manager.php:140
|
139 |
+
msgid "Disables assets manager initialization for backend."
|
140 |
+
msgstr "Desactiva el inicio del administrador de activos para el backend."
|
141 |
+
|
142 |
+
#: gonzales.php:84
|
143 |
+
msgid "Webcraftic assets manager"
|
144 |
+
msgstr "Gestor de activos webcraftic"
|
145 |
+
|
146 |
+
#: includes/class.configurate-assets.php:128
|
147 |
+
#: includes/class.configurate-assets.php:147
|
148 |
+
msgid "Assets Manager"
|
149 |
+
msgstr "Gestor de Activos"
|
150 |
+
|
151 |
+
#: includes/class.configurate-assets.php:212
|
152 |
+
msgid "Total requests"
|
153 |
+
msgstr "Total de solicitudes"
|
154 |
+
|
155 |
+
#: includes/class.configurate-assets.php:213
|
156 |
+
msgid "Total size"
|
157 |
+
msgstr "Tamaño total"
|
158 |
+
|
159 |
+
#: includes/class.configurate-assets.php:214
|
160 |
+
msgid "Optimized size"
|
161 |
+
msgstr "Tamaño optimizado"
|
162 |
+
|
163 |
+
#: includes/class.configurate-assets.php:215
|
164 |
+
msgid "Disabled js"
|
165 |
+
msgstr "JS desactivado"
|
166 |
+
|
167 |
+
#: includes/class.configurate-assets.php:216
|
168 |
+
msgid "Disabled css"
|
169 |
+
msgstr "CSS desactivado"
|
170 |
+
|
171 |
+
#: includes/class.configurate-assets.php:218
|
172 |
+
msgid ""
|
173 |
+
"This is the general statistics to see the optimization result. Available in "
|
174 |
+
"the paid version only."
|
175 |
+
msgstr ""
|
176 |
+
"Esta es la estadística general para ver el resultado de la optimización. "
|
177 |
+
"Disponible solo en la versión de pago."
|
178 |
+
|
179 |
+
#: includes/class.configurate-assets.php:222
|
180 |
+
msgid "Reset"
|
181 |
+
msgstr "Resetear"
|
182 |
+
|
183 |
+
#: includes/class.configurate-assets.php:223
|
184 |
+
msgid "Save"
|
185 |
+
msgstr "Guardar"
|
186 |
+
|
187 |
+
#: includes/class.configurate-assets.php:224
|
188 |
+
msgid ""
|
189 |
+
"In test mode, you can experiment with disabling unused scripts safely for "
|
190 |
+
"your site. The resources that you disabled will be visible only to you (the "
|
191 |
+
"administrator), and all other users will receive an unoptimized version of "
|
192 |
+
"the site, until you remove this tick"
|
193 |
+
msgstr ""
|
194 |
+
"En el modo de prueba, puede experimentar con la desactivación segura de "
|
195 |
+
"scripts no utilizados para su sitio. Los recursos que desactivó solo serán "
|
196 |
+
"visibles para usted (el administrador), y todos los demás usuarios recibirán "
|
197 |
+
"una versión no optimizada del sitio, hasta que elimine esta marca"
|
198 |
+
|
199 |
+
#: includes/class.configurate-assets.php:225
|
200 |
+
msgid "Safe mode <b>PRO</b>"
|
201 |
+
msgstr "Modo seguro <b>PRO</b>"
|
202 |
+
|
203 |
+
#: includes/class.configurate-assets.php:227
|
204 |
+
msgid "Close"
|
205 |
+
msgstr "Cerrar"
|
206 |
+
|
207 |
+
#: includes/class.configurate-assets.php:257
|
208 |
+
msgid ""
|
209 |
+
"Important! Each page of your website has different sets of scripts and "
|
210 |
+
"styles files."
|
211 |
+
msgstr ""
|
212 |
+
"¡Importante! Cada página de su sitio web tiene diferentes conjuntos de "
|
213 |
+
"scripts y archivos de estilos."
|
214 |
+
|
215 |
+
#: includes/class.configurate-assets.php:258
|
216 |
+
msgid ""
|
217 |
+
"Use this feature to disable unwanted scripts and styles by setting up the "
|
218 |
+
"logic for different types of pages. We recommend working in \"Safe mode\" "
|
219 |
+
"because disabling any necessary system script file can corrupt the website. "
|
220 |
+
"All changes done in Safe mode are available for administrator only. This way "
|
221 |
+
"only you, as the administrator, can see the result of optimization. To "
|
222 |
+
"enable the changes for other users, uncheck Safe mode."
|
223 |
+
msgstr ""
|
224 |
+
"Utilice esta función para deshabilitar los scripts y estilos no deseados "
|
225 |
+
"configurando la mejor lógica para diferentes tipos de páginas. Recomendamos "
|
226 |
+
"trabajar en \"Safe mode\" ya que deshabilitar cualquier archivo importante "
|
227 |
+
"del script del sistema podría dañar el sitio web. Todos los cambios "
|
228 |
+
"realizados en Modo seguro están disponibles solo para el administrador. De "
|
229 |
+
"esta manera solo usted, como administrador, puede ver el resultado de la "
|
230 |
+
"optimización. Para habilitar los cambios para otros usuarios, desmarque Modo "
|
231 |
+
"seguro."
|
232 |
+
|
233 |
+
#: includes/class.configurate-assets.php:259
|
234 |
+
#, php-format
|
235 |
+
msgid ""
|
236 |
+
"For more details and user guides, check the plugin’s <a href=\"%s\" target="
|
237 |
+
"\"_blank\" rel=\"noreferrer noopener\">documentation</a>."
|
238 |
+
msgstr ""
|
239 |
+
"Para más detalles y guías de usuario del plugin, consulte la <a href=\"%s\" "
|
240 |
+
"target=\"_blank\" rel=\"noreferrer noopener\">documentación</a>."
|
241 |
+
|
242 |
+
#: includes/class.configurate-assets.php:262
|
243 |
+
msgid "Upgrade to Premium"
|
244 |
+
msgstr "Actualizar a Premium"
|
245 |
+
|
246 |
+
#: includes/class.configurate-assets.php:265
|
247 |
+
msgid "MORE IN CLEARFY BUSINESS"
|
248 |
+
msgstr "MÁS EN CLEARFY BUSINESS"
|
249 |
+
|
250 |
+
#: includes/class.configurate-assets.php:308
|
251 |
+
#: includes/class.configurate-assets.php:336
|
252 |
+
msgid "Loaded"
|
253 |
+
msgstr "Cargado"
|
254 |
+
|
255 |
+
#: includes/class.configurate-assets.php:309
|
256 |
+
msgid "Plugin"
|
257 |
+
msgstr "Plugin"
|
258 |
+
|
259 |
+
#: includes/class.configurate-assets.php:313
|
260 |
+
#: includes/class.configurate-assets.php:342
|
261 |
+
msgid "Load resource?"
|
262 |
+
msgstr "¿Cargar recurso?"
|
263 |
+
|
264 |
+
#: includes/class.configurate-assets.php:314
|
265 |
+
#: includes/class.configurate-assets.php:343
|
266 |
+
msgid "Conditions"
|
267 |
+
msgstr "Condiciones"
|
268 |
+
|
269 |
+
#: includes/class.configurate-assets.php:322
|
270 |
+
msgid "Author"
|
271 |
+
msgstr "Autor"
|
272 |
+
|
273 |
+
#: includes/class.configurate-assets.php:323
|
274 |
+
#: includes/class.configurate-assets.php:402
|
275 |
+
msgid "Version"
|
276 |
+
msgstr "Versión"
|
277 |
+
|
278 |
+
#: includes/class.configurate-assets.php:337
|
279 |
+
msgid "Size"
|
280 |
+
msgstr "Tamaño"
|
281 |
+
|
282 |
+
#: includes/class.configurate-assets.php:338
|
283 |
+
msgid "Resource"
|
284 |
+
msgstr "Recurso"
|
285 |
+
|
286 |
+
#: includes/class.configurate-assets.php:366
|
287 |
+
msgid "In use by"
|
288 |
+
msgstr "En uso por"
|
289 |
+
|
290 |
+
#: includes/class.configurate-assets.php:373
|
291 |
+
msgid "Requires"
|
292 |
+
msgstr "Requiere"
|
293 |
+
|
294 |
+
#: includes/class.configurate-assets.php:402
|
295 |
+
msgid "--"
|
296 |
+
msgstr "--"
|
297 |
+
|
298 |
+
#: includes/class.configurate-assets.php:559
|
299 |
+
#: includes/class.configurate-assets.php:1403
|
300 |
+
msgid "No"
|
301 |
+
msgstr "No"
|
302 |
+
|
303 |
+
#: includes/class.configurate-assets.php:559
|
304 |
+
#: includes/class.configurate-assets.php:1403
|
305 |
+
msgid "Yes"
|
306 |
+
msgstr "Sí"
|
307 |
+
|
308 |
+
#: includes/class.configurate-assets.php:575
|
309 |
+
msgid ""
|
310 |
+
"Click the switch in the <b>Load resource?</b> column to display the "
|
311 |
+
"conditions for loading the resource."
|
312 |
+
msgstr ""
|
313 |
+
"Haga clic en el switch de la columna <b>¿Cargar recurso?</b> para mostrar "
|
314 |
+
"las condiciones para cargar el recurso."
|
315 |
+
|
316 |
+
#: includes/class.configurate-assets.php:577
|
317 |
+
msgid ""
|
318 |
+
"Set the plugin logic to apply it to all plugin’s resources. This feature "
|
319 |
+
"available at the paid version."
|
320 |
+
msgstr ""
|
321 |
+
"Configure el \"plugin logic\" para aplicarlo a todos los recursos del "
|
322 |
+
"complemento. Esta característica está disponible en la versión de pago."
|
323 |
+
|
324 |
+
#: includes/class.configurate-assets.php:586
|
325 |
+
#: includes/class.configurate-assets.php:610
|
326 |
+
msgid "Current URL"
|
327 |
+
msgstr "URL actual"
|
328 |
+
|
329 |
+
#: includes/class.configurate-assets.php:587
|
330 |
+
msgid "Everywhere"
|
331 |
+
msgstr "Donde sea"
|
332 |
+
|
333 |
+
#: includes/class.configurate-assets.php:588
|
334 |
+
msgid "Custom URL (PRO)"
|
335 |
+
msgstr "URL personalizada (PRO)"
|
336 |
+
|
337 |
+
#: includes/class.configurate-assets.php:589
|
338 |
+
msgid "Regular expression (PRO)"
|
339 |
+
msgstr "Expresión regular (PRO)"
|
340 |
+
|
341 |
+
#: includes/class.configurate-assets.php:599
|
342 |
+
msgid "Exclude"
|
343 |
+
msgstr "Excluir"
|
344 |
+
|
345 |
+
#: includes/class.configurate-assets.php:599
|
346 |
+
msgid ""
|
347 |
+
"You can disable this resource for all pages, except sections and page types "
|
348 |
+
"listed below. Specify sections and page types with the enabled resource."
|
349 |
+
msgstr ""
|
350 |
+
"Puede deshabilitar este recurso para todas las páginas, excepto las "
|
351 |
+
"secciones y los tipos de página que se enumeran a continuación. Especifique "
|
352 |
+
"secciones y tipos de página con el recurso habilitado."
|
353 |
+
|
354 |
+
#: includes/class.configurate-assets.php:683
|
355 |
+
msgid "Example"
|
356 |
+
msgstr "Ejemplo"
|
357 |
+
|
358 |
+
#: includes/class.configurate-assets.php:683
|
359 |
+
msgid "Enter URL (set * for mask)"
|
360 |
+
msgstr "Ingrese URL (set * for mask)"
|
361 |
+
|
362 |
+
#: includes/class.configurate-assets.php:683
|
363 |
+
msgid ""
|
364 |
+
"You can disable the resource only for the pages with the matched to the "
|
365 |
+
"template address. For example, if you set the template for the link as "
|
366 |
+
"http://yoursite.test/profile/*, then the resource is disabled for the "
|
367 |
+
"following pages: http://yoursite.test/profile/12, http://yoursite.test/"
|
368 |
+
"profile/43, http://yoursite.test/profile/999. If you don’t use the asterisk "
|
369 |
+
"symbol in the template then the plugin will disable the resource only for "
|
370 |
+
"the pages with 100% match in the specified link type. This feature is "
|
371 |
+
"available at the paid version."
|
372 |
+
msgstr ""
|
373 |
+
"Puede deshabilitar el recurso solo para las páginas que coincidan con la "
|
374 |
+
"dirección de la plantilla. Por ejemplo, si configura la plantilla para el "
|
375 |
+
"enlace como http://yoursite.test/profile/*, el recurso se deshabilita para "
|
376 |
+
"las siguientes páginas: http://yoursite.test/profile/12, http://yoursite."
|
377 |
+
"test/profile/43, http://yoursite.test/profile/999. Si no usa el símbolo de "
|
378 |
+
"asterisco en la plantilla, el complemento deshabilitará el recurso solo para "
|
379 |
+
"las páginas con una coincidencia del 100% en el tipo de enlace especificado. "
|
380 |
+
"Esta característica está disponible en la versión de pago."
|
381 |
+
|
382 |
+
#: includes/class.configurate-assets.php:686
|
383 |
+
msgid "Add field"
|
384 |
+
msgstr "Añadir campo"
|
385 |
+
|
386 |
+
#: includes/class.configurate-assets.php:696
|
387 |
+
msgid "Enter regular expression"
|
388 |
+
msgstr "Ingrese la expresión regular"
|
389 |
+
|
390 |
+
#: includes/class.configurate-assets.php:696
|
391 |
+
msgid ""
|
392 |
+
"Regular expressions can be used by experts. This tool creates flexible "
|
393 |
+
"conditions to disable the resource. For example, if you specify this "
|
394 |
+
"expression: ^([A-z0-9]+-)?gifts? then the resource will be disabled at the "
|
395 |
+
"following pages http://yoursite.test/get-gift/, http://yoursite.test/gift/, "
|
396 |
+
"http://yoursite.test/get-gifts/, http://yoursite.test/gifts/. The plugin "
|
397 |
+
"ignores the backslash at the beginning of the query string, so you can "
|
398 |
+
"dismiss it. Check your regular expressions in here: https://regex101.com, "
|
399 |
+
"this will prevent you from the mistakes. This feature is available at the "
|
400 |
+
"paid version."
|
401 |
+
msgstr ""
|
402 |
+
"Las expresiones regulares pueden ser utilizadas por expertos. Esta "
|
403 |
+
"herramienta crea condiciones flexibles para deshabilitar el recurso. Por "
|
404 |
+
"ejemplo, si especifica esta expresión: ^ ([A-z0-9] + -)?Gifts? significa que "
|
405 |
+
"el recurso se deshabilitará en las siguientes páginas http: //yoursite.test/"
|
406 |
+
"get-gift/, http: //yoursite.test/gift/, http: //yoursite.test/get-gifts/, "
|
407 |
+
"http: / /yoursite.test/gifts/. El plugin ignora la barra diagonal inversa al "
|
408 |
+
"principio de la cadena de consulta, por lo que puede descartarla. Verifique "
|
409 |
+
"sus expresiones regulares aquí: https://regex101.com, esto evitará que "
|
410 |
+
"cometa errores. Esta característica está disponible en la versión de pago."
|
411 |
+
|
412 |
+
#: includes/class.configurate-assets.php:715
|
413 |
+
msgid "Also disabled for pages"
|
414 |
+
msgstr "También deshabilitado para páginas"
|
415 |
+
|
416 |
+
#: includes/class.configurate-assets.php:729
|
417 |
+
msgid "You don't have enough capability to edit this information."
|
418 |
+
msgstr "No tienes suficiente permisos para editar esta información."
|
419 |
+
|
420 |
+
#: includes/class.configurate-assets.php:1293
|
421 |
+
msgid "Minify and Combine"
|
422 |
+
msgstr "Minificar y Combinar"
|
423 |
+
|
424 |
+
#: includes/class.configurate-assets.php:1314
|
425 |
+
msgid "remove version?"
|
426 |
+
msgstr "¿Eliminar versión?"
|
427 |
+
|
428 |
+
#: includes/class.configurate-assets.php:1314
|
429 |
+
msgid "optimize?"
|
430 |
+
msgstr "¿optimizar?"
|
431 |
+
|
432 |
+
#: includes/class.configurate-assets.php:1318
|
433 |
+
msgid ""
|
434 |
+
"You’ve enabled "Remove query strings" from static resources in the "
|
435 |
+
""Clearfy" plugin. This list of settings helps you to exclude the "
|
436 |
+
"necessary scripts and styles with remaining query strings. Press No to add a "
|
437 |
+
"file to the excluded list."
|
438 |
+
msgstr ""
|
439 |
+
"Has habilitado "Eliminar cadenas de consulta" de los recursos "
|
440 |
+
"estáticos en el "Clearfy" plugin. Esta lista de configuraciones le "
|
441 |
+
"ayuda a excluir los scripts y estilos necesarios con las cadenas de consulta "
|
442 |
+
"restantes. Presione No para agregar un archivo a la lista excluida."
|
443 |
+
|
444 |
+
#: includes/class.configurate-assets.php:1320
|
445 |
+
msgid ""
|
446 |
+
"You’ve enabled the "Optimize js scripts?" and "Optimize CSS "
|
447 |
+
"options" in the "Minify & Combine plugin". These settings "
|
448 |
+
"exclude scripts and styles that you don’t want to optimize. Press No to add "
|
449 |
+
"a file to the excluded list."
|
450 |
+
msgstr ""
|
451 |
+
"Has habilitado "Optimizar js scripts?" y "Optimizar CSS "
|
452 |
+
"options" en el "plugin Minify & Combine". Esta configuración "
|
453 |
+
"excluye los scripts y los estilos que no desea optimizar. Presione No para "
|
454 |
+
"agregar un archivo a la lista excluida."
|
455 |
+
|
456 |
+
#: includes/class.configurate-assets.php:1322
|
457 |
+
msgid ""
|
458 |
+
"You’ve enabled the "Optimize js scripts?" and "Optimize CSS "
|
459 |
+
"options" in the "Autoptimize". These settings exclude scripts "
|
460 |
+
"and styles that you don’t want to optimize. Press No to add a file to the "
|
461 |
+
"excluded list."
|
462 |
+
msgstr ""
|
463 |
+
"Has habilitado "Optimizar js scripts?" y "Optimizar CSS "
|
464 |
+
"options" en el "Autoptimize". Esta configuración excluye los "
|
465 |
+
"scripts y los estilos que no desea optimizar. Presione No para agregar un "
|
466 |
"archivo a la lista excluida."
|
components/assets-manager/{updates → migrations}/010100.php
RENAMED
@@ -4,7 +4,7 @@
|
|
4 |
* Updates for altering the table used to store statistics data.
|
5 |
* Adds new columns and renames existing ones in order to add support for the new social buttons.
|
6 |
*/
|
7 |
-
class WGZUpdate010100 extends
|
8 |
|
9 |
public function install()
|
10 |
{
|
4 |
* Updates for altering the table used to store statistics data.
|
5 |
* Adds new columns and renames existing ones in order to add support for the new social buttons.
|
6 |
*/
|
7 |
+
class WGZUpdate010100 extends Wbcr_Factory421_Update {
|
8 |
|
9 |
public function install()
|
10 |
{
|
components/assets-manager/migrations/010108.php
ADDED
@@ -0,0 +1,225 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php #comp-page builds: premium
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Updates for altering the table used to store statistics data.
|
5 |
+
* Adds new columns and renames existing ones in order to add support for the new social buttons.
|
6 |
+
*/
|
7 |
+
class WGZUpdate010108 extends Wbcr_Factory421_Update {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
11 |
+
* @since 2.0.0
|
12 |
+
*/
|
13 |
+
public function install() {
|
14 |
+
|
15 |
+
$old_plugin_options = get_option( $this->plugin->getPrefix() . 'assets_manager_options', [] );
|
16 |
+
$save_mode = (int) get_option( $this->plugin->getPrefix() . 'for_admin_only', 0 );
|
17 |
+
|
18 |
+
$settings = get_option( $this->plugin->getPrefix() . 'assets_states', [] );
|
19 |
+
|
20 |
+
if ( ! empty( $old_plugin_options ) ) {
|
21 |
+
if ( ! function_exists( 'wbcr_gnz_deploy_mu_plugin' ) ) {
|
22 |
+
require_once WGZ_PLUGIN_DIR . '/includes/functions.php';
|
23 |
+
}
|
24 |
+
|
25 |
+
wbcr_gnz_deploy_mu_plugin();
|
26 |
+
}
|
27 |
+
|
28 |
+
if ( empty( $settings ) ) {
|
29 |
+
$settings['save_mode'] = (bool) $save_mode;
|
30 |
+
|
31 |
+
if ( ! empty( $old_plugin_options['disabled'] ) ) {
|
32 |
+
foreach ( $old_plugin_options['disabled'] as $type => $assets ) {
|
33 |
+
if ( ! empty( $assets ) ) {
|
34 |
+
foreach ( $assets as $handle => $where ) {
|
35 |
+
$group_settings = &$settings[ $type ][ $handle ];
|
36 |
+
|
37 |
+
$exclude = $this->get_enabled_from_options( $old_plugin_options, $type, $handle );
|
38 |
+
$this->where_to_condition( $where, $group_settings['visability'], $exclude );
|
39 |
+
|
40 |
+
if ( 'plugins' === $type ) {
|
41 |
+
$group_settings['load_mode'] = 'disable_assets';
|
42 |
+
}
|
43 |
+
|
44 |
+
$group_settings['visability'] = json_encode( $group_settings['visability'] );
|
45 |
+
}
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
$active_plugins = $this->get_active_plugins();
|
50 |
+
|
51 |
+
if ( ! empty( $active_plugins ) ) {
|
52 |
+
foreach ( (array) $active_plugins as $plugin_base ) {
|
53 |
+
$plugin_name_parts = explode( '/', $plugin_base );
|
54 |
+
if ( 2 === sizeof( $plugin_name_parts ) ) {
|
55 |
+
$plugin_name = $plugin_name_parts[0];
|
56 |
+
if ( empty( $settings['plugins'][ $plugin_name ]['load_mode'] ) ) {
|
57 |
+
$settings['plugins'][ $plugin_name ]['load_mode'] = 'enable';
|
58 |
+
}
|
59 |
+
if ( empty( $settings['plugins'][ $plugin_name ]['visability'] ) ) {
|
60 |
+
$settings['plugins'][ $plugin_name ]['visability'] = '';
|
61 |
+
}
|
62 |
+
|
63 |
+
if ( ! empty( $settings['js'] ) ) {
|
64 |
+
$settings['plugins'][ $plugin_name ]['js'] = $settings['js'];
|
65 |
+
}
|
66 |
+
if ( ! empty( $settings['css'] ) ) {
|
67 |
+
$settings['plugins'][ $plugin_name ]['css'] = $settings['css'];
|
68 |
+
}
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
if ( ! empty( $settings['js'] ) ) {
|
73 |
+
$settings['theme']['js'] = $settings['misc']['js'] = $settings['js'];
|
74 |
+
unset( $settings['js'] );
|
75 |
+
}
|
76 |
+
if ( ! empty( $settings['css'] ) ) {
|
77 |
+
$settings['theme']['css'] = $settings['misc']['css'] = $settings['css'];
|
78 |
+
unset( $settings['css'] );
|
79 |
+
}
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
update_option( $this->plugin->getPrefix() . 'assets_states', $settings );
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Get a list of active plugins.
|
88 |
+
*
|
89 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
90 |
+
* @since 2.0.0
|
91 |
+
* @return array
|
92 |
+
*/
|
93 |
+
private function get_active_plugins() {
|
94 |
+
if ( is_multisite() ) {
|
95 |
+
$active_network_plugins = (array) get_site_option( 'active_sitewide_plugins' );
|
96 |
+
$active_network_plugins = array_keys( $active_network_plugins );
|
97 |
+
$active_blog_plugins = (array) get_option( 'active_plugins' );
|
98 |
+
|
99 |
+
return array_unique( array_merge( $active_network_plugins, $active_blog_plugins ) );
|
100 |
+
}
|
101 |
+
|
102 |
+
return (array) get_option( 'active_plugins' );
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
107 |
+
* @since 2.0.0
|
108 |
+
*
|
109 |
+
* @param $where
|
110 |
+
* @param $settings
|
111 |
+
* @param $exclude
|
112 |
+
*/
|
113 |
+
private function where_to_condition( $where, &$settings, $exclude ) {
|
114 |
+
if ( ! empty( $where['current'] ) ) {
|
115 |
+
foreach ( (array) $where['current'] as $current_url ) {
|
116 |
+
$settings[] = [
|
117 |
+
'type' => 'OR',
|
118 |
+
'conditions' => [
|
119 |
+
[
|
120 |
+
'param' => 'current-url',
|
121 |
+
'operator' => 'equals',
|
122 |
+
'type' => 'default',
|
123 |
+
'value' => $current_url
|
124 |
+
]
|
125 |
+
]
|
126 |
+
];
|
127 |
+
}
|
128 |
+
}
|
129 |
+
if ( ! empty( $where['custom'] ) ) {
|
130 |
+
foreach ( (array) $where['custom'] as $custom_url ) {
|
131 |
+
$settings[] = [
|
132 |
+
'type' => 'OR',
|
133 |
+
'conditions' => [
|
134 |
+
[
|
135 |
+
'param' => 'location-page',
|
136 |
+
'operator' => 'equals',
|
137 |
+
'type' => 'text',
|
138 |
+
'value' => $custom_url
|
139 |
+
]
|
140 |
+
]
|
141 |
+
];
|
142 |
+
}
|
143 |
+
}
|
144 |
+
if ( ! empty( $where['regex'] ) ) {
|
145 |
+
$settings[] = [
|
146 |
+
'type' => 'OR',
|
147 |
+
'conditions' => [
|
148 |
+
[
|
149 |
+
'param' => 'regular-expression',
|
150 |
+
'operator' => 'equals',
|
151 |
+
'type' => 'regexp',
|
152 |
+
'value' => $where['regex']
|
153 |
+
]
|
154 |
+
]
|
155 |
+
];
|
156 |
+
}
|
157 |
+
if ( ! empty( $where['everywhere'] ) ) {
|
158 |
+
$everywhere = [
|
159 |
+
'type' => 'OR',
|
160 |
+
'conditions' => [
|
161 |
+
[
|
162 |
+
'param' => 'location-some-page',
|
163 |
+
'operator' => 'equals',
|
164 |
+
'type' => 'select',
|
165 |
+
'value' => 'base_web'
|
166 |
+
]
|
167 |
+
]
|
168 |
+
];
|
169 |
+
|
170 |
+
if ( ! empty( $exclude ) ) {
|
171 |
+
foreach ( (array) $exclude as $group_name => $group ) {
|
172 |
+
foreach ( (array) $group as $item_id ) {
|
173 |
+
if ( ! in_array( $group_name, [ 'post_type', 'taxonomies', 'current' ] ) ) {
|
174 |
+
continue;
|
175 |
+
}
|
176 |
+
|
177 |
+
switch ( $group_name ) {
|
178 |
+
case 'post_type':
|
179 |
+
$condition_param = 'location-post-type';
|
180 |
+
$value = $item_id;
|
181 |
+
break;
|
182 |
+
case 'taxonomies':
|
183 |
+
$condition_param = 'location-taxonomy';
|
184 |
+
$value = $item_id;
|
185 |
+
break;
|
186 |
+
case 'current':
|
187 |
+
$condition_param = 'current-url';
|
188 |
+
$value = $item_id;
|
189 |
+
break;
|
190 |
+
/*case 'categories':
|
191 |
+
$condition_param = 'location-taxonomy';
|
192 |
+
$value = '';
|
193 |
+
break;*/
|
194 |
+
}
|
195 |
+
|
196 |
+
$everywhere['conditions'][] = [
|
197 |
+
'param' => $condition_param,
|
198 |
+
'operator' => 'notequal',
|
199 |
+
'type' => 'select',
|
200 |
+
'value' => $value
|
201 |
+
];
|
202 |
+
}
|
203 |
+
}
|
204 |
+
}
|
205 |
+
|
206 |
+
$settings[] = $everywhere;
|
207 |
+
}
|
208 |
+
}
|
209 |
+
|
210 |
+
/**
|
211 |
+
* Get enabled from options
|
212 |
+
*
|
213 |
+
* @param $type
|
214 |
+
* @param $handle
|
215 |
+
*
|
216 |
+
* @return null
|
217 |
+
*/
|
218 |
+
private function get_enabled_from_options( $options, $type, $handle ) {
|
219 |
+
if ( isset( $options['enabled'] ) && isset( $options['enabled'][ $type ] ) && isset( $options['enabled'][ $type ][ $handle ] ) ) {
|
220 |
+
return $options['enabled'][ $type ][ $handle ];
|
221 |
+
}
|
222 |
+
|
223 |
+
return null;
|
224 |
+
}
|
225 |
+
}
|
components/assets-manager/migrations/index.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/assets-manager/mu-plugins/assets-manager.php
ADDED
@@ -0,0 +1,287 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
Plugin Name: Webcraftic AM plugin load filter
|
4 |
+
Description: Dynamically activated only plugins that you have selected in each page. [Note] Webcraftic AM has been automatically installed/deleted by Activate/Deactivate of "load filter plugin".
|
5 |
+
Version: 1.0.3
|
6 |
+
Plugin URI: https://wordpress.org/plugins/gonzales/
|
7 |
+
Author: Webcraftic <alex.kovalevv@gmail.com>
|
8 |
+
Author URI: https://clearfy.pro/assets-manager
|
9 |
+
Framework Version: FACTORY_421_VERSION
|
10 |
+
*/
|
11 |
+
// TODO: The plugin does not support backend
|
12 |
+
// todo: проверить, как работает кеширование
|
13 |
+
// todo: замерить, скорость работы этого решения
|
14 |
+
|
15 |
+
defined( 'ABSPATH' ) || exit;
|
16 |
+
|
17 |
+
if ( defined( 'WP_SETUP_CONFIG' ) || defined( 'WP_INSTALLING' ) || is_admin() || isset( $_GET['wbcr_assets_manager'] ) ) {
|
18 |
+
return;
|
19 |
+
}
|
20 |
+
|
21 |
+
// @formatter:off
|
22 |
+
//-------------------------------------------------------------------------------------------
|
23 |
+
// Plugins load filter
|
24 |
+
//-------------------------------------------------------------------------------------------
|
25 |
+
|
26 |
+
class WGNZ_Plugins_Loader {
|
27 |
+
|
28 |
+
protected $prefix = 'wbcr_gnz_';
|
29 |
+
protected $parent_plugin_dir;
|
30 |
+
protected $settings;
|
31 |
+
protected $active_plugins = array();
|
32 |
+
|
33 |
+
public function __construct() {
|
34 |
+
# We must always load the plugin if it is an ajax request, a cron
|
35 |
+
# task or a rest api request. Otherwise, the user may have problems
|
36 |
+
# with the work of plugins.
|
37 |
+
if ( $this->doing_ajax() || $this->doing_cron() || $this->doing_rest_api() ) {
|
38 |
+
return false;
|
39 |
+
}
|
40 |
+
|
41 |
+
$is_assets_manager_active = false;
|
42 |
+
$is_clearfy_active = false;
|
43 |
+
|
44 |
+
$active_plugins = $this->get_active_plugins();
|
45 |
+
|
46 |
+
if ( in_array( 'clearfy/clearfy.php', $active_plugins ) || in_array( 'wp-plugin-clearfy/clearfy.php', $active_plugins ) ) {
|
47 |
+
$this->prefix = 'wbcr_clearfy_';
|
48 |
+
|
49 |
+
if ( is_multisite() ) {
|
50 |
+
$deactivate_components = get_site_option( $this->prefix . 'deactive_preinstall_components', array() );
|
51 |
+
} else {
|
52 |
+
$deactivate_components = get_option( $this->prefix . 'deactive_preinstall_components', array() );
|
53 |
+
}
|
54 |
+
|
55 |
+
if ( empty( $deactivate_components ) || ! in_array( 'assets_manager', $deactivate_components ) ) {
|
56 |
+
$is_clearfy_active = true;
|
57 |
+
}
|
58 |
+
if ( in_array( 'wp-plugin-clearfy/clearfy.php', $active_plugins ) ) {
|
59 |
+
$this->parent_plugin_dir = WP_PLUGIN_DIR . '/wp-plugin-clearfy/components/assets-manager/';
|
60 |
+
} else {
|
61 |
+
$this->parent_plugin_dir = WP_PLUGIN_DIR . '/clearfy/components/assets-manager/';
|
62 |
+
}
|
63 |
+
} else if ( in_array( 'gonzales/gonzales.php', $active_plugins ) || in_array( 'wp-plugin-gonzales/gonzales.php', $active_plugins ) ) {
|
64 |
+
$is_assets_manager_active = true;
|
65 |
+
$this->prefix = 'wbcr_gnz_';
|
66 |
+
$this->parent_plugin_dir = WP_PLUGIN_DIR . '/gonzales/';
|
67 |
+
}
|
68 |
+
|
69 |
+
if( !file_exists($this->parent_plugin_dir) ) {
|
70 |
+
return false;
|
71 |
+
}
|
72 |
+
|
73 |
+
# Disable plugins only if Asset Manager and Clearfy are activated
|
74 |
+
if ( $is_clearfy_active || $is_assets_manager_active ) {
|
75 |
+
$this->settings = get_option( $this->prefix . 'assets_states', array() );
|
76 |
+
|
77 |
+
if ( ! empty( $this->settings ) ) {
|
78 |
+
if ( is_multisite() ) {
|
79 |
+
add_filter( 'site_option_active_sitewide_plugins', array($this, 'disable_network_plugins' ), 1 );
|
80 |
+
}
|
81 |
+
|
82 |
+
add_filter( 'option_active_plugins', array( $this, 'disable_plugins' ), 1 );
|
83 |
+
add_filter( 'option_hack_file', array( $this, 'hack_file_filter' ), 1 );
|
84 |
+
add_action( 'plugins_loaded', array( $this, 'remove_plugin_filters' ), 1 );
|
85 |
+
}
|
86 |
+
}
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
91 |
+
* @since 1.0.0
|
92 |
+
*
|
93 |
+
* @param $hackFile
|
94 |
+
*
|
95 |
+
* @return mixed
|
96 |
+
*/
|
97 |
+
public function hack_file_filter( $hackFile ) {
|
98 |
+
$this->remove_plugin_filters();
|
99 |
+
|
100 |
+
return $hackFile;
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
105 |
+
* @since 1.0.0
|
106 |
+
*/
|
107 |
+
public function remove_plugin_filters() {
|
108 |
+
remove_action( 'option_active_plugins', array( $this, 'disable_plugins' ), 1 );
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* We control the disabling of plugins that are activated for the network.
|
113 |
+
*
|
114 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
115 |
+
* @since 1.0.0
|
116 |
+
*/
|
117 |
+
public function disable_network_plugins( $plugins_list ) {
|
118 |
+
$new_plugin_list = $plugins_list;
|
119 |
+
|
120 |
+
if ( is_array( $plugins_list ) && ! empty( $plugins_list ) ) {
|
121 |
+
$temp_plugin_list = array_keys( $plugins_list );
|
122 |
+
$temp_plugin_list = $this->disable_plugins( $temp_plugin_list );
|
123 |
+
|
124 |
+
$new_plugin_list = array();
|
125 |
+
foreach ( (array) $temp_plugin_list as $plugin_file ) {
|
126 |
+
$new_plugin_list[ $plugin_file ] = $plugins_list[ $plugin_file ];
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
+
return $new_plugin_list;
|
131 |
+
}
|
132 |
+
|
133 |
+
/**
|
134 |
+
* We control the disabling of plugins that are activated for blog.
|
135 |
+
*
|
136 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
137 |
+
* @since 1.0.0
|
138 |
+
*
|
139 |
+
* @param $plugins_list
|
140 |
+
*
|
141 |
+
* @return mixed
|
142 |
+
*/
|
143 |
+
public function disable_plugins( $plugins_list ) {
|
144 |
+
if ( ! is_array( $plugins_list ) || empty( $plugins_list ) ) {
|
145 |
+
return $plugins_list;
|
146 |
+
}
|
147 |
+
|
148 |
+
foreach ( (array) $plugins_list as $key => $plugin_base ) {
|
149 |
+
if ( $this->is_disabled_plugin( $plugin_base ) ) {
|
150 |
+
unset( $plugins_list[ $key ] );
|
151 |
+
}
|
152 |
+
}
|
153 |
+
|
154 |
+
return $plugins_list;
|
155 |
+
}
|
156 |
+
|
157 |
+
/**
|
158 |
+
* Get a list of active plugins.
|
159 |
+
*
|
160 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
161 |
+
* @since 1.0.0
|
162 |
+
* @return array
|
163 |
+
*/
|
164 |
+
private function get_active_plugins() {
|
165 |
+
if ( is_multisite() ) {
|
166 |
+
$active_network_plugins = (array) get_site_option( 'active_sitewide_plugins' );
|
167 |
+
$active_network_plugins = array_keys( $active_network_plugins );
|
168 |
+
$active_blog_plugins = (array) get_option( 'active_plugins' );
|
169 |
+
|
170 |
+
return array_unique( array_merge( $active_network_plugins, $active_blog_plugins ) );
|
171 |
+
}
|
172 |
+
|
173 |
+
return (array) get_option( 'active_plugins' );
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
178 |
+
* @since 1.0.0
|
179 |
+
*
|
180 |
+
* @param $plugin_base
|
181 |
+
*
|
182 |
+
* @return bool
|
183 |
+
*/
|
184 |
+
private function is_disabled_plugin( $plugin_base ) {
|
185 |
+
|
186 |
+
$white_plgins_list = array(
|
187 |
+
'clearfy', // prod
|
188 |
+
'wp-plugin-clearfy', // dev
|
189 |
+
'gonzales', // prod
|
190 |
+
'wp-plugin-gonzales', // dev
|
191 |
+
'clearfy_package' // premium package
|
192 |
+
);
|
193 |
+
|
194 |
+
$plugin_base_part = explode( '/', $plugin_base );
|
195 |
+
|
196 |
+
# If plugin base is incorrect or plugin name in the white list
|
197 |
+
if ( 2 !== sizeof( $plugin_base_part ) || in_array( $plugin_base_part[0], $white_plgins_list ) ) {
|
198 |
+
return false;
|
199 |
+
}
|
200 |
+
|
201 |
+
if ( ! empty( $this->settings['plugins'] ) && isset( $this->settings['plugins'][ $plugin_base_part[0] ] ) && 'disable_plugin' === $this->settings['plugins'][ $plugin_base_part[0] ]['load_mode'] ) {
|
202 |
+
require_once $this->parent_plugin_dir . '/includes/classes/class-check-conditions.php';
|
203 |
+
if ( ! empty( $this->settings['plugins'][ $plugin_base_part[0] ]['visability'] ) ) {
|
204 |
+
$condition = new WGZ_Check_Conditions( $this->settings['plugins'][ $plugin_base_part[0] ]['visability'] );
|
205 |
+
if ( $condition->validate() ) {
|
206 |
+
return true;
|
207 |
+
}
|
208 |
+
}
|
209 |
+
}
|
210 |
+
|
211 |
+
return false;
|
212 |
+
}
|
213 |
+
|
214 |
+
|
215 |
+
/**
|
216 |
+
* Get current URL
|
217 |
+
*
|
218 |
+
* @return string
|
219 |
+
*/
|
220 |
+
private function get_current_url() {
|
221 |
+
$url = explode( '?', $_SERVER['REQUEST_URI'], 2 );
|
222 |
+
if ( strlen( $url[0] ) > 1 ) {
|
223 |
+
$out = rtrim( $url[0], '/' );
|
224 |
+
} else {
|
225 |
+
$out = $url[0];
|
226 |
+
}
|
227 |
+
|
228 |
+
return $out;
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* Checks if the current request is a WP REST API request.
|
233 |
+
*
|
234 |
+
* Case #1: After WP_REST_Request initialisation
|
235 |
+
* Case #2: Support "plain" permalink settings
|
236 |
+
* Case #3: URL Path begins with wp-json/ (your REST prefix)
|
237 |
+
* Also supports WP installations in subfolders
|
238 |
+
*
|
239 |
+
* @author matzeeable https://wordpress.stackexchange.com/questions/221202/does-something-like-is-rest-exist
|
240 |
+
* @since 1.0.0
|
241 |
+
* @return boolean
|
242 |
+
*/
|
243 |
+
private function doing_rest_api() {
|
244 |
+
$prefix = rest_get_url_prefix();
|
245 |
+
|
246 |
+
$rest_route = isset( $_GET['rest_route'] ) ? $_GET['rest_route'] : null;
|
247 |
+
|
248 |
+
if ( defined( 'REST_REQUEST' ) && REST_REQUEST // (#1)
|
249 |
+
|| ! is_null( $rest_route ) // (#2)
|
250 |
+
&& strpos( trim( $rest_route, '\\/' ), $prefix, 0 ) === 0 ) {
|
251 |
+
return true;
|
252 |
+
}
|
253 |
+
|
254 |
+
// (#3)
|
255 |
+
$rest_url = wp_parse_url( site_url( $prefix ) );
|
256 |
+
$current_url = wp_parse_url( add_query_arg( array() ) );
|
257 |
+
|
258 |
+
return strpos( $current_url['path'], $rest_url['path'], 0 ) === 0;
|
259 |
+
}
|
260 |
+
|
261 |
+
/**
|
262 |
+
* @since 1.0.0
|
263 |
+
* @return bool
|
264 |
+
*/
|
265 |
+
private function doing_ajax() {
|
266 |
+
if ( function_exists( 'wp_doing_ajax' ) ) {
|
267 |
+
return wp_doing_ajax();
|
268 |
+
}
|
269 |
+
|
270 |
+
return defined( 'DOING_AJAX' ) && DOING_AJAX;
|
271 |
+
}
|
272 |
+
|
273 |
+
/**
|
274 |
+
* @since 1.0.0
|
275 |
+
* @return bool
|
276 |
+
*/
|
277 |
+
private function doing_cron() {
|
278 |
+
if ( function_exists( 'wp_doing_cron' ) ) {
|
279 |
+
return wp_doing_cron();
|
280 |
+
}
|
281 |
+
|
282 |
+
return defined( 'DOING_CRON' ) && DOING_CRON;
|
283 |
+
}
|
284 |
+
}
|
285 |
+
|
286 |
+
new WGNZ_Plugins_Loader();
|
287 |
+
// @formatter:on
|
components/assets-manager/mu-plugins/index.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/assets-manager/readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Wordpress Assets manager, dequeue scripts, dequeue styles ===
|
2 |
Tags: dequeue script, dequeue style, pagespeed, speed, unload style, gonzales, assets clean, assets, assets cleanup, page speed optimizer, perfmatters, disable script, disable style, disable jquery, disable jquery-migrate, disable fonts
|
3 |
-
Contributors: webcraftic
|
4 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VDX7JNTQPNPFW
|
5 |
-
Requires at least: 4.
|
6 |
-
Tested up to: 5.
|
7 |
-
Requires PHP: 5.
|
8 |
Stable tag: trunk
|
9 |
License: GPLv2
|
10 |
|
@@ -59,6 +59,23 @@ We invite you to check out a few other related free plugins that our team has al
|
|
59 |
2. Assets manager
|
60 |
|
61 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
= 1.0.7 =
|
63 |
* Fixed: Added compatibility with ithemes sync
|
64 |
* Fixed: Minor style fixes
|
1 |
=== Wordpress Assets manager, dequeue scripts, dequeue styles ===
|
2 |
Tags: dequeue script, dequeue style, pagespeed, speed, unload style, gonzales, assets clean, assets, assets cleanup, page speed optimizer, perfmatters, disable script, disable style, disable jquery, disable jquery-migrate, disable fonts
|
3 |
+
Contributors: webcraftic, creativemotion, alexkovalevv
|
4 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VDX7JNTQPNPFW
|
5 |
+
Requires at least: 4.7
|
6 |
+
Tested up to: 5.2
|
7 |
+
Requires PHP: 5.4
|
8 |
Stable tag: trunk
|
9 |
License: GPLv2
|
10 |
|
59 |
2. Assets manager
|
60 |
|
61 |
== Changelog ==
|
62 |
+
= 2.0.1 (12.10.2019) =
|
63 |
+
* Fixed: The bug with save mode.
|
64 |
+
* Fixed: Some conditions (entire website) didn't work. It could be due save mode.
|
65 |
+
* Fixed: Critical a php error which related "Call to undefined function wp_scripts_get_suffix".
|
66 |
+
|
67 |
+
= 2.0.0 (03.10.2019) =
|
68 |
+
* The interface has become more compact and friendly.
|
69 |
+
* The speed and productivity of the editor is increased, it loads faster and does not freeze, as it was before.
|
70 |
+
* Extended conditional logic has been added, now you can create complex conditions for disabling assets.
|
71 |
+
* An additional mode has appeared to completely disable the plugin (you can disable not only scripts, but also stop executing plugin scripts).
|
72 |
+
* Known bugs in the previous version are fixed.
|
73 |
+
|
74 |
+
= 1.1.0 =
|
75 |
+
* Added: Compatibility with Wordpress 4.2 - 5.x
|
76 |
+
* Added: Multisite support
|
77 |
+
* Fixed: Minor bugs
|
78 |
+
|
79 |
= 1.0.7 =
|
80 |
* Fixed: Added compatibility with ithemes sync
|
81 |
* Fixed: Minor style fixes
|
components/assets-manager/uninstall.php
CHANGED
@@ -1,44 +1,47 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
|
8 |
-
|
9 |
-
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
global $wpdb;
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
|
24 |
-
|
25 |
-
|
26 |
|
27 |
-
|
28 |
-
|
29 |
|
30 |
-
|
31 |
|
32 |
-
|
33 |
-
|
34 |
|
35 |
-
|
36 |
|
37 |
-
|
38 |
|
39 |
-
|
40 |
-
}
|
41 |
}
|
42 |
-
}
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
|
1 |
<?php
|
2 |
|
3 |
+
// if uninstall.php is not called by WordPress, die
|
4 |
+
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
5 |
+
die;
|
6 |
+
}
|
7 |
|
8 |
+
// remove plugin options
|
9 |
+
global $wpdb;
|
10 |
|
11 |
+
if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
|
12 |
+
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
13 |
+
}
|
14 |
|
15 |
+
function uninstall() {
|
16 |
+
// remove plugin options
|
17 |
+
global $wpdb;
|
|
|
18 |
|
19 |
+
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'wbcr_gonzales_%';" );
|
20 |
+
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'wbcr_gnz_%';" );
|
21 |
+
}
|
22 |
|
23 |
+
if ( is_multisite() ) {
|
24 |
+
global $wpdb, $wp_version;
|
25 |
|
26 |
+
$wpdb->query( "DELETE FROM {$wpdb->sitemeta} WHERE meta_key LIKE 'wbcr_gonzales_%';" );
|
27 |
+
$wpdb->query( "DELETE FROM {$wpdb->sitemeta} WHERE meta_key LIKE 'wbcr_gnz_%';" );
|
28 |
|
29 |
+
$blogs = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
|
30 |
|
31 |
+
if ( ! empty( $blogs ) ) {
|
32 |
+
foreach ( $blogs as $id ) {
|
33 |
|
34 |
+
switch_to_blog( $id );
|
35 |
|
36 |
+
uninstall();
|
37 |
|
38 |
+
restore_current_blog();
|
|
|
39 |
}
|
40 |
+
}
|
41 |
+
} else {
|
42 |
+
uninstall();
|
43 |
+
}
|
44 |
+
|
45 |
+
// Remove mu plugin
|
46 |
+
require_once dirname( __FILE__ ) . 'includes/functions.php';
|
47 |
+
wbcr_gnz_remove_mu_plugin();
|
components/assets-manager/views/assets-manager.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var array $data
|
7 |
+
* @var WGZ_Views $this
|
8 |
+
*/
|
9 |
+
|
10 |
+
?>
|
11 |
+
<div id="WBCR-AM" class="wam-wrapper" style="display: block;">
|
12 |
+
<?php $this->print_template( 'part-assets-manager-header', $data ); ?>
|
13 |
+
<main class="wam-content">
|
14 |
+
<?php $this->print_template( 'part-assets-manager-tabs-menu' ); ?>
|
15 |
+
<?php //$this->print_template( 'part-assets-manager-info-bar' ); ?>
|
16 |
+
<div id="wam-assets-type-tab-content__theme" class="wam-assets-type-tab-content">
|
17 |
+
<?php $this->print_template( 'tab-content-assets', [
|
18 |
+
'type' => 'theme',
|
19 |
+
'assets' => $data['theme_assets']
|
20 |
+
] ); ?>
|
21 |
+
</div>
|
22 |
+
<div id="wam-assets-type-tab-content__misc" class="wam-assets-type-tab-content">
|
23 |
+
<?php $this->print_template( 'tab-content-assets', [
|
24 |
+
'type' => 'misc',
|
25 |
+
'assets' => $data['misc_assets']
|
26 |
+
] ); ?>
|
27 |
+
</div>
|
28 |
+
<div id="wam-assets-type-tab-content__plugins" class="wam-assets-type-tab-content wam-assets-type-tab-content__active">
|
29 |
+
<?php $this->print_template( 'tab-content-assets-plugins', $data ); ?>
|
30 |
+
</div>
|
31 |
+
</main>
|
32 |
+
<!-- Html template Conditions Editor -->
|
33 |
+
<script type="text/html" id="wam-conditions-builder-template">
|
34 |
+
<?php $this->print_template( 'conditions-logic-editor-template', $data ); ?>
|
35 |
+
</script>
|
36 |
+
<!-- /End Html template -->
|
37 |
+
</div> <!-- /div2 -->
|
components/assets-manager/views/conditions-logic-editor-template.php
ADDED
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
3 |
+
|
4 |
+
/**
|
5 |
+
* @var array $data
|
6 |
+
* @var WGZ_Views $this
|
7 |
+
*/
|
8 |
+
?>
|
9 |
+
<div class="wam-cleditor__empty wam-cleditor">
|
10 |
+
<div class="wam-cleditor__wrap">
|
11 |
+
<div class="wam-cleditor__when-empty">
|
12 |
+
<?php _e( 'No filters specified.', 'gonzales' ) ?>
|
13 |
+
<a href="#" class="js-wam-cleditor__add-group"><?php _e( 'Click here', 'gonzales' ) ?></a> <?php _e( 'to add one.', 'gonzales' ) ?>
|
14 |
+
</div>
|
15 |
+
<div class="wam-cleditor__groups"></div>
|
16 |
+
</div>
|
17 |
+
<div class="wam-cleditor__group">
|
18 |
+
<div class="wam-cleditor__point"></div>
|
19 |
+
<div class="wam-cleditor__head">
|
20 |
+
<div class="wam-cleditor__head-left">
|
21 |
+
<span class="wam-cleditor__first-group-title">
|
22 |
+
<?php _e( 'Disable If', 'gonzales' ) ?>
|
23 |
+
</span>
|
24 |
+
<span class="wam-cleditor__group-type"><?php _e( 'OR', 'gonzales' ) ?></span>
|
25 |
+
</div>
|
26 |
+
<div class="wam-cleditor__head-right">
|
27 |
+
<button type="button" class="wam-button wam-button--small wam-button--danger js-wam-cleditor__remove-group">
|
28 |
+
<?php _e( 'Delete', 'gonzales' ); ?>
|
29 |
+
</button>
|
30 |
+
</div>
|
31 |
+
</div>
|
32 |
+
<div class="wam-cleditor__box">
|
33 |
+
<div class="wam-cleditor__when-empty">
|
34 |
+
<?php _e( 'No filters specified.', 'gonzales' ) ?>
|
35 |
+
<a href="#" class="js-wam-cleditor__add-condition"><?php _e( 'Click here', 'gonzales' ) ?></a> <?php _e( 'to add one.', 'gonzales' ) ?>
|
36 |
+
</div>
|
37 |
+
<div class="wam-cleditor__conditions"></div>
|
38 |
+
</div>
|
39 |
+
</div>
|
40 |
+
<div class="wam-cleditor__condition">
|
41 |
+
<div class="wam-cleditor__operator-and"><span><?php _e( 'and', 'gonzales' ) ?></span></div>
|
42 |
+
<span class="wam-cleditor__params">
|
43 |
+
<select class="wam-cleditor__param-select">
|
44 |
+
<?php if ( ! empty( $data['conditions_logic_params'] ) ): ?>
|
45 |
+
<?php foreach ( (array) $data['conditions_logic_params'] as $filter_param ) { ?>
|
46 |
+
<optgroup label="<?php echo $filter_param['title'] ?>">
|
47 |
+
<?php foreach ( (array) $filter_param['items'] as $param ) { ?>
|
48 |
+
<?php
|
49 |
+
$option_attrs = [];
|
50 |
+
$option_attrs[] = 'data-type="' . esc_attr( $param['type'] ) . '"';
|
51 |
+
|
52 |
+
if ( isset( $param['default_value'] ) ) {
|
53 |
+
$option_attrs[] = 'data-default-value="' . esc_attr( $param['default_value'] ) . '"';
|
54 |
+
}
|
55 |
+
|
56 |
+
if ( isset( $param['placeholder'] ) ) {
|
57 |
+
$option_attrs[] = 'data-placeholder="' . esc_attr( $param['placeholder'] ) . '"';
|
58 |
+
}
|
59 |
+
|
60 |
+
if ( isset( $param['params'] ) ) {
|
61 |
+
$option_attrs[] = 'data-params="' . esc_attr( @json_encode( $param['params'], JSON_UNESCAPED_UNICODE, JSON_HEX_QUOT ) ) . '"';
|
62 |
+
}
|
63 |
+
|
64 |
+
if ( isset( $param['only_equals'] ) ) {
|
65 |
+
$option_attrs[] = 'data-only-equals="' . intval( $param['only_equals'] ) . '"';
|
66 |
+
}
|
67 |
+
if ( isset( $param['description'] ) ) {
|
68 |
+
$option_attrs[] = 'data-hint="' . esc_attr( $param['description'] ) . '"';
|
69 |
+
}
|
70 |
+
|
71 |
+
$option_disabled = isset( $param['disabled'] ) ? $param['disabled'] : false;
|
72 |
+
|
73 |
+
?>
|
74 |
+
<option<?php echo ' ' . implode( ' ', $option_attrs ) ?> value="<?php echo esc_attr( $param['id'] ) ?>"<?php disabled( $option_disabled ) ?>>
|
75 |
+
<?php echo $param['title'] ?>
|
76 |
+
</option>
|
77 |
+
<?php } ?>
|
78 |
+
</optgroup>
|
79 |
+
<?php } ?>
|
80 |
+
<?php endif; ?>
|
81 |
+
</select>
|
82 |
+
<i class="wam-cleditor__hint">
|
83 |
+
<span class="wam-cleditor__hint-icon"></span>
|
84 |
+
<span class="wam-cleditor__hint-content"></span>
|
85 |
+
</i>
|
86 |
+
</span>
|
87 |
+
<span class="wam-cleditor__condition-operators">
|
88 |
+
<select class="wam-cleditor__operator-select">
|
89 |
+
<option value="equals"><?php _e( 'Equals', 'gonzales' ) ?></option>
|
90 |
+
<option value="notequal"><?php _e( 'Doesn\'t Equal', 'gonzales' ) ?></option>
|
91 |
+
<option value="greater"><?php _e( 'Greater Than', 'gonzales' ) ?></option>
|
92 |
+
<option value="less"><?php _e( 'Less Than', 'gonzales' ) ?></option>
|
93 |
+
<option value="older"><?php _e( 'Older Than', 'gonzales' ) ?></option>
|
94 |
+
<option value="younger"><?php _e( 'Younger Than', 'gonzales' ) ?></option>
|
95 |
+
<option value="contains"><?php _e( 'Contains', 'gonzales' ) ?></option>
|
96 |
+
<option value="notcontain"><?php _e( 'Doesn\'t Сontain', 'gonzales' ) ?></option>
|
97 |
+
<option value="between"><?php _e( 'Between', 'gonzales' ) ?></option>
|
98 |
+
</select>
|
99 |
+
</span>
|
100 |
+
<span class="wam-cleditor__condition-value"></span>
|
101 |
+
<span class="wam-cleditor__condition-actions">
|
102 |
+
<a href="#" class="wam-button wam-button--danger button-sm js-wam-cleditor__condition-remove"><?php _e( 'X', 'gonzales' ) ?></a>
|
103 |
+
<a href="#" class="wam-button wam-button--yellow button-sm js-wam-cleditor__condition-add-and"><?php _e( 'AND', 'gonzales' ) ?></a>
|
104 |
+
</span>
|
105 |
+
</div>
|
106 |
+
<div class="wam-cleditor__buttons-group">
|
107 |
+
<button type="button" class="wam-button wam-button--default wam-cleditor__button-left js-wam-cleditor__add-group">
|
108 |
+
<?php _e( 'Add new group', 'gonzales' ) ?>
|
109 |
+
</button>
|
110 |
+
</div>
|
111 |
+
</div>
|
components/assets-manager/views/part-assets-manager-header.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
3 |
+
|
4 |
+
/**
|
5 |
+
* @var array $data
|
6 |
+
* @var WGZ_Views $this
|
7 |
+
*/
|
8 |
+
?>
|
9 |
+
<header class="wam-float-panel">
|
10 |
+
<div class="wam-float-panel__left">
|
11 |
+
<div class="wam-float-panel__logo"></div>
|
12 |
+
<ul class="wam-float-panel__data panel__data-main">
|
13 |
+
<li class="wam-float-panel__data-item __info-request">
|
14 |
+
<?php _e( 'Total requests', 'gonzales' ) ?>:
|
15 |
+
<b class="wam-float-panel__item_value">--</b>
|
16 |
+
</li>
|
17 |
+
<li class="wam-float-panel__data-item __info-total-size">
|
18 |
+
<?php _e( 'Total size', 'gonzales' ) ?>:
|
19 |
+
<b class="wam-float-panel__item_value">--</b>
|
20 |
+
</li>
|
21 |
+
<li class="wam-float-panel__data-item __info-reduced-total-size"><?php _e( 'Optimized size', 'gonzales' ) ?>
|
22 |
+
:
|
23 |
+
<b class="wam-float-panel__item_value">--</b>
|
24 |
+
</li>
|
25 |
+
<li class="wam-float-panel__data-item __info-disabled-js"><?php _e( 'Disabled js', 'gonzales' ) ?>:
|
26 |
+
<b class="wam-float-panel__item_value">-- </b>
|
27 |
+
</li>
|
28 |
+
<li class="wam-float-panel__data-item __info-disabled-css"><?php _e( 'Disabled css', 'gonzales' ) ?>:
|
29 |
+
<b class="wam-float-panel__item_value">-- </b>
|
30 |
+
</li>
|
31 |
+
</ul>
|
32 |
+
</div>
|
33 |
+
<div class="wam-float-panel__right">
|
34 |
+
<a class="wam-float-panel__reset wbcr-reset-button" href="<?php echo esc_url( wp_nonce_url( add_query_arg( [ 'wam_reset_settings' => 1 ] ), 'wam_reset_settings' ) ); ?>">
|
35 |
+
<?php _e( 'Reset', 'gonzales' ) ?>
|
36 |
+
</a>
|
37 |
+
<button id="wam-save-button" class="wam-float-panel__save js-wam-top-panel__save-button" data-nonce="<?php echo wp_create_nonce( 'wam_save_settigns' ); ?>"><?php _e( 'Save', 'gonzales' ) ?></button>
|
38 |
+
<?php do_action( 'wam/views/safe_mode_checkbox', $data ); ?>
|
39 |
+
<a class="wam-float-panel__close wbcr-close-button" href="<?php echo remove_query_arg( 'wbcr_assets_manager' ); ?>" aria-label="<?php _e( 'Close', 'gonzales' ) ?>"></a>
|
40 |
+
</div>
|
41 |
+
</header>
|
components/assets-manager/views/part-assets-manager-info-bar.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var array $data
|
7 |
+
* @var WGZ_Views $this
|
8 |
+
*/
|
9 |
+
?>
|
10 |
+
<div class="wam-info-section">
|
11 |
+
<div class="wam-info-section__warning">
|
12 |
+
<p>
|
13 |
+
<b>
|
14 |
+
<?php _e( 'Important! Each page of your website has different sets of scripts and styles files.', 'gonzales' ) ?>
|
15 |
+
</b>
|
16 |
+
</p>
|
17 |
+
<p>
|
18 |
+
<?php _e( 'Use this feature to disable unwanted scripts and styles by setting up the logic for
|
19 |
+
different types of pages. We recommend working in "Safe mode" because disabling any necessary
|
20 |
+
system script file can corrupt the website. All changes done in Safe mode are available for
|
21 |
+
administrator only. This way only you, as the administrator, can see the result of optimization.
|
22 |
+
To enable the changes for other users, uncheck Safe mode.', 'gonzales' ) ?>
|
23 |
+
</p>
|
24 |
+
<p>
|
25 |
+
<?php echo sprintf( __( 'For more details and user guides, check the plugin’s <a href="%s" target="_blank" rel="noreferrer noopener">documentation</a>.', 'gonzales' ), WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'docs' ) ) ?>
|
26 |
+
</p>
|
27 |
+
</div>
|
28 |
+
<a class="wbcr-gnz-button__pro" href="<?php echo WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'assets-manager' ) ?>" target="_blank" rel="noreferrer noopener">'
|
29 |
+
<?php _e( 'Upgrade to Premium', 'gonzales' ) ?></a>
|
30 |
+
<div class="wam-info-section__go-to-premium">
|
31 |
+
<h3>
|
32 |
+
<span><?php _e( 'MORE IN CLEARFY BUSINESS', 'gonzales' ) ?></span>
|
33 |
+
</h3>
|
34 |
+
<ul>
|
35 |
+
<li><?php _e( 'Disable plugins (groups of scripts)', 'gonzales' ) ?></li>
|
36 |
+
<li><?php _e( 'Conditions by the link template', 'gonzales' ) ?></li>
|
37 |
+
<li><?php _e( 'Conditions by the regular expression', 'gonzales' ) ?></li>
|
38 |
+
<li><?php _e( 'Safe mode', 'gonzales' ) ?></li>
|
39 |
+
<li><?php _e( 'Statistics and optimization results', 'gonzales' ) ?></li>
|
40 |
+
</ul>
|
41 |
+
</div>
|
42 |
+
</div>
|
components/assets-manager/views/part-assets-manager-tabs-menu.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var array $data
|
7 |
+
* @var WGZ_Views $this
|
8 |
+
*/
|
9 |
+
?>
|
10 |
+
<ul class="wam-assets-type-tabs">
|
11 |
+
<li class="wam-assets-type-tabs__item">
|
12 |
+
<div class="wam-assets-type-tabs__button js-wam-assets-type-tabs__button wam-assets-type-tabs__button--plugins wam-assets-type-tab__active" data-type="plugins"></div>
|
13 |
+
<div class="wam-assets-type-tabs__button js-wam-assets-type-tabs__button wam-assets-type-tabs__button--misc" data-type="misc"></div>
|
14 |
+
<div class="wam-assets-type-tabs__button js-wam-assets-type-tabs__button wam-assets-type-tabs__button--theme" data-type="theme"></div>
|
15 |
+
</li>
|
16 |
+
</ul>
|
components/assets-manager/views/part-tab-content-assets-plugins-settings.php
ADDED
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var array $data
|
7 |
+
* @var WGZ_Views $this
|
8 |
+
*/
|
9 |
+
|
10 |
+
$plugin_name = $data['name'];
|
11 |
+
?>
|
12 |
+
<div class="wam-plugin-settings">
|
13 |
+
<div class="wam-plugin-settings__controls">
|
14 |
+
<select class="wam-select<?php echo $data['select_control_classes']; ?> js-wam-select-plugin-load-mode" data-plugin-name="<?php echo esc_attr( $plugin_name ) ?>">
|
15 |
+
<option value="enable"<?php selected( 'enable', $data['load_mode'] ) ?>>
|
16 |
+
<?php _e( "Load plugin and its assets", 'gonzales' ) ?>
|
17 |
+
</option>
|
18 |
+
<option value="disable_assets"<?php selected( 'disable_assets', $data['load_mode'] ) ?>>
|
19 |
+
<?php _e( "Don't load plugin assets", 'gonzales' ) ?>
|
20 |
+
</option>
|
21 |
+
<option value="disable_plugin"<?php selected( 'disable_plugin', $data['load_mode'] ) ?>>
|
22 |
+
<?php _e( "Don't load plugin", 'gonzales' ) ?>
|
23 |
+
</option>
|
24 |
+
</select>
|
25 |
+
<button class="wam-button wam-button--default wam-button__icon js-wam-button__icon--cogs js-wam-open-plugin-settings<?php echo esc_attr( $data['settings_button_classes'] ) ?>"></button>
|
26 |
+
</div>
|
27 |
+
<div class="js-wam-plugin-settings__conditions">
|
28 |
+
<input type="hidden" data-plugin-name="<?php echo esc_attr( $plugin_name ) ?>" class="wam-conditions-builder__settings" value="<?php echo esc_attr( $data['visability'] ) ?>">
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
<div class="wam-plugin-assets wam-plugin-<?php echo esc_attr( $plugin_name ) ?>-assets">
|
32 |
+
<h2><?php _e( 'Loaded resourses on current page', 'gonzales' ) ?>:</h2>
|
33 |
+
<table class="wam-table wam-plugin-assets__table" style="margin:0;">
|
34 |
+
<tr>
|
35 |
+
<th class="wam-table__th-actions"><?php _e( 'Actions', 'gonzales' ) ?></th>
|
36 |
+
<th class="wam-table__th-type"><?php _e( 'Type', 'gonzales' ) ?></th>
|
37 |
+
<th class="wam-table__th-handle"><?php _e( 'Handle/Source', 'gonzales' ) ?></th>
|
38 |
+
<th class="wam-table__th-version"><?php _e( 'Version', 'gonzales' ) ?></th>
|
39 |
+
<th class="wam-table__th-size"><?php _e( 'Size', 'gonzales' ) ?></th>
|
40 |
+
</tr>
|
41 |
+
<?php if ( ! empty( $data['assets'] ) ): ?>
|
42 |
+
<?php foreach ( (array) $data['assets'] as $resource_type => $assets ): ?>
|
43 |
+
<?php foreach ( (array) $assets as $resource_handle => $item ): ?>
|
44 |
+
<tr data-size="<?php echo esc_attr( $item['size'] ); ?>" class="js-wam-asset js-wam-<?php echo esc_attr( $resource_type ); ?>-asset wam-table__asset-settings<?php echo $item['row_classes']; ?>" id="wam-table__loaded-resourse-<?php echo md5( $resource_handle . $resource_type . $item['url_full'] ); ?>">
|
45 |
+
<td class="wam-table__td-actions">
|
46 |
+
<select class="wam-select<?php echo $item['select_control_classes']; ?> js-wam-select-asset-load-mode"<?php disabled( 'enable' !== $data['load_mode'] ) ?>>
|
47 |
+
<option value="enable"<?php selected( 'enable', $item['load_mode'] ) ?>>
|
48 |
+
<?php _e( 'Enable', 'gonzales' ) ?>
|
49 |
+
</option>
|
50 |
+
<option value="disable"<?php selected( 'disable', $item['load_mode'] ) ?>>
|
51 |
+
<?php _e( 'Disable', 'gonzales' ) ?>
|
52 |
+
</option>
|
53 |
+
</select>
|
54 |
+
<button class="wam-button wam-button--default wam-button__icon js-wam-button__icon--cogs js-wam-open-asset-settings<?php echo esc_attr( $item['settings_button_classes'] ); ?>"></button>
|
55 |
+
</td>
|
56 |
+
<td class="wam-table__td-type">
|
57 |
+
<span class="wam-asset-type wam-asset-type--<?php echo esc_attr( $resource_type ); ?>">
|
58 |
+
<?php echo esc_attr( $resource_type ); ?>
|
59 |
+
</span>
|
60 |
+
</td>
|
61 |
+
<td class="wam-table__td-handle">
|
62 |
+
<?php echo esc_html( $resource_handle ); ?><br>
|
63 |
+
<a href="<?php echo esc_url( $item['url_full'] ); ?>">
|
64 |
+
<?php echo esc_html( $item['url_short'] ); ?>
|
65 |
+
</a>
|
66 |
+
</td>
|
67 |
+
<td class="wam-table__td-version"><?php echo esc_html( $item['ver'] ); ?></td>
|
68 |
+
<td class="wam-table__td-size"><?php echo esc_html( $item['size'] ); ?> KB</td>
|
69 |
+
</tr>
|
70 |
+
<tr id="wam-table__loaded-resourse-<?php echo md5( $resource_handle . $resource_type . $item['url_full'] ); ?>-conditions" class="wam-table__asset-settings-conditions">
|
71 |
+
<td colspan="5">
|
72 |
+
<!--<p>
|
73 |
+
<input type="checkbox" class="wam-checkbox wam-table__checkbox">
|
74 |
+
<?php _e( 'Don\'t optimize file', 'gonzales' ) ?>
|
75 |
+
<i class="wam-help-hint wam-tooltip wam-tooltip--bottom" data-tooltip="<?php _e( 'You’ve enabled the "Optimize js scripts?" and "Optimize CSS options" in the "Minify & Combine plugin". These settings exclude scripts and styles that you don’t want to optimize. Press No to add a file to the excluded list.', 'gonzales' ) ?>"></i>
|
76 |
+
</p>
|
77 |
+
<p>
|
78 |
+
<input type="checkbox" class="wam-checkbox wam-table__checkbox">
|
79 |
+
<?php _e( 'Don\'t remove query string (version)', 'gonzales' ) ?>
|
80 |
+
<i class="wam-help-hint wam-tooltip wam-tooltip--bottom" data-tooltip="<?php _e( 'You’ve enabled "Remove query strings" from static resources in the "Clearfy" plugin. This list of settings helps you to exclude the necessary scripts and styles with remaining query strings. Press No to add a file to the excluded list.', 'gonzales' ) ?>"></i>
|
81 |
+
</p>-->
|
82 |
+
<p>
|
83 |
+
<?php _e( '<strong> You must set rules to disable the resource.</strong>
|
84 |
+
For example, if you select Page -> Equals -> All posts, then the script or style will not
|
85 |
+
loaded on all pages of type post.', 'gonzales' ) ?>
|
86 |
+
</p>
|
87 |
+
<div class="wam-asset-conditions-builder">
|
88 |
+
<input type="hidden" data-plugin-name="<?php echo esc_attr( $plugin_name ) ?>" data-resource-type="<?php echo esc_attr( $resource_type ) ?>" data-resource-handle="<?php echo esc_attr( $resource_handle ) ?>" class="wam-conditions-builder__settings" value="<?php echo esc_attr( $item['visability'] ) ?>">
|
89 |
+
</div>
|
90 |
+
</td>
|
91 |
+
</tr>
|
92 |
+
<?php endforeach; ?>
|
93 |
+
<?php endforeach; ?>
|
94 |
+
<?php endif; ?>
|
95 |
+
</table>
|
96 |
+
</div>
|
components/assets-manager/views/tab-content-assets-plugins.php
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var array $data
|
7 |
+
* @var WGZ_Views $this
|
8 |
+
*/
|
9 |
+
if ( empty( $data['loaded_plugins'] ) ) {
|
10 |
+
echo 'Plugins is not found!';
|
11 |
+
|
12 |
+
return;
|
13 |
+
}
|
14 |
+
|
15 |
+
$active_plugin = reset( $data['loaded_plugins'] );
|
16 |
+
?>
|
17 |
+
<table class="wam-table">
|
18 |
+
<thead>
|
19 |
+
<tr>
|
20 |
+
<th class="wam-table__th-plugins-list"><?php _e( "Plugins", 'gonzales' ) ?></th>
|
21 |
+
<th class="wam-table__th-plugins-settings"><?php echo $active_plugin['info']['Title']; ?></th>
|
22 |
+
</tr>
|
23 |
+
</thead>
|
24 |
+
<tbody>
|
25 |
+
<tr>
|
26 |
+
<td class="wam-table__td-plugins-list">
|
27 |
+
<ul class="wam-nav-plugins">
|
28 |
+
<?php foreach ( (array) $data['loaded_plugins'] as $plugin_name => $plugin ): ?>
|
29 |
+
<li class="wam-nav-plugins__tab js-wam-nav-plugins__tab-switch<?php echo( $active_plugin['name'] == $plugin_name ? ' wam-nav-plugins__tab--active' : '' ) ?>">
|
30 |
+
<a href="#wam-<?php echo esc_attr( $plugin_name ); ?>">
|
31 |
+
<strong class="wam-plugin-name"><?php echo $plugin['info']['Title']; ?></strong>
|
32 |
+
<span><?php _e( 'Author', 'gonzales' ) ?>: <?php echo $plugin['info']['Author']; ?></span>
|
33 |
+
<span><?php _e( 'Version', 'gonzales' ) ?>: <?php echo $plugin['info']['Version']; ?></span>
|
34 |
+
</a>
|
35 |
+
</li>
|
36 |
+
<?php endforeach; ?>
|
37 |
+
</ul>
|
38 |
+
</td>
|
39 |
+
<td class="wam-table__td-plugins-settings">
|
40 |
+
<?php foreach ( (array) $data['loaded_plugins'] as $plugin_name => $plugin ): ?>
|
41 |
+
<div id="wam-<?php echo esc_attr( $plugin_name ); ?>" class="wam-nav-plugins__tab-content<?php echo( $active_plugin['name'] == $plugin_name ? ' js-wam-nav-plugins__tab-content--active' : '' ) ?>">
|
42 |
+
<?php $this->print_template( 'part-tab-content-assets-plugins-settings', $plugin ); ?>
|
43 |
+
</div>
|
44 |
+
<?php endforeach; ?>
|
45 |
+
</td>
|
46 |
+
</tr>
|
47 |
+
</tbody>
|
48 |
+
</table> <!-- /end .wam-table -->
|
components/assets-manager/views/tab-content-assets.php
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var array $data
|
7 |
+
* @var WGZ_Views $this
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( empty( $data['assets'] ) ) {
|
11 |
+
echo 'Assets is not found!';
|
12 |
+
|
13 |
+
return;
|
14 |
+
}
|
15 |
+
?>
|
16 |
+
<table class="wam-table">
|
17 |
+
<tr>
|
18 |
+
<th class="wam-table__th-actions"><?php _e( 'Actions', 'gonzales' ) ?></th>
|
19 |
+
<th class="wam-table__th-type"><?php _e( 'Type', 'gonzales' ) ?></th>
|
20 |
+
<th class="wam-table__th-handle"><?php _e( 'Handle/Source', 'gonzales' ) ?></th>
|
21 |
+
<th class="wam-table__th-version"><?php _e( 'Version', 'gonzales' ) ?></th>
|
22 |
+
<th class="wam-table__th-size"><?php _e( 'Size', 'gonzales' ) ?></th>
|
23 |
+
</tr>
|
24 |
+
<?php if ( ! empty( $data['assets'] ) ): ?>
|
25 |
+
<?php foreach ( (array) $data['assets'] as $resource_type => $assets ): ?>
|
26 |
+
<?php foreach ( (array) $assets as $resource_handle => $item ): ?>
|
27 |
+
<tr data-size="<?php echo esc_attr( $item['size'] ); ?>" class="js-wam-asset js-wam-<?php echo esc_attr( $resource_type ); ?>-asset wam-table__asset-settings<?php echo $item['row_classes']; ?>" id="wam-table__loaded-resourse-<?php echo md5( $resource_handle . $resource_type . $item['url_full'] ); ?>">
|
28 |
+
<td class="wam-table__td-actions">
|
29 |
+
<select class="wam-select<?php echo $item['select_control_classes']; ?> js-wam-select-asset-load-mode">
|
30 |
+
<option value="enable"<?php selected( 'enable', $item['load_mode'] ) ?>>
|
31 |
+
<?php _e( 'Enable', 'gonzales' ) ?>
|
32 |
+
</option>
|
33 |
+
<option value="disable"<?php selected( 'disable', $item['load_mode'] ) ?>>
|
34 |
+
<?php _e( 'Disable', 'gonzales' ) ?>
|
35 |
+
</option>
|
36 |
+
</select>
|
37 |
+
<button class="wam-button wam-button--default wam-button__icon js-wam-button__icon--cogs js-wam-open-asset-settings<?php echo esc_attr( $item['settings_button_classes'] ); ?>"></button>
|
38 |
+
</td>
|
39 |
+
<td class="wam-table__td-type">
|
40 |
+
<span class="wam-asset-type wam-asset-type--<?php echo esc_attr( $resource_type ); ?>">
|
41 |
+
<?php echo esc_attr( $resource_type ); ?>
|
42 |
+
</span>
|
43 |
+
</td>
|
44 |
+
<td class="wam-table__td-handle">
|
45 |
+
<?php echo esc_html( $resource_handle ); ?><br>
|
46 |
+
<a href="<?php echo esc_url( $item['url_full'] ); ?>">
|
47 |
+
<?php echo esc_html( $item['url_short'] ); ?>
|
48 |
+
</a>
|
49 |
+
</td>
|
50 |
+
<td class="wam-assets__table-td-version"><?php echo esc_html( $item['ver'] ); ?></td>
|
51 |
+
<td class="wam-assets__table-td-size"><?php echo esc_html( $item['size'] ); ?> KB</td>
|
52 |
+
</tr>
|
53 |
+
<tr id="wam-table__loaded-resourse-<?php echo md5( $resource_handle . $resource_type . $item['url_full'] ); ?>-conditions" class="wam-table__asset-settings-conditions">
|
54 |
+
<td colspan="5">
|
55 |
+
<!--<p>
|
56 |
+
<input type="checkbox" class="wam-checkbox wam-table__checkbox">
|
57 |
+
<?php _e( 'Don\'t optimize file', 'gonzales' ) ?>
|
58 |
+
<i class="wam-help-hint wam-tooltip wam-tooltip--bottom" data-tooltip="<?php _e( 'You’ve enabled the "Optimize js scripts?" and "Optimize CSS options" in the "Minify & Combine plugin". These settings exclude scripts and styles that you don’t want to optimize. Press No to add a file to the excluded list.', 'gonzales' ) ?>"></i>
|
59 |
+
</p>
|
60 |
+
<p>
|
61 |
+
<input type="checkbox" class="wam-checkbox wam-table__checkbox">
|
62 |
+
<?php _e( 'Don\'t remove query string (version)', 'gonzales' ) ?>
|
63 |
+
<i class="wam-help-hint wam-tooltip wam-tooltip--bottom" data-tooltip="<?php _e( 'You’ve enabled "Remove query strings" from static resources in the "Clearfy" plugin. This list of settings helps you to exclude the necessary scripts and styles with remaining query strings. Press No to add a file to the excluded list.', 'gonzales' ) ?>"></i>
|
64 |
+
</p>-->
|
65 |
+
<p>
|
66 |
+
<?php _e( '<strong> You must set rules to disable the resource.</strong>
|
67 |
+
For example, if you select Page -> Equals -> All posts, then the script or style will not
|
68 |
+
loaded on all pages of type post.', 'gonzales' ) ?>
|
69 |
+
</p>
|
70 |
+
<div class="wam-asset-conditions-builder">
|
71 |
+
<input type="hidden" data-group-type="<?php echo esc_attr( $data['type'] ) ?>" data-resource-type="<?php echo esc_attr( $resource_type ) ?>" data-resource-handle="<?php echo esc_attr( $resource_handle ) ?>" class="wam-conditions-builder__settings" value="<?php echo esc_attr( $item['visability'] ) ?>">
|
72 |
+
</div>
|
73 |
+
</td>
|
74 |
+
</tr>
|
75 |
+
<?php endforeach; ?>
|
76 |
+
<?php endforeach; ?>
|
77 |
+
<?php endif; ?>
|
78 |
+
</table>
|
components/comments-plus/admin/assets/css/index.php
DELETED
File without changes
|
components/comments-plus/admin/assets/index.php
DELETED
File without changes
|
components/comments-plus/admin/assets/js/index.php
DELETED
File without changes
|
components/comments-plus/admin/boot.php
CHANGED
@@ -1,158 +1,178 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
}
|
13 |
|
14 |
-
|
15 |
-
* Массово проходится по комментарием в базе данных и отключает, какждый индивидуально.
|
16 |
-
*/
|
17 |
-
function wbcr_cmp_enter_permanent_mode()
|
18 |
-
{
|
19 |
-
global $wpdb;
|
20 |
-
|
21 |
-
if( !WCM_Plugin::app()->getPopulateOption('disable_comments_permanent') ) {
|
22 |
-
return;
|
23 |
-
}
|
24 |
-
|
25 |
-
$types = wbcr_cmp_get_disabled_post_types();
|
26 |
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
FROM $wpdb->blogs
|
35 |
WHERE site_id = %d
|
36 |
AND public = '1'
|
37 |
AND archived = '0'
|
38 |
-
AND deleted = '0'", $wpdb->siteid));
|
39 |
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
}
|
45 |
-
} else {
|
46 |
-
wbcr_close_comments_in_db($types);
|
47 |
}
|
|
|
|
|
48 |
}
|
|
|
49 |
|
50 |
-
|
51 |
-
|
52 |
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
|
62 |
-
|
63 |
SET `comment_status` = 'closed', ping_status = 'closed'
|
64 |
WHERE `post_type`
|
65 |
-
IN ( $bits )", $types));
|
66 |
-
|
67 |
-
|
68 |
-
function wbcr_cmp_group_options($options)
|
69 |
-
{
|
70 |
-
$options[] = array(
|
71 |
-
'name' => 'disable_comments',
|
72 |
-
'title' => __('Disable comments on the entire site', 'comments-plus'),
|
73 |
-
'tags' => array('disable_all_comments'),
|
74 |
-
'values' => array('disable_all_comments' => 'disable_comments')
|
75 |
-
);
|
76 |
-
$options[] = array(
|
77 |
-
'name' => 'disable_comments_for_post_types',
|
78 |
-
'title' => __('Select post types', 'comments-plus'),
|
79 |
-
'tags' => array()
|
80 |
-
);
|
81 |
-
$options[] = array(
|
82 |
-
'name' => 'disable_comments_extra_post_types',
|
83 |
-
'title' => __('Custom post types', 'comments-plus'),
|
84 |
-
'tags' => array()
|
85 |
-
);
|
86 |
-
$options[] = array(
|
87 |
-
'name' => 'disable_comments_permanent',
|
88 |
-
'title' => __('Use persistent mode', 'comments-plus'),
|
89 |
-
'tags' => array()
|
90 |
-
);
|
91 |
-
$options[] = array(
|
92 |
-
'name' => 'comment_text_convert_links_pseudo',
|
93 |
-
'title' => __('Replace external links in comments on the JavaScript code', 'comments-plus'),
|
94 |
-
'tags' => array('recommended', 'seo_optimize')
|
95 |
-
);
|
96 |
-
$options[] = array(
|
97 |
-
'name' => 'pseudo_comment_author_link',
|
98 |
-
'title' => __('Replace external links from comment authors on the JavaScript code', 'comments-plus'),
|
99 |
-
'tags' => array('recommended', 'seo_optimize')
|
100 |
-
);
|
101 |
-
$options[] = array(
|
102 |
-
'name' => 'remove_url_from_comment_form',
|
103 |
-
'title' => __('Remove field "site" in comment form', 'comments-plus'),
|
104 |
-
'tags' => array()
|
105 |
-
);
|
106 |
-
|
107 |
-
return $options;
|
108 |
-
}
|
109 |
-
|
110 |
-
add_filter("wbcr_clearfy_group_options", 'wbcr_cmp_group_options');
|
111 |
|
112 |
-
|
113 |
-
{
|
114 |
-
$
|
115 |
-
'title' => __('One click disable all comments', 'comments-plus'),
|
116 |
-
'icon' => 'dashicons-testimonial'
|
117 |
-
);
|
118 |
-
|
119 |
-
return $mods;
|
120 |
-
}
|
121 |
-
|
122 |
-
add_filter("wbcr_clearfy_allow_quick_mods", 'wbcr_cmp_allow_quick_mods');
|
123 |
-
|
124 |
-
function wbcr_cmp_set_plugin_meta($links, $file)
|
125 |
-
{
|
126 |
-
if( $file == WCM_PLUGIN_BASE ) {
|
127 |
|
128 |
$url = 'https://clearfy.pro';
|
129 |
|
130 |
-
if( get_locale() == 'ru_RU' ) {
|
131 |
$url = 'https://ru.clearfy.pro';
|
132 |
}
|
133 |
|
134 |
$url .= '?utm_source=wordpress.org&utm_campaign=' . WCM_Plugin::app()->getPluginName();
|
135 |
|
136 |
-
$links[] = '<a href="' . $url . '" style="color: #FF5722;font-weight: bold;" target="_blank">' . __('Get ultimate plugin free', 'comments-plus') . '</a>';
|
137 |
}
|
138 |
|
139 |
return $links;
|
140 |
}
|
141 |
|
142 |
-
|
143 |
-
add_filter('plugin_row_meta', 'wbcr_cmp_set_plugin_meta', 10, 2);
|
144 |
-
}
|
145 |
|
146 |
-
|
147 |
-
|
148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
return 'https://goo.gl/v4QkW5';
|
150 |
}
|
151 |
|
152 |
return $page_url;
|
153 |
}
|
154 |
|
155 |
-
add_filter('
|
156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
|
|
|
|
|
158 |
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* Admin boot
|
4 |
+
*
|
5 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
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 |
+
/**
|
16 |
+
* Массово проходится по комментарием в базе данных и отключает, какждый индивидуально.
|
17 |
+
*/
|
18 |
+
function wbcr_cmp_enter_permanent_mode() {
|
19 |
+
global $wpdb;
|
20 |
+
|
21 |
+
if ( ! WCM_Plugin::app()->getPopulateOption( 'disable_comments_permanent' ) ) {
|
22 |
+
return;
|
23 |
}
|
24 |
|
25 |
+
$types = wbcr_cmp_get_disabled_post_types();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
|
27 |
+
if ( empty( $types ) ) {
|
28 |
+
return;
|
29 |
+
}
|
30 |
|
31 |
+
if ( WCM_Plugin::app()->isNetworkActive() ) {
|
32 |
+
// NOTE: this can be slow on large networks!
|
33 |
+
$blogs = $wpdb->get_col( $wpdb->prepare( "SELECT blog_id
|
34 |
FROM $wpdb->blogs
|
35 |
WHERE site_id = %d
|
36 |
AND public = '1'
|
37 |
AND archived = '0'
|
38 |
+
AND deleted = '0'", $wpdb->siteid ) );
|
39 |
|
40 |
+
foreach ( $blogs as $id ) {
|
41 |
+
switch_to_blog( $id );
|
42 |
+
wbcr_close_comments_in_db( $types );
|
43 |
+
restore_current_blog();
|
|
|
|
|
|
|
44 |
}
|
45 |
+
} else {
|
46 |
+
wbcr_close_comments_in_db( $types );
|
47 |
}
|
48 |
+
}
|
49 |
|
50 |
+
add_action( 'wbcr/factory/pages/impressive/after_form_save', 'wbcr_cmp_enter_permanent_mode' );
|
51 |
+
add_action( 'wbcr_clearfy_configurated_quick_mode', 'wbcr_cmp_enter_permanent_mode' );
|
52 |
|
53 |
+
/**
|
54 |
+
* Закрывает комментарии в базе данных
|
55 |
+
*
|
56 |
+
* @param $types
|
57 |
+
*/
|
58 |
+
function wbcr_close_comments_in_db( $types ) {
|
59 |
+
global $wpdb;
|
60 |
+
$bits = implode( ', ', array_pad( [], count( $types ), '%s' ) );
|
61 |
|
62 |
+
$wpdb->query( $wpdb->prepare( "UPDATE `$wpdb->posts`
|
63 |
SET `comment_status` = 'closed', ping_status = 'closed'
|
64 |
WHERE `post_type`
|
65 |
+
IN ( $bits )", $types ) );
|
66 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
|
68 |
+
if ( ! defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ) {
|
69 |
+
function wbcr_cmp_set_plugin_meta( $links, $file ) {
|
70 |
+
if ( $file == WCM_PLUGIN_BASE ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
|
72 |
$url = 'https://clearfy.pro';
|
73 |
|
74 |
+
if ( get_locale() == 'ru_RU' ) {
|
75 |
$url = 'https://ru.clearfy.pro';
|
76 |
}
|
77 |
|
78 |
$url .= '?utm_source=wordpress.org&utm_campaign=' . WCM_Plugin::app()->getPluginName();
|
79 |
|
80 |
+
$links[] = '<a href="' . $url . '" style="color: #FF5722;font-weight: bold;" target="_blank">' . __( 'Get ultimate plugin free', 'comments-plus' ) . '</a>';
|
81 |
}
|
82 |
|
83 |
return $links;
|
84 |
}
|
85 |
|
86 |
+
add_filter( 'plugin_row_meta', 'wbcr_cmp_set_plugin_meta', 10, 2 );
|
|
|
|
|
87 |
|
88 |
+
/**
|
89 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
90 |
+
*
|
91 |
+
* @param string $page_url
|
92 |
+
* @param string $plugin_name
|
93 |
+
*
|
94 |
+
* @return string
|
95 |
+
*/
|
96 |
+
function wbcr_cmp_rating_widget_url( $page_url, $plugin_name ) {
|
97 |
+
if ( ! defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) && ( $plugin_name == WCM_Plugin::app()->getPluginName() ) ) {
|
98 |
return 'https://goo.gl/v4QkW5';
|
99 |
}
|
100 |
|
101 |
return $page_url;
|
102 |
}
|
103 |
|
104 |
+
add_filter( 'wbcr_factory_pages_421_imppage_rating_widget_url', 'wbcr_cmp_rating_widget_url', 10, 2 );
|
105 |
|
106 |
+
/**
|
107 |
+
* Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина
|
108 |
+
*
|
109 |
+
* - Виджет с премиум рекламой
|
110 |
+
* - Виджет с рейтингом
|
111 |
+
* - Виджет с маркерами информации
|
112 |
+
*/
|
113 |
+
add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
|
114 |
+
if ( WCM_Plugin::app()->getPluginName() == $plugin->getPluginName() && 'right' == $position ) {
|
115 |
+
unset( $widgets['business_suggetion'] );
|
116 |
+
unset( $widgets['rating_widget'] );
|
117 |
+
unset( $widgets['info_widget'] );
|
118 |
+
}
|
119 |
+
|
120 |
+
return $widgets;
|
121 |
+
}, 20, 3 );
|
122 |
+
} else {
|
123 |
+
|
124 |
+
function wbcr_cmp_group_options( $options ) {
|
125 |
+
$options[] = [
|
126 |
+
'name' => 'disable_comments',
|
127 |
+
'title' => __( 'Disable comments on the entire site', 'comments-plus' ),
|
128 |
+
'tags' => [ 'disable_all_comments' ],
|
129 |
+
'values' => [ 'disable_all_comments' => 'disable_comments' ]
|
130 |
+
];
|
131 |
+
$options[] = [
|
132 |
+
'name' => 'disable_comments_for_post_types',
|
133 |
+
'title' => __( 'Select post types', 'comments-plus' ),
|
134 |
+
'tags' => []
|
135 |
+
];
|
136 |
+
$options[] = [
|
137 |
+
'name' => 'disable_comments_extra_post_types',
|
138 |
+
'title' => __( 'Custom post types', 'comments-plus' ),
|
139 |
+
'tags' => []
|
140 |
+
];
|
141 |
+
$options[] = [
|
142 |
+
'name' => 'disable_comments_permanent',
|
143 |
+
'title' => __( 'Use persistent mode', 'comments-plus' ),
|
144 |
+
'tags' => []
|
145 |
+
];
|
146 |
+
$options[] = [
|
147 |
+
'name' => 'comment_text_convert_links_pseudo',
|
148 |
+
'title' => __( 'Replace external links in comments on the JavaScript code', 'comments-plus' ),
|
149 |
+
'tags' => [ 'recommended', 'seo_optimize' ]
|
150 |
+
];
|
151 |
+
$options[] = [
|
152 |
+
'name' => 'pseudo_comment_author_link',
|
153 |
+
'title' => __( 'Replace external links from comment authors on the JavaScript code', 'comments-plus' ),
|
154 |
+
'tags' => [ 'recommended', 'seo_optimize' ]
|
155 |
+
];
|
156 |
+
$options[] = [
|
157 |
+
'name' => 'remove_url_from_comment_form',
|
158 |
+
'title' => __( 'Remove field "site" in comment form', 'comments-plus' ),
|
159 |
+
'tags' => []
|
160 |
+
];
|
161 |
+
|
162 |
+
return $options;
|
163 |
+
}
|
164 |
+
|
165 |
+
add_filter( "wbcr_clearfy_group_options", 'wbcr_cmp_group_options' );
|
166 |
+
|
167 |
+
function wbcr_cmp_allow_quick_mods( $mods ) {
|
168 |
+
$mods['disable_all_comments'] = [
|
169 |
+
'title' => __( 'One click disable all comments', 'comments-plus' ),
|
170 |
+
'icon' => 'dashicons-testimonial'
|
171 |
+
];
|
172 |
+
|
173 |
+
return $mods;
|
174 |
+
}
|
175 |
|
176 |
+
add_filter( "wbcr_clearfy_allow_quick_mods", 'wbcr_cmp_allow_quick_mods' );
|
177 |
+
}
|
178 |
|
components/comments-plus/admin/index.php
CHANGED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/comments-plus/admin/pages/class-page-comments.php
ADDED
@@ -0,0 +1,232 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 WbcrCmp_CommentsPage extends Wbcr_FactoryClearfy213_PageBase {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* {@inheritDoc}
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
public $id = "comments";
|
27 |
+
|
28 |
+
/**
|
29 |
+
* {@inheritDoc}
|
30 |
+
*
|
31 |
+
* @var string
|
32 |
+
*/
|
33 |
+
public $page_menu_dashicon = 'dashicons-testimonial';
|
34 |
+
|
35 |
+
/**
|
36 |
+
* {@inheritDoc}
|
37 |
+
*
|
38 |
+
* @var bool
|
39 |
+
*/
|
40 |
+
public $available_for_multisite = true;
|
41 |
+
|
42 |
+
/**
|
43 |
+
* {@inheritDoc}
|
44 |
+
*
|
45 |
+
* @since 1.1.0
|
46 |
+
* @var bool
|
47 |
+
*/
|
48 |
+
public $show_right_sidebar_in_options = true;
|
49 |
+
|
50 |
+
/**
|
51 |
+
* WbcrCmp_CommentsPage constructor.
|
52 |
+
*
|
53 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
54 |
+
*
|
55 |
+
* @param \Wbcr_Factory421_Plugin $plugin
|
56 |
+
*/
|
57 |
+
public function __construct( Wbcr_Factory421_Plugin $plugin ) {
|
58 |
+
$this->menu_title = __( 'Disable comments', 'comments-plus' );
|
59 |
+
$this->page_menu_short_description = __( 'Manage site comments', 'comments-plus' );
|
60 |
+
|
61 |
+
if ( ! defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ) {
|
62 |
+
$this->internal = false;
|
63 |
+
$this->menu_target = 'options-general.php';
|
64 |
+
$this->add_link_to_plugin_actions = true;
|
65 |
+
}
|
66 |
+
|
67 |
+
parent::__construct( $plugin );
|
68 |
+
}
|
69 |
+
|
70 |
+
/*public function getMenuTitle() {
|
71 |
+
return defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ? __( 'Comments', 'comments-plus' ) : __( 'General', 'comments-plus' );
|
72 |
+
}*/
|
73 |
+
|
74 |
+
/**
|
75 |
+
* {@inheritDoc}
|
76 |
+
*
|
77 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
78 |
+
* @return string
|
79 |
+
*/
|
80 |
+
public function getPageTitle() {
|
81 |
+
return defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ? __( 'Comments', 'comments-plus' ) : __( 'General', 'comments-plus' );
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* {@inheritDoc}
|
86 |
+
*
|
87 |
+
* @since 1.0.0
|
88 |
+
* @return mixed[]
|
89 |
+
*/
|
90 |
+
public function getPageOptions() {
|
91 |
+
$options = [];
|
92 |
+
|
93 |
+
$options[] = [
|
94 |
+
'type' => 'html',
|
95 |
+
'html' => '<div class="wbcr-factory-page-group-header"><strong>' . __( 'Global disabling of comments', 'comments-plus' ) . '</strong><p>' . __( 'What is the difference between these and native WordPress functions? WordPress disables comments only for new posts! Using the functions below, you can disable comments globally, even for old posts, and you can choose which post types comments to disable. The plugin also disables the comment functionality itself, which creates a certain load on the site.', 'comments-plus' ) . '</p></div>'
|
96 |
+
];
|
97 |
+
|
98 |
+
$args = [ 'public' => true ];
|
99 |
+
|
100 |
+
if ( $this->plugin->isNetworkActive() ) {
|
101 |
+
$args['_builtin'] = true;
|
102 |
+
}
|
103 |
+
|
104 |
+
$types = get_post_types( $args, 'objects' );
|
105 |
+
|
106 |
+
/*foreach( array_keys( $types ) as $type ) {
|
107 |
+
if( ! in_array( $type, $this->modified_types ) && ! post_type_supports( $type, 'comments' ) ) // the type doesn't support comments anyway
|
108 |
+
unset( $types[$type] );
|
109 |
+
}*/
|
110 |
+
|
111 |
+
$post_types = [];
|
112 |
+
foreach ( $types as $type_name => $type ) {
|
113 |
+
$post_types[] = [ $type_name, $type->label ];
|
114 |
+
}
|
115 |
+
|
116 |
+
$options[] = [
|
117 |
+
'type' => 'dropdown',
|
118 |
+
'name' => 'disable_comments',
|
119 |
+
'way' => 'buttons',
|
120 |
+
'title' => __( 'Disable comments', 'comments-plus' ),
|
121 |
+
'data' => [
|
122 |
+
[ 'enable_comments', __( 'Not disable', 'comments-plus' ) ],
|
123 |
+
[
|
124 |
+
'disable_comments',
|
125 |
+
__( 'Everywhere', 'comments-plus' ),
|
126 |
+
sprintf( __( 'You can delete all comments in the database by clicking on this link (<a href="%s">cleaning comments in database</a>).', 'comments-plus' ), admin_url( 'admin.php?page=delete_comments-' . $this->plugin->getPluginName() ) )
|
127 |
+
],
|
128 |
+
[
|
129 |
+
'disable_certain_post_types_comments',
|
130 |
+
__( 'On certain post types', 'comments-plus' ),
|
131 |
+
sprintf( __( 'You can delete all comments for the selected post types. Select the post types below and save the settings. After that, click the link (<a href="%s">delete all comments for the selected post types in database</a>).', 'comments-plus' ), admin_url( 'admin.php?page=delete_comments-' . $this->plugin->getPluginName() ) )
|
132 |
+
]
|
133 |
+
],
|
134 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
|
135 |
+
'hint' => __( 'Everywhere - Warning: This option is global and will affect your entire site. Use it only if you want to disable comments everywhere. A complete description of what this option does is available here', 'comments-plus' ) . '<br><br>' . __( 'On certain post types - Disabling comments will also disable trackbacks and pingbacks. All comment-related fields will also be hidden from the edit/quick-edit screens of the affected posts. These settings cannot be overridden for individual posts.', 'comments-plus' ),
|
136 |
+
'default' => 'enable_comments',
|
137 |
+
'events' => [
|
138 |
+
'disable_certain_post_types_comments' => [
|
139 |
+
'show' => '.factory-control-disable_comments_for_post_types, #wbcr-clearfy-comments-base-options,.factory-control-disable_comments_permanent,.factory-control-disable_comments_extra_post_types'
|
140 |
+
],
|
141 |
+
'enable_comments' => [
|
142 |
+
'show' => '#wbcr-clearfy-comments-base-options',
|
143 |
+
'hide' => '.factory-control-disable_comments_for_post_types,.factory-control-disable_comments_permanent,.factory-control-disable_comments_extra_post_types'
|
144 |
+
],
|
145 |
+
'disable_comments' => [
|
146 |
+
'show' => '.factory-control-disable_comments_permanent',
|
147 |
+
'hide' => '.factory-control-disable_comments_for_post_types, #wbcr-clearfy-comments-base-options,.factory-control-disable_comments_extra_post_types'
|
148 |
+
]
|
149 |
+
]
|
150 |
+
];
|
151 |
+
|
152 |
+
$options[] = [
|
153 |
+
'type' => 'list',
|
154 |
+
'way' => 'checklist',
|
155 |
+
'name' => 'disable_comments_for_post_types',
|
156 |
+
'title' => __( 'Select post types', 'comments-plus' ),
|
157 |
+
'data' => $post_types,
|
158 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
|
159 |
+
'hint' => __( 'Select the post types for which comments will be disabled', 'comments-plus' ),
|
160 |
+
'default' => 'post,page,attachment'
|
161 |
+
];
|
162 |
+
|
163 |
+
if ( $this->plugin->isNetworkActive() ) {
|
164 |
+
$options[] = [
|
165 |
+
'type' => 'textbox',
|
166 |
+
'name' => 'disable_comments_extra_post_types',
|
167 |
+
'title' => __( 'Custom post types', 'comments-plus' ),
|
168 |
+
'data' => $post_types,
|
169 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
|
170 |
+
'hint' => __( 'Only the built-in post types appear above. If you want to disable comments on other custom post types on the entire network, you can supply a comma-separated list of post types below (use the slug that identifies the post type).', 'comments-plus' ),
|
171 |
+
'default' => ''
|
172 |
+
];
|
173 |
+
}
|
174 |
+
$options[] = [
|
175 |
+
'type' => 'checkbox',
|
176 |
+
'way' => 'buttons',
|
177 |
+
'name' => 'disable_comments_permanent',
|
178 |
+
'title' => __( 'Use persistent mode', 'comments-plus' ),
|
179 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
|
180 |
+
'hint' => __( 'This will make persistent changes to your database — comments will remain closed even if you later disable the plugin! You should not use it if you only want to disable comments temporarily.', 'comments-plus' ),
|
181 |
+
'default' => false
|
182 |
+
];
|
183 |
+
|
184 |
+
$options[] = [
|
185 |
+
'type' => 'div',
|
186 |
+
'id' => 'wbcr-clearfy-comments-base-options',
|
187 |
+
'items' => [
|
188 |
+
[
|
189 |
+
'type' => 'html',
|
190 |
+
'html' => '<div class="wbcr-factory-page-group-header"><strong>' . __( 'General settings for comments', 'comments-plus' ) . '</strong><p>' . __( 'These settings will help you improve SEO and reduce the amount of spam.', 'comments-plus' ) . '</p></div>'
|
191 |
+
],
|
192 |
+
[
|
193 |
+
'type' => 'checkbox',
|
194 |
+
'way' => 'buttons',
|
195 |
+
'name' => 'remove_url_from_comment_form',
|
196 |
+
'title' => __( 'Remove field "site" in comment form', 'comments-plus' ),
|
197 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
|
198 |
+
'hint' => __( 'Tired of spam in the comments? Do visitors leave "blank" comments for the sake of a link to their site?', 'comments-plus' ) . '<br><b>Clearfy: </b>' . __( 'Removes the "Site" field from the comment form.', 'comments-plus' ) . '<br>--<br><span class="wbcr-factory-light-orange-color"> *' . __( 'Works with the standard comment form, if the form is manually written in your theme-it probably will not work!', 'comments-plus' ) . '</span>',
|
199 |
+
'default' => false
|
200 |
+
],
|
201 |
+
[
|
202 |
+
'type' => 'checkbox',
|
203 |
+
'way' => 'buttons',
|
204 |
+
'name' => 'comment_text_convert_links_pseudo',
|
205 |
+
'title' => __( 'Replace external links in comments on the JavaScript code', 'comments-plus' ),
|
206 |
+
'layout' => [ 'hint-type' => 'icon' ],
|
207 |
+
'hint' => __( 'Superfluous external links from comments, which can be typed from a dozen and more for one article, do not bring anything good for promotion.', 'comments-plus' ) . '<br><br><b>Clearfy: </b>' . sprintf( __( 'Replaces the links of this kind of %s, on links of this kind %s', 'comments-plus' ), '<code>a href="http://yourdomain.com" rel="nofollow"</code>', '<code>span data-uri="http://yourdomain.com"</code>' ),
|
208 |
+
'default' => false
|
209 |
+
],
|
210 |
+
[
|
211 |
+
'type' => 'checkbox',
|
212 |
+
'way' => 'buttons',
|
213 |
+
'name' => 'pseudo_comment_author_link',
|
214 |
+
'title' => __( 'Replace external links from comment authors on the JavaScript code', 'comments-plus' ),
|
215 |
+
'layout' => [ 'hint-type' => 'icon' ],
|
216 |
+
'hint' => __( 'Up to 90 percent of comments in the blog can be left for the sake of an external link. Even nofollow from page weight loss here does not help.', 'comments-plus' ) . '<br><br><b>Clearfy: </b>' . __( 'Replaces the links of the authors of comments on the JavaScript code, it is impossible to distinguish it from usual links.', 'comments-plus' ) . '<br>--<br><i>' . __( 'In some Wordpress topics this may not work.', 'comments-plus' ) . '</i>',
|
217 |
+
'default' => false
|
218 |
+
]
|
219 |
+
]
|
220 |
+
];
|
221 |
+
|
222 |
+
$formOptions = [];
|
223 |
+
|
224 |
+
$formOptions[] = [
|
225 |
+
'type' => 'form-group',
|
226 |
+
'items' => $options,
|
227 |
+
//'cssClass' => 'postbox'
|
228 |
+
];
|
229 |
+
|
230 |
+
return apply_filters( 'wbcr_cmp_comments_form_options', $formOptions );
|
231 |
+
}
|
232 |
+
}
|
components/comments-plus/admin/pages/class-page-delete-comments.php
ADDED
@@ -0,0 +1,513 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 WbcrCmp_DeleteCommentsPage extends Wbcr_FactoryClearfy213_PageBase {
|
20 |
+
|
21 |
+
/**
|
22 |
+
* {@inheritDoc}
|
23 |
+
*
|
24 |
+
* @var string
|
25 |
+
*/
|
26 |
+
public $id = "delete_comments";
|
27 |
+
|
28 |
+
/**
|
29 |
+
* {@inheritDoc}
|
30 |
+
*
|
31 |
+
* @var string
|
32 |
+
*/
|
33 |
+
public $type = "page";
|
34 |
+
|
35 |
+
/**
|
36 |
+
* {@inheritDoc}
|
37 |
+
*
|
38 |
+
* @var string
|
39 |
+
*/
|
40 |
+
public $page_parent_page = "comments";
|
41 |
+
|
42 |
+
/**
|
43 |
+
* {@inheritDoc}
|
44 |
+
*
|
45 |
+
* @var string
|
46 |
+
*/
|
47 |
+
public $page_menu_dashicon = 'dashicons-testimonial';
|
48 |
+
|
49 |
+
/**
|
50 |
+
* {@inheritDoc}
|
51 |
+
*
|
52 |
+
* @var bool
|
53 |
+
*/
|
54 |
+
public $available_for_multisite = true;
|
55 |
+
|
56 |
+
/**
|
57 |
+
* {@inheritDoc}
|
58 |
+
*
|
59 |
+
* @since 1.1.0
|
60 |
+
* @var bool
|
61 |
+
*/
|
62 |
+
public $show_right_sidebar_in_options = true;
|
63 |
+
|
64 |
+
/**
|
65 |
+
* WbcrCmp_DeleteCommentsPage constructor.
|
66 |
+
*
|
67 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
68 |
+
*
|
69 |
+
* @param \Wbcr_Factory421_Plugin $plugin
|
70 |
+
*/
|
71 |
+
public function __construct( Wbcr_Factory421_Plugin $plugin ) {
|
72 |
+
$this->menu_title = __( 'Comments cleaner', 'comments-plus' );
|
73 |
+
|
74 |
+
parent::__construct( $plugin );
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* {@inheritDoc}
|
79 |
+
*
|
80 |
+
* @param $notices
|
81 |
+
* @param Wbcr_Factory421_Plugin $plugin
|
82 |
+
*
|
83 |
+
* @return array
|
84 |
+
* @see libs\factory\pages\themplates\FactoryPages421_ImpressiveThemplate
|
85 |
+
*/
|
86 |
+
public function getActionNotices( $notices ) {
|
87 |
+
|
88 |
+
$notices[] = [
|
89 |
+
'conditions' => [
|
90 |
+
'wbcr_cmp_clear_comments' => 1
|
91 |
+
],
|
92 |
+
'type' => 'success',
|
93 |
+
'message' => __( 'All comments have been deleted.', 'comments-plus' )
|
94 |
+
];
|
95 |
+
|
96 |
+
$notices[] = [
|
97 |
+
'conditions' => [
|
98 |
+
'wbcr_cmp_clear_comments_error' => 1,
|
99 |
+
'wbcr_cmp_code' => 'interal_error'
|
100 |
+
],
|
101 |
+
'type' => 'danger',
|
102 |
+
'message' => __( 'An error occurred while trying to delete comments. Internal error occured. Please try again later.', 'comments-plus' )
|
103 |
+
];
|
104 |
+
|
105 |
+
return $notices;
|
106 |
+
}
|
107 |
+
|
108 |
+
public function getStats() {
|
109 |
+
if ( WCM_Plugin::app()->isNetworkActive() ) {
|
110 |
+
$stats = $this->getMultisiteStats();
|
111 |
+
} else {
|
112 |
+
$stats = $this->getSiteStats();
|
113 |
+
}
|
114 |
+
|
115 |
+
return $stats;
|
116 |
+
}
|
117 |
+
|
118 |
+
public function getMultisiteStats() {
|
119 |
+
$stats = [];
|
120 |
+
foreach ( WCM_Plugin::app()->getActiveSites() as $site ) {
|
121 |
+
switch_to_blog( $site->blog_id );
|
122 |
+
$site_stats = $this->getSiteStats();
|
123 |
+
$stats = $this->mergeStats( $stats, $site_stats );
|
124 |
+
restore_current_blog();
|
125 |
+
}
|
126 |
+
|
127 |
+
return $stats;
|
128 |
+
}
|
129 |
+
|
130 |
+
public function mergeStats( $current_stats, $new_stats ) {
|
131 |
+
if ( ! isset( $current_stats['stat_data'] ) ) {
|
132 |
+
$current_stats['stat_data'] = $new_stats['stat_data'];
|
133 |
+
} else {
|
134 |
+
$comment_fields = [ 'total_comments', 'order_notes_count', 'spamcount', 'unpcount', 'trashcount' ];
|
135 |
+
foreach ( $comment_fields as $comment_field ) {
|
136 |
+
if ( is_null( $current_stats['stat_data'][0]->$comment_field ) ) {
|
137 |
+
$current_stats['stat_data'][0]->$comment_field = 0;
|
138 |
+
}
|
139 |
+
if ( is_null( $new_stats['stat_data'][0]->$comment_field ) ) {
|
140 |
+
$new_stats['stat_data'][0]->$comment_field = 0;
|
141 |
+
}
|
142 |
+
if ( $new_stats['stat_data'][0]->$comment_field ) {
|
143 |
+
$current_stats['stat_data'][0]->$comment_field = $current_stats['stat_data'][0]->$comment_field + $new_stats['stat_data'][0]->$comment_field;
|
144 |
+
}
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
if ( ! isset( $current_stats['post_types'] ) ) {
|
149 |
+
$current_stats['post_types'] = $new_stats['post_types'];
|
150 |
+
} else {
|
151 |
+
foreach ( $new_stats['post_types'] as $post_type_key => $post_type ) {
|
152 |
+
if ( array_key_exists( $post_type_key, $current_stats['post_types'] ) ) {
|
153 |
+
$current_stats['post_types'][ $post_type_key ]['comments_count'] += $new_stats['post_types'][ $post_type_key ]['comments_count'];
|
154 |
+
} else {
|
155 |
+
$current_stats['post_types'][ $post_type_key ] = $new_stats['post_types'][ $post_type_key ];
|
156 |
+
}
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
return $current_stats;
|
161 |
+
}
|
162 |
+
|
163 |
+
|
164 |
+
public function getSiteStats() {
|
165 |
+
global $wpdb;
|
166 |
+
$stat_data = $wpdb->get_results( "SELECT count(*) as total_comments,
|
167 |
+
SUM(comment_type='order_note') as order_notes_count,
|
168 |
+
SUM(comment_approved='spam') as spamcount,
|
169 |
+
SUM(comment_approved='0') as unpcount,
|
170 |
+
SUM(comment_approved='trash') as trashcount
|
171 |
+
FROM {$wpdb->prefix}comments" );
|
172 |
+
|
173 |
+
$stat_data_by_post_type = $wpdb->get_results( "SELECT
|
174 |
+
SUM(comment_count) as type_comments_count, post_type
|
175 |
+
FROM $wpdb->posts
|
176 |
+
GROUP BY post_type" );
|
177 |
+
|
178 |
+
$types = get_post_types( [ 'public' => true ], 'objects' );
|
179 |
+
|
180 |
+
$post_types = [];
|
181 |
+
foreach ( (array) $types as $type_name => $type ) {
|
182 |
+
$comments_count = 0;
|
183 |
+
if ( ! empty( $stat_data_by_post_type ) ) {
|
184 |
+
foreach ( (array) $stat_data_by_post_type as $post_type_stat_value ) {
|
185 |
+
if ( $post_type_stat_value->post_type == $type_name ) {
|
186 |
+
$comments_count = $post_type_stat_value->type_comments_count;
|
187 |
+
}
|
188 |
+
}
|
189 |
+
}
|
190 |
+
|
191 |
+
$post_types[ $type_name ] = [ 'label' => $type->label, 'comments_count' => $comments_count ];
|
192 |
+
}
|
193 |
+
|
194 |
+
return [
|
195 |
+
'stat_data' => $stat_data,
|
196 |
+
'post_types' => $post_types
|
197 |
+
];
|
198 |
+
}
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Prints the content of the page
|
202 |
+
*
|
203 |
+
* @see libs\factory\pages\themplates\FactoryPages421_ImpressiveThemplate
|
204 |
+
*/
|
205 |
+
public function showPageContent() {
|
206 |
+
$stats = $this->getStats();
|
207 |
+
$stat_data = $stats['stat_data'];
|
208 |
+
$post_types = $stats['post_types'];
|
209 |
+
|
210 |
+
?>
|
211 |
+
<script>
|
212 |
+
/**
|
213 |
+
* Select all types by one click.
|
214 |
+
*/
|
215 |
+
jQuery(document).ready(function($) {
|
216 |
+
updateCommentsCounter();
|
217 |
+
|
218 |
+
var allTypesCheckbox = $('#wbcr-cmp-all-types-checkbox');
|
219 |
+
|
220 |
+
allTypesCheckbox.click(function() {
|
221 |
+
$('.wbcr-cmp-post-type-checkbox').prop("checked", $(this).prop("checked"));
|
222 |
+
updateCommentsCounter()
|
223 |
+
});
|
224 |
+
|
225 |
+
$('.wbcr-cmp-post-type-checkbox').click(function() {
|
226 |
+
if( !$(this).prop("checked") ) {
|
227 |
+
allTypesCheckbox.prop("checked", false);
|
228 |
+
}
|
229 |
+
updateCommentsCounter();
|
230 |
+
});
|
231 |
+
|
232 |
+
$('input[name="wbcr_cmp_delete_order_notes"]').click(function() {
|
233 |
+
updateCommentsCounter();
|
234 |
+
});
|
235 |
+
|
236 |
+
$('.wbcr-cmp-delete-comments-button').click(function() {
|
237 |
+
var confrimDelete = confirm('<?php _e( 'Are you sure you want to delete comments from the database without restoring?', 'comments-plus' ); ?>');
|
238 |
+
|
239 |
+
if( !confrimDelete ) {
|
240 |
+
return false;
|
241 |
+
}
|
242 |
+
|
243 |
+
$(this).submit();
|
244 |
+
});
|
245 |
+
|
246 |
+
function updateCommentsCounter() {
|
247 |
+
var commentsCount = 0;
|
248 |
+
$('.wbcr-cmp-post-type-checkbox:checked, input[name="wbcr_cmp_delete_order_notes"]:checked').each(function() {
|
249 |
+
commentsCount += $(this).data('comments-number');
|
250 |
+
});
|
251 |
+
|
252 |
+
$('.wbcr-cmp-delete-comments-button').val('<?php _e( 'Delete ', 'comments-plus' ) ?>(' + commentsCount + ')');
|
253 |
+
}
|
254 |
+
});
|
255 |
+
</script>
|
256 |
+
<div class="wbcr-factory-page-group-header" style="margin-top:0;">
|
257 |
+
<strong><?php _e( 'Comments clearing tools', 'comments-plus' ) ?></strong>
|
258 |
+
<p>
|
259 |
+
<?php _e( 'These functions can be useful for global disabling comments or bulk cleaning spam comments.', 'comments-plus' ) ?>
|
260 |
+
</p>
|
261 |
+
</div>
|
262 |
+
<form method="post" action="<?= $this->getActionUrl( 'delete-all-comments' ) ?>" style="padding: 20px;">
|
263 |
+
<h5><?php _e( 'Remove all comments', 'comments-plus' ); ?></h5>
|
264 |
+
<p><?php _e( 'You can delete all comments in your database with one click.', 'comments-plus' ); ?></p>
|
265 |
+
<p><strong><?php _e( 'Choose post types', 'comments-plus' ); ?></strong>
|
266 |
+
<div style="height:150px; width:400px; padding:10px 10px 0; background: #fff; border:1px solid #ccc; overflow-y: scroll; overflow-x:hidden;">
|
267 |
+
<p>
|
268 |
+
<label>
|
269 |
+
<input type="checkbox" id="wbcr-cmp-all-types-checkbox" name="wbcr_cmp_post_type[]" value="all" checked/> <?php _e( 'Select all', 'comments-plus' ); ?>
|
270 |
+
</label>
|
271 |
+
</p>
|
272 |
+
<?php foreach ( (array) $post_types as $key => $type ): ?>
|
273 |
+
<p>
|
274 |
+
<label>
|
275 |
+
<input type="checkbox" data-comments-number="<?= $type['comments_count'] ?>" class="wbcr-cmp-post-type-checkbox" name="wbcr_cmp_post_type[]" value="<?= esc_attr( $key ) ?>" checked/> <?= $type['label'] ?>
|
276 |
+
(<?= $type['comments_count'] ?>)
|
277 |
+
</label>
|
278 |
+
</p>
|
279 |
+
<?php endforeach; ?>
|
280 |
+
</div>
|
281 |
+
<?php if ( class_exists( 'WooCommerce' ) ):
|
282 |
+
?>
|
283 |
+
<p style="margin:15px 0 0">
|
284 |
+
<label>
|
285 |
+
<input type="checkbox" data-comments-number="<?= $stat_data[0]->order_notes_count ?>" name="wbcr_cmp_delete_order_notes" value="1"/> <?php printf( __( 'Delete Woocommerce order notices? (%d)', 'comments-plus' ), $stat_data[0]->order_notes_count ); ?>
|
286 |
+
</label>
|
287 |
+
</p>
|
288 |
+
<?php endif;
|
289 |
+
?>
|
290 |
+
<p style="margin-top:15px;">
|
291 |
+
<input type="submit" name="wbcr_cmp_delete_all" class="button button-default wbcr-cmp-delete-comments-button" value="<?php printf( __( 'Delete (%s)', 'comments-plus' ), $stat_data[0]->total_comments ); ?>">
|
292 |
+
</p>
|
293 |
+
<?php wp_nonce_field( $this->getResultId() . '_delete_all_comments' ) ?>
|
294 |
+
</form>
|
295 |
+
<div style="padding: 20px;">
|
296 |
+
<hr/>
|
297 |
+
<h5><?php _e( 'Remove spam comments', 'comments-plus' ); ?></h5>
|
298 |
+
<p><?php _e( 'You can remove only spam comments from the database with one click.', 'comments-plus' ); ?></p>
|
299 |
+
<a href="<?= wp_nonce_url( $this->getActionUrl( 'delete-spam-comments' ), $this->getResultId() . '_delete_spam_comments' ) ?>" class="button button-default wbcr-cmp-delete-comments-button">
|
300 |
+
<?php printf( __( 'Delete (%d)', 'comments-plus' ), $stat_data[0]->spamcount ); ?>
|
301 |
+
</a>
|
302 |
+
<hr/>
|
303 |
+
<h5><?php _e( 'Remove unapproved comments', 'comments-plus' ); ?></h5>
|
304 |
+
<p><?php _e( 'You can remove only unapproved comments from the database with one click.', 'comments-plus' ); ?></p>
|
305 |
+
<a href="<?= wp_nonce_url( $this->getActionUrl( 'delete-unaproved-comments' ), $this->getResultId() . '_delete_unaproved_comments' ) ?>" class="button button-default wbcr-cmp-delete-comments-button">
|
306 |
+
<?php printf( __( 'Delete (%d)', 'comments-plus' ), $stat_data[0]->unpcount ); ?>
|
307 |
+
</a>
|
308 |
+
<hr/>
|
309 |
+
<h5><?php _e( 'Remove trashed comments', 'comments-plus' ); ?></h5>
|
310 |
+
<p><?php _e( 'You can remove only trashed comments from the database with one click.', 'comments-plus' ); ?></p>
|
311 |
+
<a href="<?= wp_nonce_url( $this->getActionUrl( 'delete-trash-comments' ), $this->getResultId() . '_delete_trash_comments' ) ?>" class="button button-default wbcr-cmp-delete-comments-button">
|
312 |
+
<?php printf( __( 'Delete (%d)', 'comments-plus' ), $stat_data[0]->trashcount ); ?>
|
313 |
+
</a>
|
314 |
+
</div>
|
315 |
+
<?php
|
316 |
+
}
|
317 |
+
|
318 |
+
/**
|
319 |
+
* @return bool
|
320 |
+
*/
|
321 |
+
protected function deleteAllComments() {
|
322 |
+
global $wpdb;
|
323 |
+
$delete_order_notes = $this->request->post( 'wbcr_cmp_delete_order_notes', false, 'intval' );
|
324 |
+
|
325 |
+
if ( $wpdb->query( "TRUNCATE $wpdb->commentmeta" ) != false ) {
|
326 |
+
$delete_all_sql = "TRUNCATE $wpdb->comments";
|
327 |
+
if ( class_exists( 'WooCommerce' ) ) {
|
328 |
+
if ( ! $delete_order_notes ) {
|
329 |
+
$delete_all_sql = "DELETE FROM $wpdb->comments WHERE comment_type != 'order_note'";
|
330 |
+
}
|
331 |
+
}
|
332 |
+
if ( $wpdb->query( $delete_all_sql ) != false ) {
|
333 |
+
$wpdb->query( "UPDATE $wpdb->posts SET comment_count = 0 WHERE post_author != 0" );
|
334 |
+
$wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" );
|
335 |
+
$wpdb->query( "OPTIMIZE TABLE $wpdb->comments" );
|
336 |
+
|
337 |
+
return true;
|
338 |
+
}
|
339 |
+
}
|
340 |
+
|
341 |
+
return false;
|
342 |
+
}
|
343 |
+
|
344 |
+
/**
|
345 |
+
* @param string $post_type
|
346 |
+
*
|
347 |
+
* @return bool
|
348 |
+
*/
|
349 |
+
protected function deleteCommentsByPostType( $post_type = 'post' ) {
|
350 |
+
global $wpdb;
|
351 |
+
|
352 |
+
$delete_order_notes = $this->request->post( 'wbcr_cmp_delete_order_notes', false, 'intval' );
|
353 |
+
|
354 |
+
$wpdb->query( "DELETE cmeta FROM $wpdb->commentmeta cmeta INNER JOIN $wpdb->comments comments ON cmeta.comment_id=comments.comment_ID INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '%s'" );
|
355 |
+
|
356 |
+
$delete_certain_sql = "DELETE comments FROM $wpdb->comments comments INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '%s'";
|
357 |
+
|
358 |
+
if ( class_exists( 'WooCommerce' ) ) {
|
359 |
+
if ( ! $delete_order_notes ) {
|
360 |
+
$delete_certain_sql .= " and comment_type != 'order_note'";
|
361 |
+
}
|
362 |
+
}
|
363 |
+
|
364 |
+
$wpdb->query( $wpdb->prepare( $delete_certain_sql, $post_type ) );
|
365 |
+
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET comment_count = 0 WHERE post_author != 0 AND post_type = '%s'", $post_type ) );
|
366 |
+
|
367 |
+
return true;
|
368 |
+
}
|
369 |
+
|
370 |
+
/**
|
371 |
+
* @param $post_types
|
372 |
+
*
|
373 |
+
* @return bool
|
374 |
+
*/
|
375 |
+
protected function deleteCommentsByPostTypes( $post_types ) {
|
376 |
+
global $wpdb;
|
377 |
+
|
378 |
+
if ( empty( $post_types ) || ! is_array( $post_types ) ) {
|
379 |
+
return false;
|
380 |
+
}
|
381 |
+
|
382 |
+
foreach ( $post_types as $post_type ) {
|
383 |
+
$this->deleteCommentsByPostType( $post_type );
|
384 |
+
}
|
385 |
+
|
386 |
+
$wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" );
|
387 |
+
$wpdb->query( "OPTIMIZE TABLE $wpdb->comments" );
|
388 |
+
|
389 |
+
return true;
|
390 |
+
}
|
391 |
+
|
392 |
+
/**
|
393 |
+
* This action deletes all comments from the database without restoring.
|
394 |
+
*/
|
395 |
+
public function deleteAllCommentsAction() {
|
396 |
+
check_admin_referer( $this->getResultId() . '_delete_all_comments' );
|
397 |
+
|
398 |
+
if ( isset( $_POST['wbcr_cmp_delete_all'] ) ) {
|
399 |
+
$post_types = $this->request->post( 'wbcr_cmp_post_type', [], true );
|
400 |
+
|
401 |
+
$result = false;
|
402 |
+
|
403 |
+
if ( empty( $post_types ) || in_array( 'all', $post_types ) ) {
|
404 |
+
if ( WCM_Plugin::app()->isNetworkActive() ) {
|
405 |
+
foreach ( WCM_Plugin::app()->getActiveSites() as $site ) {
|
406 |
+
switch_to_blog( $site->blog_id );
|
407 |
+
$result = $this->deleteAllComments();
|
408 |
+
restore_current_blog();
|
409 |
+
}
|
410 |
+
} else {
|
411 |
+
$result = $this->deleteAllComments();
|
412 |
+
}
|
413 |
+
} else {
|
414 |
+
if ( WCM_Plugin::app()->isNetworkActive() ) {
|
415 |
+
foreach ( WCM_Plugin::app()->getActiveSites() as $site ) {
|
416 |
+
switch_to_blog( $site->blog_id );
|
417 |
+
$result = $this->deleteCommentsByPostTypes( $post_types );
|
418 |
+
restore_current_blog();
|
419 |
+
}
|
420 |
+
} else {
|
421 |
+
$result = $this->deleteCommentsByPostTypes( $post_types );
|
422 |
+
}
|
423 |
+
}
|
424 |
+
|
425 |
+
if ( $result ) {
|
426 |
+
$this->redirectToAction( 'index', [
|
427 |
+
'wbcr_cmp_clear_comments' => '1'
|
428 |
+
] );
|
429 |
+
} else {
|
430 |
+
$this->redirectToAction( 'index', [
|
431 |
+
'wbcr_cmp_clear_comments_error' => '1',
|
432 |
+
'wbcr_cmp_code' => 'interal_error',
|
433 |
+
] );
|
434 |
+
}
|
435 |
+
}
|
436 |
+
|
437 |
+
$this->redirectToAction( 'index' );
|
438 |
+
}
|
439 |
+
|
440 |
+
/**
|
441 |
+
* The basic function of deleting comments.
|
442 |
+
*
|
443 |
+
* @param int|string $type
|
444 |
+
*/
|
445 |
+
public function deleteComments( $type = 0 ) {
|
446 |
+
if ( in_array( $type, [ 'spam', 'trash', 0 ] ) ) {
|
447 |
+
|
448 |
+
if ( WCM_Plugin::app()->isNetworkActive() ) {
|
449 |
+
foreach ( WCM_Plugin::app()->getActiveSites() as $site ) {
|
450 |
+
switch_to_blog( $site->blog_id );
|
451 |
+
$this->deleteCommentsByType( $type );
|
452 |
+
restore_current_blog();
|
453 |
+
}
|
454 |
+
} else {
|
455 |
+
$this->deleteCommentsByType( $type );
|
456 |
+
}
|
457 |
+
|
458 |
+
$this->redirectToAction( 'index', [
|
459 |
+
'wbcr_cmp_clear_comments' => '1'
|
460 |
+
] );
|
461 |
+
}
|
462 |
+
}
|
463 |
+
|
464 |
+
/**
|
465 |
+
* @param int $type
|
466 |
+
*
|
467 |
+
* @return false|int
|
468 |
+
*/
|
469 |
+
private function deleteCommentsByType( $type = 0 ) {
|
470 |
+
global $wpdb;
|
471 |
+
|
472 |
+
$wpdb->query( "DELETE cmeta
|
473 |
+
FROM $wpdb->commentmeta cmeta
|
474 |
+
INNER JOIN {$wpdb->comments} comments ON cmeta.comment_id=comments.comment_ID
|
475 |
+
WHERE comment_approved='{$type}'" );
|
476 |
+
|
477 |
+
$res = $wpdb->query( "DELETE FROM {$wpdb->comments} WHERE comment_approved='{$type}'" );
|
478 |
+
|
479 |
+
if ( $res ) {
|
480 |
+
$wpdb->query( "OPTIMIZE TABLE {$wpdb->comments}" );
|
481 |
+
$wpdb->query( "OPTIMIZE TABLE {$wpdb->commentmeta}" );
|
482 |
+
}
|
483 |
+
|
484 |
+
return $res;
|
485 |
+
}
|
486 |
+
|
487 |
+
/**
|
488 |
+
* This action deletes spam comments
|
489 |
+
*/
|
490 |
+
public function deleteSpamCommentsAction() {
|
491 |
+
check_admin_referer( $this->getResultId() . '_delete_spam_comments' );
|
492 |
+
|
493 |
+
$this->deleteComments( 'spam' );
|
494 |
+
}
|
495 |
+
|
496 |
+
/**
|
497 |
+
* This action deletes unaproved comments
|
498 |
+
*/
|
499 |
+
public function deleteUnaprovedCommentsAction() {
|
500 |
+
check_admin_referer( $this->getResultId() . '_delete_unaproved_comments' );
|
501 |
+
|
502 |
+
$this->deleteComments();
|
503 |
+
}
|
504 |
+
|
505 |
+
/**
|
506 |
+
* This action deletes trash comments
|
507 |
+
*/
|
508 |
+
public function deleteTrashCommentsAction() {
|
509 |
+
check_admin_referer( $this->getResultId() . '_delete_trash_comments' );
|
510 |
+
|
511 |
+
$this->deleteComments( 'trash' );
|
512 |
+
}
|
513 |
+
}
|
components/comments-plus/admin/pages/class-page-more-features.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
* НЕ поддерживает режим работы с мультисаймами!
|
17 |
+
*
|
18 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
19 |
+
*
|
20 |
+
* @copyright (c) 2018 Webraftic Ltd
|
21 |
+
*/
|
22 |
+
class WbcrCmp_MoreFeaturesPage extends Wbcr_FactoryClearfy213_MoreFeaturesPage {
|
23 |
+
|
24 |
+
}
|
components/comments-plus/admin/pages/comments.php
DELETED
@@ -1,203 +0,0 @@
|
|
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 WbcrCmp_CommentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* The id of the page in the admin menu.
|
17 |
-
*
|
18 |
-
* Mainly used to navigate between pages.
|
19 |
-
* @see FactoryPages410_AdminPage
|
20 |
-
*
|
21 |
-
* @since 1.0.0
|
22 |
-
* @var string
|
23 |
-
*/
|
24 |
-
public $id = "comments";
|
25 |
-
public $page_menu_dashicon = 'dashicons-testimonial';
|
26 |
-
/**
|
27 |
-
* Доступена для мультисайтов
|
28 |
-
* @var bool
|
29 |
-
*/
|
30 |
-
public $available_for_multisite = true;
|
31 |
-
|
32 |
-
/**
|
33 |
-
* @param Wbcr_Factory409_Plugin $plugin
|
34 |
-
*/
|
35 |
-
public function __construct(Wbcr_Factory409_Plugin $plugin)
|
36 |
-
{
|
37 |
-
$this->menu_title = __('Disable comments', 'comments-plus');
|
38 |
-
$this->page_menu_short_description = __('Manage site comments', 'comments-plus');
|
39 |
-
|
40 |
-
if( !defined('LOADING_COMMENTS_PLUS_AS_ADDON') ) {
|
41 |
-
$this->internal = false;
|
42 |
-
$this->menu_target = 'options-general.php';
|
43 |
-
$this->add_link_to_plugin_actions = true;
|
44 |
-
}
|
45 |
-
|
46 |
-
parent::__construct($plugin);
|
47 |
-
}
|
48 |
-
|
49 |
-
public function getMenuTitle()
|
50 |
-
{
|
51 |
-
return defined('LOADING_COMMENTS_PLUS_AS_ADDON') ? __('Comments', 'comments-plus') : __('General', 'comments-plus');
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* Permalinks options.
|
56 |
-
*
|
57 |
-
* @since 1.0.0
|
58 |
-
* @return mixed[]
|
59 |
-
*/
|
60 |
-
public function getPageOptions()
|
61 |
-
{
|
62 |
-
$options = array();
|
63 |
-
|
64 |
-
$options[] = array(
|
65 |
-
'type' => 'html',
|
66 |
-
'html' => '<div class="wbcr-factory-page-group-header"><strong>' . __('Global disabling of comments', 'comments-plus') . '</strong><p>' . __('What is the difference between these and native WordPress functions? WordPress disables comments only for new posts! Using the functions below, you can disable comments globally, even for old posts, and you can choose which post types comments to disable. The plugin also disables the comment functionality itself, which creates a certain load on the site.', 'comments-plus') . '</p></div>'
|
67 |
-
);
|
68 |
-
|
69 |
-
$args = array('public' => true);
|
70 |
-
|
71 |
-
if( $this->plugin->isNetworkActive() ) {
|
72 |
-
$args['_builtin'] = true;
|
73 |
-
}
|
74 |
-
|
75 |
-
$types = get_post_types($args, 'objects');
|
76 |
-
|
77 |
-
/*foreach( array_keys( $types ) as $type ) {
|
78 |
-
if( ! in_array( $type, $this->modified_types ) && ! post_type_supports( $type, 'comments' ) ) // the type doesn't support comments anyway
|
79 |
-
unset( $types[$type] );
|
80 |
-
}*/
|
81 |
-
|
82 |
-
$post_types = array();
|
83 |
-
foreach($types as $type_name => $type) {
|
84 |
-
$post_types[] = array($type_name, $type->label);
|
85 |
-
}
|
86 |
-
|
87 |
-
$options[] = array(
|
88 |
-
'type' => 'dropdown',
|
89 |
-
'name' => 'disable_comments',
|
90 |
-
'way' => 'buttons',
|
91 |
-
'title' => __('Disable comments', 'comments-plus'),
|
92 |
-
'data' => array(
|
93 |
-
array('enable_comments', __('Not disable', 'comments-plus')),
|
94 |
-
array(
|
95 |
-
'disable_comments',
|
96 |
-
__('Everywhere', 'comments-plus'),
|
97 |
-
sprintf(__('You can delete all comments in the database by clicking on this link (<a href="%s">cleaning comments in database</a>).', 'comments-plus'), admin_url('admin.php?page=delete_comments-' . $this->plugin->getPluginName()))
|
98 |
-
),
|
99 |
-
array(
|
100 |
-
'disable_certain_post_types_comments',
|
101 |
-
__('On certain post types', 'comments-plus'),
|
102 |
-
sprintf(__('You can delete all comments for the selected post types. Select the post types below and save the settings. After that, click the link (<a href="%s">delete all comments for the selected post types in database</a>).', 'comments-plus'), admin_url('admin.php?page=delete_comments-' . $this->plugin->getPluginName()))
|
103 |
-
)
|
104 |
-
),
|
105 |
-
'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
|
106 |
-
'hint' => __('Everywhere - Warning: This option is global and will affect your entire site. Use it only if you want to disable comments everywhere. A complete description of what this option does is available here', 'comments-plus') . '<br><br>' . __('On certain post types - Disabling comments will also disable trackbacks and pingbacks. All comment-related fields will also be hidden from the edit/quick-edit screens of the affected posts. These settings cannot be overridden for individual posts.', 'comments-plus'),
|
107 |
-
'default' => 'enable_comments',
|
108 |
-
'events' => array(
|
109 |
-
'disable_certain_post_types_comments' => array(
|
110 |
-
'show' => '.factory-control-disable_comments_for_post_types, #wbcr-clearfy-comments-base-options,.factory-control-disable_comments_permanent,.factory-control-disable_comments_extra_post_types'
|
111 |
-
),
|
112 |
-
'enable_comments' => array(
|
113 |
-
'show' => '#wbcr-clearfy-comments-base-options',
|
114 |
-
'hide' => '.factory-control-disable_comments_for_post_types,.factory-control-disable_comments_permanent,.factory-control-disable_comments_extra_post_types'
|
115 |
-
),
|
116 |
-
'disable_comments' => array(
|
117 |
-
'show' => '.factory-control-disable_comments_permanent',
|
118 |
-
'hide' => '.factory-control-disable_comments_for_post_types, #wbcr-clearfy-comments-base-options,.factory-control-disable_comments_extra_post_types'
|
119 |
-
)
|
120 |
-
)
|
121 |
-
);
|
122 |
-
|
123 |
-
$options[] = array(
|
124 |
-
'type' => 'list',
|
125 |
-
'way' => 'checklist',
|
126 |
-
'name' => 'disable_comments_for_post_types',
|
127 |
-
'title' => __('Select post types', 'comments-plus'),
|
128 |
-
'data' => $post_types,
|
129 |
-
'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
|
130 |
-
'hint' => __('Select the post types for which comments will be disabled', 'comments-plus'),
|
131 |
-
'default' => 'post,page,attachment'
|
132 |
-
);
|
133 |
-
|
134 |
-
if( $this->plugin->isNetworkActive() ) {
|
135 |
-
$options[] = array(
|
136 |
-
'type' => 'textbox',
|
137 |
-
'name' => 'disable_comments_extra_post_types',
|
138 |
-
'title' => __('Custom post types', 'comments-plus'),
|
139 |
-
'data' => $post_types,
|
140 |
-
'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
|
141 |
-
'hint' => __('Only the built-in post types appear above. If you want to disable comments on other custom post types on the entire network, you can supply a comma-separated list of post types below (use the slug that identifies the post type).', 'comments-plus'),
|
142 |
-
'default' => ''
|
143 |
-
);
|
144 |
-
}
|
145 |
-
$options[] = array(
|
146 |
-
'type' => 'checkbox',
|
147 |
-
'way' => 'buttons',
|
148 |
-
'name' => 'disable_comments_permanent',
|
149 |
-
'title' => __('Use persistent mode', 'comments-plus'),
|
150 |
-
'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
|
151 |
-
'hint' => __('This will make persistent changes to your database — comments will remain closed even if you later disable the plugin! You should not use it if you only want to disable comments temporarily.', 'comments-plus'),
|
152 |
-
'default' => false
|
153 |
-
);
|
154 |
-
|
155 |
-
$options[] = array(
|
156 |
-
'type' => 'div',
|
157 |
-
'id' => 'wbcr-clearfy-comments-base-options',
|
158 |
-
'items' => array(
|
159 |
-
array(
|
160 |
-
'type' => 'html',
|
161 |
-
'html' => '<div class="wbcr-factory-page-group-header"><strong>' . __('General settings for comments', 'comments-plus') . '</strong><p>' . __('These settings will help you improve SEO and reduce the amount of spam.', 'comments-plus') . '</p></div>'
|
162 |
-
),
|
163 |
-
array(
|
164 |
-
'type' => 'checkbox',
|
165 |
-
'way' => 'buttons',
|
166 |
-
'name' => 'remove_url_from_comment_form',
|
167 |
-
'title' => __('Remove field "site" in comment form', 'comments-plus'),
|
168 |
-
'layout' => array('hint-type' => 'icon', 'hint-icon-color' => 'grey'),
|
169 |
-
'hint' => __('Tired of spam in the comments? Do visitors leave "blank" comments for the sake of a link to their site?', 'comments-plus') . '<br><b>Clearfy: </b>' . __('Removes the "Site" field from the comment form.', 'comments-plus') . '<br>--<br><span class="wbcr-factory-light-orange-color"> *' . __('Works with the standard comment form, if the form is manually written in your theme-it probably will not work!', 'comments-plus') . '</span>',
|
170 |
-
'default' => false
|
171 |
-
),
|
172 |
-
array(
|
173 |
-
'type' => 'checkbox',
|
174 |
-
'way' => 'buttons',
|
175 |
-
'name' => 'comment_text_convert_links_pseudo',
|
176 |
-
'title' => __('Replace external links in comments on the JavaScript code', 'comments-plus'),
|
177 |
-
'layout' => array('hint-type' => 'icon'),
|
178 |
-
'hint' => __('Superfluous external links from comments, which can be typed from a dozen and more for one article, do not bring anything good for promotion.', 'comments-plus') . '<br><br><b>Clearfy: </b>' . sprintf(__('Replaces the links of this kind of %s, on links of this kind %s', 'comments-plus'), '<code>a href="http://yourdomain.com" rel="nofollow"</code>', '<code>span data-uri="http://yourdomain.com"</code>'),
|
179 |
-
'default' => false
|
180 |
-
),
|
181 |
-
array(
|
182 |
-
'type' => 'checkbox',
|
183 |
-
'way' => 'buttons',
|
184 |
-
'name' => 'pseudo_comment_author_link',
|
185 |
-
'title' => __('Replace external links from comment authors on the JavaScript code', 'comments-plus'),
|
186 |
-
'layout' => array('hint-type' => 'icon'),
|
187 |
-
'hint' => __('Up to 90 percent of comments in the blog can be left for the sake of an external link. Even nofollow from page weight loss here does not help.', 'comments-plus') . '<br><br><b>Clearfy: </b>' . __('Replaces the links of the authors of comments on the JavaScript code, it is impossible to distinguish it from usual links.', 'comments-plus') . '<br>--<br><i>' . __('In some Wordpress topics this may not work.', 'comments-plus') . '</i>',
|
188 |
-
'default' => false
|
189 |
-
)
|
190 |
-
)
|
191 |
-
);
|
192 |
-
|
193 |
-
$formOptions = array();
|
194 |
-
|
195 |
-
$formOptions[] = array(
|
196 |
-
'type' => 'form-group',
|
197 |
-
'items' => $options,
|
198 |
-
//'cssClass' => 'postbox'
|
199 |
-
);
|
200 |
-
|
201 |
-
return apply_filters('wbcr_cmp_comments_form_options', $formOptions);
|
202 |
-
}
|
203 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components/comments-plus/admin/pages/delete-comments.php
DELETED
@@ -1,504 +0,0 @@
|
|
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 |
-
|
15 |
-
class WbcrCmp_DeleteCommentsPage extends Wbcr_FactoryClearfy206_PageBase {
|
16 |
-
|
17 |
-
/**
|
18 |
-
* The id of the page in the admin menu.
|
19 |
-
*
|
20 |
-
* Mainly used to navigate between pages.
|
21 |
-
* @see FactoryPages410_AdminPage
|
22 |
-
*
|
23 |
-
* @since 1.0.0
|
24 |
-
* @var string
|
25 |
-
*/
|
26 |
-
public $id = "delete_comments";
|
27 |
-
public $type = "page";
|
28 |
-
public $page_parent_page = "comments";
|
29 |
-
public $page_menu_dashicon = 'dashicons-testimonial';
|
30 |
-
/**
|
31 |
-
* Доступена для мультисайтов
|
32 |
-
* @var bool
|
33 |
-
*/
|
34 |
-
public $available_for_multisite = true;
|
35 |
-
|
36 |
-
/**
|
37 |
-
* @param Wbcr_Factory409_Plugin $plugin
|
38 |
-
*/
|
39 |
-
public function __construct(Wbcr_Factory409_Plugin $plugin)
|
40 |
-
{
|
41 |
-
$this->menu_title = __('Comments cleaner', 'comments-plus');
|
42 |
-
|
43 |
-
parent::__construct($plugin);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* We register notifications for some actions
|
48 |
-
*
|
49 |
-
* @see libs\factory\pages\themplates\FactoryPages410_ImpressiveThemplate
|
50 |
-
* @param $notices
|
51 |
-
* @param Wbcr_Factory409_Plugin $plugin
|
52 |
-
* @return array
|
53 |
-
*/
|
54 |
-
public function getActionNotices($notices)
|
55 |
-
{
|
56 |
-
|
57 |
-
$notices[] = array(
|
58 |
-
'conditions' => array(
|
59 |
-
'wbcr_cmp_clear_comments' => 1
|
60 |
-
),
|
61 |
-
'type' => 'success',
|
62 |
-
'message' => __('All comments have been deleted.', 'comments-plus')
|
63 |
-
);
|
64 |
-
|
65 |
-
$notices[] = array(
|
66 |
-
'conditions' => array(
|
67 |
-
'wbcr_cmp_clear_comments_error' => 1,
|
68 |
-
'wbcr_cmp_code' => 'interal_error'
|
69 |
-
),
|
70 |
-
'type' => 'danger',
|
71 |
-
'message' => __('An error occurred while trying to delete comments. Internal error occured. Please try again later.', 'comments-plus')
|
72 |
-
);
|
73 |
-
|
74 |
-
return $notices;
|
75 |
-
}
|
76 |
-
|
77 |
-
public function getStats()
|
78 |
-
{
|
79 |
-
if( WCM_Plugin::app()->isNetworkActive() ) {
|
80 |
-
$stats = $this->getMultisiteStats();
|
81 |
-
} else {
|
82 |
-
$stats = $this->getSiteStats();
|
83 |
-
}
|
84 |
-
|
85 |
-
return $stats;
|
86 |
-
}
|
87 |
-
|
88 |
-
public function getMultisiteStats()
|
89 |
-
{
|
90 |
-
$stats = array();
|
91 |
-
foreach(WCM_Plugin::app()->getActiveSites() as $site) {
|
92 |
-
switch_to_blog($site->blog_id);
|
93 |
-
$site_stats = $this->getSiteStats();
|
94 |
-
$stats = $this->mergeStats($stats, $site_stats);
|
95 |
-
restore_current_blog();
|
96 |
-
}
|
97 |
-
|
98 |
-
return $stats;
|
99 |
-
}
|
100 |
-
|
101 |
-
public function mergeStats($current_stats, $new_stats)
|
102 |
-
{
|
103 |
-
if( !isset($current_stats['stat_data']) ) {
|
104 |
-
$current_stats['stat_data'] = $new_stats['stat_data'];
|
105 |
-
} else {
|
106 |
-
$comment_fields = array('total_comments', 'order_notes_count', 'spamcount', 'unpcount', 'trashcount');
|
107 |
-
foreach($comment_fields as $comment_field) {
|
108 |
-
if( is_null($current_stats['stat_data'][0]->$comment_field) ) {
|
109 |
-
$current_stats['stat_data'][0]->$comment_field = 0;
|
110 |
-
}
|
111 |
-
if( is_null($new_stats['stat_data'][0]->$comment_field) ) {
|
112 |
-
$new_stats['stat_data'][0]->$comment_field = 0;
|
113 |
-
}
|
114 |
-
if( $new_stats['stat_data'][0]->$comment_field ) {
|
115 |
-
$current_stats['stat_data'][0]->$comment_field = $current_stats['stat_data'][0]->$comment_field + $new_stats['stat_data'][0]->$comment_field;
|
116 |
-
}
|
117 |
-
}
|
118 |
-
}
|
119 |
-
|
120 |
-
if( !isset($current_stats['post_types']) ) {
|
121 |
-
$current_stats['post_types'] = $new_stats['post_types'];
|
122 |
-
} else {
|
123 |
-
foreach($new_stats['post_types'] as $post_type_key => $post_type) {
|
124 |
-
if( array_key_exists($post_type_key, $current_stats['post_types']) ) {
|
125 |
-
$current_stats['post_types'][$post_type_key]['comments_count'] += $new_stats['post_types'][$post_type_key]['comments_count'];
|
126 |
-
} else {
|
127 |
-
$current_stats['post_types'][$post_type_key] = $new_stats['post_types'][$post_type_key];
|
128 |
-
}
|
129 |
-
}
|
130 |
-
}
|
131 |
-
|
132 |
-
return $current_stats;
|
133 |
-
}
|
134 |
-
|
135 |
-
|
136 |
-
public function getSiteStats()
|
137 |
-
{
|
138 |
-
global $wpdb;
|
139 |
-
$stat_data = $wpdb->get_results("SELECT count(*) as total_comments,
|
140 |
-
SUM(comment_type='order_note') as order_notes_count,
|
141 |
-
SUM(comment_approved='spam') as spamcount,
|
142 |
-
SUM(comment_approved='0') as unpcount,
|
143 |
-
SUM(comment_approved='trash') as trashcount
|
144 |
-
FROM {$wpdb->prefix}comments");
|
145 |
-
|
146 |
-
$stat_data_by_post_type = $wpdb->get_results("SELECT
|
147 |
-
SUM(comment_count) as type_comments_count, post_type
|
148 |
-
FROM $wpdb->posts
|
149 |
-
GROUP BY post_type");
|
150 |
-
|
151 |
-
$types = get_post_types(array('public' => true), 'objects');
|
152 |
-
|
153 |
-
$post_types = array();
|
154 |
-
foreach((array)$types as $type_name => $type) {
|
155 |
-
$comments_count = 0;
|
156 |
-
if( !empty($stat_data_by_post_type) ) {
|
157 |
-
foreach((array)$stat_data_by_post_type as $post_type_stat_value) {
|
158 |
-
if( $post_type_stat_value->post_type == $type_name ) {
|
159 |
-
$comments_count = $post_type_stat_value->type_comments_count;
|
160 |
-
}
|
161 |
-
}
|
162 |
-
}
|
163 |
-
|
164 |
-
$post_types[$type_name] = array('label' => $type->label, 'comments_count' => $comments_count);
|
165 |
-
}
|
166 |
-
|
167 |
-
return array(
|
168 |
-
'stat_data' => $stat_data,
|
169 |
-
'post_types' => $post_types
|
170 |
-
);
|
171 |
-
}
|
172 |
-
|
173 |
-
/**
|
174 |
-
* Prints the content of the page
|
175 |
-
*
|
176 |
-
* @see libs\factory\pages\themplates\FactoryPages410_ImpressiveThemplate
|
177 |
-
*/
|
178 |
-
public function showPageContent()
|
179 |
-
{
|
180 |
-
$stats = $this->getStats();
|
181 |
-
$stat_data = $stats['stat_data'];
|
182 |
-
$post_types = $stats['post_types'];
|
183 |
-
|
184 |
-
?>
|
185 |
-
<script>
|
186 |
-
/**
|
187 |
-
* Select all types by one click.
|
188 |
-
*/
|
189 |
-
jQuery(document).ready(function($) {
|
190 |
-
updateCommentsCounter();
|
191 |
-
|
192 |
-
var allTypesCheckbox = $('#wbcr-cmp-all-types-checkbox');
|
193 |
-
|
194 |
-
allTypesCheckbox.click(function() {
|
195 |
-
$('.wbcr-cmp-post-type-checkbox').prop("checked", $(this).prop("checked"));
|
196 |
-
updateCommentsCounter()
|
197 |
-
});
|
198 |
-
|
199 |
-
$('.wbcr-cmp-post-type-checkbox').click(function() {
|
200 |
-
if( !$(this).prop("checked") ) {
|
201 |
-
allTypesCheckbox.prop("checked", false);
|
202 |
-
}
|
203 |
-
updateCommentsCounter();
|
204 |
-
});
|
205 |
-
|
206 |
-
$('input[name="wbcr_cmp_delete_order_notes"]').click(function() {
|
207 |
-
updateCommentsCounter();
|
208 |
-
});
|
209 |
-
|
210 |
-
$('.wbcr-cmp-delete-comments-button').click(function() {
|
211 |
-
var confrimDelete = confirm('<?php _e('Are you sure you want to delete comments from the database without restoring?', 'comments-plus'); ?>');
|
212 |
-
|
213 |
-
if( !confrimDelete ) {
|
214 |
-
return false;
|
215 |
-
}
|
216 |
-
|
217 |
-
$(this).submit();
|
218 |
-
});
|
219 |
-
|
220 |
-
function updateCommentsCounter() {
|
221 |
-
var commentsCount = 0;
|
222 |
-
$('.wbcr-cmp-post-type-checkbox:checked, input[name="wbcr_cmp_delete_order_notes"]:checked').each(function() {
|
223 |
-
commentsCount += $(this).data('comments-number');
|
224 |
-
});
|
225 |
-
|
226 |
-
$('.wbcr-cmp-delete-comments-button').val('<?php _e('Delete ', 'comments-plus') ?>(' + commentsCount + ')');
|
227 |
-
}
|
228 |
-
});
|
229 |
-
</script>
|
230 |
-
|
231 |
-
<div class="wbcr-factory-page-group-header" style="margin-top:0;">
|
232 |
-
<strong><?php _e('Comments clearing tools', 'comments-plus') ?></strong>
|
233 |
-
|
234 |
-
<p>
|
235 |
-
<?php _e('These functions can be useful for global disabling comments or bulk cleaning spam comments.', 'comments-plus') ?>
|
236 |
-
</p>
|
237 |
-
</div>
|
238 |
-
|
239 |
-
<form method="post" action="<?= $this->getActionUrl('delete-all-comments') ?>" style="padding: 20px;">
|
240 |
-
<h5><?php _e('Remove all comments', 'comments-plus'); ?></h5>
|
241 |
-
|
242 |
-
<p><?php _e('You can delete all comments in your database with one click.', 'comments-plus'); ?></p>
|
243 |
-
|
244 |
-
<p><strong><?php _e('Choose post types', 'comments-plus'); ?></strong>
|
245 |
-
|
246 |
-
<div style="height:150px; width:400px; padding:10px 10px 0; background: #fff; border:1px solid #ccc; overflow-y: scroll; overflow-x:hidden;">
|
247 |
-
<p>
|
248 |
-
<label>
|
249 |
-
<input type="checkbox" id="wbcr-cmp-all-types-checkbox" name="wbcr_cmp_post_type[]" value="all" checked/> <?php _e('Select all', 'comments-plus'); ?>
|
250 |
-
</label>
|
251 |
-
</p>
|
252 |
-
<?php foreach((array)$post_types as $key => $type): ?>
|
253 |
-
<p>
|
254 |
-
<label>
|
255 |
-
<input type="checkbox" data-comments-number="<?= $type['comments_count'] ?>" class="wbcr-cmp-post-type-checkbox" name="wbcr_cmp_post_type[]" value="<?= esc_attr($key) ?>" checked/> <?= $type['label'] ?>
|
256 |
-
(<?= $type['comments_count'] ?>)
|
257 |
-
</label>
|
258 |
-
</p>
|
259 |
-
<?php endforeach; ?>
|
260 |
-
</div>
|
261 |
-
|
262 |
-
<?php if( class_exists('WooCommerce') ):
|
263 |
-
?>
|
264 |
-
<p style="margin:15px 0 0">
|
265 |
-
<label>
|
266 |
-
<input type="checkbox" data-comments-number="<?= $stat_data[0]->order_notes_count ?>" name="wbcr_cmp_delete_order_notes" value="1"/> <?php printf(__('Delete Woocommerce order notices? (%d)', 'comments-plus'), $stat_data[0]->order_notes_count); ?>
|
267 |
-
</label>
|
268 |
-
</p>
|
269 |
-
<?php endif;
|
270 |
-
?>
|
271 |
-
<p style="margin-top:15px;">
|
272 |
-
<input type="submit" name="wbcr_cmp_delete_all" class="button button-default wbcr-cmp-delete-comments-button" value="<?php printf(__('Delete (%s)', 'comments-plus'), $stat_data[0]->total_comments); ?>">
|
273 |
-
</p>
|
274 |
-
<?php wp_nonce_field($this->getResultId() . '_delete_all_comments') ?>
|
275 |
-
</form>
|
276 |
-
|
277 |
-
<div style="padding: 20px;">
|
278 |
-
<hr/>
|
279 |
-
<h5><?php _e('Remove spam comments', 'comments-plus'); ?></h5>
|
280 |
-
|
281 |
-
<p><?php _e('You can remove only spam comments from the database with one click.', 'comments-plus'); ?></p>
|
282 |
-
<a href="<?= wp_nonce_url($this->getActionUrl('delete-spam-comments'), $this->getResultId() . '_delete_spam_comments') ?>" class="button button-default wbcr-cmp-delete-comments-button">
|
283 |
-
<?php printf(__('Delete (%d)', 'comments-plus'), $stat_data[0]->spamcount); ?>
|
284 |
-
</a>
|
285 |
-
<hr/>
|
286 |
-
<h5><?php _e('Remove unapproved comments', 'comments-plus'); ?></h5>
|
287 |
-
|
288 |
-
<p><?php _e('You can remove only unapproved comments from the database with one click.', 'comments-plus'); ?></p>
|
289 |
-
<a href="<?= wp_nonce_url($this->getActionUrl('delete-unaproved-comments'), $this->getResultId() . '_delete_unaproved_comments') ?>" class="button button-default wbcr-cmp-delete-comments-button">
|
290 |
-
<?php printf(__('Delete (%d)', 'comments-plus'), $stat_data[0]->unpcount); ?>
|
291 |
-
</a>
|
292 |
-
<hr/>
|
293 |
-
<h5><?php _e('Remove trashed comments', 'comments-plus'); ?></h5>
|
294 |
-
|
295 |
-
<p><?php _e('You can remove only trashed comments from the database with one click.', 'comments-plus'); ?></p>
|
296 |
-
<a href="<?= wp_nonce_url($this->getActionUrl('delete-trash-comments'), $this->getResultId() . '_delete_trash_comments') ?>" class="button button-default wbcr-cmp-delete-comments-button">
|
297 |
-
<?php printf(__('Delete (%d)', 'comments-plus'), $stat_data[0]->trashcount); ?>
|
298 |
-
</a>
|
299 |
-
</div>
|
300 |
-
<?php
|
301 |
-
}
|
302 |
-
|
303 |
-
/**
|
304 |
-
* @return bool
|
305 |
-
*/
|
306 |
-
protected function deleteAllComments()
|
307 |
-
{
|
308 |
-
global $wpdb;
|
309 |
-
$delete_order_notes = $this->request->post('wbcr_cmp_delete_order_notes', false, 'intval');
|
310 |
-
|
311 |
-
if( $wpdb->query("TRUNCATE $wpdb->commentmeta") != false ) {
|
312 |
-
$delete_all_sql = "TRUNCATE $wpdb->comments";
|
313 |
-
if( class_exists('WooCommerce') ) {
|
314 |
-
if( !$delete_order_notes ) {
|
315 |
-
$delete_all_sql = "DELETE FROM $wpdb->comments WHERE comment_type != 'order_note'";
|
316 |
-
}
|
317 |
-
}
|
318 |
-
if( $wpdb->query($delete_all_sql) != false ) {
|
319 |
-
$wpdb->query("UPDATE $wpdb->posts SET comment_count = 0 WHERE post_author != 0");
|
320 |
-
$wpdb->query("OPTIMIZE TABLE $wpdb->commentmeta");
|
321 |
-
$wpdb->query("OPTIMIZE TABLE $wpdb->comments");
|
322 |
-
|
323 |
-
return true;
|
324 |
-
}
|
325 |
-
}
|
326 |
-
|
327 |
-
return false;
|
328 |
-
}
|
329 |
-
|
330 |
-
/**
|
331 |
-
* @param string $post_type
|
332 |
-
* @return bool
|
333 |
-
*/
|
334 |
-
protected function deleteCommentsByPostType($post_type = 'post')
|
335 |
-
{
|
336 |
-
global $wpdb;
|
337 |
-
|
338 |
-
$delete_order_notes = $this->request->post('wbcr_cmp_delete_order_notes', false, 'intval');
|
339 |
-
|
340 |
-
$wpdb->query("DELETE cmeta FROM $wpdb->commentmeta cmeta INNER JOIN $wpdb->comments comments ON cmeta.comment_id=comments.comment_ID INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '%s'");
|
341 |
-
|
342 |
-
$delete_certain_sql = "DELETE comments FROM $wpdb->comments comments INNER JOIN $wpdb->posts posts ON comments.comment_post_ID=posts.ID WHERE posts.post_type = '%s'";
|
343 |
-
|
344 |
-
if( class_exists('WooCommerce') ) {
|
345 |
-
if( !$delete_order_notes ) {
|
346 |
-
$delete_certain_sql .= " and comment_type != 'order_note'";
|
347 |
-
}
|
348 |
-
}
|
349 |
-
|
350 |
-
$wpdb->query($wpdb->prepare($delete_certain_sql, $post_type));
|
351 |
-
$wpdb->query($wpdb->prepare("UPDATE $wpdb->posts SET comment_count = 0 WHERE post_author != 0 AND post_type = '%s'", $post_type));
|
352 |
-
|
353 |
-
return true;
|
354 |
-
}
|
355 |
-
|
356 |
-
/**
|
357 |
-
* @param $post_types
|
358 |
-
* @return bool
|
359 |
-
*/
|
360 |
-
protected function deleteCommentsByPostTypes($post_types)
|
361 |
-
{
|
362 |
-
global $wpdb;
|
363 |
-
|
364 |
-
if( empty($post_types) || !is_array($post_types) ) {
|
365 |
-
return false;
|
366 |
-
}
|
367 |
-
|
368 |
-
foreach($post_types as $post_type) {
|
369 |
-
$this->deleteCommentsByPostType($post_type);
|
370 |
-
}
|
371 |
-
|
372 |
-
$wpdb->query("OPTIMIZE TABLE $wpdb->commentmeta");
|
373 |
-
$wpdb->query("OPTIMIZE TABLE $wpdb->comments");
|
374 |
-
|
375 |
-
return true;
|
376 |
-
}
|
377 |
-
|
378 |
-
/**
|
379 |
-
* This action deletes all comments from the database without restoring.
|
380 |
-
*/
|
381 |
-
public function deleteAllCommentsAction()
|
382 |
-
{
|
383 |
-
check_admin_referer($this->getResultId() . '_delete_all_comments');
|
384 |
-
|
385 |
-
if( isset($_POST['wbcr_cmp_delete_all']) ) {
|
386 |
-
$post_types = $this->request->post('wbcr_cmp_post_type', array(), true);
|
387 |
-
|
388 |
-
$result = false;
|
389 |
-
|
390 |
-
if( empty($post_types) || in_array('all', $post_types) ) {
|
391 |
-
if( WCM_Plugin::app()->isNetworkActive() ) {
|
392 |
-
foreach(WCM_Plugin::app()->getActiveSites() as $site) {
|
393 |
-
switch_to_blog($site->blog_id);
|
394 |
-
$result = $this->deleteAllComments();
|
395 |
-
restore_current_blog();
|
396 |
-
}
|
397 |
-
} else {
|
398 |
-
$result = $this->deleteAllComments();
|
399 |
-
}
|
400 |
-
} else {
|
401 |
-
if( WCM_Plugin::app()->isNetworkActive() ) {
|
402 |
-
foreach(WCM_Plugin::app()->getActiveSites() as $site) {
|
403 |
-
switch_to_blog($site->blog_id);
|
404 |
-
$result = $this->deleteCommentsByPostTypes($post_types);
|
405 |
-
restore_current_blog();
|
406 |
-
}
|
407 |
-
} else {
|
408 |
-
$result = $this->deleteCommentsByPostTypes($post_types);
|
409 |
-
}
|
410 |
-
}
|
411 |
-
|
412 |
-
if( $result ) {
|
413 |
-
$this->redirectToAction('index', array(
|
414 |
-
'wbcr_cmp_clear_comments' => '1'
|
415 |
-
));
|
416 |
-
} else {
|
417 |
-
$this->redirectToAction('index', array(
|
418 |
-
'wbcr_cmp_clear_comments_error' => '1',
|
419 |
-
'wbcr_cmp_code' => 'interal_error',
|
420 |
-
));
|
421 |
-
}
|
422 |
-
}
|
423 |
-
|
424 |
-
$this->redirectToAction('index');
|
425 |
-
}
|
426 |
-
|
427 |
-
/**
|
428 |
-
* The basic function of deleting comments.
|
429 |
-
*
|
430 |
-
* @param int|string $type
|
431 |
-
*/
|
432 |
-
public function deleteComments($type = 0)
|
433 |
-
{
|
434 |
-
if( in_array($type, array('spam', 'trash', 0)) ) {
|
435 |
-
|
436 |
-
if( WCM_Plugin::app()->isNetworkActive() ) {
|
437 |
-
foreach(WCM_Plugin::app()->getActiveSites() as $site) {
|
438 |
-
switch_to_blog($site->blog_id);
|
439 |
-
$this->deleteCommentsByType($type);
|
440 |
-
restore_current_blog();
|
441 |
-
}
|
442 |
-
} else {
|
443 |
-
$this->deleteCommentsByType($type);
|
444 |
-
}
|
445 |
-
|
446 |
-
$this->redirectToAction('index', array(
|
447 |
-
'wbcr_cmp_clear_comments' => '1'
|
448 |
-
));
|
449 |
-
}
|
450 |
-
}
|
451 |
-
|
452 |
-
/**
|
453 |
-
* @param int $type
|
454 |
-
* @return false|int
|
455 |
-
*/
|
456 |
-
private function deleteCommentsByType($type = 0)
|
457 |
-
{
|
458 |
-
global $wpdb;
|
459 |
-
|
460 |
-
$wpdb->query("DELETE cmeta
|
461 |
-
FROM $wpdb->commentmeta cmeta
|
462 |
-
INNER JOIN {$wpdb->comments} comments ON cmeta.comment_id=comments.comment_ID
|
463 |
-
WHERE comment_approved='{$type}'");
|
464 |
-
|
465 |
-
$res = $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved='{$type}'");
|
466 |
-
|
467 |
-
if( $res ) {
|
468 |
-
$wpdb->query("OPTIMIZE TABLE {$wpdb->comments}");
|
469 |
-
$wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
|
470 |
-
}
|
471 |
-
|
472 |
-
return $res;
|
473 |
-
}
|
474 |
-
|
475 |
-
/**
|
476 |
-
* This action deletes spam comments
|
477 |
-
*/
|
478 |
-
public function deleteSpamCommentsAction()
|
479 |
-
{
|
480 |
-
check_admin_referer($this->getResultId() . '_delete_spam_comments');
|
481 |
-
|
482 |
-
$this->deleteComments('spam');
|
483 |
-
}
|
484 |
-
|
485 |
-
/**
|
486 |
-
* This action deletes unaproved comments
|
487 |
-
*/
|
488 |
-
public function deleteUnaprovedCommentsAction()
|
489 |
-
{
|
490 |
-
check_admin_referer($this->getResultId() . '_delete_unaproved_comments');
|
491 |
-
|
492 |
-
$this->deleteComments();
|
493 |
-
}
|
494 |
-
|
495 |
-
/**
|
496 |
-
* This action deletes trash comments
|
497 |
-
*/
|
498 |
-
public function deleteTrashCommentsAction()
|
499 |
-
{
|
500 |
-
check_admin_referer($this->getResultId() . '_delete_trash_comments');
|
501 |
-
|
502 |
-
$this->deleteComments('trash');
|
503 |
-
}
|
504 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components/comments-plus/admin/pages/index.php
CHANGED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/comments-plus/admin/pages/more-features.php
DELETED
@@ -1,16 +0,0 @@
|
|
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 WbcrCmp_MoreFeaturesPage extends Wbcr_FactoryClearfy206_MoreFeaturesPage {
|
15 |
-
|
16 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components/comments-plus/assets/css/index.php
DELETED
File without changes
|
components/comments-plus/assets/css/url-span.css
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
/**
|
2 |
* Url span
|
3 |
-
* @author
|
4 |
* @copyright (c) 17.11.2017, Webcraftic
|
5 |
* @version 1.0
|
6 |
*/
|
1 |
/**
|
2 |
* Url span
|
3 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
4 |
* @copyright (c) 17.11.2017, Webcraftic
|
5 |
* @version 1.0
|
6 |
*/
|
components/comments-plus/assets/index.php
DELETED
File without changes
|
components/comments-plus/assets/js/index.php
DELETED
File without changes
|
components/comments-plus/assets/js/url-span.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
/**
|
2 |
* Url span
|
3 |
-
* @author
|
4 |
* @copyright (c) 17.11.2017, Webcraftic
|
5 |
* @version 1.0
|
6 |
*/
|
1 |
/**
|
2 |
* Url span
|
3 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
4 |
* @copyright (c) 17.11.2017, Webcraftic
|
5 |
* @version 1.0
|
6 |
*/
|
components/comments-plus/clearfy.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Этот файл инициализирует этот плагин, как аддон для плагина Clearfy.
|
4 |
+
*
|
5 |
+
* Файл будет подключен только в плагине Clearfy, используя особый вариант загрузки. Это более простое решение
|
6 |
+
* пришло на смену встроенной системы подключения аддонов в фреймворке.
|
7 |
+
*
|
8 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
9 |
+
* @copyright (c) 2018 Webraftic Ltd
|
10 |
+
*/
|
11 |
+
|
12 |
+
// Exit if accessed directly
|
13 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
14 |
+
exit;
|
15 |
+
}
|
16 |
+
|
17 |
+
if ( ! defined( 'WCM_PLUGIN_ACTIVE' ) ) {
|
18 |
+
define( 'WCM_PLUGIN_VERSION', '1.1.0' );
|
19 |
+
define( 'WCM_PLUGIN_ACTIVE', true );
|
20 |
+
|
21 |
+
// Этот плагин загружен, как аддон для плагина Clearfy
|
22 |
+
define( 'LOADING_COMMENTS_PLUS_AS_ADDON', true );
|
23 |
+
|
24 |
+
if ( ! defined( 'WCM_PLUGIN_DIR' ) ) {
|
25 |
+
define( 'WCM_PLUGIN_DIR', dirname( __FILE__ ) );
|
26 |
+
}
|
27 |
+
|
28 |
+
if ( ! defined( 'WCM_PLUGIN_BASE' ) ) {
|
29 |
+
define( 'WCM_PLUGIN_BASE', plugin_basename( __FILE__ ) );
|
30 |
+
}
|
31 |
+
|
32 |
+
if ( ! defined( 'WCM_PLUGIN_URL' ) ) {
|
33 |
+
define( 'WCM_PLUGIN_URL', plugins_url( null, __FILE__ ) );
|
34 |
+
}
|
35 |
+
|
36 |
+
try {
|
37 |
+
// Global scripts
|
38 |
+
require_once( WCM_PLUGIN_DIR . '/includes/3rd-party/class-clearfy-plugin.php' );
|
39 |
+
new WCM_Plugin();
|
40 |
+
} catch( Exception $e ) {
|
41 |
+
$wcm_plugin_error_func = function () use ( $e ) {
|
42 |
+
$error = sprintf( "The %s plugin has stopped. <b>Error:</b> %s Code: %s", 'Webcraftic Disable Comments', $e->getMessage(), $e->getCode() );
|
43 |
+
echo '<div class="notice notice-error"><p>' . $error . '</p></div>';
|
44 |
+
};
|
45 |
+
|
46 |
+
add_action( 'admin_notices', $wcm_plugin_error_func );
|
47 |
+
add_action( 'network_admin_notices', $wcm_plugin_error_func );
|
48 |
+
}
|
49 |
+
}
|
50 |
+
|
51 |
+
|
components/comments-plus/comments-plus.php
CHANGED
@@ -1,80 +1,135 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Webcraftic Disable Comments
|
4 |
-
* Plugin URI: https://
|
5 |
* Description: Allows administrators to globally disable comments on their site. Comments can be disabled for individual record types.
|
6 |
* Author: Webcraftic <wordpress.webraftic@gmail.com>
|
7 |
-
* Version: 1.
|
8 |
* Text Domain: comments-plus
|
9 |
* Domain Path: /languages/
|
10 |
-
* Author URI: https://
|
11 |
-
* Framework Version:
|
12 |
*/
|
13 |
|
14 |
// Exit if accessed directly
|
15 |
if ( ! defined( 'ABSPATH' ) ) {
|
16 |
exit;
|
17 |
}
|
18 |
-
if ( ! defined( 'WCM_PLUGIN_VERSION' ) ) {
|
19 |
-
define( 'WCM_PLUGIN_VERSION', '1.0.9' );
|
20 |
-
}
|
21 |
-
if ( ! defined( 'WCM_PLUGIN_DIR' ) ) {
|
22 |
-
define( 'WCM_PLUGIN_DIR', dirname( __FILE__ ) );
|
23 |
-
}
|
24 |
-
if ( ! defined( 'WCM_PLUGIN_BASE' ) ) {
|
25 |
-
define( 'WCM_PLUGIN_BASE', plugin_basename( __FILE__ ) );
|
26 |
-
}
|
27 |
-
if ( ! defined( 'WCM_PLUGIN_URL' ) ) {
|
28 |
-
define( 'WCM_PLUGIN_URL', plugins_url( null, __FILE__ ) );
|
29 |
-
}
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
-
|
34 |
-
require_once( WCM_PLUGIN_DIR . '/libs/factory/core/includes/check-compatibility.php' );
|
35 |
-
require_once( WCM_PLUGIN_DIR . '/libs/factory/clearfy/includes/check-clearfy-compatibility.php' );
|
36 |
-
}
|
37 |
|
38 |
-
|
|
|
39 |
'prefix' => 'wbcr_comments_plus_', // wbcr_cmp
|
40 |
'plugin_name' => 'wbcr_comments_plus',
|
41 |
'plugin_title' => __( 'Webcraftic Disable comments', 'comments-plus' ),
|
42 |
-
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
);
|
46 |
|
47 |
-
|
48 |
-
* Проверяет совместимость с Wordpress, php и другими плагинами.
|
49 |
-
*/
|
50 |
-
$compatibility = new Wbcr_FactoryClearfy_Compatibility( array_merge( $plugin_info, array(
|
51 |
-
'factory_version' => 'FACTORY_409_VERSION',
|
52 |
'plugin_already_activate' => defined( 'WCM_PLUGIN_ACTIVE' ),
|
53 |
-
'
|
54 |
-
'plugin_dir' => WCM_PLUGIN_DIR,
|
55 |
-
'plugin_base' => WCM_PLUGIN_BASE,
|
56 |
-
'plugin_url' => WCM_PLUGIN_URL,
|
57 |
-
'required_php_version' => '5.3',
|
58 |
'required_wp_version' => '4.2.0',
|
59 |
-
'required_clearfy_check_component' =>
|
60 |
) ) );
|
61 |
|
|
|
62 |
/**
|
63 |
-
*
|
64 |
-
*
|
65 |
*/
|
66 |
-
if ( ! $
|
67 |
return;
|
68 |
}
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
define( 'WCM_PLUGIN_ACTIVE', true );
|
|
|
|
|
|
|
|
|
71 |
|
72 |
-
if ( ! defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ) {
|
73 |
-
require_once( WCM_PLUGIN_DIR . '/libs/factory/core/boot.php' );
|
74 |
-
}
|
75 |
|
76 |
-
require_once( WCM_PLUGIN_DIR . '/includes/class.plugin.php' );
|
77 |
|
78 |
-
|
79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
}
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Webcraftic Disable Comments
|
4 |
+
* Plugin URI: https://webcraftic.com
|
5 |
* Description: Allows administrators to globally disable comments on their site. Comments can be disabled for individual record types.
|
6 |
* Author: Webcraftic <wordpress.webraftic@gmail.com>
|
7 |
+
* Version: 1.1.1
|
8 |
* Text Domain: comments-plus
|
9 |
* Domain Path: /languages/
|
10 |
+
* Author URI: https://webcraftic.com
|
11 |
+
* Framework Version: FACTORY_421_VERSION
|
12 |
*/
|
13 |
|
14 |
// Exit if accessed directly
|
15 |
if ( ! defined( 'ABSPATH' ) ) {
|
16 |
exit;
|
17 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
+
/**
|
20 |
+
* Developers who contributions in the development plugin:
|
21 |
+
*
|
22 |
+
* Alexander Kovalev
|
23 |
+
* ---------------------------------------------------------------------------------
|
24 |
+
* Full plugin development.
|
25 |
+
*
|
26 |
+
* Email: alex.kovalevv@gmail.com
|
27 |
+
* Personal card: https://alexkovalevv.github.io
|
28 |
+
* Personal repo: https://github.com/alexkovalevv
|
29 |
+
* ---------------------------------------------------------------------------------
|
30 |
+
*/
|
31 |
|
32 |
+
/**
|
33 |
+
* -----------------------------------------------------------------------------
|
34 |
+
* CHECK REQUIREMENTS
|
35 |
+
* Check compatibility with php and wp version of the user's site. As well as checking
|
36 |
+
* compatibility with other plugins from Webcraftic.
|
37 |
+
* -----------------------------------------------------------------------------
|
38 |
+
*/
|
39 |
|
40 |
+
require_once( dirname( __FILE__ ) . '/libs/factory/core/includes/class-factory-requirements.php' );
|
|
|
|
|
|
|
41 |
|
42 |
+
// @formatter:off
|
43 |
+
$wcm_plugin_info = array(
|
44 |
'prefix' => 'wbcr_comments_plus_', // wbcr_cmp
|
45 |
'plugin_name' => 'wbcr_comments_plus',
|
46 |
'plugin_title' => __( 'Webcraftic Disable comments', 'comments-plus' ),
|
47 |
+
|
48 |
+
// PLUGIN SUPPORT
|
49 |
+
'support_details' => array(
|
50 |
+
'url' => 'https://webcraftic.com',
|
51 |
+
'pages_map' => array(
|
52 |
+
'support' => 'support', // {site}/support
|
53 |
+
'docs' => 'docs' // {site}/docs
|
54 |
+
)
|
55 |
+
),
|
56 |
+
|
57 |
+
// PLUGIN ADVERTS
|
58 |
+
'render_adverts' => true,
|
59 |
+
'adverts_settings' => array(
|
60 |
+
'dashboard_widget' => true, // show dashboard widget (default: false)
|
61 |
+
'right_sidebar' => true, // show adverts sidebar (default: false)
|
62 |
+
'notice' => true, // show notice message (default: false)
|
63 |
+
),
|
64 |
+
|
65 |
+
// FRAMEWORK MODULES
|
66 |
+
'load_factory_modules' => array(
|
67 |
+
array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
|
68 |
+
array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
|
69 |
+
array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
|
70 |
+
array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
|
71 |
+
array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
|
72 |
+
)
|
73 |
);
|
74 |
|
75 |
+
$wcm_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $wcm_plugin_info, array(
|
|
|
|
|
|
|
|
|
76 |
'plugin_already_activate' => defined( 'WCM_PLUGIN_ACTIVE' ),
|
77 |
+
'required_php_version' => '5.4',
|
|
|
|
|
|
|
|
|
78 |
'required_wp_version' => '4.2.0',
|
79 |
+
'required_clearfy_check_component' => false
|
80 |
) ) );
|
81 |
|
82 |
+
|
83 |
/**
|
84 |
+
* If the plugin is compatible, then it will continue its work, otherwise it will be stopped,
|
85 |
+
* and the user will throw a warning.
|
86 |
*/
|
87 |
+
if ( ! $wcm_compatibility->check() ) {
|
88 |
return;
|
89 |
}
|
90 |
|
91 |
+
/**
|
92 |
+
* -----------------------------------------------------------------------------
|
93 |
+
* CONSTANTS
|
94 |
+
* Install frequently used constants and constants for debugging, which will be
|
95 |
+
* removed after compiling the plugin.
|
96 |
+
* -----------------------------------------------------------------------------
|
97 |
+
*/
|
98 |
+
|
99 |
+
// This plugin is activated
|
100 |
define( 'WCM_PLUGIN_ACTIVE', true );
|
101 |
+
define( 'WCM_PLUGIN_VERSION', $wcm_compatibility->get_plugin_version() );
|
102 |
+
define( 'WCM_PLUGIN_DIR', dirname( __FILE__ ) );
|
103 |
+
define( 'WCM_PLUGIN_BASE', plugin_basename( __FILE__ ) );
|
104 |
+
define( 'WCM_PLUGIN_URL', plugins_url( null, __FILE__ ) );
|
105 |
|
|
|
|
|
|
|
106 |
|
|
|
107 |
|
108 |
+
|
109 |
+
/**
|
110 |
+
* -----------------------------------------------------------------------------
|
111 |
+
* PLUGIN INIT
|
112 |
+
* -----------------------------------------------------------------------------
|
113 |
+
*/
|
114 |
+
|
115 |
+
require_once( WCM_PLUGIN_DIR . '/libs/factory/core/boot.php' );
|
116 |
+
require_once( WCM_PLUGIN_DIR . '/includes/class-plugin.php' );
|
117 |
+
|
118 |
+
try {
|
119 |
+
new WCM_Plugin( __FILE__, array_merge( $wcm_plugin_info, array(
|
120 |
+
'plugin_version' => WCM_PLUGIN_VERSION,
|
121 |
+
'plugin_text_domain' => $wcm_compatibility->get_text_domain(),
|
122 |
+
) ) );
|
123 |
+
} catch( Exception $e ) {
|
124 |
+
// Plugin wasn't initialized due to an error
|
125 |
+
define( 'WCM_PLUGIN_THROW_ERROR', true );
|
126 |
+
|
127 |
+
$wcm_plugin_error_func = function () use ( $e ) {
|
128 |
+
$error = sprintf( "The %s plugin has stopped. <b>Error:</b> %s Code: %s", 'Webcraftic Disable Comments', $e->getMessage(), $e->getCode() );
|
129 |
+
echo '<div class="notice notice-error"><p>' . $error . '</p></div>';
|
130 |
+
};
|
131 |
+
|
132 |
+
add_action( 'admin_notices', $wcm_plugin_error_func );
|
133 |
+
add_action( 'network_admin_notices', $wcm_plugin_error_func );
|
134 |
}
|
135 |
+
// @formatter:on
|
components/comments-plus/includes/3rd-party/class-clearfy-plugin.php
ADDED
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Exit if accessed directly
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Disable comments
|
9 |
+
*
|
10 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
11 |
+
*
|
12 |
+
* @copyright (c) 2018 Webraftic Ltd
|
13 |
+
*/
|
14 |
+
class WCM_Plugin {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* @see self::app()
|
18 |
+
* @var WCL_Plugin
|
19 |
+
*/
|
20 |
+
private static $app;
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Конструктор
|
24 |
+
*
|
25 |
+
* Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app.
|
26 |
+
* Подробнее о свойстве $app см. self::app()
|
27 |
+
*
|
28 |
+
* @param string $plugin_path
|
29 |
+
* @param array $data
|
30 |
+
*
|
31 |
+
* @throws Exception
|
32 |
+
*/
|
33 |
+
public function __construct() {
|
34 |
+
if ( ! class_exists( 'WCL_Plugin' ) ) {
|
35 |
+
throw new Exception( 'Plugin Clearfy is not installed!' );
|
36 |
+
}
|
37 |
+
|
38 |
+
self::$app = WCL_Plugin::app();
|
39 |
+
|
40 |
+
$this->global_scripts();
|
41 |
+
|
42 |
+
if ( is_admin() ) {
|
43 |
+
$this->admin_scripts();
|
44 |
+
}
|
45 |
+
|
46 |
+
add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] );
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Статический метод для быстрого доступа к интерфейсу плагина.
|
51 |
+
*
|
52 |
+
* Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте
|
53 |
+
* плагина, но при этом разработчик не может вносить изменения в основной класс плагина.
|
54 |
+
*
|
55 |
+
* Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
|
56 |
+
* классам.
|
57 |
+
*
|
58 |
+
* @return WCL_Plugin
|
59 |
+
*/
|
60 |
+
public static function app() {
|
61 |
+
return self::$app;
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
66 |
+
* @throws \Exception
|
67 |
+
*/
|
68 |
+
public function plugins_loaded() {
|
69 |
+
if ( is_admin() ) {
|
70 |
+
$this->register_pages();
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Регистрирует классы страниц в плагине
|
76 |
+
*
|
77 |
+
* Мы указываем плагину, где найти файлы страниц и какое имя у их класса. Чтобы плагин
|
78 |
+
* выполнил подключение классов страниц. После регистрации, страницы будут доступные по url
|
79 |
+
* и в меню боковой панели администратора. Регистрируемые страницы будут связаны с текущим плагином
|
80 |
+
* все операции выполняемые внутри классов страниц, имеют отношение только текущему плагину.
|
81 |
+
*
|
82 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
83 |
+
* @throws \Exception
|
84 |
+
*/
|
85 |
+
private function register_pages() {
|
86 |
+
$admin_path = WCM_PLUGIN_DIR . '/admin/pages';
|
87 |
+
|
88 |
+
self::app()->registerPage( 'WbcrCmp_CommentsPage', $admin_path . '/class-page-comments.php' );
|
89 |
+
self::app()->registerPage( 'WbcrCmp_DeleteCommentsPage', $admin_path . '/class-page-delete-comments.php' );
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
94 |
+
*/
|
95 |
+
private function admin_scripts() {
|
96 |
+
require( WCM_PLUGIN_DIR . '/admin/boot.php' );
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
101 |
+
*/
|
102 |
+
private function global_scripts() {
|
103 |
+
require( WCM_PLUGIN_DIR . '/includes/boot.php' );
|
104 |
+
require( WCM_PLUGIN_DIR . '/includes/classes/class-configurate-comments.php' );
|
105 |
+
new WbcrCmp_ConfigComments( self::$app );
|
106 |
+
}
|
107 |
+
}
|
components/{ga-cache/updates → comments-plus/includes/3rd-party}/index.php
RENAMED
File without changes
|
components/comments-plus/includes/boot.php
CHANGED
@@ -1,50 +1,51 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
-
|
24 |
|
25 |
-
|
|
|
26 |
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
29 |
}
|
30 |
-
|
31 |
-
$all_post_types = get_post_types($args, 'objects');
|
32 |
-
|
33 |
-
return array_keys($all_post_types);
|
34 |
}
|
|
|
35 |
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
if( post_type_exists( $extra ) ) {
|
40 |
-
$types[] = $extra;
|
41 |
-
}
|
42 |
-
}
|
43 |
-
}*/
|
44 |
-
|
45 |
-
if( is_array($post_types) ) {
|
46 |
-
return $post_types;
|
47 |
-
}
|
48 |
|
49 |
-
|
50 |
-
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* Admin boot
|
4 |
+
*
|
5 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
6 |
+
*
|
7 |
+
* @copyright Webcraftic 25.05.2017
|
8 |
+
*/
|
9 |
+
|
10 |
+
// Exit if accessed directly
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit;
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Получает список отключенных типов записей
|
17 |
+
*
|
18 |
+
* @return array|bool|mixed|void
|
19 |
+
*/
|
20 |
+
function wbcr_cmp_get_disabled_post_types() {
|
21 |
+
|
22 |
+
$post_types = WCM_Plugin::app()->getPopulateOption( 'disable_comments_for_post_types' );
|
23 |
+
|
24 |
+
if ( WCM_Plugin::app()->getPopulateOption( 'disable_comments', 'enable_comments' ) == 'disable_comments' ) {
|
25 |
+
|
26 |
+
$args = [ 'public' => true ];
|
27 |
+
|
28 |
+
if ( WCM_Plugin::app()->isNetworkActive() ) {
|
29 |
+
$args['_builtin'] = true;
|
30 |
+
}
|
31 |
|
32 |
+
$all_post_types = get_post_types( $args, 'objects' );
|
33 |
|
34 |
+
return array_keys( $all_post_types );
|
35 |
+
}
|
36 |
|
37 |
+
// Not all extra_post_types might be registered on this particular site
|
38 |
+
/*if( $this->networkactive ) {
|
39 |
+
foreach( (array) $this->options['extra_post_types'] as $extra ) {
|
40 |
+
if( post_type_exists( $extra ) ) {
|
41 |
+
$types[] = $extra;
|
42 |
}
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
+
}*/
|
45 |
|
46 |
+
if ( is_array( $post_types ) ) {
|
47 |
+
return $post_types;
|
48 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
|
50 |
+
return explode( ',', $post_types );
|
51 |
+
}
|
components/comments-plus/includes/class-plugin.php
ADDED
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Exit if accessed directly
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Plugin class
|
9 |
+
*
|
10 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>
|
11 |
+
* @copyright (c) 19.02.2018, Webcraftic
|
12 |
+
*/
|
13 |
+
class WCM_Plugin extends Wbcr_Factory421_Plugin {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @see self::app()
|
17 |
+
* @var Wbcr_Factory421_Plugin
|
18 |
+
*/
|
19 |
+
private static $app;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @since 3.1.0
|
23 |
+
* @var array
|
24 |
+
*/
|
25 |
+
private $plugin_data;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Конструктор
|
29 |
+
*
|
30 |
+
* Применяет конструктор родительского класса и записывает экземпляр текущего класса в свойство $app.
|
31 |
+
* Подробнее о свойстве $app см. self::app()
|
32 |
+
*
|
33 |
+
* @param string $plugin_path
|
34 |
+
* @param array $data
|
35 |
+
*
|
36 |
+
* @throws Exception
|
37 |
+
*/
|
38 |
+
public function __construct( $plugin_path, $data ) {
|
39 |
+
parent::__construct( $plugin_path, $data );
|
40 |
+
|
41 |
+
self::$app = $this;
|
42 |
+
$this->plugin_data = $data;
|
43 |
+
|
44 |
+
$this->global_scripts();
|
45 |
+
|
46 |
+
if ( is_admin() ) {
|
47 |
+
$this->admin_scripts();
|
48 |
+
}
|
49 |
+
|
50 |
+
add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] );
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Статический метод для быстрого доступа к интерфейсу плагина.
|
55 |
+
*
|
56 |
+
* Позволяет разработчику глобально получить доступ к экземпляру класса плагина в любом месте
|
57 |
+
* плагина, но при этом разработчик не может вносить изменения в основной класс плагина.
|
58 |
+
*
|
59 |
+
* Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
|
60 |
+
* классам.
|
61 |
+
*
|
62 |
+
* @return \Wbcr_Factory421_Plugin|\WCM_Plugin
|
63 |
+
*/
|
64 |
+
public static function app() {
|
65 |
+
return self::$app;
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
70 |
+
* @throws \Exception
|
71 |
+
*/
|
72 |
+
public function plugins_loaded() {
|
73 |
+
if ( is_admin() ) {
|
74 |
+
$this->register_pages();
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Регистрирует классы страниц в плагине
|
80 |
+
*
|
81 |
+
* Мы указываем плагину, где найти файлы страниц и какое имя у их класса. Чтобы плагин
|
82 |
+
* выполнил подключение классов страниц. После регистрации, страницы будут доступные по url
|
83 |
+
* и в меню боковой панели администратора. Регистрируемые страницы будут связаны с текущим плагином
|
84 |
+
* все операции выполняемые внутри классов страниц, имеют отношение только текущему плагину.
|
85 |
+
*
|
86 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
87 |
+
* @throws \Exception
|
88 |
+
*/
|
89 |
+
private function register_pages() {
|
90 |
+
$admin_path = WCM_PLUGIN_DIR . '/admin/pages';
|
91 |
+
|
92 |
+
self::app()->registerPage( 'WbcrCmp_CommentsPage', $admin_path . '/class-page-comments.php' );
|
93 |
+
self::app()->registerPage( 'WbcrCmp_DeleteCommentsPage', $admin_path . '/class-page-delete-comments.php' );
|
94 |
+
self::app()->registerPage( 'WbcrCmp_MoreFeaturesPage', $admin_path . '/class-page-more-features.php' );
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
99 |
+
*/
|
100 |
+
private function admin_scripts() {
|
101 |
+
require( WCM_PLUGIN_DIR . '/admin/boot.php' );
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
106 |
+
*/
|
107 |
+
private function global_scripts() {
|
108 |
+
require( WCM_PLUGIN_DIR . '/includes/boot.php' );
|
109 |
+
require( WCM_PLUGIN_DIR . '/includes/classes/class-configurate-comments.php' );
|
110 |
+
|
111 |
+
new WbcrCmp_ConfigComments( self::$app );
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
components/comments-plus/includes/class.plugin.php
DELETED
@@ -1,130 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Hide my wp core class
|
4 |
-
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
5 |
-
* @copyright (c) 19.02.2018, Webcraftic
|
6 |
-
* @version 1.0
|
7 |
-
*/
|
8 |
-
|
9 |
-
// Exit if accessed directly
|
10 |
-
if( !defined('ABSPATH') ) {
|
11 |
-
exit;
|
12 |
-
}
|
13 |
-
|
14 |
-
if( !class_exists('WCM_Plugin') ) {
|
15 |
-
|
16 |
-
if( !class_exists('WCM_PluginFactory') ) {
|
17 |
-
if( defined('LOADING_COMMENTS_PLUS_AS_ADDON') ) {
|
18 |
-
class WCM_PluginFactory {
|
19 |
-
|
20 |
-
}
|
21 |
-
} else {
|
22 |
-
class WCM_PluginFactory extends Wbcr_Factory409_Plugin {
|
23 |
-
|
24 |
-
}
|
25 |
-
}
|
26 |
-
}
|
27 |
-
|
28 |
-
class WCM_Plugin extends WCM_PluginFactory {
|
29 |
-
|
30 |
-
/**
|
31 |
-
* @var Wbcr_Factory409_Plugin
|
32 |
-
*/
|
33 |
-
private static $app;
|
34 |
-
|
35 |
-
/**
|
36 |
-
* @var bool
|
37 |
-
*/
|
38 |
-
private $as_addon;
|
39 |
-
|
40 |
-
|
41 |
-
/**
|
42 |
-
* @param string $plugin_path
|
43 |
-
* @param array $data
|
44 |
-
* @throws Exception
|
45 |
-
*/
|
46 |
-
public function __construct($plugin_path, $data)
|
47 |
-
{
|
48 |
-
$this->as_addon = isset($data['as_addon']);
|
49 |
-
|
50 |
-
if( $this->as_addon ) {
|
51 |
-
$plugin_parent = isset($data['plugin_parent']) ? $data['plugin_parent'] : null;
|
52 |
-
|
53 |
-
if( !($plugin_parent instanceof Wbcr_Factory409_Plugin) ) {
|
54 |
-
throw new Exception('An invalid instance of the class was passed.');
|
55 |
-
}
|
56 |
-
|
57 |
-
self::$app = $plugin_parent;
|
58 |
-
} else {
|
59 |
-
self::$app = $this;
|
60 |
-
}
|
61 |
-
|
62 |
-
if( !$this->as_addon ) {
|
63 |
-
parent::__construct($plugin_path, $data);
|
64 |
-
}
|
65 |
-
|
66 |
-
$this->setModules();
|
67 |
-
|
68 |
-
$this->globalScripts();
|
69 |
-
|
70 |
-
if( is_admin() ) {
|
71 |
-
$this->adminScripts();
|
72 |
-
}
|
73 |
-
|
74 |
-
add_action('plugins_loaded', array($this, 'pluginsLoaded'));
|
75 |
-
}
|
76 |
-
|
77 |
-
/**
|
78 |
-
* @return Wbcr_Factory409_Plugin
|
79 |
-
*/
|
80 |
-
public static function app()
|
81 |
-
{
|
82 |
-
return self::$app;
|
83 |
-
}
|
84 |
-
|
85 |
-
public function pluginsLoaded()
|
86 |
-
{
|
87 |
-
self::app()->setTextDomain('comments-plus', WCM_PLUGIN_DIR);
|
88 |
-
|
89 |
-
if( is_admin() ) {
|
90 |
-
$this->registerPages();
|
91 |
-
}
|
92 |
-
}
|
93 |
-
|
94 |
-
protected function setModules()
|
95 |
-
{
|
96 |
-
if( !$this->as_addon ) {
|
97 |
-
self::app()->load(array(
|
98 |
-
array('libs/factory/bootstrap', 'factory_bootstrap_409', 'admin'),
|
99 |
-
array('libs/factory/forms', 'factory_forms_410', 'admin'),
|
100 |
-
array('libs/factory/pages', 'factory_pages_410', 'admin'),
|
101 |
-
array('libs/factory/clearfy', 'factory_clearfy_206', 'all')
|
102 |
-
));
|
103 |
-
}
|
104 |
-
}
|
105 |
-
|
106 |
-
private function registerPages()
|
107 |
-
{
|
108 |
-
$admin_path = WCM_PLUGIN_DIR . '/admin/pages';
|
109 |
-
|
110 |
-
self::app()->registerPage('WbcrCmp_CommentsPage', $admin_path . '/comments.php');
|
111 |
-
self::app()->registerPage('WbcrCmp_DeleteCommentsPage', $admin_path . '/delete-comments.php');
|
112 |
-
|
113 |
-
if( !$this->as_addon ) {
|
114 |
-
self::app()->registerPage('WbcrCmp_MoreFeaturesPage', $admin_path . '/more-features.php');
|
115 |
-
}
|
116 |
-
}
|
117 |
-
|
118 |
-
private function adminScripts()
|
119 |
-
{
|
120 |
-
require(WCM_PLUGIN_DIR . '/admin/boot.php');
|
121 |
-
}
|
122 |
-
|
123 |
-
private function globalScripts()
|
124 |
-
{
|
125 |
-
require(WCM_PLUGIN_DIR . '/includes/boot.php');
|
126 |
-
require(WCM_PLUGIN_DIR . '/includes/classes/class.configurate-comments.php');
|
127 |
-
new WbcrCmp_ConfigComments(self::$app);
|
128 |
-
}
|
129 |
-
}
|
130 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components/comments-plus/includes/classes/class-configurate-comments.php
ADDED
@@ -0,0 +1,338 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Exit if accessed directly
|
4 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
5 |
+
exit;
|
6 |
+
}
|
7 |
+
|
8 |
+
/**
|
9 |
+
* This class configures the parameters advanced
|
10 |
+
*
|
11 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
12 |
+
*
|
13 |
+
* @copyright (c) 2017 Webraftic Ltd
|
14 |
+
*/
|
15 |
+
class WbcrCmp_ConfigComments extends Wbcr_FactoryClearfy213_Configurate {
|
16 |
+
|
17 |
+
private $modified_types = [];
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @param Wbcr_Factory421_Plugin $plugin
|
21 |
+
*/
|
22 |
+
public function __construct( Wbcr_Factory421_Plugin $plugin ) {
|
23 |
+
parent::__construct( $plugin );
|
24 |
+
$this->plugin = $plugin;
|
25 |
+
}
|
26 |
+
|
27 |
+
public function registerActionsAndFilters() {
|
28 |
+
// These need to happen now
|
29 |
+
if ( $this->isDisabledAllPosts() ) {
|
30 |
+
add_action( 'widgets_init', [ $this, 'disableRcWidget' ] );
|
31 |
+
add_action( 'template_redirect', [ $this, 'filterQuery' ], 9 ); // before redirect_canonical
|
32 |
+
|
33 |
+
// Admin bar filtering has to happen here since WP 3.6
|
34 |
+
add_action( 'template_redirect', [ $this, 'filterAdminBar' ] );
|
35 |
+
add_action( 'admin_init', [ $this, 'filterAdminBar' ] );
|
36 |
+
} else {
|
37 |
+
|
38 |
+
if ( $this->getPopulateOption( 'comment_text_convert_links_pseudo' ) || $this->getPopulateOption( 'pseudo_comment_author_link' ) ) {
|
39 |
+
add_action( 'wp_enqueue_scripts', [ $this, 'assetsUrlSpanScripts' ] );
|
40 |
+
}
|
41 |
+
|
42 |
+
if ( $this->getPopulateOption( 'comment_text_convert_links_pseudo' ) ) {
|
43 |
+
add_filter( 'comment_text', [ $this, 'commentTextConvertLinksPseudo' ] );
|
44 |
+
}
|
45 |
+
|
46 |
+
if ( $this->getPopulateOption( 'pseudo_comment_author_link' ) ) {
|
47 |
+
add_filter( 'get_comment_author_link', [ $this, 'pseudoCommentAuthorLink' ], 100, 3 );
|
48 |
+
}
|
49 |
+
|
50 |
+
if ( $this->getPopulateOption( 'remove_url_from_comment_form' ) ) {
|
51 |
+
add_filter( 'comment_form_default_fields', [ $this, 'removeUrlFromCommentForm' ] );
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
// These can happen later
|
56 |
+
//add_action('plugins_loaded', array($this, 'register_text_domain'));
|
57 |
+
add_action( 'wp_loaded', [ $this, 'initWploadedFilters' ] );
|
58 |
+
}
|
59 |
+
|
60 |
+
/*
|
61 |
+
* Remove comment links from the admin bar in a multisite network.
|
62 |
+
*/
|
63 |
+
public function removeNetworkCommentLinks( $wp_admin_bar ) {
|
64 |
+
if ( $this->plugin->isNetworkActive() && is_user_logged_in() ) {
|
65 |
+
foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {
|
66 |
+
$wp_admin_bar->remove_menu( 'blog-' . $blog->userblog_id . '-c' );
|
67 |
+
}
|
68 |
+
} else {
|
69 |
+
// We have no way to know whether the plugin is active on other sites, so only remove this one
|
70 |
+
$wp_admin_bar->remove_menu( 'blog-' . get_current_blog_id() . '-c' );
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
private function isDisabledAllPosts() {
|
75 |
+
return $this->getPopulateOption( 'disable_comments', 'enable_comments' ) == 'disable_comments';
|
76 |
+
}
|
77 |
+
|
78 |
+
private function isDisabledCertainPostTypes() {
|
79 |
+
return $this->getPopulateOption( 'disable_comments', 'enable_comments' ) == 'disable_certain_post_types_comments';
|
80 |
+
}
|
81 |
+
|
82 |
+
private function isEnabledComments() {
|
83 |
+
return $this->getPopulateOption( 'disable_comments', 'enable_comments' ) == 'enable_comments';
|
84 |
+
}
|
85 |
+
|
86 |
+
/*
|
87 |
+
* Get an array of disabled post type.
|
88 |
+
*/
|
89 |
+
private function getDisabledPostTypes() {
|
90 |
+
return wbcr_cmp_get_disabled_post_types();
|
91 |
+
}
|
92 |
+
|
93 |
+
/*
|
94 |
+
* Check whether comments have been disabled on a given post type.
|
95 |
+
*/
|
96 |
+
private function isPostTypeDisabled( $type ) {
|
97 |
+
return $this->isDisabledCertainPostTypes() && in_array( $type, $this->getDisabledPostTypes() );
|
98 |
+
}
|
99 |
+
|
100 |
+
public function initWploadedFilters() {
|
101 |
+
$disabled_post_types = $this->getDisabledPostTypes();
|
102 |
+
|
103 |
+
if ( ! empty( $disabled_post_types ) && ! $this->isEnabledComments() ) {
|
104 |
+
foreach ( $disabled_post_types as $type ) {
|
105 |
+
// we need to know what native support was for later
|
106 |
+
if ( post_type_supports( $type, 'comments' ) ) {
|
107 |
+
$this->modified_types[] = $type;
|
108 |
+
remove_post_type_support( $type, 'comments' );
|
109 |
+
remove_post_type_support( $type, 'trackbacks' );
|
110 |
+
}
|
111 |
+
}
|
112 |
+
add_filter( 'comments_array', [ $this, 'filterExistingComments' ], 20, 2 );
|
113 |
+
add_filter( 'comments_open', [ $this, 'filterCommentStatus' ], 20, 2 );
|
114 |
+
add_filter( 'pings_open', [ $this, 'filterCommentStatus' ], 20, 2 );
|
115 |
+
}
|
116 |
+
|
117 |
+
// Filters for the admin only
|
118 |
+
if ( is_admin() ) {
|
119 |
+
add_action( 'admin_print_footer_scripts', [ $this, 'discussionNotice' ] );
|
120 |
+
|
121 |
+
// if only certain types are disabled, remember the original post status
|
122 |
+
if ( ! $this->isDisabledAllPosts() ) {
|
123 |
+
add_action( 'edit_form_advanced', [ $this, 'editFormInputs' ] );
|
124 |
+
add_action( 'edit_page_form', [ $this, 'editFormInputs' ] );
|
125 |
+
} else {
|
126 |
+
add_action( 'admin_menu', [ $this, 'filterAdminMenu' ], 9999 ); // do this as late as possible
|
127 |
+
add_action( 'admin_print_footer_scripts-index.php', [ $this, 'dashboardJs' ] );
|
128 |
+
add_action( 'wp_dashboard_setup', [ $this, 'filterDashboard' ] );
|
129 |
+
add_filter( 'pre_option_default_pingback_flag', '__return_zero' );
|
130 |
+
}
|
131 |
+
} // Filters for front end only
|
132 |
+
else {
|
133 |
+
add_action( 'template_redirect', [ $this, 'checkCommentTemplate' ] );
|
134 |
+
|
135 |
+
if ( $this->isDisabledAllPosts() ) {
|
136 |
+
add_filter( 'feed_links_show_comments_feed', '__return_false' );
|
137 |
+
}
|
138 |
+
}
|
139 |
+
}
|
140 |
+
|
141 |
+
/*
|
142 |
+
* Replace the theme's comment template with a blank one.
|
143 |
+
* To prevent this, define DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE
|
144 |
+
* and set it to True
|
145 |
+
*/
|
146 |
+
public function checkCommentTemplate() {
|
147 |
+
if ( is_singular() && ( $this->isDisabledAllPosts() || $this->isPostTypeDisabled( get_post_type() ) ) ) {
|
148 |
+
if ( ! defined( 'DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE' ) || DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE == true ) {
|
149 |
+
// Kill the comments template.
|
150 |
+
add_filter( 'comments_template', [ $this, 'dummyCommentsTemplate' ], 20 );
|
151 |
+
}
|
152 |
+
// Remove comment-reply script for themes that include it indiscriminately
|
153 |
+
wp_deregister_script( 'comment-reply' );
|
154 |
+
// feed_links_extra inserts a comments RSS link
|
155 |
+
remove_action( 'wp_head', 'feed_links_extra', 3 );
|
156 |
+
}
|
157 |
+
}
|
158 |
+
|
159 |
+
public function dummyCommentsTemplate() {
|
160 |
+
return WCM_PLUGIN_DIR . '/includes/comments-template.php';
|
161 |
+
}
|
162 |
+
|
163 |
+
/*
|
164 |
+
* Issue a 403 for all comment feed requests.
|
165 |
+
*/
|
166 |
+
public function filterQuery() {
|
167 |
+
if ( is_comment_feed() ) {
|
168 |
+
wp_die( __( 'Comments are closed.' ), '', [ 'response' => 403 ] );
|
169 |
+
}
|
170 |
+
}
|
171 |
+
|
172 |
+
/*
|
173 |
+
* Remove comment links from the admin bar.
|
174 |
+
*/
|
175 |
+
public function filterAdminBar() {
|
176 |
+
if ( is_admin_bar_showing() ) {
|
177 |
+
// Remove comments links from admin bar
|
178 |
+
remove_action( 'admin_bar_menu', 'wp_admin_bar_comments_menu', 60 );
|
179 |
+
}
|
180 |
+
|
181 |
+
if ( is_multisite() ) {
|
182 |
+
add_action( 'admin_bar_menu', [ $this, 'removeNetworkCommentLinks' ], 500 );
|
183 |
+
}
|
184 |
+
}
|
185 |
+
|
186 |
+
public function editFormInputs() {
|
187 |
+
global $post;
|
188 |
+
// Without a dicussion meta box, comment_status will be set to closed on new/updated posts
|
189 |
+
if ( in_array( $post->post_type, $this->modified_types ) ) {
|
190 |
+
echo '<input type="hidden" name="comment_status" value="' . $post->comment_status . '" /><input type="hidden" name="ping_status" value="' . $post->ping_status . '" />';
|
191 |
+
}
|
192 |
+
}
|
193 |
+
|
194 |
+
public function discussionNotice() {
|
195 |
+
$disabled_post_types = $this->getDisabledPostTypes();
|
196 |
+
if ( get_current_screen()->id == 'options-discussion' && ! empty( $disabled_post_types ) ) {
|
197 |
+
$names = [];
|
198 |
+
foreach ( $disabled_post_types as $type ) {
|
199 |
+
$type_object = get_post_type_object( $type );
|
200 |
+
if ( empty( $type_object ) ) {
|
201 |
+
continue;
|
202 |
+
}
|
203 |
+
$names[ $type ] = $type_object->labels->name;
|
204 |
+
}
|
205 |
+
|
206 |
+
?>
|
207 |
+
<script>
|
208 |
+
jQuery(document).ready(function($) {
|
209 |
+
$(".wrap h2").first().after(<?php echo json_encode( '<div style="color: #900"><p>' . sprintf( __( 'Note: The <em>%s</em> plugin is currently active, and comments are completely disabled on: %s. Many of the settings below will not be applicable for those post types.', 'comments-plus' ), $this->plugin->getPluginTitle(), implode( ', ', $names ) ) . '</p></div>' );?>);
|
210 |
+
});
|
211 |
+
</script>
|
212 |
+
<?php
|
213 |
+
}
|
214 |
+
}
|
215 |
+
|
216 |
+
public function filterAdminMenu() {
|
217 |
+
global $pagenow;
|
218 |
+
|
219 |
+
if ( $pagenow == 'comment.php' || $pagenow == 'edit-comments.php' || $pagenow == 'options-discussion.php' ) {
|
220 |
+
wp_die( __( 'Comments are closed.' ), '', [ 'response' => 403 ] );
|
221 |
+
}
|
222 |
+
|
223 |
+
remove_menu_page( 'edit-comments.php' );
|
224 |
+
remove_submenu_page( 'options-general.php', 'options-discussion.php' );
|
225 |
+
}
|
226 |
+
|
227 |
+
public function filterDashboard() {
|
228 |
+
remove_meta_box( 'dashboard_recent_comments', 'dashboard', 'normal' );
|
229 |
+
}
|
230 |
+
|
231 |
+
public function dashboardJs() {
|
232 |
+
echo '<script>
|
233 |
+
jQuery(function($){
|
234 |
+
$("#dashboard_right_now .comment-count, #latest-comments").hide();
|
235 |
+
$("#welcome-panel .welcome-comments").parent().hide();
|
236 |
+
});
|
237 |
+
</script>';
|
238 |
+
}
|
239 |
+
|
240 |
+
public function filterExistingComments( $comments, $post_id ) {
|
241 |
+
$post = get_post( $post_id );
|
242 |
+
|
243 |
+
return ( $this->isDisabledAllPosts() || $this->isPostTypeDisabled( $post->post_type ) ) ? [] : $comments;
|
244 |
+
}
|
245 |
+
|
246 |
+
public function filterCommentStatus( $open, $post_id ) {
|
247 |
+
$post = get_post( $post_id );
|
248 |
+
|
249 |
+
return ( $this->isDisabledAllPosts() || $this->isPostTypeDisabled( $post->post_type ) ) ? false : $open;
|
250 |
+
}
|
251 |
+
|
252 |
+
public function disableRcWidget() {
|
253 |
+
unregister_widget( 'WP_Widget_Recent_Comments' );
|
254 |
+
}
|
255 |
+
|
256 |
+
/**
|
257 |
+
* Convert links in comment text into span pseudo links
|
258 |
+
*
|
259 |
+
* @param $comment_text
|
260 |
+
*
|
261 |
+
* @return mixed
|
262 |
+
*/
|
263 |
+
|
264 |
+
public function commentTextConvertLinksPseudo( $comment_text ) {
|
265 |
+
|
266 |
+
return $this->convertLinksPseudo( $comment_text );
|
267 |
+
}
|
268 |
+
|
269 |
+
/**
|
270 |
+
* Convert links into span pseudo links
|
271 |
+
*
|
272 |
+
* @param $text
|
273 |
+
*
|
274 |
+
* @return mixed
|
275 |
+
*/
|
276 |
+
|
277 |
+
public function convertLinksPseudo( $text ) {
|
278 |
+
|
279 |
+
return preg_replace_callback( '/<a[^>]+href=[\'"](https?:\/\/[^"\']+)[\'"][^>]+>(.*?)<\/a>/i', [
|
280 |
+
$this,
|
281 |
+
'replaceLinks'
|
282 |
+
], $text );
|
283 |
+
}
|
284 |
+
|
285 |
+
public function replaceLinks( $matches ) {
|
286 |
+
if ( $matches[1] == get_home_url() ) {
|
287 |
+
return $matches[0];
|
288 |
+
}
|
289 |
+
|
290 |
+
return '<span class="wbcr-clearfy-pseudo-link" data-uri="' . $matches[1] . '" > ' . $matches[2] . '</span>';
|
291 |
+
}
|
292 |
+
|
293 |
+
/**
|
294 |
+
* Convert author link to pseudo link
|
295 |
+
*
|
296 |
+
* @return string
|
297 |
+
*/
|
298 |
+
|
299 |
+
public function pseudoCommentAuthorLink( $return, $author, $comment_ID ) {
|
300 |
+
$url = get_comment_author_url( $comment_ID );
|
301 |
+
$author = get_comment_author( $comment_ID );
|
302 |
+
|
303 |
+
if ( empty( $url ) || 'http://' == $url ) {
|
304 |
+
$return = $author;
|
305 |
+
} else {
|
306 |
+
$return = '<span class="wbcr-clearfy-pseudo-link" data-uri="' . $url . '">' . $author . '</span>';
|
307 |
+
}
|
308 |
+
|
309 |
+
return $return;
|
310 |
+
}
|
311 |
+
|
312 |
+
/**
|
313 |
+
* Remove url field from comment form
|
314 |
+
*
|
315 |
+
* @param $fields
|
316 |
+
*
|
317 |
+
* @return mixed
|
318 |
+
*/
|
319 |
+
|
320 |
+
public function removeUrlFromCommentForm( $fields ) {
|
321 |
+
if ( isset( $fields['url'] ) ) {
|
322 |
+
unset( $fields['url'] );
|
323 |
+
}
|
324 |
+
|
325 |
+
return $fields;
|
326 |
+
}
|
327 |
+
|
328 |
+
|
329 |
+
// todo: Убрать это грязное решение со скриптами.
|
330 |
+
public function assetsUrlSpanScripts() {
|
331 |
+
if ( ! is_singular() ) {
|
332 |
+
return;
|
333 |
+
}
|
334 |
+
|
335 |
+
wp_enqueue_style( 'wbcr-comments-plus-url-span', WCM_PLUGIN_URL . '/assets/css/url-span.css', [], $this->plugin->getPluginVersion() );
|
336 |
+
wp_enqueue_script( 'wbcr-comments-plus-url-span', WCM_PLUGIN_URL . '/assets/js/url-span.js', [ 'jquery' ], $this->plugin->getPluginVersion(), true );
|
337 |
+
}
|
338 |
+
}
|
components/comments-plus/includes/classes/class.configurate-comments.php
DELETED
@@ -1,362 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* This class configures the parameters advanced
|
5 |
-
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
6 |
-
* @copyright (c) 2017 Webraftic Ltd
|
7 |
-
* @version 1.0
|
8 |
-
*/
|
9 |
-
|
10 |
-
// Exit if accessed directly
|
11 |
-
if( !defined('ABSPATH') ) {
|
12 |
-
exit;
|
13 |
-
}
|
14 |
-
|
15 |
-
class WbcrCmp_ConfigComments extends Wbcr_FactoryClearfy206_Configurate {
|
16 |
-
|
17 |
-
private $modified_types = array();
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @param Wbcr_Factory409_Plugin $plugin
|
21 |
-
*/
|
22 |
-
public function __construct(Wbcr_Factory409_Plugin $plugin)
|
23 |
-
{
|
24 |
-
parent::__construct($plugin);
|
25 |
-
$this->plugin = $plugin;
|
26 |
-
}
|
27 |
-
|
28 |
-
public function registerActionsAndFilters()
|
29 |
-
{
|
30 |
-
// These need to happen now
|
31 |
-
if( $this->isDisabledAllPosts() ) {
|
32 |
-
add_action('widgets_init', array($this, 'disableRcWidget'));
|
33 |
-
add_action('template_redirect', array($this, 'filterQuery'), 9); // before redirect_canonical
|
34 |
-
|
35 |
-
// Admin bar filtering has to happen here since WP 3.6
|
36 |
-
add_action('template_redirect', array($this, 'filterAdminBar'));
|
37 |
-
add_action('admin_init', array($this, 'filterAdminBar'));
|
38 |
-
} else {
|
39 |
-
|
40 |
-
if( $this->getPopulateOption('comment_text_convert_links_pseudo') || $this->getPopulateOption('pseudo_comment_author_link') ) {
|
41 |
-
add_action('wp_enqueue_scripts', array($this, 'assetsUrlSpanScripts'));
|
42 |
-
}
|
43 |
-
|
44 |
-
if( $this->getPopulateOption('comment_text_convert_links_pseudo') ) {
|
45 |
-
add_filter('comment_text', array($this, 'commentTextConvertLinksPseudo'));
|
46 |
-
}
|
47 |
-
|
48 |
-
if( $this->getPopulateOption('pseudo_comment_author_link') ) {
|
49 |
-
add_filter('get_comment_author_link', array($this, 'pseudoCommentAuthorLink'), 100, 3);
|
50 |
-
}
|
51 |
-
|
52 |
-
if( $this->getPopulateOption('remove_url_from_comment_form') ) {
|
53 |
-
add_filter('comment_form_default_fields', array($this, 'removeUrlFromCommentForm'));
|
54 |
-
}
|
55 |
-
}
|
56 |
-
|
57 |
-
// These can happen later
|
58 |
-
//add_action('plugins_loaded', array($this, 'register_text_domain'));
|
59 |
-
add_action('wp_loaded', array($this, 'initWploadedFilters'));
|
60 |
-
}
|
61 |
-
|
62 |
-
/*
|
63 |
-
* Remove comment links from the admin bar in a multisite network.
|
64 |
-
*/
|
65 |
-
public function removeNetworkCommentLinks($wp_admin_bar)
|
66 |
-
{
|
67 |
-
if( $this->plugin->isNetworkActive() && is_user_logged_in() ) {
|
68 |
-
foreach((array)$wp_admin_bar->user->blogs as $blog) {
|
69 |
-
$wp_admin_bar->remove_menu('blog-' . $blog->userblog_id . '-c');
|
70 |
-
}
|
71 |
-
} else {
|
72 |
-
// We have no way to know whether the plugin is active on other sites, so only remove this one
|
73 |
-
$wp_admin_bar->remove_menu('blog-' . get_current_blog_id() . '-c');
|
74 |
-
}
|
75 |
-
}
|
76 |
-
|
77 |
-
private function isDisabledAllPosts()
|
78 |
-
{
|
79 |
-
return $this->getPopulateOption('disable_comments', 'enable_comments') == 'disable_comments';
|
80 |
-
}
|
81 |
-
|
82 |
-
private function isDisabledCertainPostTypes()
|
83 |
-
{
|
84 |
-
return $this->getPopulateOption('disable_comments', 'enable_comments') == 'disable_certain_post_types_comments';
|
85 |
-
}
|
86 |
-
|
87 |
-
private function isEnabledComments()
|
88 |
-
{
|
89 |
-
return $this->getPopulateOption('disable_comments', 'enable_comments') == 'enable_comments';
|
90 |
-
}
|
91 |
-
|
92 |
-
/*
|
93 |
-
* Get an array of disabled post type.
|
94 |
-
*/
|
95 |
-
private function getDisabledPostTypes()
|
96 |
-
{
|
97 |
-
return wbcr_cmp_get_disabled_post_types();
|
98 |
-
}
|
99 |
-
|
100 |
-
/*
|
101 |
-
* Check whether comments have been disabled on a given post type.
|
102 |
-
*/
|
103 |
-
private function isPostTypeDisabled($type)
|
104 |
-
{
|
105 |
-
return $this->isDisabledCertainPostTypes() && in_array($type, $this->getDisabledPostTypes());
|
106 |
-
}
|
107 |
-
|
108 |
-
public function initWploadedFilters()
|
109 |
-
{
|
110 |
-
$disabled_post_types = $this->getDisabledPostTypes();
|
111 |
-
|
112 |
-
if( !empty($disabled_post_types) && !$this->isEnabledComments() ) {
|
113 |
-
foreach($disabled_post_types as $type) {
|
114 |
-
// we need to know what native support was for later
|
115 |
-
if( post_type_supports($type, 'comments') ) {
|
116 |
-
$this->modified_types[] = $type;
|
117 |
-
remove_post_type_support($type, 'comments');
|
118 |
-
remove_post_type_support($type, 'trackbacks');
|
119 |
-
}
|
120 |
-
}
|
121 |
-
add_filter('comments_array', array($this, 'filterExistingComments'), 20, 2);
|
122 |
-
add_filter('comments_open', array($this, 'filterCommentStatus'), 20, 2);
|
123 |
-
add_filter('pings_open', array($this, 'filterCommentStatus'), 20, 2);
|
124 |
-
}
|
125 |
-
|
126 |
-
// Filters for the admin only
|
127 |
-
if( is_admin() ) {
|
128 |
-
add_action('admin_print_footer_scripts', array($this, 'discussionNotice'));
|
129 |
-
|
130 |
-
// if only certain types are disabled, remember the original post status
|
131 |
-
if( !$this->isDisabledAllPosts() ) {
|
132 |
-
add_action('edit_form_advanced', array($this, 'editFormInputs'));
|
133 |
-
add_action('edit_page_form', array($this, 'editFormInputs'));
|
134 |
-
} else {
|
135 |
-
add_action('admin_menu', array($this, 'filterAdminMenu'), 9999); // do this as late as possible
|
136 |
-
add_action('admin_print_footer_scripts-index.php', array($this, 'dashboardJs'));
|
137 |
-
add_action('wp_dashboard_setup', array($this, 'filterDashboard'));
|
138 |
-
add_filter('pre_option_default_pingback_flag', '__return_zero');
|
139 |
-
}
|
140 |
-
} // Filters for front end only
|
141 |
-
else {
|
142 |
-
add_action('template_redirect', array($this, 'checkCommentTemplate'));
|
143 |
-
|
144 |
-
if( $this->isDisabledAllPosts() ) {
|
145 |
-
add_filter('feed_links_show_comments_feed', '__return_false');
|
146 |
-
}
|
147 |
-
}
|
148 |
-
}
|
149 |
-
|
150 |
-
/*
|
151 |
-
* Replace the theme's comment template with a blank one.
|
152 |
-
* To prevent this, define DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE
|
153 |
-
* and set it to True
|
154 |
-
*/
|
155 |
-
public function checkCommentTemplate()
|
156 |
-
{
|
157 |
-
if( is_singular() && ($this->isDisabledAllPosts() || $this->isPostTypeDisabled(get_post_type())) ) {
|
158 |
-
if( !defined('DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE') || DISABLE_COMMENTS_REMOVE_COMMENTS_TEMPLATE == true ) {
|
159 |
-
// Kill the comments template.
|
160 |
-
add_filter('comments_template', array($this, 'dummyCommentsTemplate'), 20);
|
161 |
-
}
|
162 |
-
// Remove comment-reply script for themes that include it indiscriminately
|
163 |
-
wp_deregister_script('comment-reply');
|
164 |
-
// feed_links_extra inserts a comments RSS link
|
165 |
-
remove_action('wp_head', 'feed_links_extra', 3);
|
166 |
-
}
|
167 |
-
}
|
168 |
-
|
169 |
-
public function dummyCommentsTemplate()
|
170 |
-
{
|
171 |
-
return WCM_PLUGIN_DIR . '/includes/comments-template.php';
|
172 |
-
}
|
173 |
-
|
174 |
-
/*
|
175 |
-
* Issue a 403 for all comment feed requests.
|
176 |
-
*/
|
177 |
-
public function filterQuery()
|
178 |
-
{
|
179 |
-
if( is_comment_feed() ) {
|
180 |
-
wp_die(__('Comments are closed.'), '', array('response' => 403));
|
181 |
-
}
|
182 |
-
}
|
183 |
-
|
184 |
-
/*
|
185 |
-
* Remove comment links from the admin bar.
|
186 |
-
*/
|
187 |
-
public function filterAdminBar()
|
188 |
-
{
|
189 |
-
if( is_admin_bar_showing() ) {
|
190 |
-
// Remove comments links from admin bar
|
191 |
-
remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
|
192 |
-
}
|
193 |
-
|
194 |
-
if( is_multisite() ) {
|
195 |
-
add_action('admin_bar_menu', array($this, 'removeNetworkCommentLinks'), 500);
|
196 |
-
}
|
197 |
-
}
|
198 |
-
|
199 |
-
public function editFormInputs()
|
200 |
-
{
|
201 |
-
global $post;
|
202 |
-
// Without a dicussion meta box, comment_status will be set to closed on new/updated posts
|
203 |
-
if( in_array($post->post_type, $this->modified_types) ) {
|
204 |
-
echo '<input type="hidden" name="comment_status" value="' . $post->comment_status . '" /><input type="hidden" name="ping_status" value="' . $post->ping_status . '" />';
|
205 |
-
}
|
206 |
-
}
|
207 |
-
|
208 |
-
public function discussionNotice()
|
209 |
-
{
|
210 |
-
$disabled_post_types = $this->getDisabledPostTypes();
|
211 |
-
if( get_current_screen()->id == 'options-discussion' && !empty($disabled_post_types) ) {
|
212 |
-
$names = array();
|
213 |
-
foreach($disabled_post_types as $type) {
|
214 |
-
$type_object = get_post_type_object($type);
|
215 |
-
if( empty($type_object) ) {
|
216 |
-
continue;
|
217 |
-
}
|
218 |
-
$names[$type] = $type_object->labels->name;
|
219 |
-
}
|
220 |
-
|
221 |
-
?>
|
222 |
-
<script>
|
223 |
-
jQuery(document).ready(function($) {
|
224 |
-
$(".wrap h2").first().after(<?php echo json_encode( '<div style="color: #900"><p>' . sprintf( __( 'Note: The <em>%s</em> plugin is currently active, and comments are completely disabled on: %s. Many of the settings below will not be applicable for those post types.', 'comments-plus' ), $this->plugin->getPluginTitle(), implode(', ', $names ) ) . '</p></div>' );?>);
|
225 |
-
});
|
226 |
-
</script>
|
227 |
-
<?php
|
228 |
-
}
|
229 |
-
}
|
230 |
-
|
231 |
-
public function filterAdminMenu()
|
232 |
-
{
|
233 |
-
global $pagenow;
|
234 |
-
|
235 |
-
if( $pagenow == 'comment.php' || $pagenow == 'edit-comments.php' || $pagenow == 'options-discussion.php' ) {
|
236 |
-
wp_die(__('Comments are closed.'), '', array('response' => 403));
|
237 |
-
}
|
238 |
-
|
239 |
-
remove_menu_page('edit-comments.php');
|
240 |
-
remove_submenu_page('options-general.php', 'options-discussion.php');
|
241 |
-
}
|
242 |
-
|
243 |
-
public function filterDashboard()
|
244 |
-
{
|
245 |
-
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
|
246 |
-
}
|
247 |
-
|
248 |
-
public function dashboardJs()
|
249 |
-
{
|
250 |
-
echo '<script>
|
251 |
-
jQuery(function($){
|
252 |
-
$("#dashboard_right_now .comment-count, #latest-comments").hide();
|
253 |
-
$("#welcome-panel .welcome-comments").parent().hide();
|
254 |
-
});
|
255 |
-
</script>';
|
256 |
-
}
|
257 |
-
|
258 |
-
public function filterExistingComments($comments, $post_id)
|
259 |
-
{
|
260 |
-
$post = get_post($post_id);
|
261 |
-
|
262 |
-
return ($this->isDisabledAllPosts() || $this->isPostTypeDisabled($post->post_type)) ? array() : $comments;
|
263 |
-
}
|
264 |
-
|
265 |
-
public function filterCommentStatus($open, $post_id)
|
266 |
-
{
|
267 |
-
$post = get_post($post_id);
|
268 |
-
|
269 |
-
return ($this->isDisabledAllPosts() || $this->isPostTypeDisabled($post->post_type)) ? false : $open;
|
270 |
-
}
|
271 |
-
|
272 |
-
public function disableRcWidget()
|
273 |
-
{
|
274 |
-
unregister_widget('WP_Widget_Recent_Comments');
|
275 |
-
}
|
276 |
-
|
277 |
-
/**
|
278 |
-
* Convert links in comment text into span pseudo links
|
279 |
-
*
|
280 |
-
* @param $comment_text
|
281 |
-
* @return mixed
|
282 |
-
*/
|
283 |
-
|
284 |
-
public function commentTextConvertLinksPseudo($comment_text)
|
285 |
-
{
|
286 |
-
|
287 |
-
return $this->convertLinksPseudo($comment_text);
|
288 |
-
}
|
289 |
-
|
290 |
-
/**
|
291 |
-
* Convert links into span pseudo links
|
292 |
-
*
|
293 |
-
* @param $text
|
294 |
-
* @return mixed
|
295 |
-
*/
|
296 |
-
|
297 |
-
public function convertLinksPseudo($text)
|
298 |
-
{
|
299 |
-
|
300 |
-
return preg_replace_callback('/<a[^>]+href=[\'"](https?:\/\/[^"\']+)[\'"][^>]+>(.*?)<\/a>/i', array(
|
301 |
-
$this,
|
302 |
-
'replaceLinks'
|
303 |
-
), $text);
|
304 |
-
}
|
305 |
-
|
306 |
-
public function replaceLinks($matches)
|
307 |
-
{
|
308 |
-
if( $matches[1] == get_home_url() ) {
|
309 |
-
return $matches[0];
|
310 |
-
}
|
311 |
-
|
312 |
-
return '<span class="wbcr-clearfy-pseudo-link" data-uri="' . $matches[1] . '" > ' . $matches[2] . '</span>';
|
313 |
-
}
|
314 |
-
|
315 |
-
/**
|
316 |
-
* Convert author link to pseudo link
|
317 |
-
*
|
318 |
-
* @return string
|
319 |
-
*/
|
320 |
-
|
321 |
-
public function pseudoCommentAuthorLink($return, $author, $comment_ID)
|
322 |
-
{
|
323 |
-
$url = get_comment_author_url($comment_ID);
|
324 |
-
$author = get_comment_author($comment_ID);
|
325 |
-
|
326 |
-
if( empty($url) || 'http://' == $url ) {
|
327 |
-
$return = $author;
|
328 |
-
} else {
|
329 |
-
$return = '<span class="wbcr-clearfy-pseudo-link" data-uri="' . $url . '">' . $author . '</span>';
|
330 |
-
}
|
331 |
-
|
332 |
-
return $return;
|
333 |
-
}
|
334 |
-
|
335 |
-
/**
|
336 |
-
* Remove url field from comment form
|
337 |
-
*
|
338 |
-
* @param $fields
|
339 |
-
* @return mixed
|
340 |
-
*/
|
341 |
-
|
342 |
-
public function removeUrlFromCommentForm($fields)
|
343 |
-
{
|
344 |
-
if( isset($fields['url']) ) {
|
345 |
-
unset($fields['url']);
|
346 |
-
}
|
347 |
-
|
348 |
-
return $fields;
|
349 |
-
}
|
350 |
-
|
351 |
-
|
352 |
-
// todo: Убрать это грязное решение со скриптами.
|
353 |
-
public function assetsUrlSpanScripts()
|
354 |
-
{
|
355 |
-
if( !is_singular() ) {
|
356 |
-
return;
|
357 |
-
}
|
358 |
-
|
359 |
-
wp_enqueue_style('wbcr-comments-plus-url-span', WCM_PLUGIN_URL . '/assets/css/url-span.css', array(), $this->plugin->getPluginVersion());
|
360 |
-
wp_enqueue_script('wbcr-comments-plus-url-span', WCM_PLUGIN_URL . '/assets/js/url-span.js', array('jquery'), $this->plugin->getPluginVersion(), true);
|
361 |
-
}
|
362 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components/comments-plus/includes/classes/index.php
CHANGED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/comments-plus/includes/index.php
CHANGED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/comments-plus/index.php
CHANGED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
components/comments-plus/languages/comments-plus-es_ES.po
CHANGED
@@ -1,369 +1,369 @@
|
|
1 |
-
# Translation of Plugins - Clearfy in Spanish (Spain)
|
2 |
-
# This file is distributed under the same license as the Plugins - Clearfy – WordPress optimization plugin and disable ultimate tweaker - Development (trunk) package.
|
3 |
-
msgid ""
|
4 |
-
msgstr ""
|
5 |
-
"Project-Id-Version: \n"
|
6 |
-
"POT-Creation-Date: 2019-04-28 06:24+0300\n"
|
7 |
-
"PO-Revision-Date: 2019-04-28 06:24+0300\n"
|
8 |
-
"Last-Translator: \n"
|
9 |
-
"Language-Team: \n"
|
10 |
-
"Language: es\n"
|
11 |
-
"MIME-Version: 1.0\n"
|
12 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
-
"Content-Transfer-Encoding: 8bit\n"
|
14 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
-
"X-Generator: Poedit 2.1.1\n"
|
16 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
-
"X-Generator: Poedit 2.1.1\n"
|
18 |
-
"X-Poedit-Basepath: ..\n"
|
19 |
-
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
20 |
-
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
21 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
22 |
-
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
|
23 |
-
"X-Poedit-SearchPath-0: .\n"
|
24 |
-
"X-Poedit-SearchPathExcluded-0: libs\n"
|
25 |
-
"X-Poedit-SearchPathExcluded-1: components\n"
|
26 |
-
"X-Poedit-SearchPathExcluded-2: cache\n"
|
27 |
-
|
28 |
-
#: admin/boot.php:72
|
29 |
-
msgid "Disable comments on the entire site"
|
30 |
-
msgstr "Deshabilitar comentarios en todo el sitio"
|
31 |
-
|
32 |
-
#: admin/boot.php:78 admin/pages/comments.php:127
|
33 |
-
msgid "Select post types"
|
34 |
-
msgstr "Seleccionar tipos publicaciones"
|
35 |
-
|
36 |
-
#: admin/boot.php:83 admin/pages/comments.php:138
|
37 |
-
msgid "Custom post types"
|
38 |
-
msgstr "Custom post types"
|
39 |
-
|
40 |
-
#: admin/boot.php:88 admin/pages/comments.php:149
|
41 |
-
msgid "Use persistent mode"
|
42 |
-
msgstr "Usa el modo persistente"
|
43 |
-
|
44 |
-
#: admin/boot.php:93 admin/pages/comments.php:176
|
45 |
-
msgid "Replace external links in comments on the JavaScript code"
|
46 |
-
msgstr "Reemplazar enlaces externos decomentarios en el código JavaScript"
|
47 |
-
|
48 |
-
#: admin/boot.php:98 admin/pages/comments.php:185
|
49 |
-
msgid "Replace external links from comment authors on the JavaScript code"
|
50 |
-
msgstr ""
|
51 |
-
"Reemplace los enlaces externos de los autores en comentarios del código "
|
52 |
-
"JavaScript"
|
53 |
-
|
54 |
-
#: admin/boot.php:103 admin/pages/comments.php:167
|
55 |
-
msgid "Remove field \"site\" in comment form"
|
56 |
-
msgstr "Eliminar campo \"sitio \" en formulario de comentario"
|
57 |
-
|
58 |
-
#: admin/boot.php:115
|
59 |
-
msgid "One click disable all comments"
|
60 |
-
msgstr "Un clic deshabilita todos los comentarios"
|
61 |
-
|
62 |
-
#: admin/boot.php:136
|
63 |
-
msgid "Get ultimate plugin free"
|
64 |
-
msgstr "Obtener el ultimate plugin gratis"
|
65 |
-
|
66 |
-
#: admin/pages/comments.php:37 admin/pages/comments.php:91
|
67 |
-
msgid "Disable comments"
|
68 |
-
msgstr "Desactivar Comentarios"
|
69 |
-
|
70 |
-
#: admin/pages/comments.php:38
|
71 |
-
msgid "Manage site comments"
|
72 |
-
msgstr "Administrar los comentarios del sitio"
|
73 |
-
|
74 |
-
#: admin/pages/comments.php:51
|
75 |
-
msgid "Comments"
|
76 |
-
msgstr "Comentarios"
|
77 |
-
|
78 |
-
#: admin/pages/comments.php:51
|
79 |
-
msgid "General"
|
80 |
-
msgstr "General"
|
81 |
-
|
82 |
-
#: admin/pages/comments.php:66
|
83 |
-
msgid "Global disabling of comments"
|
84 |
-
msgstr "Deshabilitación global de comentarios."
|
85 |
-
|
86 |
-
#: admin/pages/comments.php:66
|
87 |
-
msgid ""
|
88 |
-
"What is the difference between these and native WordPress functions? "
|
89 |
-
"WordPress disables comments only for new posts! Using the functions below, "
|
90 |
-
"you can disable comments globally, even for old posts, and you can choose "
|
91 |
-
"which post types comments to disable. The plugin also disables the comment "
|
92 |
-
"functionality itself, which creates a certain load on the site."
|
93 |
-
msgstr ""
|
94 |
-
"¿Cuál es la diferencia entre estas y las funciones nativas de WordPress? "
|
95 |
-
"¡WordPress deshabilita comentarios solo para nuevas publicaciones! Al usar "
|
96 |
-
"las funciones a continuación, puede deshabilitar los comentarios "
|
97 |
-
"globalmente, incluso para las publicaciones anteriores, y puede elegir qué "
|
98 |
-
"tipo de comentarios deshabilitar. El plugin también desactiva la "
|
99 |
-
"funcionalidad de comentarios, lo que crea una cierta carga en el sitio."
|
100 |
-
|
101 |
-
#: admin/pages/comments.php:93
|
102 |
-
msgid "Not disable"
|
103 |
-
msgstr "No deshabilitar"
|
104 |
-
|
105 |
-
#: admin/pages/comments.php:96
|
106 |
-
msgid "Everywhere"
|
107 |
-
msgstr "Donde sea"
|
108 |
-
|
109 |
-
#: admin/pages/comments.php:97
|
110 |
-
#, php-format
|
111 |
-
msgid ""
|
112 |
-
"You can delete all comments in the database by clicking on this link (<a "
|
113 |
-
"href=\"%s\">cleaning comments in database</a>)."
|
114 |
-
msgstr ""
|
115 |
-
"Puede eliminar los comentarios en la base de datos haciendo clic en este "
|
116 |
-
"enlace (<a href=\"%s\">limpiando comentarios en la base de datos</a>)."
|
117 |
-
|
118 |
-
#: admin/pages/comments.php:101
|
119 |
-
msgid "On certain post types"
|
120 |
-
msgstr "Para ciertos tipos de correos"
|
121 |
-
|
122 |
-
#: admin/pages/comments.php:102
|
123 |
-
#, php-format
|
124 |
-
msgid ""
|
125 |
-
"You can delete all comments for the selected post types. Select the post "
|
126 |
-
"types below and save the settings. After that, click the link (<a href=\"%s"
|
127 |
-
"\">delete all comments for the selected post types in database</a>)."
|
128 |
-
msgstr ""
|
129 |
-
"Puede eliminar los comentarios para los tipos de publicación seleccionados. "
|
130 |
-
"Seleccione los tipos de publicación y guarde la configuración. Después, haga "
|
131 |
-
"clic en el enlace (<a href=\"%s\">eliminar todos los comentarios de los "
|
132 |
-
"tipos de publicaciones seleccionados en la base de datos</a>)."
|
133 |
-
|
134 |
-
#: admin/pages/comments.php:106
|
135 |
-
msgid ""
|
136 |
-
"Everywhere - Warning: This option is global and will affect your entire "
|
137 |
-
"site. Use it only if you want to disable comments everywhere. A complete "
|
138 |
-
"description of what this option does is available here"
|
139 |
-
msgstr ""
|
140 |
-
"Donde sea - Advertencia: Esta opción es global y afectará a todo su sitio. "
|
141 |
-
"Úselo solo si desea deshabilitar comentarios en todas partes. Una "
|
142 |
-
"descripción completa de lo que hace esta opción está disponible aquí."
|
143 |
-
|
144 |
-
#: admin/pages/comments.php:106
|
145 |
-
msgid ""
|
146 |
-
"On certain post types - Disabling comments will also disable trackbacks and "
|
147 |
-
"pingbacks. All comment-related fields will also be hidden from the edit/"
|
148 |
-
"quick-edit screens of the affected posts. These settings cannot be "
|
149 |
-
"overridden for individual posts."
|
150 |
-
msgstr ""
|
151 |
-
"Para ciertas publicaciones, al deshabilitar los comentarios, se deshabilita "
|
152 |
-
"los trackbacks y los pingbacks. Los campos relacionados con comentarios se "
|
153 |
-
"ocultarán de las pantallas de edición/edición-rápida de las publicaciones "
|
154 |
-
"afectadas. Estas configuraciones no se pueden anular para publicaciones "
|
155 |
-
"individuales."
|
156 |
-
|
157 |
-
#: admin/pages/comments.php:130
|
158 |
-
msgid "Select the post types for which comments will be disabled"
|
159 |
-
msgstr ""
|
160 |
-
"Seleccione los tipos de publicación para los cuales se deshabilitarán los "
|
161 |
-
"comentarios."
|
162 |
-
|
163 |
-
#: admin/pages/comments.php:141
|
164 |
-
msgid ""
|
165 |
-
"Only the built-in post types appear above. If you want to disable comments "
|
166 |
-
"on other custom post types on the entire network, you can supply a comma-"
|
167 |
-
"separated list of post types below (use the slug that identifies the post "
|
168 |
-
"type)."
|
169 |
-
msgstr ""
|
170 |
-
"Solo los tipos de post types incorporados aparecen arriba. Si desea "
|
171 |
-
"deshabilitar los comentarios sobre otros tipos de post types personalizadas "
|
172 |
-
"en toda la red, puede proporcionar una lista separada por comas de los tipos "
|
173 |
-
"de post types a continuación (use la barra que identifica el tipo de "
|
174 |
-
"publicación)."
|
175 |
-
|
176 |
-
#: admin/pages/comments.php:151
|
177 |
-
msgid ""
|
178 |
-
"This will make persistent changes to your database — comments will "
|
179 |
-
"remain closed even if you later disable the plugin! You should not use it if "
|
180 |
-
"you only want to disable comments temporarily."
|
181 |
-
msgstr ""
|
182 |
-
"Esto hará cambios persistentes en su base de datos — Los comentarios "
|
183 |
-
"permanecerán cerrados incluso si luego deshabilitas el plugin. No lo use si "
|
184 |
-
"solo desea deshabilitar los comentarios temporalmente."
|
185 |
-
|
186 |
-
#: admin/pages/comments.php:161
|
187 |
-
msgid "General settings for comments"
|
188 |
-
msgstr "Configuraciones generales para comentarios"
|
189 |
-
|
190 |
-
#: admin/pages/comments.php:161
|
191 |
-
msgid "These settings will help you improve SEO and reduce the amount of spam."
|
192 |
-
msgstr ""
|
193 |
-
"Estas configuraciones te ayudarán a mejorar el SEO y reducir la cantidad de "
|
194 |
-
"spam."
|
195 |
-
|
196 |
-
#: admin/pages/comments.php:169
|
197 |
-
msgid ""
|
198 |
-
"Tired of spam in the comments? Do visitors leave \"blank\" comments for the "
|
199 |
-
"sake of a link to their site?"
|
200 |
-
msgstr ""
|
201 |
-
"¿Cansado de spam en los comentarios? ¿Los visitantes dejan \"en blanco\" "
|
202 |
-
"los comentarios por un enlace a su sitio?"
|
203 |
-
|
204 |
-
#: admin/pages/comments.php:169
|
205 |
-
msgid "Removes the \"Site\" field from the comment form."
|
206 |
-
msgstr "Elimina el campo \"Sitio \" del formulario de comentarios."
|
207 |
-
|
208 |
-
#: admin/pages/comments.php:169
|
209 |
-
msgid ""
|
210 |
-
"Works with the standard comment form, if the form is manually written in "
|
211 |
-
"your theme-it probably will not work!"
|
212 |
-
msgstr ""
|
213 |
-
"Funciona con el formulario de comentarios estándar, si el formulario está "
|
214 |
-
"escrito manualmente en su tema, ¡probablemente no funcionará!"
|
215 |
-
|
216 |
-
#: admin/pages/comments.php:178
|
217 |
-
msgid ""
|
218 |
-
"Superfluous external links from comments, which can be typed from a dozen "
|
219 |
-
"and more for one article, do not bring anything good for promotion."
|
220 |
-
msgstr ""
|
221 |
-
"Los enlaces externos superfluos en los comentarios y en cantidades mayores "
|
222 |
-
"de 12 no aportan nada bueno para el SEO o algunas promociones."
|
223 |
-
|
224 |
-
#: admin/pages/comments.php:178
|
225 |
-
#, php-format
|
226 |
-
msgid "Replaces the links of this kind of %s, on links of this kind %s"
|
227 |
-
msgstr "Reemplaza los enlaces del tipo %s, en enlaces de este tipo %s"
|
228 |
-
|
229 |
-
#: admin/pages/
|
230 |
-
msgid ""
|
231 |
-
"Up to 90 percent of comments in the blog can be left for the sake of an "
|
232 |
-
"external link. Even nofollow from page weight loss here does not help."
|
233 |
-
msgstr ""
|
234 |
-
"Hasta un 90 por ciento de los comentarios del Blog pueden ser usados para "
|
235 |
-
"enlaces externos, incluso, usar la etiqueta \"nofollow\" no ayudará. "
|
236 |
-
|
237 |
-
#: admin/pages/comments.php:187
|
238 |
-
msgid ""
|
239 |
-
"Replaces the links of the authors of comments on the JavaScript code, it is "
|
240 |
-
"impossible to distinguish it from usual links."
|
241 |
-
msgstr ""
|
242 |
-
"Reemplaza los enlaces de los autores de los comentarios sobre el código "
|
243 |
-
"JavaScript, es imposible distinguirlo de los enlaces habituales."
|
244 |
-
|
245 |
-
#: admin/pages/comments.php:187
|
246 |
-
msgid "In some Wordpress topics this may not work."
|
247 |
-
msgstr "En algunos tópicos de Wordpress, ésto podría no trabajar"
|
248 |
-
|
249 |
-
#: admin/pages/delete-comments.php:41
|
250 |
-
msgid "Comments cleaner"
|
251 |
-
msgstr "Limpieza de comentarios"
|
252 |
-
|
253 |
-
#: admin/pages/delete-comments.php:62
|
254 |
-
msgid "All comments have been deleted."
|
255 |
-
msgstr "Todos los comentarios han sido eliminados."
|
256 |
-
|
257 |
-
#: admin/pages/delete-comments.php:71
|
258 |
-
msgid ""
|
259 |
-
"An error occurred while trying to delete comments. Internal error occured. "
|
260 |
-
"Please try again later."
|
261 |
-
msgstr ""
|
262 |
-
"Se ha producido un error al intentar eliminar comentarios. Se produjo un "
|
263 |
-
"error interno. Por favor, inténtelo de nuevo más tarde."
|
264 |
-
|
265 |
-
#: admin/pages/delete-comments.php:211
|
266 |
-
msgid ""
|
267 |
-
"Are you sure you want to delete comments from the database without restoring?"
|
268 |
-
msgstr ""
|
269 |
-
"¿Está seguro de que desea eliminar los comentarios de la base de datos sin "
|
270 |
-
"restaurar?"
|
271 |
-
|
272 |
-
#: admin/pages/delete-comments.php:226
|
273 |
-
msgid "Delete "
|
274 |
-
msgstr "Borrar"
|
275 |
-
|
276 |
-
#: admin/pages/delete-comments.php:232
|
277 |
-
msgid "Comments clearing tools"
|
278 |
-
msgstr "Herramientas de limpieza de comentarios"
|
279 |
-
|
280 |
-
#: admin/pages/delete-comments.php:235
|
281 |
-
msgid ""
|
282 |
-
"These functions can be useful for global disabling comments or bulk cleaning "
|
283 |
-
"spam comments."
|
284 |
-
msgstr ""
|
285 |
-
"Estas funciones pueden ser útiles para deshabilitar los comentarios globales "
|
286 |
-
"o limpiar de forma masiva los comentarios de spam."
|
287 |
-
|
288 |
-
#: admin/pages/delete-comments.php:240
|
289 |
-
msgid "Remove all comments"
|
290 |
-
msgstr "Eliminar todos los comentarios"
|
291 |
-
|
292 |
-
#: admin/pages/delete-comments.php:242
|
293 |
-
msgid "You can delete all comments in your database with one click."
|
294 |
-
msgstr "Borrar todos los comentarios en la basa de datos con un click"
|
295 |
-
|
296 |
-
#: admin/pages/delete-comments.php:244
|
297 |
-
msgid "Choose post types"
|
298 |
-
msgstr "Elegir tipos de publicaciones"
|
299 |
-
|
300 |
-
#: admin/pages/delete-comments.php:249
|
301 |
-
msgid "Select all"
|
302 |
-
msgstr "Seleccionar todo"
|
303 |
-
|
304 |
-
#: admin/pages/delete-comments.php:266
|
305 |
-
#, php-format
|
306 |
-
msgid "Delete Woocommerce order notices? (%d)"
|
307 |
-
msgstr "¿Desea eliminar los avisos de pedidos de Woocommerce? (%d)"
|
308 |
-
|
309 |
-
#: admin/pages/delete-comments.php:272
|
310 |
-
#, php-format
|
311 |
-
msgid "Delete (%s)"
|
312 |
-
msgstr "Borrar (%s)"
|
313 |
-
|
314 |
-
#: admin/pages/delete-comments.php:279
|
315 |
-
msgid "Remove spam comments"
|
316 |
-
msgstr "Eliminar comentarios spam"
|
317 |
-
|
318 |
-
#: admin/pages/delete-comments.php:281
|
319 |
-
msgid "You can remove only spam comments from the database with one click."
|
320 |
-
msgstr ""
|
321 |
-
"Puede eliminar solo los comentarios spam de la base de datos con un solo "
|
322 |
-
"clic."
|
323 |
-
|
324 |
-
#: admin/pages/delete-comments.php:283 admin/pages/delete-comments.php:290
|
325 |
-
#: admin/pages/delete-comments.php:297
|
326 |
-
#, php-format
|
327 |
-
msgid "Delete (%d)"
|
328 |
-
msgstr "Borrar (%d)"
|
329 |
-
|
330 |
-
#: admin/pages/delete-comments.php:286
|
331 |
-
msgid "Remove unapproved comments"
|
332 |
-
msgstr "Eliminar comentarios no aprobados"
|
333 |
-
|
334 |
-
#: admin/pages/delete-comments.php:288
|
335 |
-
msgid ""
|
336 |
-
"You can remove only unapproved comments from the database with one click."
|
337 |
-
msgstr ""
|
338 |
-
"Puede eliminar solo los comentarios no aprobados de la base de datos con un "
|
339 |
-
"solo click."
|
340 |
-
|
341 |
-
#: admin/pages/delete-comments.php:293
|
342 |
-
msgid "Remove trashed comments"
|
343 |
-
msgstr "Eliminar comentarios en la papelera"
|
344 |
-
|
345 |
-
#: admin/pages/delete-comments.php:295
|
346 |
-
msgid "You can remove only trashed comments from the database with one click."
|
347 |
-
msgstr ""
|
348 |
-
"Puede borrar solo los comentarios eliminados de la base de datos con un solo "
|
349 |
-
"click."
|
350 |
-
|
351 |
-
#: comments-plus.php:70
|
352 |
-
msgid "Webcraftic Disable comments"
|
353 |
-
msgstr "Deshabilitar comentarios Webcraftic "
|
354 |
-
|
355 |
-
#: includes/classes/class.configurate-comments.php:180
|
356 |
-
#: includes/classes/class.configurate-comments.php:236
|
357 |
-
msgid "Comments are closed."
|
358 |
-
msgstr "Cerrados los comentarios"
|
359 |
-
|
360 |
-
#: includes/classes/class.configurate-comments.php:224
|
361 |
-
#, php-format
|
362 |
-
msgid ""
|
363 |
-
"Note: The <em>%s</em> plugin is currently active, and comments are "
|
364 |
-
"completely disabled on: %s. Many of the settings below will not be "
|
365 |
-
"applicable for those post types."
|
366 |
-
msgstr ""
|
367 |
-
"Nota: el plugin <em>%s</em> está activo y los comentarios están "
|
368 |
-
"completamente deshabilitados en: %s. Muchas de las configuraciones a "
|
1 |
+
# Translation of Plugins - Clearfy in Spanish (Spain)
|
2 |
+
# This file is distributed under the same license as the Plugins - Clearfy – WordPress optimization plugin and disable ultimate tweaker - Development (trunk) package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: \n"
|
6 |
+
"POT-Creation-Date: 2019-04-28 06:24+0300\n"
|
7 |
+
"PO-Revision-Date: 2019-04-28 06:24+0300\n"
|
8 |
+
"Last-Translator: \n"
|
9 |
+
"Language-Team: \n"
|
10 |
+
"Language: es\n"
|
11 |
+
"MIME-Version: 1.0\n"
|
12 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
+
"Content-Transfer-Encoding: 8bit\n"
|
14 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
+
"X-Generator: Poedit 2.1.1\n"
|
16 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
17 |
+
"X-Generator: Poedit 2.1.1\n"
|
18 |
+
"X-Poedit-Basepath: ..\n"
|
19 |
+
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
20 |
+
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
21 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
22 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
|
23 |
+
"X-Poedit-SearchPath-0: .\n"
|
24 |
+
"X-Poedit-SearchPathExcluded-0: libs\n"
|
25 |
+
"X-Poedit-SearchPathExcluded-1: components\n"
|
26 |
+
"X-Poedit-SearchPathExcluded-2: cache\n"
|
27 |
+
|
28 |
+
#: admin/boot.php:72
|
29 |
+
msgid "Disable comments on the entire site"
|
30 |
+
msgstr "Deshabilitar comentarios en todo el sitio"
|
31 |
+
|
32 |
+
#: admin/boot.php:78 admin/pages/comments.php:127
|
33 |
+
msgid "Select post types"
|
34 |
+
msgstr "Seleccionar tipos publicaciones"
|
35 |
+
|
36 |
+
#: admin/boot.php:83 admin/pages/comments.php:138
|
37 |
+
msgid "Custom post types"
|
38 |
+
msgstr "Custom post types"
|
39 |
+
|
40 |
+
#: admin/boot.php:88 admin/pages/comments.php:149
|
41 |
+
msgid "Use persistent mode"
|
42 |
+
msgstr "Usa el modo persistente"
|
43 |
+
|
44 |
+
#: admin/boot.php:93 admin/pages/comments.php:176
|
45 |
+
msgid "Replace external links in comments on the JavaScript code"
|
46 |
+
msgstr "Reemplazar enlaces externos decomentarios en el código JavaScript"
|
47 |
+
|
48 |
+
#: admin/boot.php:98 admin/pages/comments.php:185
|
49 |
+
msgid "Replace external links from comment authors on the JavaScript code"
|
50 |
+
msgstr ""
|
51 |
+
"Reemplace los enlaces externos de los autores en comentarios del código "
|
52 |
+
"JavaScript"
|
53 |
+
|
54 |
+
#: admin/boot.php:103 admin/pages/comments.php:167
|
55 |
+
msgid "Remove field \"site\" in comment form"
|
56 |
+
msgstr "Eliminar campo \"sitio \" en formulario de comentario"
|
57 |
+
|
58 |
+
#: admin/boot.php:115
|
59 |
+
msgid "One click disable all comments"
|
60 |
+
msgstr "Un clic deshabilita todos los comentarios"
|
61 |
+
|
62 |
+
#: admin/boot.php:136
|
63 |
+
msgid "Get ultimate plugin free"
|
64 |
+
msgstr "Obtener el ultimate plugin gratis"
|
65 |
+
|
66 |
+
#: admin/pages/comments.php:37 admin/pages/comments.php:91
|
67 |
+
msgid "Disable comments"
|
68 |
+
msgstr "Desactivar Comentarios"
|
69 |
+
|
70 |
+
#: admin/pages/comments.php:38
|
71 |
+
msgid "Manage site comments"
|
72 |
+
msgstr "Administrar los comentarios del sitio"
|
73 |
+
|
74 |
+
#: admin/pages/comments.php:51
|
75 |
+
msgid "Comments"
|
76 |
+
msgstr "Comentarios"
|
77 |
+
|
78 |
+
#: admin/pages/comments.php:51
|
79 |
+
msgid "General"
|
80 |
+
msgstr "General"
|
81 |
+
|
82 |
+
#: admin/pages/comments.php:66
|
83 |
+
msgid "Global disabling of comments"
|
84 |
+
msgstr "Deshabilitación global de comentarios."
|
85 |
+
|
86 |
+
#: admin/pages/comments.php:66
|
87 |
+
msgid ""
|
88 |
+
"What is the difference between these and native WordPress functions? "
|
89 |
+
"WordPress disables comments only for new posts! Using the functions below, "
|
90 |
+
"you can disable comments globally, even for old posts, and you can choose "
|
91 |
+
"which post types comments to disable. The plugin also disables the comment "
|
92 |
+
"functionality itself, which creates a certain load on the site."
|
93 |
+
msgstr ""
|
94 |
+
"¿Cuál es la diferencia entre estas y las funciones nativas de WordPress? "
|
95 |
+
"¡WordPress deshabilita comentarios solo para nuevas publicaciones! Al usar "
|
96 |
+
"las funciones a continuación, puede deshabilitar los comentarios "
|
97 |
+
"globalmente, incluso para las publicaciones anteriores, y puede elegir qué "
|
98 |
+
"tipo de comentarios deshabilitar. El plugin también desactiva la "
|
99 |
+
"funcionalidad de comentarios, lo que crea una cierta carga en el sitio."
|
100 |
+
|
101 |
+
#: admin/pages/comments.php:93
|
102 |
+
msgid "Not disable"
|
103 |
+
msgstr "No deshabilitar"
|
104 |
+
|
105 |
+
#: admin/pages/comments.php:96
|
106 |
+
msgid "Everywhere"
|
107 |
+
msgstr "Donde sea"
|
108 |
+
|
109 |
+
#: admin/pages/comments.php:97
|
110 |
+
#, php-format
|
111 |
+
msgid ""
|
112 |
+
"You can delete all comments in the database by clicking on this link (<a "
|
113 |
+
"href=\"%s\">cleaning comments in database</a>)."
|
114 |
+
msgstr ""
|
115 |
+
"Puede eliminar los comentarios en la base de datos haciendo clic en este "
|
116 |
+
"enlace (<a href=\"%s\">limpiando comentarios en la base de datos</a>)."
|
117 |
+
|
118 |
+
#: admin/pages/comments.php:101
|
119 |
+
msgid "On certain post types"
|
120 |
+
msgstr "Para ciertos tipos de correos"
|
121 |
+
|
122 |
+
#: admin/pages/comments.php:102
|
123 |
+
#, php-format
|
124 |
+
msgid ""
|
125 |
+
"You can delete all comments for the selected post types. Select the post "
|
126 |
+
"types below and save the settings. After that, click the link (<a href=\"%s"
|
127 |
+
"\">delete all comments for the selected post types in database</a>)."
|
128 |
+
msgstr ""
|
129 |
+
"Puede eliminar los comentarios para los tipos de publicación seleccionados. "
|
130 |
+
"Seleccione los tipos de publicación y guarde la configuración. Después, haga "
|
131 |
+
"clic en el enlace (<a href=\"%s\">eliminar todos los comentarios de los "
|
132 |
+
"tipos de publicaciones seleccionados en la base de datos</a>)."
|
133 |
+
|
134 |
+
#: admin/pages/comments.php:106
|
135 |
+
msgid ""
|
136 |
+
"Everywhere - Warning: This option is global and will affect your entire "
|
137 |
+
"site. Use it only if you want to disable comments everywhere. A complete "
|
138 |
+
"description of what this option does is available here"
|
139 |
+
msgstr ""
|
140 |
+
"Donde sea - Advertencia: Esta opción es global y afectará a todo su sitio. "
|
141 |
+
"Úselo solo si desea deshabilitar comentarios en todas partes. Una "
|
142 |
+
"descripción completa de lo que hace esta opción está disponible aquí."
|
143 |
+
|
144 |
+
#: admin/pages/comments.php:106
|
145 |
+
msgid ""
|
146 |
+
"On certain post types - Disabling comments will also disable trackbacks and "
|
147 |
+
"pingbacks. All comment-related fields will also be hidden from the edit/"
|
148 |
+
"quick-edit screens of the affected posts. These settings cannot be "
|
149 |
+
"overridden for individual posts."
|
150 |
+
msgstr ""
|
151 |
+
"Para ciertas publicaciones, al deshabilitar los comentarios, se deshabilita "
|
152 |
+
"los trackbacks y los pingbacks. Los campos relacionados con comentarios se "
|
153 |
+
"ocultarán de las pantallas de edición/edición-rápida de las publicaciones "
|
154 |
+
"afectadas. Estas configuraciones no se pueden anular para publicaciones "
|
155 |
+
"individuales."
|
156 |
+
|
157 |
+
#: admin/pages/comments.php:130
|
158 |
+
msgid "Select the post types for which comments will be disabled"
|
159 |
+
msgstr ""
|
160 |
+
"Seleccione los tipos de publicación para los cuales se deshabilitarán los "
|
161 |
+
"comentarios."
|
162 |
+
|
163 |
+
#: admin/pages/comments.php:141
|
164 |
+
msgid ""
|
165 |
+
"Only the built-in post types appear above. If you want to disable comments "
|
166 |
+
"on other custom post types on the entire network, you can supply a comma-"
|
167 |
+
"separated list of post types below (use the slug that identifies the post "
|
168 |
+
"type)."
|
169 |
+
msgstr ""
|
170 |
+
"Solo los tipos de post types incorporados aparecen arriba. Si desea "
|
171 |
+
"deshabilitar los comentarios sobre otros tipos de post types personalizadas "
|
172 |
+
"en toda la red, puede proporcionar una lista separada por comas de los tipos "
|
173 |
+
"de post types a continuación (use la barra que identifica el tipo de "
|
174 |
+
"publicación)."
|
175 |
+
|
176 |
+
#: admin/pages/comments.php:151
|
177 |
+
msgid ""
|
178 |
+
"This will make persistent changes to your database — comments will "
|
179 |
+
"remain closed even if you later disable the plugin! You should not use it if "
|
180 |
+
"you only want to disable comments temporarily."
|
181 |
+
msgstr ""
|
182 |
+
"Esto hará cambios persistentes en su base de datos — Los comentarios "
|
183 |
+
"permanecerán cerrados incluso si luego deshabilitas el plugin. No lo use si "
|
184 |
+
"solo desea deshabilitar los comentarios temporalmente."
|
185 |
+
|
186 |
+
#: admin/pages/comments.php:161
|
187 |
+
msgid "General settings for comments"
|
188 |
+
msgstr "Configuraciones generales para comentarios"
|
189 |
+
|
190 |
+
#: admin/pages/comments.php:161
|
191 |
+
msgid "These settings will help you improve SEO and reduce the amount of spam."
|
192 |
+
msgstr ""
|
193 |
+
"Estas configuraciones te ayudarán a mejorar el SEO y reducir la cantidad de "
|
194 |
+
"spam."
|
195 |
+
|
196 |
+
#: admin/pages/comments.php:169
|
197 |
+
msgid ""
|
198 |
+
"Tired of spam in the comments? Do visitors leave \"blank\" comments for the "
|
199 |
+
"sake of a link to their site?"
|
200 |
+
msgstr ""
|
201 |
+
"¿Cansado de spam en los comentarios? ¿Los visitantes dejan \"en blanco\" "
|
202 |
+
"los comentarios por un enlace a su sitio?"
|
203 |
+
|
204 |
+
#: admin/pages/comments.php:169
|
205 |
+
msgid "Removes the \"Site\" field from the comment form."
|
206 |
+
msgstr "Elimina el campo \"Sitio \" del formulario de comentarios."
|
207 |
+
|
208 |
+
#: admin/pages/comments.php:169
|
209 |
+
msgid ""
|
210 |
+
"Works with the standard comment form, if the form is manually written in "
|
211 |
+
"your theme-it probably will not work!"
|
212 |
+
msgstr ""
|
213 |
+
"Funciona con el formulario de comentarios estándar, si el formulario está "
|
214 |
+
"escrito manualmente en su tema, ¡probablemente no funcionará!"
|
215 |
+
|
216 |
+
#: admin/pages/comments.php:178
|
217 |
+
msgid ""
|
218 |
+
"Superfluous external links from comments, which can be typed from a dozen "
|
219 |
+
"and more for one article, do not bring anything good for promotion."
|
220 |
+
msgstr ""
|
221 |
+
"Los enlaces externos superfluos en los comentarios y en cantidades mayores "
|
222 |
+
"de 12 no aportan nada bueno para el SEO o algunas promociones."
|
223 |
+
|
224 |
+
#: admin/pages/comments.php:178
|
225 |
+
#, php-format
|
226 |
+
msgid "Replaces the links of this kind of %s, on links of this kind %s"
|
227 |
+
msgstr "Reemplaza los enlaces del tipo %s, en enlaces de este tipo %s"
|
228 |
+
|
229 |
+
#: admin/pages/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|